madarx 2.17.0 → 2.19.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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +709 -688
- package/.next/standalone/.next/app-path-routes-manifest.json +80 -77
- package/.next/standalone/.next/build-manifest.json +5 -5
- package/.next/standalone/.next/prerender-manifest.json +15 -15
- package/.next/standalone/.next/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/routes-manifest.json +6 -0
- package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +2 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +4 -4
- package/.next/standalone/.next/server/app/activity/page.js +1 -1
- package/.next/standalone/.next/server/app/activity/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/activity/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/page.js +3 -3
- package/.next/standalone/.next/server/app/admin/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/agents/[id]/page.js +6 -6
- package/.next/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/agents/page.js +1 -1
- package/.next/standalone/.next/server/app/agents/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/activity/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/audit-export/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/share-links/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-memory/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/log/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/active-run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/chain/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/memory/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/reports/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/skills/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/create/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/ops/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/acl/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/protect/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/raw/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/upload/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/audit/list/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/audit/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/config/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/config/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/join-bootstrap/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/brand/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/brand/share/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/sessions/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/cloud/schema/route.js +1 -0
- package/.next/standalone/.next/server/app/api/cloud/schema/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/cloud/schema/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/config/env/route.js +1 -1
- package/.next/standalone/.next/server/app/api/config/env/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/[service]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/[service]/verify/route.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/[service]/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/move/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/import/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/[id]/blob/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/[id]/transcribe/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/folders/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/since/[cursor]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/stream/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/fs/create-folder/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/fs/pick-folder/route.js +2 -2
- package/.next/standalone/.next/server/app/api/fs/pick-folder/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/blueprint/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/diagnostic/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/governance/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/interview/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/pilot/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/quarterly/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/setup-package/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/interviews/[id]/responses/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/interviews/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/setup-packages/[id]/apply/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/setup-packages/validate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/heartbeat/tick/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/heartbeat/worker/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/help/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hermes/jobs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/integrations/google/callback/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/integrations/google/oauth/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/marketplace/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/marketplace/open-design/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/marketplace/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/import-roots/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/portfolio/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/chunks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/diligence/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/import/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/publish/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/missions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/onboarding/blueprint/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/onboarding/launch/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orchestrator/command/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orchestrator/stream/attach/route.js +4 -0
- package/.next/standalone/.next/server/app/api/orchestrator/stream/attach/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/orchestrator/stream/attach/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/orchestrator/stream/route.js +14 -14
- package/.next/standalone/.next/server/app/api/orchestrator/stream/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orchestrator/upload/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/org/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/invites/[inviteId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/invites/route.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/invites/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/invites/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/role/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/members/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/invites/pending/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/join/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/join-complete/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/printing-press/clis/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/printing-press/install/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/printing-press/security-mode/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/privacy/config/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/privacy/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/share-link/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/override/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/retry/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/submit/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/settings/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/validate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/start-and-route/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[slug]/library/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[slug]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/approve-claude-run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/claude-code-dry-run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/competitor-report/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/engine-ping/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/marketing-plan/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/schedules/upsert/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/secrets/[name]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/secrets/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/settings/trust-mode/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/otp/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/space/[token]/otp/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/space/[token]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/space/[token]/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/[id]/acl/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/publish/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/unpublish/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/state/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/system/update/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/active-run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/attachments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/[itemId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/checkout/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/children/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/comments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/live-runs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/release/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tool-allowlists/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tool-allowlists/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tool-egress/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/[name]/approve/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/[name]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/transcripts/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/providers/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/context/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/session/route.js +2 -2
- package/.next/standalone/.next/server/app/api/voice/realtime/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/tool-result/route.js +2 -2
- package/.next/standalone/.next/server/app/api/voice/realtime/tool-result/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/tools/route.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/tools/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/tts/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/allowlist/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/disconnect/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/messages/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/qr/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/send/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/approvals/page.js +2 -2
- package/.next/standalone/.next/server/app/approvals/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/approvals/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/architecture/page.js +1 -1
- package/.next/standalone/.next/server/app/architecture/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/architecture/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/architecture.html +2 -2
- package/.next/standalone/.next/server/app/architecture.rsc +4 -4
- package/.next/standalone/.next/server/app/audit/live/page.js +1 -1
- package/.next/standalone/.next/server/app/audit/live/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/live/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/audit/page.js +1 -1
- package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/brand/page.js +1 -1
- package/.next/standalone/.next/server/app/brand/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/brand/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/brand.html +2 -1
- package/.next/standalone/.next/server/app/brand.rsc +4 -4
- package/.next/standalone/.next/server/app/disk/page.js +1 -1
- package/.next/standalone/.next/server/app/disk/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/disk/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/federated-ai/page.js +1 -1
- package/.next/standalone/.next/server/app/federated-ai/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/federated-ai/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/federated-ai.html +2 -2
- package/.next/standalone/.next/server/app/federated-ai.rsc +4 -4
- package/.next/standalone/.next/server/app/hail/[id]/governance/page.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/governance/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/governance/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/interview/page.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/interview/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/interview/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/page.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/setup/page.js +2 -2
- package/.next/standalone/.next/server/app/hail/[id]/setup/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hail/page.js +2 -2
- package/.next/standalone/.next/server/app/hail/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/hail/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/help/[slug]/page.js +1 -1
- package/.next/standalone/.next/server/app/help/[slug]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/help/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/help/page.js +1 -1
- package/.next/standalone/.next/server/app/help/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +2 -2
- package/.next/standalone/.next/server/app/index.rsc +5 -5
- package/.next/standalone/.next/server/app/join/page.js +1 -1
- package/.next/standalone/.next/server/app/join/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/join/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/join.html +1 -1
- package/.next/standalone/.next/server/app/join.rsc +4 -4
- package/.next/standalone/.next/server/app/login/page.js +1 -1
- package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/marketplace/page.js +3 -3
- package/.next/standalone/.next/server/app/marketplace/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/marketplace/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/mines/[projectId]/page.js +1 -1
- package/.next/standalone/.next/server/app/mines/[projectId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/mines/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/mines/[projectId]/results/page.js +1 -1
- package/.next/standalone/.next/server/app/mines/[projectId]/results/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/mines/[projectId]/results/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/mines/page.js +1 -1
- package/.next/standalone/.next/server/app/mines/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/mines/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/missions/page.js +2 -2
- package/.next/standalone/.next/server/app/missions/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/org/page.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/org/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/onboarding/org/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/page.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/team/page.js +2 -0
- package/.next/standalone/.next/server/app/onboarding/team/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/onboarding/team/page_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/onboarding.html +2 -2
- package/.next/standalone/.next/server/app/onboarding.rsc +4 -4
- package/.next/standalone/.next/server/app/org/page.js +1 -1
- package/.next/standalone/.next/server/app/org/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/org/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/page.js +5 -5
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/[slug]/log/page.js +1 -1
- package/.next/standalone/.next/server/app/projects/[slug]/log/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/[slug]/log/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/[slug]/page.js +2 -2
- package/.next/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/new/page.js +3 -3
- package/.next/standalone/.next/server/app/projects/new/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/new.html +2 -2
- package/.next/standalone/.next/server/app/projects/new.rsc +5 -5
- package/.next/standalone/.next/server/app/projects/page.js +41 -26
- package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/reports/[file]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/reports/page.js +1 -1
- package/.next/standalone/.next/server/app/reports/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/reports/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/runtime/page.js +1 -1
- package/.next/standalone/.next/server/app/runtime/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/runtime/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/schedules/page.js +2 -2
- package/.next/standalone/.next/server/app/schedules/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/schedules/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/account/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/account/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/account/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/advanced/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/advanced/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/appearance/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/appearance/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/appearance/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/brand/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/brand/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/brand/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/brand.html +2 -2
- package/.next/standalone/.next/server/app/settings/brand.rsc +5 -5
- package/.next/standalone/.next/server/app/settings/connectors/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/connectors/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/connectors/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/engines/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/engines/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/engines/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/onboarding/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/onboarding/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/onboarding.html +2 -2
- package/.next/standalone/.next/server/app/settings/onboarding.rsc +5 -5
- package/.next/standalone/.next/server/app/settings/organization/page.js +2 -2
- package/.next/standalone/.next/server/app/settings/organization/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/organization/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/runtime/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/runtime/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/runtime/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/team/page.js +2 -2
- package/.next/standalone/.next/server/app/settings/team/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/team/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/tools/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/tools/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/tools/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +2 -2
- package/.next/standalone/.next/server/app/settings.rsc +5 -5
- package/.next/standalone/.next/server/app/share/[token]/page.js +1 -1
- package/.next/standalone/.next/server/app/share/[token]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/share/space/[token]/page.js +1 -1
- package/.next/standalone/.next/server/app/share/space/[token]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/share/space/[token]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/tasks/[id]/page.js +2 -2
- package/.next/standalone/.next/server/app/tasks/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/tasks/page.js +2 -2
- package/.next/standalone/.next/server/app/tasks/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/team/[agentId]/page.js +1 -1
- package/.next/standalone/.next/server/app/team/[agentId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/team/[agentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/team/page.js +1 -1
- package/.next/standalone/.next/server/app/team/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/team/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/tools/page.js +1 -1
- package/.next/standalone/.next/server/app/tools/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/whatsapp/page.js +1 -1
- package/.next/standalone/.next/server/app/whatsapp/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/whatsapp/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/whatsapp.html +2 -2
- package/.next/standalone/.next/server/app/whatsapp.rsc +4 -4
- package/.next/standalone/.next/server/app/workflows/[caseId]/page.js +1 -1
- package/.next/standalone/.next/server/app/workflows/[caseId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workflows/[caseId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workflows/new/[caseId]/page.js +1 -1
- package/.next/standalone/.next/server/app/workflows/new/[caseId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workflows/new/[caseId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workflows/new/definition/page.js +1 -1
- package/.next/standalone/.next/server/app/workflows/new/definition/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workflows/new/definition/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workflows/page.js +1 -1
- package/.next/standalone/.next/server/app/workflows/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workflows/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workflows/share/[caseId]/page.js +1 -1
- package/.next/standalone/.next/server/app/workflows/share/[caseId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workflows/share/[caseId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +80 -77
- package/.next/standalone/.next/server/chunks/1648.js +1 -1
- package/.next/standalone/.next/server/chunks/1699.js +45 -23
- package/.next/standalone/.next/server/chunks/2402.js +1 -0
- package/.next/standalone/.next/server/chunks/396.js +1 -0
- package/.next/standalone/.next/server/chunks/4804.js +1 -1
- package/.next/standalone/.next/server/chunks/5030.js +1 -0
- package/.next/standalone/.next/server/chunks/5858.js +2 -2
- package/.next/standalone/.next/server/chunks/6059.js +1 -1
- package/.next/standalone/.next/server/chunks/6910.js +2 -2
- package/.next/standalone/.next/server/chunks/8421.js +1 -0
- package/.next/standalone/.next/server/chunks/9483.js +9 -0
- package/.next/standalone/.next/server/functions-config-manifest.json +47 -44
- package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/standalone/.next/server/middleware.js +3 -3
- package/.next/standalone/.next/server/pages/404.html +2 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/3168.502cd8077da5f8b6.js +1 -0
- package/.next/standalone/.next/static/chunks/494-02cf75066d25e8ac.js +1 -0
- package/.next/standalone/.next/static/chunks/8217.739e4ce0447348b9.js +1 -0
- package/.next/standalone/.next/static/chunks/app/activity/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/agents/[id]/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/agents/[id]/page-721c43e75cb2dd59.js +1 -0
- package/.next/standalone/.next/static/chunks/app/agents/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/agents/page-b1bcb39a46a254aa.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/activity/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/audit-export/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/share-links/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-memory/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/events/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/log/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/active-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/chain/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/memory/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/reports/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/skills/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/create/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/ops/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/approvals/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/approvals/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/acl/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/protect/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/raw/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/upload/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/audit/list/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/audit/search/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/config/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/join-bootstrap/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/session/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/brand/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/brand/share/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/chat/sessions/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/chat/sessions/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/cloud/schema/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/config/env/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/config/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/connections/[service]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/connections/[service]/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/connections/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/cron/tick/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/import/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/blob/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/disk/files/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/disk/folders/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/events/since/[cursor]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/events/stream/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/fs/create-folder/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/fs/pick-folder/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/validate/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/heartbeat/tick/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/heartbeat/worker/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/help/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/integrations/google/callback/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/integrations/google/oauth/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/marketplace/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/marketplace/open-design/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/marketplace/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/import-roots/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/portfolio/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/import/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/publish/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/missions/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/models/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/onboarding/blueprint/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/onboarding/launch/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/command/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/stream/attach/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/stream/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/upload/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/org/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/invites/pending/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/join/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/join-complete/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/printing-press/clis/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/printing-press/install/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/printing-press/security-mode/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/privacy/config/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/privacy/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/share-link/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/validate/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/start-and-route/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/library/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/runs/approve-claude-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/runs/claude-code-dry-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/runs/competitor-report/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/runs/engine-ping/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/runs/marketing-plan/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/schedules/upsert/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/secrets/[name]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/secrets/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/settings/trust-mode/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/otp/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/otp/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/publish/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/status/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/unpublish/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/state/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/system/update/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/active-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/attachments/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checkout/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/children/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/comments/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/events/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/live-runs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/release/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tool-egress/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tools/[name]/approve/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tools/[name]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tools/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/transcripts/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/providers/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/context/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/session/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tool-result/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tools/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/tts/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/allowlist/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/disconnect/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/messages/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/qr/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/send/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/status/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/approvals/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/architecture/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/audit/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/brand/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/disk/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/federated-ai/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/help/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/layout-457acc50d33a5e0e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/login/page-69e66f7316e3aaf2.js +1 -0
- package/.next/standalone/.next/static/chunks/app/marketplace/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/marketplace/page-b21a9b2946742aa4.js +1 -0
- package/.next/standalone/.next/static/chunks/app/missions/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/onboarding/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/onboarding/team/page-9adf3bc729fd1762.js +1 -0
- package/.next/standalone/.next/static/chunks/app/org/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/page-8b485e954b4da5be.js +1 -0
- package/.next/standalone/.next/static/chunks/app/projects/[slug]/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/projects/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/projects/page-8b61f1179feb9d4b.js +1 -0
- package/.next/standalone/.next/static/chunks/app/reports/[file]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/reports/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/runtime/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/schedules/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/settings/layout-fd443bfa8cac181e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/settings/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/settings/page-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/settings/team/page-c66a988a66a77b5e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/tasks/[id]/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/tasks/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/tools/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/tools/page-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/whatsapp/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/workflows/share/[caseId]/page-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/webpack-a7e11ef0747e2718.js +1 -0
- package/.next/standalone/.next/static/css/577b1c48f4c7ee58.css +1 -0
- package/.next/standalone/.next/static/sO4ApzzsDEnqk70DEBOS6/_buildManifest.js +1 -0
- package/.next/standalone/CHANGELOG.md +36 -0
- package/.next/standalone/package.json +3 -1
- package/.next/static/chunks/3168.502cd8077da5f8b6.js +1 -0
- package/.next/static/chunks/494-02cf75066d25e8ac.js +1 -0
- package/.next/static/chunks/8217.739e4ce0447348b9.js +1 -0
- package/.next/static/chunks/app/activity/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/agents/[id]/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/agents/[id]/page-721c43e75cb2dd59.js +1 -0
- package/.next/static/chunks/app/agents/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/agents/page-b1bcb39a46a254aa.js +1 -0
- package/.next/static/chunks/app/api/activity/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/admin/audit-export/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/admin/share-links/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agent-memory/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agent-runs/[id]/events/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agent-runs/[id]/log/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agent-runs/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agent-runs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/active-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/chain/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/memory/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/reports/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/skills/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/create/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/ops/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/approvals/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/approvals/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/acl/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/protect/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/raw/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/share-link/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/artifacts/upload/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/audit/list/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/audit/search/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/auth/callback/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/auth/config/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/auth/join-bootstrap/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/auth/session/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/brand/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/brand/share/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/chat/sessions/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/chat/sessions/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/cloud/schema/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/config/env/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/config/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/connections/[service]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/connections/[service]/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/connections/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/cron/tick/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/import/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/disk/files/[id]/blob/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/disk/files/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/disk/files/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/disk/folders/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/events/since/[cursor]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/events/stream/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/fs/create-folder/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/fs/pick-folder/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/interviews/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/setup-packages/validate/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/heartbeat/tick/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/heartbeat/worker/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/help/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hermes/jobs/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hermes/jobs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/integrations/google/callback/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/integrations/google/oauth/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/marketplace/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/marketplace/open-design/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/marketplace/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/mines/import-roots/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/mines/portfolio/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/mines/projects/[id]/import/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/mines/projects/[id]/publish/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/mines/projects/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/missions/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/models/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/onboarding/blueprint/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/onboarding/launch/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orchestrator/command/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orchestrator/stream/attach/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orchestrator/stream/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orchestrator/upload/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/org/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/invites/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/members/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/invites/pending/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/join/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/join-complete/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/printing-press/clis/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/printing-press/install/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/printing-press/security-mode/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/privacy/config/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/privacy/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/[id]/share-link/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/definitions/[slug]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/definitions/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/definitions/validate/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/start-and-route/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/projects/[slug]/library/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/projects/[slug]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/projects/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/runs/approve-claude-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/runs/claude-code-dry-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/runs/competitor-report/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/runs/engine-ping/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/runs/marketing-plan/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/schedules/upsert/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/secrets/[name]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/secrets/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/settings/trust-mode/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/share/[token]/otp/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/share/[token]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/share/[token]/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/share/space/[token]/otp/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/share/space/[token]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/share/space/[token]/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/shared/spaces/publish/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/shared/spaces/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/shared/spaces/status/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/shared/spaces/unpublish/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/state/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/system/update/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/active-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/attachments/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/checklist/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/checkout/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/children/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/comments/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/events/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/live-runs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/release/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tool-allowlists/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tool-allowlists/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tool-egress/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tools/[name]/approve/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tools/[name]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tools/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/transcripts/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/voice/providers/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/voice/realtime/context/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/voice/realtime/session/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/voice/realtime/tool-result/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/voice/realtime/tools/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/voice/tts/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/allowlist/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/disconnect/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/messages/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/qr/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/send/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/status/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/approvals/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/architecture/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/audit/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/brand/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/disk/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/federated-ai/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/help/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/layout-457acc50d33a5e0e.js +1 -0
- package/.next/static/chunks/app/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/login/page-69e66f7316e3aaf2.js +1 -0
- package/.next/static/chunks/app/marketplace/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/marketplace/page-b21a9b2946742aa4.js +1 -0
- package/.next/static/chunks/app/missions/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/onboarding/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/onboarding/team/page-9adf3bc729fd1762.js +1 -0
- package/.next/static/chunks/app/org/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/page-8b485e954b4da5be.js +1 -0
- package/.next/static/chunks/app/projects/[slug]/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/projects/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/projects/page-8b61f1179feb9d4b.js +1 -0
- package/.next/static/chunks/app/reports/[file]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/reports/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/runtime/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/schedules/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/settings/layout-fd443bfa8cac181e.js +1 -0
- package/.next/static/chunks/app/settings/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/settings/page-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/settings/team/page-c66a988a66a77b5e.js +1 -0
- package/.next/static/chunks/app/tasks/[id]/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/tasks/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/tools/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/tools/page-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/whatsapp/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/workflows/share/[caseId]/page-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/webpack-a7e11ef0747e2718.js +1 -0
- package/.next/static/css/577b1c48f4c7ee58.css +1 -0
- package/.next/static/sO4ApzzsDEnqk70DEBOS6/_buildManifest.js +1 -0
- package/CHANGELOG.md +36 -0
- package/CLAUDE.md +1 -1
- package/README.md +1 -1
- package/ai-docs/key-constraints.md +9 -1
- package/app/agents/agent-events-bus.js +11 -1
- package/app/api/auth/config/route.js +8 -1
- package/app/api/cloud/schema/route.js +109 -0
- package/app/api/connections/[service]/verify/route.js +29 -1
- package/app/api/fs/pick-folder/route.js +13 -11
- package/app/api/orchestrator/stream/attach/route.js +101 -0
- package/app/api/orchestrator/stream/route.js +120 -9
- package/app/api/orgs/[id]/invites/route.js +7 -1
- package/app/api/voice/realtime/session/route.js +4 -0
- package/app/components/app-topbar.jsx +265 -28
- package/app/components/dashboard/apply-stream-event.js +136 -0
- package/app/components/dashboard/artifact-board.jsx +7 -3
- package/app/components/dashboard/artifact-order.js +22 -0
- package/app/components/dashboard/chat-panel.jsx +74 -5
- package/app/components/dashboard/chat-session-view.js +26 -0
- package/app/components/dashboard/thinking-disclosure.jsx +59 -0
- package/app/components/dashboard/tool-steps.js +9 -0
- package/app/components/dashboard/use-artifact-layout.js +48 -14
- package/app/components/dashboard/use-chat-continuity.js +113 -0
- package/app/components/dashboard/use-dashboard-sessions.js +24 -17
- package/app/components/dashboard/use-dashboard-state.js +72 -1
- package/app/components/dashboard/use-main-agent-stream.js +4 -0
- package/app/components/dashboard/use-realtime-voice.js +33 -5
- package/app/components/dashboard/use-stream-command.js +115 -93
- package/app/components/dashboard/voice-panel.jsx +148 -36
- package/app/components/ui/marketplace/install-toggle.jsx +44 -9
- package/app/globals.css +238 -9
- package/app/login/login-client.jsx +23 -5
- package/app/marketplace/connection-setup-modal.jsx +31 -1
- package/app/marketplace/connection-setup-steps/api-key-step.jsx +20 -3
- package/app/marketplace/install-toast.jsx +1 -1
- package/app/marketplace/marketplace-row.jsx +8 -1
- package/app/marketplace/marketplace-shell.jsx +78 -7
- package/app/marketplace/workflow-card.jsx +2 -1
- package/app/onboarding/team/page.js +82 -0
- package/app/onboarding/team/team-setup-client.jsx +557 -0
- package/app/settings/account/auth-config-form.jsx +14 -0
- package/app/settings/team/page.js +51 -1
- package/app/settings/team/team-invites.jsx +3 -1
- package/lib/agent-config.js +7 -0
- package/lib/agent-engines.js +182 -21
- package/lib/auth-config.js +41 -11
- package/lib/auth-env-fastpath.js +34 -0
- package/lib/claude.js +19 -2
- package/lib/cli/dispatch.js +2 -2
- package/lib/cli/doctor-deep.js +170 -0
- package/lib/cli/doctor.js +81 -5
- package/lib/cloud-schema.generated.js +18 -0
- package/lib/cloud-schema.js +144 -0
- package/lib/connection-seeds.js +1 -1
- package/lib/db.js +4 -0
- package/lib/delegation-contracts.js +1 -0
- package/lib/engine-verbosity.js +42 -0
- package/lib/env-file.js +3 -0
- package/lib/orchestrator-broadcast.js +126 -0
- package/lib/pick-folder-authz.js +15 -0
- package/lib/public-url.js +89 -0
- package/lib/realtime-openai.js +49 -1
- package/lib/runtime.js +38 -0
- package/lib/schema.js +6 -1
- package/lib/share-url.js +9 -17
- package/lib/tools/adapters/browser-session.js +37 -8
- package/lib/tools/adapters/github.js +47 -5
- package/lib/tools/adapters/skill-bridge.js +146 -0
- package/lib/tools/registry.js +40 -4
- package/lib/voice/context.js +1 -1
- package/lib/voice/tools.js +34 -2
- package/middleware.js +6 -9
- package/package.json +3 -1
- package/scripts/build-cloud-schema.mjs +118 -0
- package/scripts/inspect-cloud-orgs.mjs +30 -0
- package/scripts/migrate-auth-v1.mjs +92 -0
- package/.next/standalone/.next/server/chunks/3806.js +0 -1
- package/.next/standalone/.next/server/chunks/802.js +0 -1
- package/.next/standalone/.next/server/chunks/9195.js +0 -9
- package/.next/standalone/.next/static/ZxaTPKGC9lESQlvHfrHgp/_buildManifest.js +0 -1
- package/.next/standalone/.next/static/chunks/3054-451abdd7b9afc2ac.js +0 -1
- package/.next/standalone/.next/static/chunks/3168.ed91d2d25b4aca3f.js +0 -1
- package/.next/standalone/.next/static/chunks/8217.0beb0a316c7ad5d8.js +0 -1
- package/.next/standalone/.next/static/chunks/app/activity/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/agents/[id]/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/agents/[id]/page-e4bcb0ace2900a11.js +0 -1
- package/.next/standalone/.next/static/chunks/app/agents/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/agents/page-47a00aa58327a35e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/activity/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/audit-export/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/share-links/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-memory/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/events/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/log/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/active-run/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/chain/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/memory/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/reports/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/run/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/skills/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/create/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/ops/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/approvals/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/approvals/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/acl/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/protect/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/raw/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/upload/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/audit/list/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/audit/search/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/config/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/join-bootstrap/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/session/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/brand/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/brand/share/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/chat/sessions/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/chat/sessions/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/config/env/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/config/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/connections/[service]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/connections/[service]/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/connections/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/cron/tick/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/import/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/blob/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/disk/files/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/disk/folders/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/events/since/[cursor]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/events/stream/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/fs/create-folder/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/fs/pick-folder/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/validate/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/heartbeat/tick/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/heartbeat/worker/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/help/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/integrations/google/callback/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/integrations/google/oauth/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/marketplace/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/marketplace/open-design/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/marketplace/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/import-roots/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/portfolio/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/import/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/publish/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/missions/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/models/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/onboarding/blueprint/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/onboarding/launch/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/command/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/stream/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/upload/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/org/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/invites/pending/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/join/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/join-complete/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/printing-press/clis/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/printing-press/install/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/printing-press/security-mode/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/privacy/config/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/privacy/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/share-link/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/validate/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/start-and-route/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/library/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/runs/approve-claude-run/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/runs/claude-code-dry-run/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/runs/competitor-report/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/runs/engine-ping/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/runs/marketing-plan/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/schedules/upsert/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/secrets/[name]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/secrets/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/settings/trust-mode/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/otp/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/otp/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/publish/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/status/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/unpublish/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/state/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/system/update/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/active-run/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/attachments/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checkout/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/children/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/comments/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/events/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/live-runs/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/release/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tool-egress/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tools/[name]/approve/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tools/[name]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tools/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/transcripts/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/providers/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/context/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/session/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tool-result/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tools/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/tts/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/allowlist/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/disconnect/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/messages/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/qr/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/send/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/status/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/approvals/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/architecture/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/audit/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/brand/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/disk/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/federated-ai/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/help/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/layout-b7e1918b9125641e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/login/page-d2298bc1803944ae.js +0 -1
- package/.next/standalone/.next/static/chunks/app/marketplace/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/marketplace/page-0b7d3a6309302de3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/missions/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/onboarding/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/org/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/page-887ef6f96897f78a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/projects/[slug]/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/projects/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/projects/page-739d4cc74824d336.js +0 -1
- package/.next/standalone/.next/static/chunks/app/reports/[file]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/reports/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/runtime/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/schedules/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/settings/layout-08f6b30132b26dd1.js +0 -1
- package/.next/standalone/.next/static/chunks/app/settings/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/settings/page-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/settings/team/page-9a2e675124de6aac.js +0 -1
- package/.next/standalone/.next/static/chunks/app/tasks/[id]/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/tasks/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/tools/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/tools/page-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/whatsapp/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/workflows/share/[caseId]/page-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/webpack-f916d679fe38a701.js +0 -1
- package/.next/standalone/.next/static/css/2587cd46c922a6d8.css +0 -1
- package/.next/static/ZxaTPKGC9lESQlvHfrHgp/_buildManifest.js +0 -1
- package/.next/static/chunks/3054-451abdd7b9afc2ac.js +0 -1
- package/.next/static/chunks/3168.ed91d2d25b4aca3f.js +0 -1
- package/.next/static/chunks/8217.0beb0a316c7ad5d8.js +0 -1
- package/.next/static/chunks/app/activity/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/agents/[id]/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/agents/[id]/page-e4bcb0ace2900a11.js +0 -1
- package/.next/static/chunks/app/agents/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/agents/page-47a00aa58327a35e.js +0 -1
- package/.next/static/chunks/app/api/activity/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/admin/audit-export/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/admin/share-links/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agent-memory/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agent-runs/[id]/events/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agent-runs/[id]/log/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agent-runs/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agent-runs/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/active-run/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/chain/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/memory/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/reports/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/run/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/skills/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/create/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/ops/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/approvals/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/approvals/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/acl/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/protect/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/raw/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/share-link/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/artifacts/upload/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/audit/list/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/audit/search/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/auth/callback/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/auth/config/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/auth/join-bootstrap/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/auth/session/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/brand/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/brand/share/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/chat/sessions/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/chat/sessions/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/config/env/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/config/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/connections/[service]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/connections/[service]/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/connections/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/cron/tick/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/import/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/disk/files/[id]/blob/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/disk/files/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/disk/files/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/disk/folders/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/events/since/[cursor]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/events/stream/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/fs/create-folder/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/fs/pick-folder/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/interviews/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/setup-packages/validate/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/heartbeat/tick/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/heartbeat/worker/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/help/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hermes/jobs/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hermes/jobs/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/integrations/google/callback/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/integrations/google/oauth/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/marketplace/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/marketplace/open-design/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/marketplace/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/mines/import-roots/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/mines/portfolio/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/mines/projects/[id]/import/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/mines/projects/[id]/publish/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/mines/projects/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/missions/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/models/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/onboarding/blueprint/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/onboarding/launch/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orchestrator/command/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orchestrator/stream/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orchestrator/upload/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/org/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/invites/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/members/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/invites/pending/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/join/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/join-complete/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/printing-press/clis/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/printing-press/install/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/printing-press/security-mode/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/privacy/config/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/privacy/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/[id]/share-link/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/definitions/[slug]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/definitions/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/definitions/validate/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/start-and-route/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/projects/[slug]/library/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/projects/[slug]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/projects/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/runs/approve-claude-run/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/runs/claude-code-dry-run/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/runs/competitor-report/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/runs/engine-ping/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/runs/marketing-plan/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/schedules/upsert/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/secrets/[name]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/secrets/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/settings/trust-mode/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/share/[token]/otp/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/share/[token]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/share/[token]/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/share/space/[token]/otp/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/share/space/[token]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/share/space/[token]/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/shared/spaces/publish/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/shared/spaces/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/shared/spaces/status/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/shared/spaces/unpublish/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/state/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/system/update/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/active-run/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/attachments/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/checklist/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/checkout/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/children/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/comments/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/events/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/live-runs/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/release/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tool-allowlists/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tool-allowlists/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tool-egress/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tools/[name]/approve/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tools/[name]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tools/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/transcripts/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/voice/providers/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/voice/realtime/context/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/voice/realtime/session/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/voice/realtime/tool-result/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/voice/realtime/tools/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/voice/tts/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/allowlist/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/disconnect/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/messages/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/qr/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/send/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/status/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/approvals/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/architecture/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/audit/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/brand/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/disk/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/federated-ai/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/help/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/layout-b7e1918b9125641e.js +0 -1
- package/.next/static/chunks/app/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/login/page-d2298bc1803944ae.js +0 -1
- package/.next/static/chunks/app/marketplace/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/marketplace/page-0b7d3a6309302de3.js +0 -1
- package/.next/static/chunks/app/missions/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/onboarding/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/org/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/page-887ef6f96897f78a.js +0 -1
- package/.next/static/chunks/app/projects/[slug]/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/projects/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/projects/page-739d4cc74824d336.js +0 -1
- package/.next/static/chunks/app/reports/[file]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/reports/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/runtime/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/schedules/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/settings/layout-08f6b30132b26dd1.js +0 -1
- package/.next/static/chunks/app/settings/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/settings/page-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/settings/team/page-9a2e675124de6aac.js +0 -1
- package/.next/static/chunks/app/tasks/[id]/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/tasks/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/tools/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/tools/page-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/whatsapp/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/workflows/share/[caseId]/page-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/webpack-f916d679fe38a701.js +0 -1
- package/.next/static/css/2587cd46c922a6d8.css +0 -1
- /package/.next/standalone/.next/static/{ZxaTPKGC9lESQlvHfrHgp → sO4ApzzsDEnqk70DEBOS6}/_ssgManifest.js +0 -0
- /package/.next/static/{ZxaTPKGC9lESQlvHfrHgp → sO4ApzzsDEnqk70DEBOS6}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{var a={};a.id=893,a.ids=[893],a.modules={157:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"pathHasPrefix",{enumerable:!0,get:function(){return e}});let d=c(2213);function e(a,b){if("string"!=typeof a)return!1;let{pathname:c}=(0,d.parsePath)(a);return c===b||c.startsWith(b+"/")}},261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},684:(a,b,c)=>{"use strict";c.d(b,{IB:()=>s,Oe:()=>m,hC:()=>r,nc:()=>t,wn:()=>q});var d=c(73024),e=c(76760),f=c(48161),g=c(83498);let h=new Set([".ssh"]),i=/(;|&&|\|\||\||>|<|\$\(|`)/;function j(){return String(process.env.MADARX_ALLOWED_ROOTS||"").split(",").map(a=>a.trim()).filter(Boolean)}function k(){return String(process.env.MADARX_READONLY_ROOTS||"").split(",").map(a=>a.trim().replace(/^~/,f.homedir())).filter(Boolean)}function l(){return[...new Set([g.Dl,g.un,...j(),...k()].map(a=>p(e.resolve(a))))]}function m(a){let b=p(e.resolve(a)),c=[...new Set(k().map(a=>p(e.resolve(a))))];return!(0===c.length||[g.Dl,g.un,...j()].map(a=>p(e.resolve(a))).some(a=>n(b,a)))&&c.some(a=>n(b,a))}function n(a,b){let c=e.relative(b,a);return""===c||!!c&&!c.startsWith("..")&&!e.isAbsolute(c)}function o(a){if(a.split(e.sep).filter(Boolean).some(a=>h.has(a)))return!0;let b=e.basename(a);return!!(".env.local"===b||/^\.env($|\.)/.test(b))}function p(a){if(d.existsSync(a))return d.realpathSync(a);let b=[],c=a;for(;!d.existsSync(c);){b.unshift(e.basename(c));let d=e.dirname(c);if(d===c)return a;c=d}return e.join(d.realpathSync(c),...b)}function q(a,b={}){let c=(b.allowedRoots||l()).map(a=>e.resolve(a)),d=p(e.resolve(String(a||".")));return c.some(a=>n(d,a))}function r(a,b={}){let c=(b.allowedRoots||l()).map(a=>e.resolve(a)),d=b.base?e.resolve(b.base):g.Dl,f=e.resolve(d,String(a||".")),h=p(f),i=c.find(a=>n(h,a));if(!i)throw Error(`Path is outside allowed roots: ${a}`);if(o(f)||o(h))throw Error(`Path is blocked by safety policy: ${a}`);for(let b of["/System","/Library","/private","/etc","/var"])if(h===b||h.startsWith(`${b}/`))throw Error(`Path is blocked by safety policy: ${a}`);return{path:f,root:i}}function s(a,b=[],c={}){let d=String(a||"").trim(),e=Array.isArray(b)?b.map(String):[],f=[d,...e].join(" ");return d?c.rawString&&i.test(d)?{risk:"high",approval_required:!0,blocked:!1,reason:"Shell metacharacters require approval"}:"sudo"===d||f.includes("rm -rf")||"git"===d&&"reset"===e[0]&&e.includes("--hard")?{risk:"blocked",approval_required:!0,blocked:!0,reason:"Destructive command is blocked"}:"git"===d&&"push"===e[0]&&(e.includes("--force")||e.includes("-f"))?{risk:"irreversible_external",approval_required:!0,blocked:!1,reason:"Force-push rewrites remote history and cannot be undone"}:"kubectl"===d&&"delete"===e[0]?{risk:"irreversible_external",approval_required:!0,blocked:!1,reason:"kubectl delete removes live cluster resources and cannot be undone"}:["psql","mysql","sqlite3","pgcli","mycli"].includes(d)&&/\b(DROP\s+TABLE|DROP\s+DATABASE|TRUNCATE|DELETE\s+FROM\s+\w+\s*(?:;|$))/i.test(f)?{risk:"irreversible_external",approval_required:!0,blocked:!1,reason:"Destructive SQL (DROP/TRUNCATE/DELETE without WHERE) cannot be undone"}:"git"===d&&["commit","push"].includes(e[0])||["chmod","chown","kill","pkill"].includes(d)||f.includes("deploy")?{risk:"high",approval_required:!0,blocked:!1,reason:"Command can modify history, permissions, processes, or deployments"}:["npm","pnpm","yarn","bun"].includes(d)&&["install","add","remove"].includes(e[0])?{risk:"medium",approval_required:!0,blocked:!1,reason:"Package manager mutation requires approval"}:["curl","wget","python","python3","node"].includes(d)&&("node"!==d||"--version"!==e[0])?{risk:"medium",approval_required:!0,blocked:!1,reason:"General command execution requires approval"}:[["pwd"],["date"],["node","--version"],["npm","test"],["npm","run","check"],["git","status"],["git","diff"],["git","log"]].some(a=>a.every((a,b)=>[d,...e][b]===a))?{risk:"low",approval_required:!1,blocked:!1,reason:"Read-only or verification command"}:{risk:"medium",approval_required:!0,blocked:!1,reason:"Command is not on the low-risk allowlist"}:{risk:"blocked",approval_required:!0,blocked:!0,reason:"No command provided"}}function t(a){return String(a||"").replace(/\b(sk|pk|xox[baprs]|ghp|github_pat|AIza)[A-Za-z0-9_\-]{12,}\b/g,"[REDACTED_TOKEN]").replace(/\b[A-Za-z0-9._%+-]+_API_KEY\s*=\s*[^\s]+/gi,"[REDACTED_API_KEY]").replace(/\b(api[_-]?key|token|secret|password)\s*[:=]\s*['"]?[^'"\s]+/gi,"$1=[REDACTED]")}},1616:(a,b,c)=>{"use strict";c.a(a,async(a,b)=>{try{var d=c(84104),e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},2213:(a,b)=>{"use strict";function c(a){let b=a.indexOf("#"),c=a.indexOf("?"),d=c>-1&&(b<0||c<b);return d||b>-1?{pathname:a.substring(0,d?c:b),query:d?a.substring(c,b>-1?b:void 0):"",hash:b>-1?a.slice(b):""}:{pathname:a,query:"",hash:""}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parsePath",{enumerable:!0,get:function(){return c}})},2796:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{AU:()=>q,Bb:()=>z,J:()=>w,Sj:()=>p,Ud:()=>v,gn:()=>u,iP:()=>t,jj:()=>r,vj:()=>s,wt:()=>x,zI:()=>y});var e=c(81909),f=c(16343),g=a([e,f]);[e,f]=g.then?(await g)():g;let A="https://api.github.com";function h(a,b={}){let c=function(a,b={}){try{let c=(0,e.r6)(a,{agent_id:b.agent_id,project_id:b.project_id});if(c)return c}catch{}return process.env[a]||null}(a,b);if(!c)throw Error(`${a} not configured`);return c}function i(a){return{Authorization:`Bearer ${a}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28","User-Agent":"madarx-os"}}let B=/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/;function j(a){if(!a||"string"!=typeof a)throw Error("repo_full_name is required (format: owner/repo)");if(!B.test(a))throw Error(`repo_full_name must be in owner/repo format, got: ${a}`)}function k(a){let[b,c]=a.split("/");return{owner:b,repo:c}}async function l(a){try{let b=await a.json();return b?.message||`GitHub API error: ${a.status}`}catch{return`GitHub API error: ${a.status}`}}function m(a){return{id:a.id,name:a.name,full_name:a.full_name,private:a.private,default_branch:a.default_branch,description:a.description||null,stars:a.stargazers_count,forks:a.forks_count,updated_at:a.updated_at}}function n(a){return{number:a.number,title:a.title,state:a.state,user:{login:a.user?.login},labels:(a.labels||[]).map(a=>"string"==typeof a?a:a.name),created_at:a.created_at,updated_at:a.updated_at,html_url:a.html_url,body_excerpt:"string"==typeof a.body?a.body.slice(0,500):null}}function o(a){return{number:a.number,title:a.title,state:a.state,user:{login:a.user?.login},labels:(a.labels||[]).map(a=>"string"==typeof a?a:a.name),created_at:a.created_at,updated_at:a.updated_at,html_url:a.html_url,body_excerpt:"string"==typeof a.body?a.body.slice(0,500):null,head:{ref:a.head?.ref,sha:a.head?.sha},base:{ref:a.base?.ref},merged:a.merged||!1,mergeable:a.mergeable??null}}async function p(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name),e=h("GITHUB_TOKEN",b),g=b.agent_id??null,n=await (0,f.N)("gh_repo_read",g)(`${A}/repos/${c}/${d}`,{headers:i(e)});if(!n.ok){let a=await l(n);throw Error(a)}let o=await n.json();return m(o)}async function q(a={},b={}){let c=h("GITHUB_TOKEN",b),d=b.agent_id??null,e=new URL(`${A}/user/repos`);a.visibility&&e.searchParams.set("visibility",String(a.visibility)),a.type&&e.searchParams.set("type",String(a.type)),a.sort&&e.searchParams.set("sort",String(a.sort));let g=Math.min(Math.max(Number(a.per_page||30),1),100);e.searchParams.set("per_page",String(g));let j=await (0,f.N)("gh_repo_list",d)(e,{headers:i(c)});if(!j.ok){let a=await l(j);throw Error(a)}let k=await j.json();return{repos:(Array.isArray(k)?k:[]).map(m)}}async function r(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name),e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m=new URL(`${A}/repos/${c}/${d}/issues`);a.state&&m.searchParams.set("state",String(a.state)),a.labels&&m.searchParams.set("labels",String(a.labels));let o=Math.min(Math.max(Number(a.per_page||30),1),100);m.searchParams.set("per_page",String(o));let p=await (0,f.N)("gh_issue_list",g)(m,{headers:i(e)});if(!p.ok){let a=await l(p);throw Error(a)}let q=await p.json();return{issues:(Array.isArray(q)?q:[]).map(n)}}async function s(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name);if(!a.title)throw Error("title is required");let e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m={title:String(a.title)};a.body&&(m.body=String(a.body)),Array.isArray(a.labels)&&(m.labels=a.labels.map(String)),Array.isArray(a.assignees)&&(m.assignees=a.assignees.map(String));let o=await (0,f.N)("gh_issue_create",g)(`${A}/repos/${c}/${d}/issues`,{method:"POST",headers:{...i(e),"Content-Type":"application/json"},body:JSON.stringify(m)});if(!o.ok){let a=await l(o);throw Error(a)}let p=await o.json();return n(p)}async function t(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name);if(!a.issue_number)throw Error("issue_number is required");if(!a.body)throw Error("body is required");let e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m=await (0,f.N)("gh_issue_comment",g)(`${A}/repos/${c}/${d}/issues/${a.issue_number}/comments`,{method:"POST",headers:{...i(e),"Content-Type":"application/json"},body:JSON.stringify({body:String(a.body)})});if(!m.ok){let a=await l(m);throw Error(a)}let n=await m.json();return{id:n.id,html_url:n.html_url,created_at:n.created_at}}async function u(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name),e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m=new URL(`${A}/repos/${c}/${d}/pulls`);a.state&&m.searchParams.set("state",String(a.state)),a.head&&m.searchParams.set("head",String(a.head)),a.base&&m.searchParams.set("base",String(a.base));let n=Math.min(Math.max(Number(a.per_page||30),1),100);m.searchParams.set("per_page",String(n));let p=await (0,f.N)("gh_pr_list",g)(m,{headers:i(e)});if(!p.ok){let a=await l(p);throw Error(a)}let q=await p.json();return{pull_requests:(Array.isArray(q)?q:[]).map(o)}}async function v(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name);if(!a.title)throw Error("title is required");if(!a.head)throw Error("head is required");if(!a.base)throw Error("base is required");let e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m={title:String(a.title),head:String(a.head),base:String(a.base)};a.body&&(m.body=String(a.body)),void 0!==a.draft&&(m.draft=!!a.draft);let n=await (0,f.N)("gh_pr_create",g)(`${A}/repos/${c}/${d}/pulls`,{method:"POST",headers:{...i(e),"Content-Type":"application/json"},body:JSON.stringify(m)});if(!n.ok){let a=await l(n);throw Error(a)}let p=await n.json();return o(p)}async function w(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name);if(!a.pr_number)throw Error("pr_number is required");if(!a.body)throw Error("body is required");let e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m=await (0,f.N)("gh_pr_comment",g)(`${A}/repos/${c}/${d}/issues/${a.pr_number}/comments`,{method:"POST",headers:{...i(e),"Content-Type":"application/json"},body:JSON.stringify({body:String(a.body)})});if(!m.ok){let a=await l(m);throw Error(a)}let n=await m.json();return{id:n.id,html_url:n.html_url,created_at:n.created_at}}async function x(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name);if(!a.pr_number)throw Error("pr_number is required");let e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m={merge_method:a.merge_method||"squash"};a.commit_title&&(m.commit_title=String(a.commit_title)),a.commit_message&&(m.commit_message=String(a.commit_message));let n=await (0,f.N)("gh_pr_merge",g)(`${A}/repos/${c}/${d}/pulls/${a.pr_number}/merge`,{method:"PUT",headers:{...i(e),"Content-Type":"application/json"},body:JSON.stringify(m)});if(!n.ok){let a=await l(n);throw Error(a)}let o=await n.json();return{merged:!0,sha:o.sha,message:o.message}}async function y(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name);if(!a.workflow_id)throw Error("workflow_id is required");if(!a.ref)throw Error("ref is required");let e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m={ref:String(a.ref)};a.inputs&&"object"==typeof a.inputs&&(m.inputs=a.inputs);let n=await (0,f.N)("gh_actions_dispatch",g)(`${A}/repos/${c}/${d}/actions/workflows/${encodeURIComponent(String(a.workflow_id))}/dispatches`,{method:"POST",headers:{...i(e),"Content-Type":"application/json"},body:JSON.stringify(m)});if(!n.ok){let a=await l(n);throw Error(a)}return{ok:!0,workflow_id:a.workflow_id,ref:a.ref}}async function z(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name);if(!a.tag_name)throw Error("tag_name is required");let e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m={tag_name:String(a.tag_name)};a.target_commitish&&(m.target_commitish=String(a.target_commitish)),a.name&&(m.name=String(a.name)),a.body&&(m.body=String(a.body)),void 0!==a.draft&&(m.draft=!!a.draft),void 0!==a.prerelease&&(m.prerelease=!!a.prerelease);let n=await (0,f.N)("gh_release_create",g)(`${A}/repos/${c}/${d}/releases`,{method:"POST",headers:{...i(e),"Content-Type":"application/json"},body:JSON.stringify(m)});if(!n.ok){let a=await l(n);throw Error(a)}let o=await n.json();return{id:o.id,tag_name:o.tag_name,html_url:o.html_url,draft:o.draft,prerelease:o.prerelease}}d()}catch(a){d(a)}})},3017:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"Batcher",{enumerable:!0,get:function(){return e}});let d=c(42474);class e{constructor(a,b=a=>a()){this.cacheKeyFn=a,this.schedulerFn=b,this.pending=new Map}static create(a){return new e(null==a?void 0:a.cacheKeyFn,null==a?void 0:a.schedulerFn)}async batch(a,b){let c=this.cacheKeyFn?await this.cacheKeyFn(a):a;if(null===c)return b(c,Promise.resolve);let e=this.pending.get(c);if(e)return e;let{promise:f,resolve:g,reject:h}=new d.DetachedPromise;return this.pending.set(c,f),this.schedulerFn(async()=>{try{let a=await b(c,g);g(a)}catch(a){h(a)}finally{this.pending.delete(c)}}),f}}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5377:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{X:()=>g});var e=c(84104),f=a([e]);e=(f.then?(await f)():f)[0];let h={queued:"queued",extracting:"running",chunking:"running",embedding:"running",complete:"complete",embedding_failed:"complete",done:"complete",failed:"failed",error:"failed",ocr_skipped:"skipped",catalog_only:"skipped",unsupported:"skipped",skipped:"skipped"};function g(a){let b=(0,e.Lf)(),c=b.prepare(`
|
|
1
|
+
(()=>{var a={};a.id=893,a.ids=[893],a.modules={157:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"pathHasPrefix",{enumerable:!0,get:function(){return e}});let d=c(2213);function e(a,b){if("string"!=typeof a)return!1;let{pathname:c}=(0,d.parsePath)(a);return c===b||c.startsWith(b+"/")}},261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},684:(a,b,c)=>{"use strict";c.d(b,{IB:()=>s,Oe:()=>m,hC:()=>r,nc:()=>t,wn:()=>q});var d=c(73024),e=c(76760),f=c(48161),g=c(83498);let h=new Set([".ssh"]),i=/(;|&&|\|\||\||>|<|\$\(|`)/;function j(){return String(process.env.MADARX_ALLOWED_ROOTS||"").split(",").map(a=>a.trim()).filter(Boolean)}function k(){return String(process.env.MADARX_READONLY_ROOTS||"").split(",").map(a=>a.trim().replace(/^~/,f.homedir())).filter(Boolean)}function l(){return[...new Set([g.Dl,g.un,...j(),...k()].map(a=>p(e.resolve(a))))]}function m(a){let b=p(e.resolve(a)),c=[...new Set(k().map(a=>p(e.resolve(a))))];return!(0===c.length||[g.Dl,g.un,...j()].map(a=>p(e.resolve(a))).some(a=>n(b,a)))&&c.some(a=>n(b,a))}function n(a,b){let c=e.relative(b,a);return""===c||!!c&&!c.startsWith("..")&&!e.isAbsolute(c)}function o(a){if(a.split(e.sep).filter(Boolean).some(a=>h.has(a)))return!0;let b=e.basename(a);return!!(".env.local"===b||/^\.env($|\.)/.test(b))}function p(a){if(d.existsSync(a))return d.realpathSync(a);let b=[],c=a;for(;!d.existsSync(c);){b.unshift(e.basename(c));let d=e.dirname(c);if(d===c)return a;c=d}return e.join(d.realpathSync(c),...b)}function q(a,b={}){let c=(b.allowedRoots||l()).map(a=>e.resolve(a)),d=p(e.resolve(String(a||".")));return c.some(a=>n(d,a))}function r(a,b={}){let c=(b.allowedRoots||l()).map(a=>e.resolve(a)),d=b.base?e.resolve(b.base):g.Dl,f=e.resolve(d,String(a||".")),h=p(f),i=c.find(a=>n(h,a));if(!i)throw Error(`Path is outside allowed roots: ${a}`);if(o(f)||o(h))throw Error(`Path is blocked by safety policy: ${a}`);for(let b of["/System","/Library","/private","/etc","/var"])if(h===b||h.startsWith(`${b}/`))throw Error(`Path is blocked by safety policy: ${a}`);return{path:f,root:i}}function s(a,b=[],c={}){let d=String(a||"").trim(),e=Array.isArray(b)?b.map(String):[],f=[d,...e].join(" ");return d?c.rawString&&i.test(d)?{risk:"high",approval_required:!0,blocked:!1,reason:"Shell metacharacters require approval"}:"sudo"===d||f.includes("rm -rf")||"git"===d&&"reset"===e[0]&&e.includes("--hard")?{risk:"blocked",approval_required:!0,blocked:!0,reason:"Destructive command is blocked"}:"git"===d&&"push"===e[0]&&(e.includes("--force")||e.includes("-f"))?{risk:"irreversible_external",approval_required:!0,blocked:!1,reason:"Force-push rewrites remote history and cannot be undone"}:"kubectl"===d&&"delete"===e[0]?{risk:"irreversible_external",approval_required:!0,blocked:!1,reason:"kubectl delete removes live cluster resources and cannot be undone"}:["psql","mysql","sqlite3","pgcli","mycli"].includes(d)&&/\b(DROP\s+TABLE|DROP\s+DATABASE|TRUNCATE|DELETE\s+FROM\s+\w+\s*(?:;|$))/i.test(f)?{risk:"irreversible_external",approval_required:!0,blocked:!1,reason:"Destructive SQL (DROP/TRUNCATE/DELETE without WHERE) cannot be undone"}:"git"===d&&["commit","push"].includes(e[0])||["chmod","chown","kill","pkill"].includes(d)||f.includes("deploy")?{risk:"high",approval_required:!0,blocked:!1,reason:"Command can modify history, permissions, processes, or deployments"}:["npm","pnpm","yarn","bun"].includes(d)&&["install","add","remove"].includes(e[0])?{risk:"medium",approval_required:!0,blocked:!1,reason:"Package manager mutation requires approval"}:["curl","wget","python","python3","node"].includes(d)&&("node"!==d||"--version"!==e[0])?{risk:"medium",approval_required:!0,blocked:!1,reason:"General command execution requires approval"}:[["pwd"],["date"],["node","--version"],["npm","test"],["npm","run","check"],["git","status"],["git","diff"],["git","log"]].some(a=>a.every((a,b)=>[d,...e][b]===a))?{risk:"low",approval_required:!1,blocked:!1,reason:"Read-only or verification command"}:{risk:"medium",approval_required:!0,blocked:!1,reason:"Command is not on the low-risk allowlist"}:{risk:"blocked",approval_required:!0,blocked:!0,reason:"No command provided"}}function t(a){return String(a||"").replace(/\b(sk|pk|xox[baprs]|ghp|github_pat|AIza)[A-Za-z0-9_\-]{12,}\b/g,"[REDACTED_TOKEN]").replace(/\b[A-Za-z0-9._%+-]+_API_KEY\s*=\s*[^\s]+/gi,"[REDACTED_API_KEY]").replace(/\b(api[_-]?key|token|secret|password)\s*[:=]\s*['"]?[^'"\s]+/gi,"$1=[REDACTED]")}},1616:(a,b,c)=>{"use strict";c.a(a,async(a,b)=>{try{var d=c(84104),e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},2213:(a,b)=>{"use strict";function c(a){let b=a.indexOf("#"),c=a.indexOf("?"),d=c>-1&&(b<0||c<b);return d||b>-1?{pathname:a.substring(0,d?c:b),query:d?a.substring(c,b>-1?b:void 0):"",hash:b>-1?a.slice(b):""}:{pathname:a,query:"",hash:""}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parsePath",{enumerable:!0,get:function(){return c}})},2796:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{AU:()=>q,Bb:()=>z,J:()=>w,Sj:()=>p,Ud:()=>v,gn:()=>u,iP:()=>t,jj:()=>r,vj:()=>s,wt:()=>x,zI:()=>y});var e=c(81909),f=c(16343),g=a([e,f]);[e,f]=g.then?(await g)():g;let A="https://api.github.com";function h(a,b={}){let c=function(a,b={}){try{let c=(0,e.r6)(a,{agent_id:b.agent_id,project_id:b.project_id});if(c)return c}catch{}return process.env[a]||null}(a,b);if(!c)throw Error(`${a} not configured`);return c}function i(a){return{Authorization:`Bearer ${a}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28","User-Agent":"madarx-os"}}let B=/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/;function j(a){if(!a||"string"!=typeof a)throw Error("repo_full_name is required (format: owner/repo)");if(!B.test(a))throw Error(`repo_full_name must be in owner/repo format, got: ${a}`)}function k(a){let[b,c]=a.split("/");return{owner:b,repo:c}}async function l(a){let b=`GitHub API error: ${a.status}`;try{let c=await a.json();c?.message&&(b=c.message)}catch{}let c=a.headers?.get?.("x-github-sso");if(403===a.status&&c){let a=/url=([^;,\s]+)/i.exec(c),d=a?` Authorize it here: ${a[1]}`:"";return`${b} — this org requires SAML SSO authorization for your token.${d}`}return 403===a.status?`${b} — the token is valid but lacks permission for this resource (check the fine-grained PAT's repository access / scopes, and authorize SSO if the org uses it).`:404===a.status?`${b} — not found, OR your token cannot see it. A fine-grained PAT only sees repos it was explicitly granted; a classic PAT needs the 'repo' scope. Grant access to this repo/org and retry.`:b}function m(a){return{id:a.id,name:a.name,full_name:a.full_name,private:a.private,default_branch:a.default_branch,description:a.description||null,stars:a.stargazers_count,forks:a.forks_count,updated_at:a.updated_at}}function n(a){return{number:a.number,title:a.title,state:a.state,user:{login:a.user?.login},labels:(a.labels||[]).map(a=>"string"==typeof a?a:a.name),created_at:a.created_at,updated_at:a.updated_at,html_url:a.html_url,body_excerpt:"string"==typeof a.body?a.body.slice(0,500):null}}function o(a){return{number:a.number,title:a.title,state:a.state,user:{login:a.user?.login},labels:(a.labels||[]).map(a=>"string"==typeof a?a:a.name),created_at:a.created_at,updated_at:a.updated_at,html_url:a.html_url,body_excerpt:"string"==typeof a.body?a.body.slice(0,500):null,head:{ref:a.head?.ref,sha:a.head?.sha},base:{ref:a.base?.ref},merged:a.merged||!1,mergeable:a.mergeable??null}}async function p(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name),e=h("GITHUB_TOKEN",b),g=b.agent_id??null,n=await (0,f.N)("gh_repo_read",g)(`${A}/repos/${c}/${d}`,{headers:i(e)});if(!n.ok){let a=await l(n);throw Error(a)}let o=await n.json();return m(o)}async function q(a={},b={}){let c,d=h("GITHUB_TOKEN",b),e=b.agent_id??null,g=a.org?String(a.org).trim():"";if(g){if(!/^[A-Za-z0-9_.-]+$/.test(g))throw Error(`org must be a valid GitHub org/owner name, got: ${g}`);c=new URL(`${A}/orgs/${g}/repos`),a.type&&c.searchParams.set("type",String(a.type))}else(c=new URL(`${A}/user/repos`)).searchParams.set("affiliation",String(a.affiliation||"owner,collaborator,organization_member")),a.visibility&&c.searchParams.set("visibility",String(a.visibility)),a.type&&!a.affiliation&&(c.searchParams.delete("affiliation"),c.searchParams.set("type",String(a.type)));a.sort&&c.searchParams.set("sort",String(a.sort));let j=Math.min(Math.max(Number(a.per_page||30),1),100);c.searchParams.set("per_page",String(j));let k=Math.max(Number(a.page||1),1);k>1&&c.searchParams.set("page",String(k));let n=await (0,f.N)("gh_repo_list",e)(c,{headers:i(d)});if(!n.ok){let a=await l(n);throw Error(a)}let o=await n.json();return{repos:(Array.isArray(o)?o:[]).map(m)}}async function r(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name),e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m=new URL(`${A}/repos/${c}/${d}/issues`);a.state&&m.searchParams.set("state",String(a.state)),a.labels&&m.searchParams.set("labels",String(a.labels));let o=Math.min(Math.max(Number(a.per_page||30),1),100);m.searchParams.set("per_page",String(o));let p=await (0,f.N)("gh_issue_list",g)(m,{headers:i(e)});if(!p.ok){let a=await l(p);throw Error(a)}let q=await p.json();return{issues:(Array.isArray(q)?q:[]).map(n)}}async function s(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name);if(!a.title)throw Error("title is required");let e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m={title:String(a.title)};a.body&&(m.body=String(a.body)),Array.isArray(a.labels)&&(m.labels=a.labels.map(String)),Array.isArray(a.assignees)&&(m.assignees=a.assignees.map(String));let o=await (0,f.N)("gh_issue_create",g)(`${A}/repos/${c}/${d}/issues`,{method:"POST",headers:{...i(e),"Content-Type":"application/json"},body:JSON.stringify(m)});if(!o.ok){let a=await l(o);throw Error(a)}let p=await o.json();return n(p)}async function t(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name);if(!a.issue_number)throw Error("issue_number is required");if(!a.body)throw Error("body is required");let e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m=await (0,f.N)("gh_issue_comment",g)(`${A}/repos/${c}/${d}/issues/${a.issue_number}/comments`,{method:"POST",headers:{...i(e),"Content-Type":"application/json"},body:JSON.stringify({body:String(a.body)})});if(!m.ok){let a=await l(m);throw Error(a)}let n=await m.json();return{id:n.id,html_url:n.html_url,created_at:n.created_at}}async function u(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name),e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m=new URL(`${A}/repos/${c}/${d}/pulls`);a.state&&m.searchParams.set("state",String(a.state)),a.head&&m.searchParams.set("head",String(a.head)),a.base&&m.searchParams.set("base",String(a.base));let n=Math.min(Math.max(Number(a.per_page||30),1),100);m.searchParams.set("per_page",String(n));let p=await (0,f.N)("gh_pr_list",g)(m,{headers:i(e)});if(!p.ok){let a=await l(p);throw Error(a)}let q=await p.json();return{pull_requests:(Array.isArray(q)?q:[]).map(o)}}async function v(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name);if(!a.title)throw Error("title is required");if(!a.head)throw Error("head is required");if(!a.base)throw Error("base is required");let e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m={title:String(a.title),head:String(a.head),base:String(a.base)};a.body&&(m.body=String(a.body)),void 0!==a.draft&&(m.draft=!!a.draft);let n=await (0,f.N)("gh_pr_create",g)(`${A}/repos/${c}/${d}/pulls`,{method:"POST",headers:{...i(e),"Content-Type":"application/json"},body:JSON.stringify(m)});if(!n.ok){let a=await l(n);throw Error(a)}let p=await n.json();return o(p)}async function w(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name);if(!a.pr_number)throw Error("pr_number is required");if(!a.body)throw Error("body is required");let e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m=await (0,f.N)("gh_pr_comment",g)(`${A}/repos/${c}/${d}/issues/${a.pr_number}/comments`,{method:"POST",headers:{...i(e),"Content-Type":"application/json"},body:JSON.stringify({body:String(a.body)})});if(!m.ok){let a=await l(m);throw Error(a)}let n=await m.json();return{id:n.id,html_url:n.html_url,created_at:n.created_at}}async function x(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name);if(!a.pr_number)throw Error("pr_number is required");let e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m={merge_method:a.merge_method||"squash"};a.commit_title&&(m.commit_title=String(a.commit_title)),a.commit_message&&(m.commit_message=String(a.commit_message));let n=await (0,f.N)("gh_pr_merge",g)(`${A}/repos/${c}/${d}/pulls/${a.pr_number}/merge`,{method:"PUT",headers:{...i(e),"Content-Type":"application/json"},body:JSON.stringify(m)});if(!n.ok){let a=await l(n);throw Error(a)}let o=await n.json();return{merged:!0,sha:o.sha,message:o.message}}async function y(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name);if(!a.workflow_id)throw Error("workflow_id is required");if(!a.ref)throw Error("ref is required");let e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m={ref:String(a.ref)};a.inputs&&"object"==typeof a.inputs&&(m.inputs=a.inputs);let n=await (0,f.N)("gh_actions_dispatch",g)(`${A}/repos/${c}/${d}/actions/workflows/${encodeURIComponent(String(a.workflow_id))}/dispatches`,{method:"POST",headers:{...i(e),"Content-Type":"application/json"},body:JSON.stringify(m)});if(!n.ok){let a=await l(n);throw Error(a)}return{ok:!0,workflow_id:a.workflow_id,ref:a.ref}}async function z(a={},b={}){j(a.repo_full_name);let{owner:c,repo:d}=k(a.repo_full_name);if(!a.tag_name)throw Error("tag_name is required");let e=h("GITHUB_TOKEN",b),g=b.agent_id??null,m={tag_name:String(a.tag_name)};a.target_commitish&&(m.target_commitish=String(a.target_commitish)),a.name&&(m.name=String(a.name)),a.body&&(m.body=String(a.body)),void 0!==a.draft&&(m.draft=!!a.draft),void 0!==a.prerelease&&(m.prerelease=!!a.prerelease);let n=await (0,f.N)("gh_release_create",g)(`${A}/repos/${c}/${d}/releases`,{method:"POST",headers:{...i(e),"Content-Type":"application/json"},body:JSON.stringify(m)});if(!n.ok){let a=await l(n);throw Error(a)}let o=await n.json();return{id:o.id,tag_name:o.tag_name,html_url:o.html_url,draft:o.draft,prerelease:o.prerelease}}d()}catch(a){d(a)}})},3017:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"Batcher",{enumerable:!0,get:function(){return e}});let d=c(42474);class e{constructor(a,b=a=>a()){this.cacheKeyFn=a,this.schedulerFn=b,this.pending=new Map}static create(a){return new e(null==a?void 0:a.cacheKeyFn,null==a?void 0:a.schedulerFn)}async batch(a,b){let c=this.cacheKeyFn?await this.cacheKeyFn(a):a;if(null===c)return b(c,Promise.resolve);let e=this.pending.get(c);if(e)return e;let{promise:f,resolve:g,reject:h}=new d.DetachedPromise;return this.pending.set(c,f),this.schedulerFn(async()=>{try{let a=await b(c,g);g(a)}catch(a){h(a)}finally{this.pending.delete(c)}}),f}}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5377:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{X:()=>g});var e=c(84104),f=a([e]);e=(f.then?(await f)():f)[0];let h={queued:"queued",extracting:"running",chunking:"running",embedding:"running",complete:"complete",embedding_failed:"complete",done:"complete",failed:"failed",error:"failed",ocr_skipped:"skipped",catalog_only:"skipped",unsupported:"skipped",skipped:"skipped"};function g(a){let b=(0,e.Lf)(),c=b.prepare(`
|
|
2
2
|
SELECT document_category, extraction_status, COUNT(*) AS n
|
|
3
3
|
FROM mines_source_documents
|
|
4
4
|
WHERE project_id = ?
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
FROM mines_document_chunks
|
|
9
9
|
WHERE project_id = ?
|
|
10
10
|
GROUP BY document_category
|
|
11
|
-
`).all(a),f=b.prepare("SELECT COUNT(*) AS n FROM mines_spatial_assets WHERE project_id = ?").get(a),g=new Map,i={total_files:0,queued:0,running:0,complete:0,failed:0,skipped:0};for(let a of c){let b=a.document_category;g.has(b)||g.set(b,{document_category:b,document_count:0,chunk_count:0,status_breakdown:{}});let c=g.get(b);c.document_count+=a.n,c.status_breakdown[a.extraction_status]=(c.status_breakdown[a.extraction_status]||0)+a.n,i.total_files+=a.n,i[h[a.extraction_status]||"queued"]+=a.n}for(let a of d)g.has(a.document_category)||g.set(a.document_category,{document_category:a.document_category,document_count:0,chunk_count:0,status_breakdown:{}}),g.get(a.document_category).chunk_count=a.n;let j=[...g.values()].sort((a,b)=>a.document_category.localeCompare(b.document_category)),k=j.filter(a=>a.document_count>0),l=k.filter(a=>(a.status_breakdown.complete||0)+(a.status_breakdown.embedding_failed||0)+(a.status_breakdown.done||0)>0),m=0===k.length?0:Math.round(l.length/k.length*100)/100,n=d.reduce((a,b)=>a+b.n,0);return{project_id:a,categories:j,totals:{documents:i.total_files,chunks:n},spatial_assets_count:f?.n??0,completeness_score:m,progress:i}}d()}catch(a){d(a)}})},
|
|
11
|
+
`).all(a),f=b.prepare("SELECT COUNT(*) AS n FROM mines_spatial_assets WHERE project_id = ?").get(a),g=new Map,i={total_files:0,queued:0,running:0,complete:0,failed:0,skipped:0};for(let a of c){let b=a.document_category;g.has(b)||g.set(b,{document_category:b,document_count:0,chunk_count:0,status_breakdown:{}});let c=g.get(b);c.document_count+=a.n,c.status_breakdown[a.extraction_status]=(c.status_breakdown[a.extraction_status]||0)+a.n,i.total_files+=a.n,i[h[a.extraction_status]||"queued"]+=a.n}for(let a of d)g.has(a.document_category)||g.set(a.document_category,{document_category:a.document_category,document_count:0,chunk_count:0,status_breakdown:{}}),g.get(a.document_category).chunk_count=a.n;let j=[...g.values()].sort((a,b)=>a.document_category.localeCompare(b.document_category)),k=j.filter(a=>a.document_count>0),l=k.filter(a=>(a.status_breakdown.complete||0)+(a.status_breakdown.embedding_failed||0)+(a.status_breakdown.done||0)>0),m=0===k.length?0:Math.round(l.length/k.length*100)/100,n=d.reduce((a,b)=>a+b.n,0);return{project_id:a,categories:j,totals:{documents:i.total_files,chunks:n},spatial_assets_count:f?.n??0,completeness_score:m,progress:i}}d()}catch(a){d(a)}})},5609:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{g:()=>h});var e=c(84104),f=c(42382),g=a([e,f]);[e,f]=g.then?(await g)():g;let i=[{id:"mines-analyst",name:"Mines Analyst",engine:"claude-code",schedule:null,role:"individual_contributor",title:"Mines Analyst",tools:["mines_project_read","mines_assumption_validate","file_read","file_search","web_search","web_fetch","mines_project_create","mines_catalog_import","file_write"],system_prompt:`You are the Mines Analyst for MadarX OS. Your role is to guide users through
|
|
12
12
|
the Mines module — answering questions, surfacing data gaps, routing to specialist
|
|
13
13
|
agents, and producing executive summaries.
|
|
14
14
|
|
|
@@ -309,7 +309,7 @@ MADARX_MASTER_KEY=${b}
|
|
|
309
309
|
ORDER BY created_at DESC
|
|
310
310
|
`).all("mines_data_import","directory_root",b,b).map(a=>({id:a.id,root_path:a.root_path,label:a.label||f.basename(a.root_path)||a.root_path,created_at:a.created_at,org_id:a.org_id||b,created_by_user_id:a.created_by_user_id||null}))})(b).some(a=>{let b=f.resolve(a.root_path),d=f.relative(b,c);return""===d||!!d&&!d.startsWith("..")&&!f.isAbsolute(d)})}d()}catch(a){d(a)}})},10407:(a,b,c)=>{"use strict";a.exports=c(49754).vendored["react-rsc"].ReactDOM},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11575:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{y:()=>m});var e=c(73024),f=c(76760),g=c(83498),h=c(84104),i=c(79336),j=c(65527),k=a([h,i,j]);[h,i,j]=k.then?(await k)():k;let n=f.join(g.nJ,".artifacts-migrated-v1");function l(a){return f.relative(g.Dl,a)}function m({force:a=!1,log:b=()=>{}}={}){if(!a&&function(){try{return e.existsSync(n)}catch{return!1}}())return{ok:!0,skipped:!0,reason:"already_migrated"};let c=(0,h.Lf)(),d=[];try{d=c.prepare("SELECT id, path, project_id FROM artifacts WHERE path IS NOT NULL AND path != ''").all()}catch{return{ok:!1,error:"artifacts table unavailable",summary:null}}let k={moved:0,rewritten:0,missing_on_disk:0,already_scoped:0,errors:0,details:[]},o=f.resolve(g.yQ),p=o+f.sep;c.exec("BEGIN IMMEDIATE");try{for(let a of d){let d=f.resolve(g.Dl,a.path),h=function(a){let b=a.project_id||i.Sk;return(0,i.U1)(b)||(0,i.U1)(i.Sk)}(a);if(!h){k.errors++;continue}let m=(0,j.v2)(h),n=f.resolve(m);if(d===n||d.startsWith(n+f.sep)||!(d===o||d.startsWith(p))){k.already_scoped++;continue}try{e.mkdirSync(m,{recursive:!0})}catch{}let q=f.basename(d),r=f.join(m,q),s=l(r);try{if(e.existsSync(d)){let b=r,g=s,i=!1;if(e.existsSync(r)&&d!==r){let a=f.extname(q),c=f.basename(q,a),d=Date.now().toString(36);b=f.join(m,`${c}-${d}${a}`),g=l(b),i=!0}e.renameSync(d,b),c.prepare("UPDATE artifacts SET path = ?, project_id = ? WHERE id = ?").run(g,h.id,a.id),k.moved++,k.rewritten++,k.details.push({id:a.id,from:a.path,to:g,collision:i})}else k.missing_on_disk++,c.prepare("UPDATE artifacts SET path = ?, project_id = ? WHERE id = ?").run(s,h.id,a.id),k.rewritten++,k.details.push({id:a.id,from:a.path,to:s,file_missing:!0})}catch(c){k.errors++,b(`migrate-artifacts: failed for ${a.id} (${a.path}): ${c.message}`)}}c.exec("COMMIT")}catch(a){try{c.exec("ROLLBACK")}catch{}return b(`migrate-artifacts: rolled back: ${a.message}`),{ok:!1,error:a.message,summary:k}}try{e.writeFileSync(n,`${new Date().toISOString()}
|
|
311
311
|
${JSON.stringify(k,null,2)}
|
|
312
|
-
`,"utf8")}catch{}return{ok:!0,skipped:!1,summary:k}}d()}catch(a){d(a)}})},11812:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Dv:()=>l,Tg:()=>m,gL:()=>k});var e=c(91488);c(27806);var f=c(69206),g=c(91837),h=c(79336),i=c(40410),j=a([h]);async function k(a){let b=String(a.get("folder_mode")||"workspace"),c=String(a.get("folder_path")||"").trim(),d=(0,h.gA)({name:a.get("name"),color:a.get("color"),description:a.get("description"),folder_path:"custom"===b&&c?c:void 0});(0,f.redirect)(`/projects/${d.slug}`)}async function l(a){let b=String(a.get("project_id")||"").trim();if(b&&b!==h.Sk){try{(0,h.xx)(b)}catch(a){if(a?.code==="PROJECT_PROTECTED")return;throw a}(0,g.revalidatePath)("/projects")}}async function m(a){let b=String(a.get("project_id")||"").trim();if(!b)return;let c=String(a.get("folder_mode")||"keep"),d=String(a.get("folder_path")||"").trim(),e={name:String(a.get("name")||"").trim()||void 0,color:String(a.get("color")||"").trim()||void 0,description:String(a.get("description")||"").trim()||void 0};"custom"===c&&d&&(e.folder_path=d),(0,h.vr)(b,e),(0,g.revalidatePath)("/projects"),(0,g.revalidatePath)(`/projects/${b}`)}h=(j.then?(await j)():j)[0],(0,i.D)([k,l,m]),(0,e.A)(k,"
|
|
312
|
+
`,"utf8")}catch{}return{ok:!0,skipped:!1,summary:k}}d()}catch(a){d(a)}})},11812:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Dv:()=>l,Tg:()=>m,gL:()=>k});var e=c(91488);c(27806);var f=c(69206),g=c(91837),h=c(79336),i=c(40410),j=a([h]);async function k(a){let b=String(a.get("folder_mode")||"workspace"),c=String(a.get("folder_path")||"").trim(),d=(0,h.gA)({name:a.get("name"),color:a.get("color"),description:a.get("description"),folder_path:"custom"===b&&c?c:void 0});(0,f.redirect)(`/projects/${d.slug}`)}async function l(a){let b=String(a.get("project_id")||"").trim();if(b&&b!==h.Sk){try{(0,h.xx)(b)}catch(a){if(a?.code==="PROJECT_PROTECTED")return;throw a}(0,g.revalidatePath)("/projects")}}async function m(a){let b=String(a.get("project_id")||"").trim();if(!b)return;let c=String(a.get("folder_mode")||"keep"),d=String(a.get("folder_path")||"").trim(),e={name:String(a.get("name")||"").trim()||void 0,color:String(a.get("color")||"").trim()||void 0,description:String(a.get("description")||"").trim()||void 0};"custom"===c&&d&&(e.folder_path=d),(0,h.vr)(b,e),(0,g.revalidatePath)("/projects"),(0,g.revalidatePath)(`/projects/${b}`)}h=(j.then?(await j)():j)[0],(0,i.D)([k,l,m]),(0,e.A)(k,"401686bc3fb5c25d7f361ad47d51d68e8bfc051b2a",null),(0,e.A)(l,"4081e58c00b062ff7a62a36bd7e36cb7320a9553f9",null),(0,e.A)(m,"404ee7720211af84da2a2198f49f0881c664ebb717",null),d()}catch(a){d(a)}})},12690:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getClientComponentLoaderMetrics:function(){return g},wrapClientComponentLoader:function(){return f}});let c=0,d=0,e=0;function f(a){return"performance"in globalThis?{require:(...b)=>{let f=performance.now();0===c&&(c=f);try{return e+=1,a.__next_app__.require(...b)}finally{d+=performance.now()-f}},loadChunk:(...b)=>{let c=performance.now(),e=a.__next_app__.loadChunk(...b);return e.finally(()=>{d+=performance.now()-c}),e}}:a.__next_app__}function g(a={}){let b=0===c?void 0:{clientComponentLoadStart:c,clientComponentLoadTimes:d,clientComponentLoadCount:e};return a.reset&&(c=0,d=0,e=0),b}},13633:(a,b,c)=>{"use strict";c.d(b,{Q:()=>f});var d=c(8512),e=c(60951);function f(a,b){let c=(0,e.l)(function(a){let b=[],c=-1,e=0,f=0;for(;++c<a.length;){let g=a.charCodeAt(c),h="";if(37===g&&(0,d.lV)(a.charCodeAt(c+1))&&(0,d.lV)(a.charCodeAt(c+2)))f=2;else if(g<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(g))||(h=String.fromCharCode(g));else if(g>55295&&g<57344){let b=a.charCodeAt(c+1);g<56320&&b>56319&&b<57344?(h=String.fromCharCode(g,b),f=1):h="�"}else h=String.fromCharCode(g);h&&(b.push(a.slice(e,c),encodeURIComponent(h)),e=c+f+1,h=""),f&&(c+=f,f=0)}return b.join("")+a.slice(e)}(a||""));if(!b)return c;let f=c.indexOf(":"),g=c.indexOf("?"),h=c.indexOf("#"),i=c.indexOf("/");return f<0||i>-1&&f>i||g>-1&&f>g||h>-1&&f>h||b.test(c.slice(0,f))?c:""}},14117:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$A:()=>k,Ac:()=>i,FT:()=>j,N3:()=>m,uS:()=>l});var e=c(76760);c(73024);var f=c(84104),g=c(83498),h=a([f]);f=(h.then?(await h)():h)[0];let l=e.join(g.un,"generated-clis"),m=e.join(g.un,"skills","printing-press");e.join(g.nJ,"printing-press-clis.json");let n=/^[a-z0-9][a-z0-9-]{0,63}$/;function i(a){return"string"==typeof a&&n.test(a)}function j(a){let b=e.resolve(a),c=e.resolve(l);if(!b.startsWith(c+e.sep)&&b!==c)throw Error(`Path is not under workspace/generated-clis/: ${a}`);return b}function k(a){if(!i(a))return null;var b=(0,f.Lf)().prepare("SELECT * FROM printing_press_clis WHERE slug = ?").get(a);if(!b)return null;let c=null,d=[],e=[];try{c=b.manifest_json?JSON.parse(b.manifest_json):null}catch{c=null}try{d=b.declared_scopes?JSON.parse(b.declared_scopes):[]}catch{d=[]}try{e=b.required_secrets?JSON.parse(b.required_secrets):[]}catch{e=[]}return{slug:b.slug,source_kind:b.source_kind,source_url:b.source_url||null,installed_at:b.installed_at,updated_at:b.updated_at,path:b.path,declared_scopes:d,required_secrets:e,quota_bytes:b.quota_bytes||0x6400000,manifest:c,status:b.status}}d()}catch(a){d(a)}})},14821:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{B:()=>k});var e=c(73024),f=c(76760),g=c(84104),h=c(83498),i=c(684),j=a([g]);g=(j.then?(await j)():j)[0];let l=/^[a-z][a-z0-9_]{2,63}$/;async function k(a={},b={}){let d="string"==typeof a?.slug?a.slug.trim():"";if(!d||!l.test(d))return{ok:!1,status:"error",error:"slug_required",message:"slug required (snake_case, 3-64 chars)"};let j="string"==typeof a?.summary?a.summary.slice(0,2e3):"",m=["low","medium","high","irreversible_external"].includes(a?.risk)?a.risk:"medium",n=f.join("tool-proposals",d),o=f.join(h.un,n),p={[`${d}.adapter.js`]:function(a,b){let c=a.replace(/_([a-z])/g,(a,b)=>b.toUpperCase());return`// lib/tools/adapters/${a}.js — PROPOSED, not yet wired.
|
|
313
313
|
//
|
|
314
314
|
// ${b||"Proposed tool adapter."}
|
|
315
315
|
//
|
|
@@ -401,8 +401,8 @@ see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__
|
|
|
401
401
|
SELECT sample_id, width_m, cu_pct, ag_ppm, other_grades_json
|
|
402
402
|
FROM mines_assay_samples WHERE project_id = ? AND sample_type = 'drill_core'
|
|
403
403
|
ORDER BY (cu_pct * width_m) DESC LIMIT 8
|
|
404
|
-
`).all(d),k=a.prepare("SELECT COUNT(*) n FROM mines_source_documents WHERE project_id = ?").get(d).n,l=a.prepare("SELECT COUNT(*) n FROM mines_document_chunks WHERE project_id = ?").get(d).n,p=b=>a.prepare("SELECT price_usd, price_unit, source FROM mines_market_snapshots WHERE lower(commodity)=lower(?) ORDER BY fetched_at DESC LIMIT 1").get(b),r=p("Cu"),t=p("Ag"),u=a.prepare("SELECT scenario, assumptions_json, result_json FROM mines_valuation_scenarios WHERE project_id = ? AND scenario LIKE 'operator_%' ORDER BY scenario").all(d);f.push(`**Prepared by:** MadarX OS \xb7 Mines | **Date:** ${g} | **Project:** \`${d}\``),f.push(`**Asset stage:** ${b.asset_stage} | **Commodity:** ${b.commodity||"Cu"} | **Jurisdiction:** ${b.state_province||"Sonora"}, ${b.country}`),f.push(""),f.push("> This memorandum is generated by autonomous agents from the project document archive and structured database. Every figure traces to a source document, a database aggregate, or a labelled estimate. Figures attributed to an operator scenario are conceptual and are **not** mineral resources."),f.push(""),f.push("## 1. Executive summary"),f.push("");let v=s(e,"deposit_type"),w=s(e,"asset_stage"),x=q(c,"exec_summary");x&&(f.push(x),f.push("")),v&&f.push(`- **Deposit type:** ${v.text} ${v.cite}`);let y=q(c,"thesis");y&&(f.push(`**Investment thesis.** ${y}`),f.push("")),w&&f.push(`- **Stage / resource status:** ${w.text} ${w.cite}`),i?.n&&f.push(`- **Drilling to date:** ${i.n} holes for ${o(i.m)} m [DrillHole aggregate]`),h?.n&&f.push(`- **Surface geochemistry:** ${h.n} trench channel samples averaging ${m(h.avg_cu,3)}% Cu [AssaySample aggregate]`),f.push(`- **Definitive valuation:** Not available — no declared resource. See \xa76 for a labelled operator scenario.`),f.push(""),f.push("## 2. Project overview"),f.push("");{let a=q(c,"overview");a&&(f.push(a),f.push(""))}for(let a of["property","mineralization","asset_stage"]){let b=s(e,a);b&&f.push(`- **${a.replace(/_/g," ")}:** ${b.text} ${b.cite}`)}f.push(""),f.push("## 3. Geology & mineralization"),f.push("");{let a=q(c,"geology");a&&(f.push(a),f.push(""))}for(let a of["deposit_type","geophysics"]){let b=s(e,a);b&&f.push(`- **${a.replace(/_/g," ")}:** ${b.text} ${b.cite}`)}f.push("");let z=[...e.keys()].filter(a=>a.startsWith("target_")).sort();if(z.length){for(let a of(f.push("### Defined targets"),f.push(""),z)){let b=(e.get(a)||[])[0];b&&f.push(`- **${a.replace("target_","").replace(/_/g," ")}:** ${b.value_text} [ExtractedFact:${b.id}${b.page_or_location?`, ${b.page_or_location}`:""}]`)}f.push("")}f.push("## 4. Exploration results"),f.push("");{let a=q(c,"exploration");a&&(f.push(a),f.push(""))}let A=s(e,"drilling_summary");if(A&&f.push(`${A.text} ${A.cite}`),f.push(""),j.length){for(let a of(f.push("**Best drill intercepts (Cu \xd7 width ranked):**"),f.push(""),f.push("| Interval | Width (m) | Cu % | Ag g/t | CuEq % |"),f.push("|----------|-----------|------|--------|--------|"),j)){let b={};try{b=JSON.parse(a.other_grades_json||"{}")}catch{}f.push(`| \`${a.sample_id}\` | ${o(a.width_m,1)} | ${m(a.cu_pct,3)} | ${null!=a.ag_ppm?m(a.ag_ppm,1):"—"} | ${null!=b.cueq_pct?m(b.cueq_pct,3):"—"} |`)}f.push(""),f.push("_[AssaySample drill_core rows; CuEq per source-report formula]_"),f.push("")}let B=s(e,"trenching_summary");B&&(f.push(`${B.text} ${B.cite}`),f.push(""));let C=[...e.keys()].filter(a=>a.startsWith("comparable_")).sort();if(C.length){f.push("## 5. Comparable assets (analogues in the same belt)"),f.push("");{let a=q(c,"comparables");a&&(f.push(a),f.push(""))}for(let a of C){let b=(e.get(a)||[])[0];b&&f.push(`- **${a.replace("comparable_","").replace(/_/g," ")}:** ${b.value_text} [ExtractedFact:${b.id}${b.page_or_location?`, ${b.page_or_location}`:""}]`)}f.push(""),f.push("_Analogues establish the geological model and the in-ground value range for a successful porphyry discovery in this belt. They are not a prediction of Batamote tonnage or grade._"),f.push("")}if(f.push("## 6. Valuation framework & indicative scenario"),f.push(""),f.push("No mineral resource has been declared for the project, therefore **no definitive (T1 in-situ or T2 DCF) valuation is produced** — the system does not assign tonnage or value to undefined mineralization. The figures below are a **conceptual operator scenario**, not a mineral resource and not a valuation opinion."),f.push(""),(r||t)&&(f.push(`**Metal price basis:** ${r?`Cu ${n(r.price_usd)}/lb`:""}${r&&t?" \xb7 ":""}${t?`Ag ${n(t.price_usd)}/oz`:""} (${r?.source||t?.source||"snapshot"}).`),f.push("")),u.length){for(let a of(f.push("| Scenario | Target tonnage | Cu grade | Indicative in-situ value |"),f.push("|----------|----------------|----------|--------------------------|"),u)){let b={},c={};try{b=JSON.parse(a.assumptions_json||"{}")}catch{}try{c=JSON.parse(a.result_json||"{}")}catch{}let d=a.scenario.replace("operator_","");f.push(`| ${d} | ${o(b.resource_tonnes)} t | ${m(b.grade_cu_pct,3)}% | ${n(c.in_situ_value_usd)} |`)}f.push(""),f.push("> **CONCEPTUAL EXPLORATION TARGET — IMPORTANT.** The tonnage and grade above are an operator-supplied conceptual exploration target expressed as a range. They are conceptual in nature; there has been insufficient exploration to define a mineral resource; and it is uncertain whether further exploration will result in the target being delineated as a mineral resource. These figures must not be construed as a mineral resource or a mineral reserve, and the in-situ values are an order-of-magnitude indication of exploration optionality only."),f.push("")}f.push("## 7. Data inventory & quality control"),f.push(""),f.push(`- **Documents catalogued:** ${o(k)} files across the project archive.`),f.push(`- **Text chunks indexed:** ${o(l)} for retrieval.`),i?.n&&f.push(`- **Structured drill holes:** ${i.n}; **trench assays:** ${h?.n||0}; **drill intercepts:** ${j.length}.`);let D=s(e,"qa_qc");D&&f.push(`- **QA/QC:** ${D.text} ${D.cite}`);let E=s(e,"data_verification");E&&f.push(`- **Data verification:** ${E.text} ${E.cite}`),f.push(""),f.push("## 8. Risk register"),f.push("");{let a=q(c,"risk_intro");a&&(f.push(a),f.push(""))}f.push("| Risk | Severity | Mitigation |"),f.push("|------|----------|------------|"),f.push("| No declared mineral resource (exploration risk) | High | Maiden resource drill program at El Choclo NW / Bata Sur |"),f.push("| Grade continuity not yet demonstrated at depth | Medium | Infill + step-out drilling; clay-alteration vectoring |"),f.push("| Metal price volatility | Medium | Long-dated optionality; copper structural demand |"),f.push("| Permitting / surface rights (Sonora) | Medium | Confirm tenure & community agreements in legal DD |"),f.push("| Data provenance (historic operators) | Low–Med | Teck data verified vs lab certificates; re-log key holes |"),f.push(""),f.push("## 9. Recommended work program"),f.push("");let F=s(e,"work_program");F&&(f.push(`${F.text} ${F.cite}`),f.push(""));let G=q(c,"recommendation");return G&&(f.push("_Indicative next-phase program (MadarX planning view, not from the technical report):_"),f.push(""),f.push(G),f.push("")),f.push("## 10. Limitations & disclaimers"),f.push(""),f.push("Structured figures are transcribed/extracted from the project NI 43-101 technical report and archive; comparable-asset figures are from public S-K 1300 reports referenced therein. Metal prices are dated market snapshots. The operator scenario is conceptual and not a mineral resource. This memorandum is decision-support analysis, not a qualified person's valuation opinion, and does not constitute investment advice."),f.push(""),f.push("---"),f.push("_Generated by `mines_report_generate` (due_diligence_memo). Numeric claims trace to `mines_extracted_facts`, SQL aggregates, or persisted `mines_valuation_scenarios` rows._"),{markdown:f.join("\n"),facts_cited:[...e.values()].reduce((a,b)=>a+b.length,0),comparables:C.length,targets:z.length,scenario_rows:u.length}}(w,y,B);c=a.markdown,d=`Investment Diligence Memo — ${y.name}`,z={facts_cited:a.facts_cited,comparables:a.comparables,targets:a.targets,scenario_rows:a.scenario_rows}}else if("pfs_readiness_report"===l){let a=function(a,b,c={}){let d=b.id,e=function(a,b){let c=new Set(a.prepare("SELECT DISTINCT fact_type FROM mines_extracted_facts WHERE project_id = ?").all(b).map(a=>a.fact_type)),d=(...a)=>[...c].some(b=>a.some(a=>b===a||b.startsWith(`${a}_`)||b.includes(a))),e=a.prepare("SELECT COUNT(*) n, SUM(total_depth_m) m FROM mines_drill_holes WHERE project_id = ?").get(b),f=a.prepare("SELECT COUNT(*) n FROM mines_assay_samples WHERE project_id = ?").get(b),g=a.prepare("SELECT COUNT(*) n FROM mines_source_documents WHERE project_id = ?").get(b).n,h=a.prepare("SELECT COUNT(*) n FROM mines_document_chunks WHERE project_id = ?").get(b).n,i=[...c].filter(a=>a.startsWith("target_")).length,j=[...c].filter(a=>a.startsWith("comparable_")).length,k=a.prepare("SELECT COUNT(*) n FROM mines_valuation_scenarios WHERE project_id = ? AND scenario NOT LIKE 'operator_%'").get(b).n,l=a.prepare("SELECT COUNT(*) n FROM mines_valuation_scenarios WHERE project_id = ? AND scenario LIKE 'operator_%'").get(b).n,m=d("mineral_resource","resource_estimate","resource_statement","resource_classification","measured_indicated"),n=d("mineral_reserve","reserve_estimate","proven","probable"),o=d("metallurg","recovery","met_testwork","processing"),p=d("mine_plan","production_schedule","mining_method","pit","geotech"),q=d("capex","opex","cost_estimate","aisc"),r=d("market","price_deck","offtake")||a.prepare("SELECT COUNT(*) n FROM mines_market_snapshots").get().n>0,s=c.has("qa_qc"),t=c.has("data_verification"),u=d("deposit_type","mineralization","geophysics","property")||i>0,v=(e?.n||0)>0||d("drilling_summary","trenching_summary");return{factTypes:c,drill:e,assay:f,docCount:g,chunkCount:h,targets:i,comparables:j,indicativeScenarios:k,conceptualScenarios:l,hasResource:m,hasReserve:n,hasMetTestwork:o,hasMinePlan:p,hasCostEstimate:q,hasMarket:r,hasQaQc:s,hasDataVerification:t,hasGeology:u,hasDrilling:v}}(a,d),f=[],g=new Date().toISOString().slice(0,10),h=e.hasResource&&e.hasReserve;f.push(`**Prepared by:** MadarX OS \xb7 Mines | **Date:** ${g} | **Project:** \`${d}\``),f.push(`**Asset stage:** ${b.asset_stage} | **Commodity:** ${b.commodity||"n/a"} | **Jurisdiction:** ${b.state_province||"n/a"}, ${b.country||"n/a"}`),f.push(""),f.push("> **This is a PFS-READINESS ASSESSMENT, not a Pre-Feasibility Study.** A PFS requires a Mineral Reserve converted from Measured & Indicated Resources (no Inferred), with Modifying Factors, a mine plan, recovery testwork, and capex/opex to \xb125% (AACE Class 4), each signed off by a competent QP/CP. This report measures the asset against that standard, inventories the data that exists (every count traces to a database row), and lists the gaps and work program required to reach PFS confidence. It does **not** declare a resource, a reserve, or any figure the source data does not contain."),f.push(""),f.push("## 1. Readiness verdict"),f.push("");{let a=q(c,"verdict");a&&(f.push(a),f.push(""))}h?f.push("**A Mineral Reserve appears to exist in the dataset.** A PFS may be supportable — proceed to the section-by-section coverage below to confirm each discipline meets PFS confidence, then route reserve/economics work to the valuation analyst and a competent QP."):e.hasResource&&!e.hasReserve?f.push("**A Mineral Resource is present but no Mineral Reserve has been declared.** A PFS is **not yet supportable**. The defining PFS step — conversion of Measured & Indicated Resources to a Proven/Probable Reserve via Modifying Factors (template \xa715) — has not been done. This is the critical path."):(f.push("**No Mineral Resource is declared for this asset.** A PFS is **not supportable and must not be produced.** Per the PFS contract (template \xa71, checklist gate G3) reserves derive from Measured & Indicated Resources only — and there is no resource to convert. The asset sits at an **exploration / scoping** confidence level. The work below maps a path from exploration data to a maiden resource, and from there toward PFS."),e.conceptualScenarios>0&&(f.push(""),f.push(`> The project carries ${e.conceptualScenarios} conceptual operator scenario(s) in \`mines_valuation_scenarios\`. These are exploration-target order-of-magnitude figures, **not** a mineral resource, and cannot seed a reserve or a PFS economic case.`))),f.push("");let i=e.hasResource?x.ready:e.hasDrilling&&(e.hasQaQc||e.hasDataVerification)||e.hasGeology?x.partial:x.gap,j=e.hasMinePlan&&e.hasMetTestwork?x.ready:e.hasMinePlan||e.hasMetTestwork?x.partial:x.gap,k=e.hasReserve?x.ready:e.hasResource?x.gap:x.blocked,l=e.hasReserve&&e.hasCostEstimate?x.ready:e.hasReserve?x.partial:x.blocked,m=h?x.partial:x.blocked;f.push("## 2. Decision-gate status"),f.push(""),f.push("_Gates are sequential (template \xa72). A downstream gate is `Blocked` until its prerequisite passes — no amount of work on a later gate substitutes for the gate before it._"),f.push(""),f.push("| Gate | Requirement | Status |"),f.push("|------|-------------|--------|"),f.push(`| **G0** Study launch | Charter, code, scope, QPs, budget, gates fixed | ${x.gap} (no study charter in dataset) |`),f.push(`| **G1** Geological foundation | DB validated; QA/QC documented; M/I/I classified; RPEEE shown | ${i} |`),f.push(`| **G2** Options / trade-off | Mining method, process route, tailings, power/water selected | ${j} |`),f.push(`| **G3** Reserve declaration | M&I only; no Inferred; dilution & losses; Modifying Factors | ${k} |`),f.push(`| **G4** Estimate & economics | Capex/opex \xb125%; ~15% contingency; reserve-based model | ${l} |`),f.push(`| **G5** Assurance & disclosure | Risk register, fatal-flaw + independent review, QP sign-offs | ${m} |`),f.push("");let n=a=>a?x.partial:x.gap,p=[["1–3 \xb7 Summary / Introduction / Reliance",e.docCount>0,`${o(e.docCount)} source documents catalogued`],["4 \xb7 Property Description & Location",e.factTypes.has("property"),e.factTypes.has("property")?"property fact present":"no tenure/location fact extracted"],["5 \xb7 Accessibility, Climate, Infrastructure",!1,"not extracted — requires site/infrastructure data"],["6 \xb7 History",e.factTypes.has("deposit_type")||e.docCount>0,"historic archive present"],["7 \xb7 Geological Setting & Mineralization",e.hasGeology,e.hasGeology?`geology facts + ${e.targets} target(s)`:"no geology facts"],["8 \xb7 Deposit Types",e.factTypes.has("deposit_type"),e.factTypes.has("deposit_type")?"deposit_type fact present":"no deposit_type fact"],["9–10 \xb7 Exploration & Drilling",e.hasDrilling,`${e.drill?.n||0} drill holes; drilling/trenching summaries`],["11–12 \xb7 Sampling, Analyses, Data Verification",e.hasQaQc||e.hasDataVerification,`${e.assay?.n||0} assay samples; QA/QC=${e.hasQaQc}; verification=${e.hasDataVerification}`],["13 \xb7 Mineral Processing & Metallurgical Testing",e.hasMetTestwork,e.hasMetTestwork?"testwork present":"no metallurgical testwork — required for recovery model"],["14 \xb7 Mineral Resource Estimate",e.hasResource,e.hasResource?"resource present":"NO RESOURCE — blocks reserve & economics"],["15 \xb7 Mineral Reserve Estimate (defining PFS section)",e.hasReserve,e.hasReserve?"reserve present":"NO RESERVE — the PFS cannot exist without this"],["16 \xb7 Mining Methods",e.hasMinePlan,e.hasMinePlan?"mine-plan/geotech facts present":"no mine plan / geotechnical model"],["17 \xb7 Recovery Methods",e.hasMetTestwork,e.hasMetTestwork?"derived from testwork":"blocked on metallurgical testwork"],["18 \xb7 Project Infrastructure",!1,"not extracted — power/water/tailings/access required"],["19 \xb7 Market Studies & Contracts",e.hasMarket,e.hasMarket?"market snapshots/facts present":"no price deck / offtake"],["20 \xb7 Environmental, Permitting, Social",!1,"not extracted — baseline/permitting register required"],["21 \xb7 Capital & Operating Costs",e.hasCostEstimate,e.hasCostEstimate?"cost facts present":"no capex/opex estimate (need AACE Class 4)"],["22 \xb7 Economic Analysis",e.hasReserve&&e.hasCostEstimate,"requires a reserve-based model"],["23 \xb7 Adjacent Properties",e.comparables>0,`${e.comparables} comparable asset(s)`],["25–26 \xb7 Interpretation, Conclusions & Recommendations",e.docCount>0,"authored from the above"]];for(let[a,b,c]of(f.push("## 3. PFS section coverage (NI 43-101 body)"),f.push(""),f.push("| Section | Status | Evidence in dataset |"),f.push("|---------|--------|---------------------|"),p)){let d=a.startsWith("14 ")?e.hasResource?x.ready:x.gap:a.startsWith("15 ")?e.hasReserve?x.ready:e.hasResource?x.gap:x.blocked:n(b);f.push(`| ${a} | ${d} | ${c} |`)}for(let[a,b]of(f.push(""),f.push("_Status is computed from `mines_extracted_facts` types and SQL aggregates — a `Gap` means the data type is absent from the database, not that it was judged inadequate._"),f.push(""),f.push("## 4. The PFS contract (must all hold to declare a PFS)"),f.push(""),[["Reserves from Measured & Indicated only (no Inferred)",e.hasReserve],["Dilution & mining losses incorporated",e.hasReserve&&e.hasMinePlan],["Modifying Factors formally applied & documented",e.hasReserve],["Capex/opex \xb125%, ~15% contingency, AACE Class 4",e.hasCostEstimate],["Reserve-based financial model, positive across a downside",e.hasReserve&&e.hasCostEstimate],["Each discipline signed off by a competent QP/CP",h]]))f.push(`- [${b?"x":" "}] ${a}`);f.push(""),h||f.push("Until every box is checked, the asset is **pre-PFS**. The earliest unchecked box on the critical path is where work must start (see \xa76)."),f.push(""),f.push("## 5. Data inventory"),f.push(""),f.push(`- **Documents catalogued:** ${o(e.docCount)} \xb7 **text chunks indexed:** ${o(e.chunkCount)}`),f.push(`- **Structured drill holes:** ${e.drill?.n||0}${e.drill?.m?` for ${o(e.drill.m)} m`:""} \xb7 **assay samples:** ${e.assay?.n||0}`),f.push(`- **Extracted fact types:** ${e.factTypes.size} \xb7 **defined targets:** ${e.targets} \xb7 **comparables:** ${e.comparables}`),f.push(`- **Valuation scenarios:** ${e.indicativeScenarios} indicative (T1/T2 runs) \xb7 ${e.conceptualScenarios} conceptual operator-target — neither is a declared resource`),f.push(""),f.push("_Counts are read directly from `mines_source_documents`, `mines_document_chunks`, `mines_drill_holes`, `mines_assay_samples`, `mines_extracted_facts`, and `mines_valuation_scenarios`._"),f.push(""),f.push("## 6. Critical-path gaps (ordered)"),f.push("");{let a=q(c,"gap_intro");a&&(f.push(a),f.push(""))}let r=[];e.hasResource||r.push("**Maiden Mineral Resource estimate** — the single hard blocker. Requires sufficient drill density, QA/QC-validated assays, density data, domaining, a block model, classification (M/I/I), and RPEEE within a constraining shape. Until this exists, no reserve, no economics, no PFS."),e.hasMetTestwork||r.push("**Metallurgical testwork** — representative samples across lithology/alteration/oxidation/depth/grade; a recovery model by domain (not a single point). Blocks \xa713/\xa717."),e.hasResource&&!e.hasMinePlan&&r.push("**Mine plan & geotechnical model** — method/pit-configuration trade-off, slope/support parameters, production schedule. Required before reserve conversion."),e.hasResource&&!e.hasReserve&&r.push("**Reserve conversion (\xa715)** — apply Modifying Factors to M&I, incorporate dilution & mining losses, derive Proven/Probable. This is the defining PFS step."),e.hasCostEstimate||r.push("**Capex/opex estimate to \xb125% (AACE Class 4)** — formal Basis of Estimate, vendor budget quotes on major items, ~15% risk-based contingency. Blocks \xa721/\xa722."),r.push("**Infrastructure, water & tailings study** — power/water/access; site water balance; tailings option + GISTM alignment; confirm no fatal flaw."),r.push("**Environmental / permitting / social baseline** — multi-season baseline, permitting register on the critical path, closure cost flowed to the model."),r.push("**Competent QP/CP sign-off per discipline** — and an independent / peer technical review before any disclosure."),r.forEach((a,b)=>f.push(`${b+1}. ${a}`)),f.push(""),f.push("## 7. Recommended work program to reach PFS"),f.push("");let s=a.prepare("SELECT id, value_text, page_or_location FROM mines_extracted_facts WHERE project_id = ? AND fact_type = 'work_program' LIMIT 1").get(d);s&&(f.push(`${s.value_text} [ExtractedFact:${s.id}${s.page_or_location?`, ${s.page_or_location}`:""}]`),f.push(""));let t=q(c,"work_program")||q(c,"recommendation");return t?(f.push("_Indicative phased program (MadarX planning view, not from the technical report):_"),f.push(""),f.push(t),f.push("")):s||(f.push("Phase the program to the gate sequence above: (1) resource-definition drilling → maiden resource (G1); (2) metallurgical testwork + mining/geotech trade-off (G2); (3) reserve conversion with Modifying Factors (G3); (4) Class 4 cost estimate + reserve-based model (G4); (5) risk, independent review, QP sign-off (G5). Budget and schedule each phase before launch."),f.push("")),f.push("## 8. Limitations & disclaimers"),f.push(""),f.push("This is a readiness assessment generated by autonomous agents from the project database and document archive. Statuses reflect the **presence** of data types, not a competent person's judgement of their adequacy. The absence of a resource/reserve in the database is reported as a gap, never filled with an estimate. This document is decision-support analysis; it is not a Pre-Feasibility Study, not a qualified person's opinion, and does not constitute investment advice. Producing an actual PFS requires the work program above and competent-person sign-off under the applicable reporting code (NI 43-101 / S-K 1300 / JORC)."),f.push(""),f.push("---"),f.push("_Generated by `mines_report_generate` (pfs_readiness_report). Gate/section statuses derive from `mines_extracted_facts` types and SQL aggregates; no figure is asserted that the source data does not contain. Rubric: `docs/mines/pfs-best-practice-template.md` + `pfs-best-practice-checklist.md`._"),{markdown:f.join("\n"),pfs_feasible:h,has_resource:e.hasResource,has_reserve:e.hasReserve,gaps_count:r.length,fact_types:e.factTypes.size,documents:e.docCount}}(w,y,B);c=a.markdown,d=`PFS-Readiness Assessment — ${y.name}`,z={pfs_feasible:a.pfs_feasible,has_resource:a.has_resource,has_reserve:a.has_reserve,gaps_count:a.gaps_count,fact_types:a.fact_types,documents:a.documents}}else{let a=await r(w,y,B);c=a.markdown,d=`Interpretation Memo — ${y.name}`,z={numeric_claims_count:a.numeric_claims_count,chunk_citations_count:a.chunk_citations_count,retrieval_mode:a.retrieval_mode}}let C=(0,k.Om)([a?.space_id,y.default_space_id],{fallback:null}),D=function(a,b){let c=a.prepare("SELECT os_project_id FROM mines_projects WHERE id = ?").get(b);return c?.os_project_id||null}(w,h);try{for(let a of C?w.prepare("SELECT id FROM artifacts WHERE title = ? AND space_id = ?").all(d,C):w.prepare("SELECT id FROM artifacts WHERE title = ? AND project_id = ?").all(d,D||"personal"))try{(0,f.CM)(a.id)}catch{}}catch{}let E=(0,f.Dg)({title:d,kind:A,content:c,project_id:D,agent_id:b.agent_id||null,space_id:C,dedupe_key:""});if(C&&!E.deduped)try{(0,k.h5)(E.artifact_id,C)}catch{}try{(0,i.pQ)({user_id:b.acting_on_behalf_of_user_id||b.user_id||"system",org_id:"personal-org",action:"mines.report.generated",status:"success",summary:`Generated ${l} for ${y.name}`,action_target_id:E.artifact_id,action_target_type:"artifact",meta:{project_id:h,report_kind:l,artifact_id:E.artifact_id,...z}})}catch{}return{status:"ok",artifact_id:E.artifact_id,report_kind:l,space_id:C,chunk_citations_count:z.chunk_citations_count??0,...z}}d()}catch(a){d(a)}})},27746:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{X:()=>t,Z6:()=>p,dd:()=>n,mr:()=>r,sq:()=>q,sv:()=>o,vO:()=>s});var e=c(73024),f=c(76760),g=c(42382),h=c(67354),i=c(684),j=a([g,h]);[g,h]=j.then?(await j)():j;let u=new Set([".git","node_modules",".next","data"]);function k(a,b,c={}){(0,g.appendAudit)({type:`local.${a}`,summary:`${a} ${b}`,status:b,meta:c})}function l(a,b,c){return(0,h.D6)({action_type:a,risk:"medium",summary:`${a} requested for ${c}`,payload:{input:{...b,content:b.content?`[${String(b.content).length} chars]`:void 0},path:c}})}function m(a){return b=>b.path===a}async function n(a={}){let{path:b}=(0,i.hC)(a.path),c=Number(process.env.MADARX_FILE_READ_MAX_BYTES||1e5),d=e.statSync(b);if(!d.isFile())throw Error("Path is not a file");if(d.size>c)throw Error(`File too large: ${d.size} bytes`);let f=e.readFileSync(b,"utf8").split(/\r?\n/),g=Math.max(1,Number(a.offset||1)),h=Math.max(1,Math.min(2e3,Number(a.limit||500))),j=f.slice(g-1,g-1+h).join("\n");return k("file_read","complete",{path:b,bytes:Buffer.byteLength(j)}),{ok:!0,tool:"file_read",path:b,content:(0,i.nc)(j),metadata:{line_count:f.length,offset:g,limit:h}}}async function o(a={}){let{path:b}=(0,i.hC)(a.path||"."),c=Math.max(1,Math.min(500,Number(a.limit||100))),d=[];for(let a of e.readdirSync(b,{withFileTypes:!0})){if(d.length>=c)break;try{(0,i.hC)(f.join(b,a.name))}catch{continue}u.has(a.name)||d.push({name:a.name,type:a.isDirectory()?"directory":a.isFile()?"file":"other"})}return k("directory_list","complete",{path:b,count:d.length}),{ok:!0,tool:"directory_list",path:b,entries:d,metadata:{count:d.length}}}function p(a={}){let{path:b}=(0,i.hC)(a.path);if((0,i.Oe)(b))throw Error(`Write access denied: path is under a read-only root: ${a.path}`);return{absPath:b}}async function q(a={},b={}){let{absPath:c}=p(a);if(!b.owner_trusted&&!(0,h.v)(a.approval_id,{action_type:"file_write",matches:m(c)})){let b=l("file_write",a,c);return{ok:!1,status:"approval_required",approval_request_id:b.id,reason:"File writes require approval"}}return!1!==a.create_dirs&&e.mkdirSync(f.dirname(c),{recursive:!0}),e.writeFileSync(c,String(a.content??""),"utf8"),k("file_write","complete",{path:c}),{ok:!0,tool:"file_write",path:c,metadata:{bytes:Buffer.byteLength(String(a.content??""))}}}function r(a={}){let{path:b}=(0,i.hC)(a.path);if((0,i.Oe)(b))throw Error(`Write access denied: path is under a read-only root: ${a.path}`);let c=String(a.old_string??"");if(!c)throw Error("old_string is required");let d=e.readFileSync(b,"utf8"),f=d.split(c).length-1;if(!f)throw Error("old_string not found");if(f>1&&!a.replace_all)throw Error("old_string is ambiguous");return{absPath:b,content:d,matches:f,oldString:c}}async function s(a={},b={}){let{absPath:c,content:d,matches:f,oldString:g}=r(a),i=String(a.new_string??"");if(!b.owner_trusted&&!(0,h.v)(a.approval_id,{action_type:"file_patch",matches:m(c)})){let b=l("file_patch",{...a,new_string:`[${i.length} chars]`},c);return{ok:!1,status:"approval_required",approval_request_id:b.id,reason:"File patches require approval"}}return e.writeFileSync(c,a.replace_all?d.split(g).join(i):d.replace(g,i),"utf8"),k("file_patch","complete",{path:c,replacements:a.replace_all?f:1}),{ok:!0,tool:"file_patch",path:c,metadata:{replacements:a.replace_all?f:1}}}async function t(a={}){let{path:b}=(0,i.hC)(a.path||"."),c=String(a.pattern||"");if(!c)throw Error("pattern is required");let d=Math.max(1,Math.min(200,Number(a.limit||50))),g=RegExp(c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),h=a.target||"content",j=a.file_glob?String(a.file_glob):null,l=j?RegExp("^"+j.split("*").map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i"):null,m=[];for(let a of function a(b,c=[],d=1e3){if(c.length>=d)return c;for(let g of e.readdirSync(b,{withFileTypes:!0})){if(u.has(g.name))continue;let e=f.join(b,g.name);if(g.isDirectory()?a(e,c,d):g.isFile()&&c.push(e),c.length>=d)break}return c}(b,[],5e3)){if(m.length>=d)break;try{(0,i.hC)(a)}catch{continue}if(!l||l.test(f.basename(a))){if("path"===h||"name"===h){g.test("name"===h?f.basename(a):a)&&m.push({path:a});continue}e.statSync(a).size>25e4||/\.sqlite/.test(a)||/^\.env/.test(f.basename(a))||e.readFileSync(a,"utf8").split(/\r?\n/).forEach((b,c)=>{m.length<d&&g.test(b)&&m.push({path:a,line:c+1,text:(0,i.nc)(b)})})}}return k("file_search","complete",{path:b,count:m.length}),{ok:!0,tool:"file_search",path:b,results:m,metadata:{count:m.length}}}d()}catch(a){d(a)}})},27806:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{decryptActionBoundArgs:function(){return s},encryptActionBoundArgs:function(){return r}}),c(95818);let d=c(83183),e=c(51318),f=c(50931),g=c(54210),h=c(63033),i=c(90151),j=function(a){return a&&a.__esModule?a:{default:a}}(c(46204)),k=new TextEncoder,l=new TextDecoder,m=void 0,n=void 0;async function o(a,b){let c=await (0,g.getActionEncryptionKey)();if(void 0===c)throw Object.defineProperty(Error("Missing encryption key for Server Action. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E65",enumerable:!1,configurable:!0});let d=atob(b),e=d.slice(0,16),f=d.slice(16),h=l.decode(await (0,g.decrypt)(c,(0,g.stringToUint8Array)(e),(0,g.stringToUint8Array)(f)));if(!h.startsWith(a))throw Object.defineProperty(Error("Invalid Server Action payload: failed to decrypt."),"__NEXT_ERROR_CODE",{value:"E191",enumerable:!1,configurable:!0});return h.slice(a.length)}async function p(a,b){let c=await (0,g.getActionEncryptionKey)();if(void 0===c)throw Object.defineProperty(Error("Missing encryption key for Server Action. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E65",enumerable:!1,configurable:!0});let d=new Uint8Array(16);h.workUnitAsyncStorage.exit(()=>crypto.getRandomValues(d));let e=(0,g.arrayBufferToString)(d.buffer),f=await (0,g.encrypt)(c,d,k.encode(a+b));return btoa(e+(0,g.arrayBufferToString)(f))}var q=function(a){return a[a.Ready=0]="Ready",a[a.Pending=1]="Pending",a[a.Complete=2]="Complete",a}(q||{});let r=j.default.cache(async function a(b,...c){let e=h.workUnitAsyncStorage.getStore(),j=e?(0,h.getCacheSignal)(e):void 0,{clientModules:k}=(0,g.getClientReferenceManifestForRsc)(),l=Error();Error.captureStackTrace(l,a);let n=!1,o=e?(0,i.createHangingInputAbortSignal)(e):void 0,q=0;function r(){0===q&&(q=1,null==j||j.beginRead())}function s(){1===q&&(null==j||j.endRead()),q=2}o&&j&&o.addEventListener("abort",r,{once:!0});let t=await (0,f.streamToString)((0,d.renderToReadableStream)(c,k,{filterStackFrame:m,signal:o,onError(a){(null==o||!o.aborted)&&(n||(n=!0,l.message=a instanceof Error?a.message:String(a)))}}),o);if(n)throw s(),l;if(!e)return p(b,t);r();let u=(0,h.getPrerenderResumeDataCache)(e),v=(0,h.getRenderResumeDataCache)(e),w=b+t,x=(null==u?void 0:u.encryptedBoundArgs.get(w))??(null==v?void 0:v.encryptedBoundArgs.get(w));if(x)return x;let y=await p(b,t);return s(),null==u||u.encryptedBoundArgs.set(w,y),y});async function s(a,b){let c,d=await b,f=h.workUnitAsyncStorage.getStore();if(f){let b=(0,h.getCacheSignal)(f),e=(0,h.getPrerenderResumeDataCache)(f),g=(0,h.getRenderResumeDataCache)(f);(c=(null==e?void 0:e.decryptedBoundArgs.get(d))??(null==g?void 0:g.decryptedBoundArgs.get(d)))||(null==b||b.beginRead(),c=await o(a,d),null==b||b.endRead(),null==e||e.decryptedBoundArgs.set(d,c))}else c=await o(a,d);let{edgeRscModuleMapping:i,rscModuleMapping:j}=(0,g.getClientReferenceManifestForRsc)();return await (0,e.createFromReadableStream)(new ReadableStream({start(a){switch(a.enqueue(k.encode(c)),null==f?void 0:f.type){case"prerender":case"prerender-runtime":f.renderSignal.aborted?a.close():f.renderSignal.addEventListener("abort",()=>a.close(),{once:!0});break;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case void 0:return a.close()}}}),{findSourceMapURL:n,serverConsumerManifest:{moduleLoading:null,moduleMap:j,serverModuleMap:(0,g.getServerModuleMap)()}})}},28354:a=>{"use strict";a.exports=require("util")},28838:(a,b,c)=>{"use strict";c.d(b,{Qw:()=>m,U5:()=>l});var d=c(76760),e=c(80099);let f=Object.freeze(["strict","balanced","permissive"]),g="strict",h="MADARX_PRINTING_PRESS_SECURITY_MODE",i=new Set,j=null,k=0;function l(a){let b=a??function(){let a=Date.now();if(a-k<1500)return j;try{let a=process.env.MADARX_DATA_DIR||process.env.VILLA515_DATA_DIR,b=a?d.resolve(a):process.env.MADARX_HOME?d.join(d.resolve(process.env.MADARX_HOME),"data"):d.resolve(process.cwd(),"data"),c=d.join(b,"madarx.sqlite"),f=new e.DatabaseSync(c,{readOnly:!0});try{let a=f.prepare("SELECT value FROM config WHERE key = ?").get("printing_press_security_mode_override");j=a?.value||null}finally{f.close()}}catch{j=null}return k=a,j}()??process.env[h];if(!b)return g;let c=String(b).trim().toLowerCase();return f.includes(c)?c:(i.has(c)||(i.add(c),console.warn(`[printing-press] Unknown ${h}="${b}" — defaulting to "${g}".`)),g)}function m(a){let b=f.includes(a)?a:g;return"strict"===b?Object.freeze({mode:"strict",force_approval:!0,allowlist_default_allow:!1,allow_network_write_clis:!1,allow_mcp_mount:!1,rate_limit_multiplier:1,production_safe:!0,warn_in_production:!1,allow_install_at_runtime:!0,banner:"red",banner_message:"Strict mode: every Printing Press action requires explicit approval."}):"balanced"===b?Object.freeze({mode:"balanced",force_approval:!1,allowlist_default_allow:!1,allow_network_write_clis:!0,allow_mcp_mount:!0,rate_limit_multiplier:2,production_safe:!0,warn_in_production:!0,allow_install_at_runtime:!0,banner:"amber",banner_message:"Balanced mode: trust-mode rules apply. Allowlist still default-deny."}):Object.freeze({mode:"permissive",force_approval:!1,allowlist_default_allow:!0,allow_network_write_clis:!0,allow_mcp_mount:!0,rate_limit_multiplier:5,production_safe:!1,warn_in_production:!0,allow_install_at_runtime:!0,banner:"grey",banner_message:"Permissive mode: only suitable for sandboxes. Not allowed in production."})}},29089:a=>{(()=>{"use strict";var b={491:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ContextAPI=void 0;let d=c(223),e=c(172),f=c(930),g="context",h=new d.NoopContextManager;class i{constructor(){}static getInstance(){return this._instance||(this._instance=new i),this._instance}setGlobalContextManager(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}active(){return this._getContextManager().active()}with(a,b,c,...d){return this._getContextManager().with(a,b,c,...d)}bind(a,b){return this._getContextManager().bind(a,b)}_getContextManager(){return(0,e.getGlobal)(g)||h}disable(){this._getContextManager().disable(),(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.ContextAPI=i},930:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagAPI=void 0;let d=c(56),e=c(912),f=c(957),g=c(172);class h{constructor(){function a(a){return function(...b){let c=(0,g.getGlobal)("diag");if(c)return c[a](...b)}}let b=this;b.setLogger=(a,c={logLevel:f.DiagLogLevel.INFO})=>{var d,h,i;if(a===b){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return b.error(null!=(d=a.stack)?d:a.message),!1}"number"==typeof c&&(c={logLevel:c});let j=(0,g.getGlobal)("diag"),k=(0,e.createLogLevelDiagLogger)(null!=(h=c.logLevel)?h:f.DiagLogLevel.INFO,a);if(j&&!c.suppressOverrideMessage){let a=null!=(i=Error().stack)?i:"<failed to generate stacktrace>";j.warn(`Current logger will be overwritten from ${a}`),k.warn(`Current logger will overwrite one already registered from ${a}`)}return(0,g.registerGlobal)("diag",k,b,!0)},b.disable=()=>{(0,g.unregisterGlobal)("diag",b)},b.createComponentLogger=a=>new d.DiagComponentLogger(a),b.verbose=a("verbose"),b.debug=a("debug"),b.info=a("info"),b.warn=a("warn"),b.error=a("error")}static instance(){return this._instance||(this._instance=new h),this._instance}}b.DiagAPI=h},653:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MetricsAPI=void 0;let d=c(660),e=c(172),f=c(930),g="metrics";class h{constructor(){}static getInstance(){return this._instance||(this._instance=new h),this._instance}setGlobalMeterProvider(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}getMeterProvider(){return(0,e.getGlobal)(g)||d.NOOP_METER_PROVIDER}getMeter(a,b,c){return this.getMeterProvider().getMeter(a,b,c)}disable(){(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.MetricsAPI=h},181:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.PropagationAPI=void 0;let d=c(172),e=c(874),f=c(194),g=c(277),h=c(369),i=c(930),j="propagation",k=new e.NoopTextMapPropagator;class l{constructor(){this.createBaggage=h.createBaggage,this.getBaggage=g.getBaggage,this.getActiveBaggage=g.getActiveBaggage,this.setBaggage=g.setBaggage,this.deleteBaggage=g.deleteBaggage}static getInstance(){return this._instance||(this._instance=new l),this._instance}setGlobalPropagator(a){return(0,d.registerGlobal)(j,a,i.DiagAPI.instance())}inject(a,b,c=f.defaultTextMapSetter){return this._getGlobalPropagator().inject(a,b,c)}extract(a,b,c=f.defaultTextMapGetter){return this._getGlobalPropagator().extract(a,b,c)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,d.unregisterGlobal)(j,i.DiagAPI.instance())}_getGlobalPropagator(){return(0,d.getGlobal)(j)||k}}b.PropagationAPI=l},997:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceAPI=void 0;let d=c(172),e=c(846),f=c(139),g=c(607),h=c(930),i="trace";class j{constructor(){this._proxyTracerProvider=new e.ProxyTracerProvider,this.wrapSpanContext=f.wrapSpanContext,this.isSpanContextValid=f.isSpanContextValid,this.deleteSpan=g.deleteSpan,this.getSpan=g.getSpan,this.getActiveSpan=g.getActiveSpan,this.getSpanContext=g.getSpanContext,this.setSpan=g.setSpan,this.setSpanContext=g.setSpanContext}static getInstance(){return this._instance||(this._instance=new j),this._instance}setGlobalTracerProvider(a){let b=(0,d.registerGlobal)(i,this._proxyTracerProvider,h.DiagAPI.instance());return b&&this._proxyTracerProvider.setDelegate(a),b}getTracerProvider(){return(0,d.getGlobal)(i)||this._proxyTracerProvider}getTracer(a,b){return this.getTracerProvider().getTracer(a,b)}disable(){(0,d.unregisterGlobal)(i,h.DiagAPI.instance()),this._proxyTracerProvider=new e.ProxyTracerProvider}}b.TraceAPI=j},277:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.deleteBaggage=b.setBaggage=b.getActiveBaggage=b.getBaggage=void 0;let d=c(491),e=(0,c(780).createContextKey)("OpenTelemetry Baggage Key");function f(a){return a.getValue(e)||void 0}b.getBaggage=f,b.getActiveBaggage=function(){return f(d.ContextAPI.getInstance().active())},b.setBaggage=function(a,b){return a.setValue(e,b)},b.deleteBaggage=function(a){return a.deleteValue(e)}},993:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.BaggageImpl=void 0;class c{constructor(a){this._entries=a?new Map(a):new Map}getEntry(a){let b=this._entries.get(a);if(b)return Object.assign({},b)}getAllEntries(){return Array.from(this._entries.entries()).map(([a,b])=>[a,b])}setEntry(a,b){let d=new c(this._entries);return d._entries.set(a,b),d}removeEntry(a){let b=new c(this._entries);return b._entries.delete(a),b}removeEntries(...a){let b=new c(this._entries);for(let c of a)b._entries.delete(c);return b}clear(){return new c}}b.BaggageImpl=c},830:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataSymbol=void 0,b.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")},369:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataFromString=b.createBaggage=void 0;let d=c(930),e=c(993),f=c(830),g=d.DiagAPI.instance();b.createBaggage=function(a={}){return new e.BaggageImpl(new Map(Object.entries(a)))},b.baggageEntryMetadataFromString=function(a){return"string"!=typeof a&&(g.error(`Cannot create baggage metadata from unknown type: ${typeof a}`),a=""),{__TYPE__:f.baggageEntryMetadataSymbol,toString:()=>a}}},67:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.context=void 0,b.context=c(491).ContextAPI.getInstance()},223:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopContextManager=void 0;let d=c(780);class e{active(){return d.ROOT_CONTEXT}with(a,b,c,...d){return b.call(c,...d)}bind(a,b){return b}enable(){return this}disable(){return this}}b.NoopContextManager=e},780:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ROOT_CONTEXT=b.createContextKey=void 0,b.createContextKey=function(a){return Symbol.for(a)};class c{constructor(a){let b=this;b._currentContext=a?new Map(a):new Map,b.getValue=a=>b._currentContext.get(a),b.setValue=(a,d)=>{let e=new c(b._currentContext);return e._currentContext.set(a,d),e},b.deleteValue=a=>{let d=new c(b._currentContext);return d._currentContext.delete(a),d}}}b.ROOT_CONTEXT=new c},506:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.diag=void 0,b.diag=c(930).DiagAPI.instance()},56:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagComponentLogger=void 0;let d=c(172);class e{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return f("debug",this._namespace,a)}error(...a){return f("error",this._namespace,a)}info(...a){return f("info",this._namespace,a)}warn(...a){return f("warn",this._namespace,a)}verbose(...a){return f("verbose",this._namespace,a)}}function f(a,b,c){let e=(0,d.getGlobal)("diag");if(e)return c.unshift(b),e[a](...c)}b.DiagComponentLogger=e},972:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagConsoleLogger=void 0;let c=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];class d{constructor(){for(let a=0;a<c.length;a++)this[c[a].n]=function(a){return function(...b){if(console){let c=console[a];if("function"!=typeof c&&(c=console.log),"function"==typeof c)return c.apply(console,b)}}}(c[a].c)}}b.DiagConsoleLogger=d},912:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createLogLevelDiagLogger=void 0;let d=c(957);b.createLogLevelDiagLogger=function(a,b){function c(c,d){let e=b[c];return"function"==typeof e&&a>=d?e.bind(b):function(){}}return a<d.DiagLogLevel.NONE?a=d.DiagLogLevel.NONE:a>d.DiagLogLevel.ALL&&(a=d.DiagLogLevel.ALL),b=b||{},{error:c("error",d.DiagLogLevel.ERROR),warn:c("warn",d.DiagLogLevel.WARN),info:c("info",d.DiagLogLevel.INFO),debug:c("debug",d.DiagLogLevel.DEBUG),verbose:c("verbose",d.DiagLogLevel.VERBOSE)}}},957:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagLogLevel=void 0,function(a){a[a.NONE=0]="NONE",a[a.ERROR=30]="ERROR",a[a.WARN=50]="WARN",a[a.INFO=60]="INFO",a[a.DEBUG=70]="DEBUG",a[a.VERBOSE=80]="VERBOSE",a[a.ALL=9999]="ALL"}(b.DiagLogLevel||(b.DiagLogLevel={}))},172:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unregisterGlobal=b.getGlobal=b.registerGlobal=void 0;let d=c(200),e=c(521),f=c(130),g=e.VERSION.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i=d._globalThis;b.registerGlobal=function(a,b,c,d=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:e.VERSION};if(!d&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==e.VERSION){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${e.VERSION}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${e.VERSION}.`),!0},b.getGlobal=function(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&(0,f.isCompatible)(d))return null==(c=i[h])?void 0:c[a]},b.unregisterGlobal=function(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${e.VERSION}.`);let c=i[h];c&&delete c[a]}},130:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isCompatible=b._makeCompatibilityCheck=void 0;let d=c(521),e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function f(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}b._makeCompatibilityCheck=f,b.isCompatible=f(d.VERSION)},886:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.metrics=void 0,b.metrics=c(653).MetricsAPI.getInstance()},901:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ValueType=void 0,function(a){a[a.INT=0]="INT",a[a.DOUBLE=1]="DOUBLE"}(b.ValueType||(b.ValueType={}))},102:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createNoopMeter=b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=b.NOOP_OBSERVABLE_GAUGE_METRIC=b.NOOP_OBSERVABLE_COUNTER_METRIC=b.NOOP_UP_DOWN_COUNTER_METRIC=b.NOOP_HISTOGRAM_METRIC=b.NOOP_COUNTER_METRIC=b.NOOP_METER=b.NoopObservableUpDownCounterMetric=b.NoopObservableGaugeMetric=b.NoopObservableCounterMetric=b.NoopObservableMetric=b.NoopHistogramMetric=b.NoopUpDownCounterMetric=b.NoopCounterMetric=b.NoopMetric=b.NoopMeter=void 0;class c{constructor(){}createHistogram(a,c){return b.NOOP_HISTOGRAM_METRIC}createCounter(a,c){return b.NOOP_COUNTER_METRIC}createUpDownCounter(a,c){return b.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(a,c){return b.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(a,c){return b.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(a,c){return b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(a,b){}removeBatchObservableCallback(a){}}b.NoopMeter=c;class d{}b.NoopMetric=d;class e extends d{add(a,b){}}b.NoopCounterMetric=e;class f extends d{add(a,b){}}b.NoopUpDownCounterMetric=f;class g extends d{record(a,b){}}b.NoopHistogramMetric=g;class h{addCallback(a){}removeCallback(a){}}b.NoopObservableMetric=h;class i extends h{}b.NoopObservableCounterMetric=i;class j extends h{}b.NoopObservableGaugeMetric=j;class k extends h{}b.NoopObservableUpDownCounterMetric=k,b.NOOP_METER=new c,b.NOOP_COUNTER_METRIC=new e,b.NOOP_HISTOGRAM_METRIC=new g,b.NOOP_UP_DOWN_COUNTER_METRIC=new f,b.NOOP_OBSERVABLE_COUNTER_METRIC=new i,b.NOOP_OBSERVABLE_GAUGE_METRIC=new j,b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new k,b.createNoopMeter=function(){return b.NOOP_METER}},660:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NOOP_METER_PROVIDER=b.NoopMeterProvider=void 0;let d=c(102);class e{getMeter(a,b,c){return d.NOOP_METER}}b.NoopMeterProvider=e,b.NOOP_METER_PROVIDER=new e},200:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(46),b)},651:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b._globalThis=void 0,b._globalThis="object"==typeof globalThis?globalThis:global},46:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(651),b)},939:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.propagation=void 0,b.propagation=c(181).PropagationAPI.getInstance()},874:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTextMapPropagator=void 0;class c{inject(a,b){}extract(a,b){return a}fields(){return[]}}b.NoopTextMapPropagator=c},194:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.defaultTextMapSetter=b.defaultTextMapGetter=void 0,b.defaultTextMapGetter={get(a,b){if(null!=a)return a[b]},keys:a=>null==a?[]:Object.keys(a)},b.defaultTextMapSetter={set(a,b,c){null!=a&&(a[b]=c)}}},845:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.trace=void 0,b.trace=c(997).TraceAPI.getInstance()},403:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NonRecordingSpan=void 0;let d=c(476);class e{constructor(a=d.INVALID_SPAN_CONTEXT){this._spanContext=a}spanContext(){return this._spanContext}setAttribute(a,b){return this}setAttributes(a){return this}addEvent(a,b){return this}setStatus(a){return this}updateName(a){return this}end(a){}isRecording(){return!1}recordException(a,b){}}b.NonRecordingSpan=e},614:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracer=void 0;let d=c(491),e=c(607),f=c(403),g=c(139),h=d.ContextAPI.getInstance();class i{startSpan(a,b,c=h.active()){var d;if(null==b?void 0:b.root)return new f.NonRecordingSpan;let i=c&&(0,e.getSpanContext)(c);return"object"==typeof(d=i)&&"string"==typeof d.spanId&&"string"==typeof d.traceId&&"number"==typeof d.traceFlags&&(0,g.isSpanContextValid)(i)?new f.NonRecordingSpan(i):new f.NonRecordingSpan}startActiveSpan(a,b,c,d){let f,g,i;if(arguments.length<2)return;2==arguments.length?i=b:3==arguments.length?(f=b,i=c):(f=b,g=c,i=d);let j=null!=g?g:h.active(),k=this.startSpan(a,f,j),l=(0,e.setSpan)(j,k);return h.with(l,i,void 0,k)}}b.NoopTracer=i},124:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracerProvider=void 0;let d=c(614);class e{getTracer(a,b,c){return new d.NoopTracer}}b.NoopTracerProvider=e},125:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracer=void 0;let d=new(c(614)).NoopTracer;class e{constructor(a,b,c,d){this._provider=a,this.name=b,this.version=c,this.options=d}startSpan(a,b,c){return this._getTracer().startSpan(a,b,c)}startActiveSpan(a,b,c,d){let e=this._getTracer();return Reflect.apply(e.startActiveSpan,e,arguments)}_getTracer(){if(this._delegate)return this._delegate;let a=this._provider.getDelegateTracer(this.name,this.version,this.options);return a?(this._delegate=a,this._delegate):d}}b.ProxyTracer=e},846:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracerProvider=void 0;let d=c(125),e=new(c(124)).NoopTracerProvider;class f{getTracer(a,b,c){var e;return null!=(e=this.getDelegateTracer(a,b,c))?e:new d.ProxyTracer(this,a,b,c)}getDelegate(){var a;return null!=(a=this._delegate)?a:e}setDelegate(a){this._delegate=a}getDelegateTracer(a,b,c){var d;return null==(d=this._delegate)?void 0:d.getTracer(a,b,c)}}b.ProxyTracerProvider=f},996:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.SamplingDecision=void 0,function(a){a[a.NOT_RECORD=0]="NOT_RECORD",a[a.RECORD=1]="RECORD",a[a.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"}(b.SamplingDecision||(b.SamplingDecision={}))},607:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getSpanContext=b.setSpanContext=b.deleteSpan=b.setSpan=b.getActiveSpan=b.getSpan=void 0;let d=c(780),e=c(403),f=c(491),g=(0,d.createContextKey)("OpenTelemetry Context Key SPAN");function h(a){return a.getValue(g)||void 0}function i(a,b){return a.setValue(g,b)}b.getSpan=h,b.getActiveSpan=function(){return h(f.ContextAPI.getInstance().active())},b.setSpan=i,b.deleteSpan=function(a){return a.deleteValue(g)},b.setSpanContext=function(a,b){return i(a,new e.NonRecordingSpan(b))},b.getSpanContext=function(a){var b;return null==(b=h(a))?void 0:b.spanContext()}},325:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceStateImpl=void 0;let d=c(564);class e{constructor(a){this._internalState=new Map,a&&this._parse(a)}set(a,b){let c=this._clone();return c._internalState.has(a)&&c._internalState.delete(a),c._internalState.set(a,b),c}unset(a){let b=this._clone();return b._internalState.delete(a),b}get(a){return this._internalState.get(a)}serialize(){return this._keys().reduce((a,b)=>(a.push(b+"="+this.get(b)),a),[]).join(",")}_parse(a){!(a.length>512)&&(this._internalState=a.split(",").reverse().reduce((a,b)=>{let c=b.trim(),e=c.indexOf("=");if(-1!==e){let f=c.slice(0,e),g=c.slice(e+1,b.length);(0,d.validateKey)(f)&&(0,d.validateValue)(g)&&a.set(f,g)}return a},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let a=new e;return a._internalState=new Map(this._internalState),a}}b.TraceStateImpl=e},564:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateValue=b.validateKey=void 0;let c="[_0-9a-z-*/]",d=`[a-z]${c}{0,255}`,e=`[a-z0-9]${c}{0,240}@[a-z]${c}{0,13}`,f=RegExp(`^(?:${d}|${e})$`),g=/^[ -~]{0,255}[!-~]$/,h=/,|=/;b.validateKey=function(a){return f.test(a)},b.validateValue=function(a){return g.test(a)&&!h.test(a)}},98:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createTraceState=void 0;let d=c(325);b.createTraceState=function(a){return new d.TraceStateImpl(a)}},476:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.INVALID_SPAN_CONTEXT=b.INVALID_TRACEID=b.INVALID_SPANID=void 0;let d=c(475);b.INVALID_SPANID="0000000000000000",b.INVALID_TRACEID="00000000000000000000000000000000",b.INVALID_SPAN_CONTEXT={traceId:b.INVALID_TRACEID,spanId:b.INVALID_SPANID,traceFlags:d.TraceFlags.NONE}},357:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.SpanKind=void 0,function(a){a[a.INTERNAL=0]="INTERNAL",a[a.SERVER=1]="SERVER",a[a.CLIENT=2]="CLIENT",a[a.PRODUCER=3]="PRODUCER",a[a.CONSUMER=4]="CONSUMER"}(b.SpanKind||(b.SpanKind={}))},139:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.wrapSpanContext=b.isSpanContextValid=b.isValidSpanId=b.isValidTraceId=void 0;let d=c(476),e=c(403),f=/^([0-9a-f]{32})$/i,g=/^[0-9a-f]{16}$/i;function h(a){return f.test(a)&&a!==d.INVALID_TRACEID}function i(a){return g.test(a)&&a!==d.INVALID_SPANID}b.isValidTraceId=h,b.isValidSpanId=i,b.isSpanContextValid=function(a){return h(a.traceId)&&i(a.spanId)},b.wrapSpanContext=function(a){return new e.NonRecordingSpan(a)}},847:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.SpanStatusCode=void 0,function(a){a[a.UNSET=0]="UNSET",a[a.OK=1]="OK",a[a.ERROR=2]="ERROR"}(b.SpanStatusCode||(b.SpanStatusCode={}))},475:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceFlags=void 0,function(a){a[a.NONE=0]="NONE",a[a.SAMPLED=1]="SAMPLED"}(b.TraceFlags||(b.TraceFlags={}))},521:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.VERSION=void 0,b.VERSION="1.6.0"}},c={};function d(a){var e=c[a];if(void 0!==e)return e.exports;var f=c[a]={exports:{}},g=!0;try{b[a].call(f.exports,f,f.exports,d),g=!1}finally{g&&delete c[a]}return f.exports}d.ab=__dirname+"/";var e={};(()=>{Object.defineProperty(e,"__esModule",{value:!0}),e.trace=e.propagation=e.metrics=e.diag=e.context=e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=e.isValidSpanId=e.isValidTraceId=e.isSpanContextValid=e.createTraceState=e.TraceFlags=e.SpanStatusCode=e.SpanKind=e.SamplingDecision=e.ProxyTracerProvider=e.ProxyTracer=e.defaultTextMapSetter=e.defaultTextMapGetter=e.ValueType=e.createNoopMeter=e.DiagLogLevel=e.DiagConsoleLogger=e.ROOT_CONTEXT=e.createContextKey=e.baggageEntryMetadataFromString=void 0;var a=d(369);Object.defineProperty(e,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return a.baggageEntryMetadataFromString}});var b=d(780);Object.defineProperty(e,"createContextKey",{enumerable:!0,get:function(){return b.createContextKey}}),Object.defineProperty(e,"ROOT_CONTEXT",{enumerable:!0,get:function(){return b.ROOT_CONTEXT}});var c=d(972);Object.defineProperty(e,"DiagConsoleLogger",{enumerable:!0,get:function(){return c.DiagConsoleLogger}});var f=d(957);Object.defineProperty(e,"DiagLogLevel",{enumerable:!0,get:function(){return f.DiagLogLevel}});var g=d(102);Object.defineProperty(e,"createNoopMeter",{enumerable:!0,get:function(){return g.createNoopMeter}});var h=d(901);Object.defineProperty(e,"ValueType",{enumerable:!0,get:function(){return h.ValueType}});var i=d(194);Object.defineProperty(e,"defaultTextMapGetter",{enumerable:!0,get:function(){return i.defaultTextMapGetter}}),Object.defineProperty(e,"defaultTextMapSetter",{enumerable:!0,get:function(){return i.defaultTextMapSetter}});var j=d(125);Object.defineProperty(e,"ProxyTracer",{enumerable:!0,get:function(){return j.ProxyTracer}});var k=d(846);Object.defineProperty(e,"ProxyTracerProvider",{enumerable:!0,get:function(){return k.ProxyTracerProvider}});var l=d(996);Object.defineProperty(e,"SamplingDecision",{enumerable:!0,get:function(){return l.SamplingDecision}});var m=d(357);Object.defineProperty(e,"SpanKind",{enumerable:!0,get:function(){return m.SpanKind}});var n=d(847);Object.defineProperty(e,"SpanStatusCode",{enumerable:!0,get:function(){return n.SpanStatusCode}});var o=d(475);Object.defineProperty(e,"TraceFlags",{enumerable:!0,get:function(){return o.TraceFlags}});var p=d(98);Object.defineProperty(e,"createTraceState",{enumerable:!0,get:function(){return p.createTraceState}});var q=d(139);Object.defineProperty(e,"isSpanContextValid",{enumerable:!0,get:function(){return q.isSpanContextValid}}),Object.defineProperty(e,"isValidTraceId",{enumerable:!0,get:function(){return q.isValidTraceId}}),Object.defineProperty(e,"isValidSpanId",{enumerable:!0,get:function(){return q.isValidSpanId}});var r=d(476);Object.defineProperty(e,"INVALID_SPANID",{enumerable:!0,get:function(){return r.INVALID_SPANID}}),Object.defineProperty(e,"INVALID_TRACEID",{enumerable:!0,get:function(){return r.INVALID_TRACEID}}),Object.defineProperty(e,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return r.INVALID_SPAN_CONTEXT}});let s=d(67);Object.defineProperty(e,"context",{enumerable:!0,get:function(){return s.context}});let t=d(506);Object.defineProperty(e,"diag",{enumerable:!0,get:function(){return t.diag}});let u=d(886);Object.defineProperty(e,"metrics",{enumerable:!0,get:function(){return u.metrics}});let v=d(939);Object.defineProperty(e,"propagation",{enumerable:!0,get:function(){return v.propagation}});let w=d(845);Object.defineProperty(e,"trace",{enumerable:!0,get:function(){return w.trace}}),e.default={context:s.context,diag:t.diag,metrics:u.metrics,propagation:v.propagation,trace:w.trace}})(),a.exports=e})()},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30598:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getSortedRouteObjects:function(){return d.getSortedRouteObjects},getSortedRoutes:function(){return d.getSortedRoutes},isDynamicRoute:function(){return e.isDynamicRoute}});let d=c(34476),e=c(81626)},31421:a=>{"use strict";a.exports=require("node:child_process")},31730:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"LRUCache",{enumerable:!0,get:function(){return e}});class c{constructor(a,b,c){this.prev=null,this.next=null,this.key=a,this.data=b,this.size=c}}class d{constructor(){this.prev=null,this.next=null}}class e{constructor(a,b,c){this.cache=new Map,this.totalSize=0,this.maxSize=a,this.calculateSize=b,this.onEvict=c,this.head=new d,this.tail=new d,this.head.next=this.tail,this.tail.prev=this.head}addToHead(a){a.prev=this.head,a.next=this.head.next,this.head.next.prev=a,this.head.next=a}removeNode(a){a.prev.next=a.next,a.next.prev=a.prev}moveToHead(a){this.removeNode(a),this.addToHead(a)}removeTail(){let a=this.tail.prev;return this.removeNode(a),a}set(a,b){let d=(null==this.calculateSize?void 0:this.calculateSize.call(this,b))??1;if(d<=0)throw Object.defineProperty(Error(`LRUCache: calculateSize returned ${d}, but size must be > 0. Items with size 0 would never be evicted, causing unbounded cache growth.`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});if(d>this.maxSize)return console.warn("Single item size exceeds maxSize"),!1;let e=this.cache.get(a);if(e)e.data=b,this.totalSize=this.totalSize-e.size+d,e.size=d,this.moveToHead(e);else{let e=new c(a,b,d);this.cache.set(a,e),this.addToHead(e),this.totalSize+=d}for(;this.totalSize>this.maxSize&&this.cache.size>0;){let a=this.removeTail();this.cache.delete(a.key),this.totalSize-=a.size,null==this.onEvict||this.onEvict.call(this,a.key,a.data)}return!0}has(a){return this.cache.has(a)}get(a){let b=this.cache.get(a);if(b)return this.moveToHead(b),b.data}*[Symbol.iterator](){let a=this.head.next;for(;a&&a!==this.tail;){let b=a;yield[b.key,b.data],a=a.next}}remove(a){let b=this.cache.get(a);b&&(this.removeNode(b),this.cache.delete(a),this.totalSize-=b.size)}get size(){return this.cache.size}get currentSize(){return this.totalSize}}},31910:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addPathPrefix",{enumerable:!0,get:function(){return e}});let d=c(2213);function e(a,b){if(!a.startsWith("/")||!b)return a;let{pathname:c,query:e,hash:f}=(0,d.parsePath)(a);return""+b+c+e+f}},32198:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return g}});let d=c(50931),e=c(97857),f=c(58871);class g{static #a=this.EMPTY=new g(null,{metadata:{},contentType:null});static fromStatic(a,b){return new g(a,{metadata:{},contentType:b})}constructor(a,{contentType:b,waitUntil:c,metadata:d}){this.response=a,this.contentType=b,this.metadata=d,this.waitUntil=c}assignMetadata(a){Object.assign(this.metadata,a)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(a=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!a)throw Object.defineProperty(new f.InvariantError("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return(0,d.streamToString)(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(a){a.close()}}):"string"==typeof this.response?(0,d.streamFromString)(this.response):Buffer.isBuffer(this.response)?(0,d.streamFromBuffer)(this.response):Array.isArray(this.response)?(0,d.chainStreams)(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[(0,d.streamFromString)(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[(0,d.streamFromBuffer)(this.response)]:[this.response]}unshift(a){this.response=this.coerce(),this.response.unshift(a)}push(a){this.response=this.coerce(),this.response.push(a)}async pipeTo(a){try{await this.readable.pipeTo(a,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await a.close()}catch(b){if((0,e.isAbortError)(b))return void await a.abort(b);throw b}}async pipeToNodeResponse(a){await (0,e.pipeToNodeResponse)(this.readable,a,this.waitUntil)}}},32244:(a,b,c)=>{"use strict";c.d(b,{K:()=>l,r:()=>k});var d=c(31421),e=c(83498),f=c(684);function g(){let a=Number(process.env.MADARX_TOOL_OUTPUT_MAX_BYTES||5e4);return!Number.isFinite(a)||a<=0?5e4:Math.min(5e4,Math.floor(a))}function h(a){return(0,f.nc)(String(a||"").slice(0,g()))}function i(a,b){let c=g();return a.length>=c?a:a+String(b).slice(0,c-a.length)}function j(a,b){try{if(a.pid&&"win32"!==process.platform)return void process.kill(-a.pid,b)}catch(a){if(a?.code!=="ESRCH")throw a;return}a.kill(b)}function k(a={}){let b=String(a.script||"").trim();if(!b)throw Error("script is required");if(b.length>2e4)throw Error(`script is too large: ${b.length} chars; max 20000`);let c=Math.max(1e3,Math.min(6e5,Number(a.timeout_ms||12e4)||12e4));return{command:String(process.env.MADARX_BROWSER_HARNESS_BIN||"browser-harness-hermes"),script:b,timeoutMs:c}}async function l(a={}){let{command:b,script:c,timeoutMs:f}=k(a),g=Date.now();return await new Promise(a=>{let k="",l="",m=!1,n=!1,o=null,p=(0,d.spawn)(b,[],{cwd:(0,e.wn)(e.QG,e.un),shell:!1,detached:"win32"!==process.platform,stdio:["pipe","pipe","pipe"],env:Object.fromEntries(["PATH","HOME","USER","LOGNAME","TMPDIR","LANG","LC_ALL","BU_CDP_URL","BU_CDP_PORT","BU_CHROME_PROFILE"].filter(a=>process.env[a]).map(a=>[a,process.env[a]]))}),q=setTimeout(()=>{m=!0,j(p,"SIGTERM"),o=setTimeout(()=>{n||j(p,"SIGKILL")},2e3)},f);p.stdout.on("data",a=>{k=i(k,a)}),p.stderr.on("data",a=>{l=i(l,a)}),p.on("error",c=>{n||(n=!0,clearTimeout(q),o&&clearTimeout(o),a({ok:!1,tool:"browser_harness_run",status:"failed",command:b,error:c.message,stdout:h(k),stderr:h(l),duration_ms:Date.now()-g}))}),p.on("close",(c,d)=>{if(n)return;n=!0,clearTimeout(q),o&&clearTimeout(o);let e=m?"timeout":d?"failed":0===c?"complete":"failed";a({ok:0===c&&!d&&!m,tool:"browser_harness_run",status:e,command:b,exit_code:c,signal:d,stdout:h(k),stderr:h(l),duration_ms:Date.now()-g})}),p.stdin.end(`${c}
|
|
405
|
-
`)})}},32409:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{cS:()=>j,r_:()=>i,vg:()=>k});var e=c(64319),f=a([e]);function g(a,{includeBody:b=!1}={}){let c=Object.fromEntries((a.payload?.headers||[]).map(a=>[String(a.name).toLowerCase(),a.value])),d={id:a.id,thread_id:a.threadId,from:c.from||null,subject:c.subject||null,date:c.date||null,snippet:a.snippet||""};return b&&(d.to=c.to||null,d.body_text=function a(b={}){if(b.body?.data)return function(a=""){if(!a)return"";try{return Buffer.from(String(a),"base64url").toString("utf8")}catch{return""}}(b.body.data);let c=Array.isArray(b.parts)?b.parts:[],d=c.find(a=>"text/plain"===a.mimeType&&a.body?.data)||c.find(a=>a.body?.data);return d?a(d):""}(a.payload||{})),d}async function h(a,b,c,d){let f=(0,e.s)(d,c),g=await f(a,{headers:{Authorization:`Bearer ${b}`}});if(!g.ok)throw Error(`google api failed: ${g.status}`);return g.json()}async function i(a={},b={}){let c="gmail_messages_list",d=await (0,e.r)(b,c),f=new URL("https://gmail.googleapis.com/gmail/v1/users/me/messages");for(let b of(a.max_results&&f.searchParams.set("maxResults",String(a.max_results)),a.q&&f.searchParams.set("q",a.q),a.label_ids||a.labelIds||[]))f.searchParams.append("labelIds",String(b));let j=(await h(f,d,b,c)).messages||[];return Promise.all(j.map(async a=>{let e=await h(`https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(a.id)}?format=metadata`,d,b,c);return g(e)}))}async function j(a={},b={}){if(!a.message_id)throw Error("message_id is required");let c="gmail_message_read",d=await (0,e.r)(b,c),f=await h(`https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(a.message_id)}?format=full`,d,b,c);return g(f,{includeBody:!0})}async function k(a={},b={}){if(!a.thread_id)throw Error("thread_id is required");let c="gmail_thread_read",d=await (0,e.r)(b,c),f=await h(`https://gmail.googleapis.com/gmail/v1/users/me/threads/${encodeURIComponent(a.thread_id)}?format=full`,d,b,c);return{id:f.id,messages:(f.messages||[]).map(a=>g(a,{includeBody:!0}))}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},33311:(a,b)=>{"use strict";var c;Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{bgBlack:function(){return A},bgBlue:function(){return E},bgCyan:function(){return G},bgGreen:function(){return C},bgMagenta:function(){return F},bgRed:function(){return B},bgWhite:function(){return H},bgYellow:function(){return D},black:function(){return q},blue:function(){return u},bold:function(){return j},cyan:function(){return x},dim:function(){return k},gray:function(){return z},green:function(){return s},hidden:function(){return o},inverse:function(){return n},italic:function(){return l},magenta:function(){return v},purple:function(){return w},red:function(){return r},reset:function(){return i},strikethrough:function(){return p},underline:function(){return m},white:function(){return y},yellow:function(){return t}});let{env:d,stdout:e}=(null==(c=globalThis)?void 0:c.process)??{},f=d&&!d.NO_COLOR&&(d.FORCE_COLOR||(null==e?void 0:e.isTTY)&&!d.CI&&"dumb"!==d.TERM),g=(a,b,c,d)=>{let e=a.substring(0,d)+c,f=a.substring(d+b.length),h=f.indexOf(b);return~h?e+g(f,b,c,h):e+f},h=(a,b,c=a)=>f?d=>{let e=""+d,f=e.indexOf(b,a.length);return~f?a+g(e,b,c,f)+b:a+e+b}:String,i=f?a=>`\x1b[0m${a}\x1b[0m`:String,j=h("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m"),k=h("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),l=h("\x1b[3m","\x1b[23m"),m=h("\x1b[4m","\x1b[24m"),n=h("\x1b[7m","\x1b[27m"),o=h("\x1b[8m","\x1b[28m"),p=h("\x1b[9m","\x1b[29m"),q=h("\x1b[30m","\x1b[39m"),r=h("\x1b[31m","\x1b[39m"),s=h("\x1b[32m","\x1b[39m"),t=h("\x1b[33m","\x1b[39m"),u=h("\x1b[34m","\x1b[39m"),v=h("\x1b[35m","\x1b[39m"),w=h("\x1b[38;2;173;127;168m","\x1b[39m"),x=h("\x1b[36m","\x1b[39m"),y=h("\x1b[37m","\x1b[39m"),z=h("\x1b[90m","\x1b[39m"),A=h("\x1b[40m","\x1b[49m"),B=h("\x1b[41m","\x1b[49m"),C=h("\x1b[42m","\x1b[49m"),D=h("\x1b[43m","\x1b[49m"),E=h("\x1b[44m","\x1b[49m"),F=h("\x1b[45m","\x1b[49m"),G=h("\x1b[46m","\x1b[49m"),H=h("\x1b[47m","\x1b[49m")},33873:a=>{"use strict";a.exports=require("path")},34476:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getSortedRouteObjects:function(){return e},getSortedRoutes:function(){return d}});class c{insert(a){this._insert(a.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(a){void 0===a&&(a="/");let b=[...this.children.keys()].sort();null!==this.slugName&&b.splice(b.indexOf("[]"),1),null!==this.restSlugName&&b.splice(b.indexOf("[...]"),1),null!==this.optionalRestSlugName&&b.splice(b.indexOf("[[...]]"),1);let c=b.map(b=>this.children.get(b)._smoosh(""+a+b+"/")).reduce((a,b)=>[...a,...b],[]);if(null!==this.slugName&&c.push(...this.children.get("[]")._smoosh(a+"["+this.slugName+"]/")),!this.placeholder){let b="/"===a?"/":a.slice(0,-1);if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error('You cannot define a route with the same specificity as a optional catch-all route ("'+b+'" and "'+b+"[[..."+this.optionalRestSlugName+']]").'),"__NEXT_ERROR_CODE",{value:"E458",enumerable:!1,configurable:!0});c.unshift(b)}return null!==this.restSlugName&&c.push(...this.children.get("[...]")._smoosh(a+"[..."+this.restSlugName+"]/")),null!==this.optionalRestSlugName&&c.push(...this.children.get("[[...]]")._smoosh(a+"[[..."+this.optionalRestSlugName+"]]/")),c}_insert(a,b,d){if(0===a.length){this.placeholder=!1;return}if(d)throw Object.defineProperty(Error("Catch-all must be the last part of the URL."),"__NEXT_ERROR_CODE",{value:"E392",enumerable:!1,configurable:!0});let e=a[0];if(e.startsWith("[")&&e.endsWith("]")){let c=e.slice(1,-1),g=!1;if(c.startsWith("[")&&c.endsWith("]")&&(c=c.slice(1,-1),g=!0),c.startsWith("…"))throw Object.defineProperty(Error("Detected a three-dot character ('…') at ('"+c+"'). Did you mean ('...')?"),"__NEXT_ERROR_CODE",{value:"E147",enumerable:!1,configurable:!0});if(c.startsWith("...")&&(c=c.substring(3),d=!0),c.startsWith("[")||c.endsWith("]"))throw Object.defineProperty(Error("Segment names may not start or end with extra brackets ('"+c+"')."),"__NEXT_ERROR_CODE",{value:"E421",enumerable:!1,configurable:!0});if(c.startsWith("."))throw Object.defineProperty(Error("Segment names may not start with erroneous periods ('"+c+"')."),"__NEXT_ERROR_CODE",{value:"E288",enumerable:!1,configurable:!0});function f(a,c){if(null!==a&&a!==c)throw Object.defineProperty(Error("You cannot use different slug names for the same dynamic path ('"+a+"' !== '"+c+"')."),"__NEXT_ERROR_CODE",{value:"E337",enumerable:!1,configurable:!0});b.forEach(a=>{if(a===c)throw Object.defineProperty(Error('You cannot have the same slug name "'+c+'" repeat within a single dynamic path'),"__NEXT_ERROR_CODE",{value:"E247",enumerable:!1,configurable:!0});if(a.replace(/\W/g,"")===e.replace(/\W/g,""))throw Object.defineProperty(Error('You cannot have the slug names "'+a+'" and "'+c+'" differ only by non-word symbols within a single dynamic path'),"__NEXT_ERROR_CODE",{value:"E499",enumerable:!1,configurable:!0})}),b.push(c)}if(d)if(g){if(null!=this.restSlugName)throw Object.defineProperty(Error('You cannot use both an required and optional catch-all route at the same level ("[...'+this.restSlugName+']" and "'+a[0]+'" ).'),"__NEXT_ERROR_CODE",{value:"E299",enumerable:!1,configurable:!0});f(this.optionalRestSlugName,c),this.optionalRestSlugName=c,e="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error('You cannot use both an optional and required catch-all route at the same level ("[[...'+this.optionalRestSlugName+']]" and "'+a[0]+'").'),"__NEXT_ERROR_CODE",{value:"E300",enumerable:!1,configurable:!0});f(this.restSlugName,c),this.restSlugName=c,e="[...]"}else{if(g)throw Object.defineProperty(Error('Optional route parameters are not yet supported ("'+a[0]+'").'),"__NEXT_ERROR_CODE",{value:"E435",enumerable:!1,configurable:!0});f(this.slugName,c),this.slugName=c,e="[]"}}this.children.has(e)||this.children.set(e,new c),this.children.get(e)._insert(a.slice(1),b,d)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function d(a){let b=new c;return a.forEach(a=>b.insert(a)),b.smoosh()}function e(a,b){let c={},e=[];for(let d=0;d<a.length;d++){let f=b(a[d]);c[f]=d,e[d]=f}return d(e).map(b=>a[c[b]])}},34976:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$F:()=>m});var e=c(84104),f=c(67354),g=c(21118),h=a([e,f]);function i(a){var b;return a?(b=(0,e.Lf)().prepare("SELECT * FROM hail_review_gates WHERE id = ?").get(a))?{...b}:null:null}function j({id:a,engagement_id:b,gate_type:c,reviewer_role:d,reviewer_user_id:f=null,decision:h,comments:j=null,approval_request_id:k=null}){if(!["approved","rejected","revision_requested","pending"].includes(h))throw Error(`recordGateDecision: invalid decision "${h}"`);let l=(0,e.Lf)(),m=(0,e.kF)();if(a){if(!i(a))throw Error(`recordGateDecision: gate "${a}" not found`);return l.prepare(`
|
|
404
|
+
`).all(d),k=a.prepare("SELECT COUNT(*) n FROM mines_source_documents WHERE project_id = ?").get(d).n,l=a.prepare("SELECT COUNT(*) n FROM mines_document_chunks WHERE project_id = ?").get(d).n,p=b=>a.prepare("SELECT price_usd, price_unit, source FROM mines_market_snapshots WHERE lower(commodity)=lower(?) ORDER BY fetched_at DESC LIMIT 1").get(b),r=p("Cu"),t=p("Ag"),u=a.prepare("SELECT scenario, assumptions_json, result_json FROM mines_valuation_scenarios WHERE project_id = ? AND scenario LIKE 'operator_%' ORDER BY scenario").all(d);f.push(`**Prepared by:** MadarX OS \xb7 Mines | **Date:** ${g} | **Project:** \`${d}\``),f.push(`**Asset stage:** ${b.asset_stage} | **Commodity:** ${b.commodity||"Cu"} | **Jurisdiction:** ${b.state_province||"Sonora"}, ${b.country}`),f.push(""),f.push("> This memorandum is generated by autonomous agents from the project document archive and structured database. Every figure traces to a source document, a database aggregate, or a labelled estimate. Figures attributed to an operator scenario are conceptual and are **not** mineral resources."),f.push(""),f.push("## 1. Executive summary"),f.push("");let v=s(e,"deposit_type"),w=s(e,"asset_stage"),x=q(c,"exec_summary");x&&(f.push(x),f.push("")),v&&f.push(`- **Deposit type:** ${v.text} ${v.cite}`);let y=q(c,"thesis");y&&(f.push(`**Investment thesis.** ${y}`),f.push("")),w&&f.push(`- **Stage / resource status:** ${w.text} ${w.cite}`),i?.n&&f.push(`- **Drilling to date:** ${i.n} holes for ${o(i.m)} m [DrillHole aggregate]`),h?.n&&f.push(`- **Surface geochemistry:** ${h.n} trench channel samples averaging ${m(h.avg_cu,3)}% Cu [AssaySample aggregate]`),f.push(`- **Definitive valuation:** Not available — no declared resource. See \xa76 for a labelled operator scenario.`),f.push(""),f.push("## 2. Project overview"),f.push("");{let a=q(c,"overview");a&&(f.push(a),f.push(""))}for(let a of["property","mineralization","asset_stage"]){let b=s(e,a);b&&f.push(`- **${a.replace(/_/g," ")}:** ${b.text} ${b.cite}`)}f.push(""),f.push("## 3. Geology & mineralization"),f.push("");{let a=q(c,"geology");a&&(f.push(a),f.push(""))}for(let a of["deposit_type","geophysics"]){let b=s(e,a);b&&f.push(`- **${a.replace(/_/g," ")}:** ${b.text} ${b.cite}`)}f.push("");let z=[...e.keys()].filter(a=>a.startsWith("target_")).sort();if(z.length){for(let a of(f.push("### Defined targets"),f.push(""),z)){let b=(e.get(a)||[])[0];b&&f.push(`- **${a.replace("target_","").replace(/_/g," ")}:** ${b.value_text} [ExtractedFact:${b.id}${b.page_or_location?`, ${b.page_or_location}`:""}]`)}f.push("")}f.push("## 4. Exploration results"),f.push("");{let a=q(c,"exploration");a&&(f.push(a),f.push(""))}let A=s(e,"drilling_summary");if(A&&f.push(`${A.text} ${A.cite}`),f.push(""),j.length){for(let a of(f.push("**Best drill intercepts (Cu \xd7 width ranked):**"),f.push(""),f.push("| Interval | Width (m) | Cu % | Ag g/t | CuEq % |"),f.push("|----------|-----------|------|--------|--------|"),j)){let b={};try{b=JSON.parse(a.other_grades_json||"{}")}catch{}f.push(`| \`${a.sample_id}\` | ${o(a.width_m,1)} | ${m(a.cu_pct,3)} | ${null!=a.ag_ppm?m(a.ag_ppm,1):"—"} | ${null!=b.cueq_pct?m(b.cueq_pct,3):"—"} |`)}f.push(""),f.push("_[AssaySample drill_core rows; CuEq per source-report formula]_"),f.push("")}let B=s(e,"trenching_summary");B&&(f.push(`${B.text} ${B.cite}`),f.push(""));let C=[...e.keys()].filter(a=>a.startsWith("comparable_")).sort();if(C.length){f.push("## 5. Comparable assets (analogues in the same belt)"),f.push("");{let a=q(c,"comparables");a&&(f.push(a),f.push(""))}for(let a of C){let b=(e.get(a)||[])[0];b&&f.push(`- **${a.replace("comparable_","").replace(/_/g," ")}:** ${b.value_text} [ExtractedFact:${b.id}${b.page_or_location?`, ${b.page_or_location}`:""}]`)}f.push(""),f.push("_Analogues establish the geological model and the in-ground value range for a successful porphyry discovery in this belt. They are not a prediction of Batamote tonnage or grade._"),f.push("")}if(f.push("## 6. Valuation framework & indicative scenario"),f.push(""),f.push("No mineral resource has been declared for the project, therefore **no definitive (T1 in-situ or T2 DCF) valuation is produced** — the system does not assign tonnage or value to undefined mineralization. The figures below are a **conceptual operator scenario**, not a mineral resource and not a valuation opinion."),f.push(""),(r||t)&&(f.push(`**Metal price basis:** ${r?`Cu ${n(r.price_usd)}/lb`:""}${r&&t?" \xb7 ":""}${t?`Ag ${n(t.price_usd)}/oz`:""} (${r?.source||t?.source||"snapshot"}).`),f.push("")),u.length){for(let a of(f.push("| Scenario | Target tonnage | Cu grade | Indicative in-situ value |"),f.push("|----------|----------------|----------|--------------------------|"),u)){let b={},c={};try{b=JSON.parse(a.assumptions_json||"{}")}catch{}try{c=JSON.parse(a.result_json||"{}")}catch{}let d=a.scenario.replace("operator_","");f.push(`| ${d} | ${o(b.resource_tonnes)} t | ${m(b.grade_cu_pct,3)}% | ${n(c.in_situ_value_usd)} |`)}f.push(""),f.push("> **CONCEPTUAL EXPLORATION TARGET — IMPORTANT.** The tonnage and grade above are an operator-supplied conceptual exploration target expressed as a range. They are conceptual in nature; there has been insufficient exploration to define a mineral resource; and it is uncertain whether further exploration will result in the target being delineated as a mineral resource. These figures must not be construed as a mineral resource or a mineral reserve, and the in-situ values are an order-of-magnitude indication of exploration optionality only."),f.push("")}f.push("## 7. Data inventory & quality control"),f.push(""),f.push(`- **Documents catalogued:** ${o(k)} files across the project archive.`),f.push(`- **Text chunks indexed:** ${o(l)} for retrieval.`),i?.n&&f.push(`- **Structured drill holes:** ${i.n}; **trench assays:** ${h?.n||0}; **drill intercepts:** ${j.length}.`);let D=s(e,"qa_qc");D&&f.push(`- **QA/QC:** ${D.text} ${D.cite}`);let E=s(e,"data_verification");E&&f.push(`- **Data verification:** ${E.text} ${E.cite}`),f.push(""),f.push("## 8. Risk register"),f.push("");{let a=q(c,"risk_intro");a&&(f.push(a),f.push(""))}f.push("| Risk | Severity | Mitigation |"),f.push("|------|----------|------------|"),f.push("| No declared mineral resource (exploration risk) | High | Maiden resource drill program at El Choclo NW / Bata Sur |"),f.push("| Grade continuity not yet demonstrated at depth | Medium | Infill + step-out drilling; clay-alteration vectoring |"),f.push("| Metal price volatility | Medium | Long-dated optionality; copper structural demand |"),f.push("| Permitting / surface rights (Sonora) | Medium | Confirm tenure & community agreements in legal DD |"),f.push("| Data provenance (historic operators) | Low–Med | Teck data verified vs lab certificates; re-log key holes |"),f.push(""),f.push("## 9. Recommended work program"),f.push("");let F=s(e,"work_program");F&&(f.push(`${F.text} ${F.cite}`),f.push(""));let G=q(c,"recommendation");return G&&(f.push("_Indicative next-phase program (MadarX planning view, not from the technical report):_"),f.push(""),f.push(G),f.push("")),f.push("## 10. Limitations & disclaimers"),f.push(""),f.push("Structured figures are transcribed/extracted from the project NI 43-101 technical report and archive; comparable-asset figures are from public S-K 1300 reports referenced therein. Metal prices are dated market snapshots. The operator scenario is conceptual and not a mineral resource. This memorandum is decision-support analysis, not a qualified person's valuation opinion, and does not constitute investment advice."),f.push(""),f.push("---"),f.push("_Generated by `mines_report_generate` (due_diligence_memo). Numeric claims trace to `mines_extracted_facts`, SQL aggregates, or persisted `mines_valuation_scenarios` rows._"),{markdown:f.join("\n"),facts_cited:[...e.values()].reduce((a,b)=>a+b.length,0),comparables:C.length,targets:z.length,scenario_rows:u.length}}(w,y,B);c=a.markdown,d=`Investment Diligence Memo — ${y.name}`,z={facts_cited:a.facts_cited,comparables:a.comparables,targets:a.targets,scenario_rows:a.scenario_rows}}else if("pfs_readiness_report"===l){let a=function(a,b,c={}){let d=b.id,e=function(a,b){let c=new Set(a.prepare("SELECT DISTINCT fact_type FROM mines_extracted_facts WHERE project_id = ?").all(b).map(a=>a.fact_type)),d=(...a)=>[...c].some(b=>a.some(a=>b===a||b.startsWith(`${a}_`)||b.includes(a))),e=a.prepare("SELECT COUNT(*) n, SUM(total_depth_m) m FROM mines_drill_holes WHERE project_id = ?").get(b),f=a.prepare("SELECT COUNT(*) n FROM mines_assay_samples WHERE project_id = ?").get(b),g=a.prepare("SELECT COUNT(*) n FROM mines_source_documents WHERE project_id = ?").get(b).n,h=a.prepare("SELECT COUNT(*) n FROM mines_document_chunks WHERE project_id = ?").get(b).n,i=[...c].filter(a=>a.startsWith("target_")).length,j=[...c].filter(a=>a.startsWith("comparable_")).length,k=a.prepare("SELECT COUNT(*) n FROM mines_valuation_scenarios WHERE project_id = ? AND scenario NOT LIKE 'operator_%'").get(b).n,l=a.prepare("SELECT COUNT(*) n FROM mines_valuation_scenarios WHERE project_id = ? AND scenario LIKE 'operator_%'").get(b).n,m=d("mineral_resource","resource_estimate","resource_statement","resource_classification","measured_indicated"),n=d("mineral_reserve","reserve_estimate","proven","probable"),o=d("metallurg","recovery","met_testwork","processing"),p=d("mine_plan","production_schedule","mining_method","pit","geotech"),q=d("capex","opex","cost_estimate","aisc"),r=d("market","price_deck","offtake")||a.prepare("SELECT COUNT(*) n FROM mines_market_snapshots").get().n>0,s=c.has("qa_qc"),t=c.has("data_verification"),u=d("deposit_type","mineralization","geophysics","property")||i>0,v=(e?.n||0)>0||d("drilling_summary","trenching_summary");return{factTypes:c,drill:e,assay:f,docCount:g,chunkCount:h,targets:i,comparables:j,indicativeScenarios:k,conceptualScenarios:l,hasResource:m,hasReserve:n,hasMetTestwork:o,hasMinePlan:p,hasCostEstimate:q,hasMarket:r,hasQaQc:s,hasDataVerification:t,hasGeology:u,hasDrilling:v}}(a,d),f=[],g=new Date().toISOString().slice(0,10),h=e.hasResource&&e.hasReserve;f.push(`**Prepared by:** MadarX OS \xb7 Mines | **Date:** ${g} | **Project:** \`${d}\``),f.push(`**Asset stage:** ${b.asset_stage} | **Commodity:** ${b.commodity||"n/a"} | **Jurisdiction:** ${b.state_province||"n/a"}, ${b.country||"n/a"}`),f.push(""),f.push("> **This is a PFS-READINESS ASSESSMENT, not a Pre-Feasibility Study.** A PFS requires a Mineral Reserve converted from Measured & Indicated Resources (no Inferred), with Modifying Factors, a mine plan, recovery testwork, and capex/opex to \xb125% (AACE Class 4), each signed off by a competent QP/CP. This report measures the asset against that standard, inventories the data that exists (every count traces to a database row), and lists the gaps and work program required to reach PFS confidence. It does **not** declare a resource, a reserve, or any figure the source data does not contain."),f.push(""),f.push("## 1. Readiness verdict"),f.push("");{let a=q(c,"verdict");a&&(f.push(a),f.push(""))}h?f.push("**A Mineral Reserve appears to exist in the dataset.** A PFS may be supportable — proceed to the section-by-section coverage below to confirm each discipline meets PFS confidence, then route reserve/economics work to the valuation analyst and a competent QP."):e.hasResource&&!e.hasReserve?f.push("**A Mineral Resource is present but no Mineral Reserve has been declared.** A PFS is **not yet supportable**. The defining PFS step — conversion of Measured & Indicated Resources to a Proven/Probable Reserve via Modifying Factors (template \xa715) — has not been done. This is the critical path."):(f.push("**No Mineral Resource is declared for this asset.** A PFS is **not supportable and must not be produced.** Per the PFS contract (template \xa71, checklist gate G3) reserves derive from Measured & Indicated Resources only — and there is no resource to convert. The asset sits at an **exploration / scoping** confidence level. The work below maps a path from exploration data to a maiden resource, and from there toward PFS."),e.conceptualScenarios>0&&(f.push(""),f.push(`> The project carries ${e.conceptualScenarios} conceptual operator scenario(s) in \`mines_valuation_scenarios\`. These are exploration-target order-of-magnitude figures, **not** a mineral resource, and cannot seed a reserve or a PFS economic case.`))),f.push("");let i=e.hasResource?x.ready:e.hasDrilling&&(e.hasQaQc||e.hasDataVerification)||e.hasGeology?x.partial:x.gap,j=e.hasMinePlan&&e.hasMetTestwork?x.ready:e.hasMinePlan||e.hasMetTestwork?x.partial:x.gap,k=e.hasReserve?x.ready:e.hasResource?x.gap:x.blocked,l=e.hasReserve&&e.hasCostEstimate?x.ready:e.hasReserve?x.partial:x.blocked,m=h?x.partial:x.blocked;f.push("## 2. Decision-gate status"),f.push(""),f.push("_Gates are sequential (template \xa72). A downstream gate is `Blocked` until its prerequisite passes — no amount of work on a later gate substitutes for the gate before it._"),f.push(""),f.push("| Gate | Requirement | Status |"),f.push("|------|-------------|--------|"),f.push(`| **G0** Study launch | Charter, code, scope, QPs, budget, gates fixed | ${x.gap} (no study charter in dataset) |`),f.push(`| **G1** Geological foundation | DB validated; QA/QC documented; M/I/I classified; RPEEE shown | ${i} |`),f.push(`| **G2** Options / trade-off | Mining method, process route, tailings, power/water selected | ${j} |`),f.push(`| **G3** Reserve declaration | M&I only; no Inferred; dilution & losses; Modifying Factors | ${k} |`),f.push(`| **G4** Estimate & economics | Capex/opex \xb125%; ~15% contingency; reserve-based model | ${l} |`),f.push(`| **G5** Assurance & disclosure | Risk register, fatal-flaw + independent review, QP sign-offs | ${m} |`),f.push("");let n=a=>a?x.partial:x.gap,p=[["1–3 \xb7 Summary / Introduction / Reliance",e.docCount>0,`${o(e.docCount)} source documents catalogued`],["4 \xb7 Property Description & Location",e.factTypes.has("property"),e.factTypes.has("property")?"property fact present":"no tenure/location fact extracted"],["5 \xb7 Accessibility, Climate, Infrastructure",!1,"not extracted — requires site/infrastructure data"],["6 \xb7 History",e.factTypes.has("deposit_type")||e.docCount>0,"historic archive present"],["7 \xb7 Geological Setting & Mineralization",e.hasGeology,e.hasGeology?`geology facts + ${e.targets} target(s)`:"no geology facts"],["8 \xb7 Deposit Types",e.factTypes.has("deposit_type"),e.factTypes.has("deposit_type")?"deposit_type fact present":"no deposit_type fact"],["9–10 \xb7 Exploration & Drilling",e.hasDrilling,`${e.drill?.n||0} drill holes; drilling/trenching summaries`],["11–12 \xb7 Sampling, Analyses, Data Verification",e.hasQaQc||e.hasDataVerification,`${e.assay?.n||0} assay samples; QA/QC=${e.hasQaQc}; verification=${e.hasDataVerification}`],["13 \xb7 Mineral Processing & Metallurgical Testing",e.hasMetTestwork,e.hasMetTestwork?"testwork present":"no metallurgical testwork — required for recovery model"],["14 \xb7 Mineral Resource Estimate",e.hasResource,e.hasResource?"resource present":"NO RESOURCE — blocks reserve & economics"],["15 \xb7 Mineral Reserve Estimate (defining PFS section)",e.hasReserve,e.hasReserve?"reserve present":"NO RESERVE — the PFS cannot exist without this"],["16 \xb7 Mining Methods",e.hasMinePlan,e.hasMinePlan?"mine-plan/geotech facts present":"no mine plan / geotechnical model"],["17 \xb7 Recovery Methods",e.hasMetTestwork,e.hasMetTestwork?"derived from testwork":"blocked on metallurgical testwork"],["18 \xb7 Project Infrastructure",!1,"not extracted — power/water/tailings/access required"],["19 \xb7 Market Studies & Contracts",e.hasMarket,e.hasMarket?"market snapshots/facts present":"no price deck / offtake"],["20 \xb7 Environmental, Permitting, Social",!1,"not extracted — baseline/permitting register required"],["21 \xb7 Capital & Operating Costs",e.hasCostEstimate,e.hasCostEstimate?"cost facts present":"no capex/opex estimate (need AACE Class 4)"],["22 \xb7 Economic Analysis",e.hasReserve&&e.hasCostEstimate,"requires a reserve-based model"],["23 \xb7 Adjacent Properties",e.comparables>0,`${e.comparables} comparable asset(s)`],["25–26 \xb7 Interpretation, Conclusions & Recommendations",e.docCount>0,"authored from the above"]];for(let[a,b,c]of(f.push("## 3. PFS section coverage (NI 43-101 body)"),f.push(""),f.push("| Section | Status | Evidence in dataset |"),f.push("|---------|--------|---------------------|"),p)){let d=a.startsWith("14 ")?e.hasResource?x.ready:x.gap:a.startsWith("15 ")?e.hasReserve?x.ready:e.hasResource?x.gap:x.blocked:n(b);f.push(`| ${a} | ${d} | ${c} |`)}for(let[a,b]of(f.push(""),f.push("_Status is computed from `mines_extracted_facts` types and SQL aggregates — a `Gap` means the data type is absent from the database, not that it was judged inadequate._"),f.push(""),f.push("## 4. The PFS contract (must all hold to declare a PFS)"),f.push(""),[["Reserves from Measured & Indicated only (no Inferred)",e.hasReserve],["Dilution & mining losses incorporated",e.hasReserve&&e.hasMinePlan],["Modifying Factors formally applied & documented",e.hasReserve],["Capex/opex \xb125%, ~15% contingency, AACE Class 4",e.hasCostEstimate],["Reserve-based financial model, positive across a downside",e.hasReserve&&e.hasCostEstimate],["Each discipline signed off by a competent QP/CP",h]]))f.push(`- [${b?"x":" "}] ${a}`);f.push(""),h||f.push("Until every box is checked, the asset is **pre-PFS**. The earliest unchecked box on the critical path is where work must start (see \xa76)."),f.push(""),f.push("## 5. Data inventory"),f.push(""),f.push(`- **Documents catalogued:** ${o(e.docCount)} \xb7 **text chunks indexed:** ${o(e.chunkCount)}`),f.push(`- **Structured drill holes:** ${e.drill?.n||0}${e.drill?.m?` for ${o(e.drill.m)} m`:""} \xb7 **assay samples:** ${e.assay?.n||0}`),f.push(`- **Extracted fact types:** ${e.factTypes.size} \xb7 **defined targets:** ${e.targets} \xb7 **comparables:** ${e.comparables}`),f.push(`- **Valuation scenarios:** ${e.indicativeScenarios} indicative (T1/T2 runs) \xb7 ${e.conceptualScenarios} conceptual operator-target — neither is a declared resource`),f.push(""),f.push("_Counts are read directly from `mines_source_documents`, `mines_document_chunks`, `mines_drill_holes`, `mines_assay_samples`, `mines_extracted_facts`, and `mines_valuation_scenarios`._"),f.push(""),f.push("## 6. Critical-path gaps (ordered)"),f.push("");{let a=q(c,"gap_intro");a&&(f.push(a),f.push(""))}let r=[];e.hasResource||r.push("**Maiden Mineral Resource estimate** — the single hard blocker. Requires sufficient drill density, QA/QC-validated assays, density data, domaining, a block model, classification (M/I/I), and RPEEE within a constraining shape. Until this exists, no reserve, no economics, no PFS."),e.hasMetTestwork||r.push("**Metallurgical testwork** — representative samples across lithology/alteration/oxidation/depth/grade; a recovery model by domain (not a single point). Blocks \xa713/\xa717."),e.hasResource&&!e.hasMinePlan&&r.push("**Mine plan & geotechnical model** — method/pit-configuration trade-off, slope/support parameters, production schedule. Required before reserve conversion."),e.hasResource&&!e.hasReserve&&r.push("**Reserve conversion (\xa715)** — apply Modifying Factors to M&I, incorporate dilution & mining losses, derive Proven/Probable. This is the defining PFS step."),e.hasCostEstimate||r.push("**Capex/opex estimate to \xb125% (AACE Class 4)** — formal Basis of Estimate, vendor budget quotes on major items, ~15% risk-based contingency. Blocks \xa721/\xa722."),r.push("**Infrastructure, water & tailings study** — power/water/access; site water balance; tailings option + GISTM alignment; confirm no fatal flaw."),r.push("**Environmental / permitting / social baseline** — multi-season baseline, permitting register on the critical path, closure cost flowed to the model."),r.push("**Competent QP/CP sign-off per discipline** — and an independent / peer technical review before any disclosure."),r.forEach((a,b)=>f.push(`${b+1}. ${a}`)),f.push(""),f.push("## 7. Recommended work program to reach PFS"),f.push("");let s=a.prepare("SELECT id, value_text, page_or_location FROM mines_extracted_facts WHERE project_id = ? AND fact_type = 'work_program' LIMIT 1").get(d);s&&(f.push(`${s.value_text} [ExtractedFact:${s.id}${s.page_or_location?`, ${s.page_or_location}`:""}]`),f.push(""));let t=q(c,"work_program")||q(c,"recommendation");return t?(f.push("_Indicative phased program (MadarX planning view, not from the technical report):_"),f.push(""),f.push(t),f.push("")):s||(f.push("Phase the program to the gate sequence above: (1) resource-definition drilling → maiden resource (G1); (2) metallurgical testwork + mining/geotech trade-off (G2); (3) reserve conversion with Modifying Factors (G3); (4) Class 4 cost estimate + reserve-based model (G4); (5) risk, independent review, QP sign-off (G5). Budget and schedule each phase before launch."),f.push("")),f.push("## 8. Limitations & disclaimers"),f.push(""),f.push("This is a readiness assessment generated by autonomous agents from the project database and document archive. Statuses reflect the **presence** of data types, not a competent person's judgement of their adequacy. The absence of a resource/reserve in the database is reported as a gap, never filled with an estimate. This document is decision-support analysis; it is not a Pre-Feasibility Study, not a qualified person's opinion, and does not constitute investment advice. Producing an actual PFS requires the work program above and competent-person sign-off under the applicable reporting code (NI 43-101 / S-K 1300 / JORC)."),f.push(""),f.push("---"),f.push("_Generated by `mines_report_generate` (pfs_readiness_report). Gate/section statuses derive from `mines_extracted_facts` types and SQL aggregates; no figure is asserted that the source data does not contain. Rubric: `docs/mines/pfs-best-practice-template.md` + `pfs-best-practice-checklist.md`._"),{markdown:f.join("\n"),pfs_feasible:h,has_resource:e.hasResource,has_reserve:e.hasReserve,gaps_count:r.length,fact_types:e.factTypes.size,documents:e.docCount}}(w,y,B);c=a.markdown,d=`PFS-Readiness Assessment — ${y.name}`,z={pfs_feasible:a.pfs_feasible,has_resource:a.has_resource,has_reserve:a.has_reserve,gaps_count:a.gaps_count,fact_types:a.fact_types,documents:a.documents}}else{let a=await r(w,y,B);c=a.markdown,d=`Interpretation Memo — ${y.name}`,z={numeric_claims_count:a.numeric_claims_count,chunk_citations_count:a.chunk_citations_count,retrieval_mode:a.retrieval_mode}}let C=(0,k.Om)([a?.space_id,y.default_space_id],{fallback:null}),D=function(a,b){let c=a.prepare("SELECT os_project_id FROM mines_projects WHERE id = ?").get(b);return c?.os_project_id||null}(w,h);try{for(let a of C?w.prepare("SELECT id FROM artifacts WHERE title = ? AND space_id = ?").all(d,C):w.prepare("SELECT id FROM artifacts WHERE title = ? AND project_id = ?").all(d,D||"personal"))try{(0,f.CM)(a.id)}catch{}}catch{}let E=(0,f.Dg)({title:d,kind:A,content:c,project_id:D,agent_id:b.agent_id||null,space_id:C,dedupe_key:""});if(C&&!E.deduped)try{(0,k.h5)(E.artifact_id,C)}catch{}try{(0,i.pQ)({user_id:b.acting_on_behalf_of_user_id||b.user_id||"system",org_id:"personal-org",action:"mines.report.generated",status:"success",summary:`Generated ${l} for ${y.name}`,action_target_id:E.artifact_id,action_target_type:"artifact",meta:{project_id:h,report_kind:l,artifact_id:E.artifact_id,...z}})}catch{}return{status:"ok",artifact_id:E.artifact_id,report_kind:l,space_id:C,chunk_citations_count:z.chunk_citations_count??0,...z}}d()}catch(a){d(a)}})},27704:(a,b,c)=>{"use strict";c.d(b,{default:()=>k});var d=c(21124),e=c(38301),f=c(23312),g=c(43815),h=c(85708);let i=(0,h.createServerReference)("4081e58c00b062ff7a62a36bd7e36cb7320a9553f9",h.callServer,void 0,h.findSourceMapURL,"deleteProjectAction");function j({disabled:a}){let{pending:b}=(0,f.useFormStatus)();return(0,d.jsx)("button",{type:"submit",className:"admin-button danger",disabled:b||a,"aria-busy":b?"true":void 0,children:b?"Deleting…":"Delete project"})}function k({projectId:a,projectName:b,projectSlug:c,isProtected:f}){let[h,k]=e.useState(!1),[l,m]=e.useState("");if(f)return(0,d.jsxs)("span",{className:"admin-button secondary project-delete is-locked","aria-disabled":"true",title:"The Personal project is the default scope and cannot be deleted.",children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{marginRight:6,verticalAlign:"-1px"},children:[(0,d.jsx)("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2"}),(0,d.jsx)("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),"Protected"]});e.useEffect(()=>{h||m("")},[h]);let n=l.trim()===c;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",className:"admin-button secondary project-delete",onClick:()=>k(!0),"aria-label":`Delete ${b}`,children:"Delete"}),(0,d.jsx)(g.A,{open:h,onClose:()=>k(!1),eyebrow:"Delete project",title:`Delete ${b}?`,tone:"danger",children:(0,d.jsxs)("form",{className:"agents-modal-form",action:i,children:[(0,d.jsx)("input",{type:"hidden",name:"project_id",value:a}),(0,d.jsx)("p",{className:"agents-modal-help",children:"This removes the project, its agents, Disk files, memory, secrets, and audit history. The folder on your local drive is left untouched."}),(0,d.jsx)("section",{className:"agents-modal-section",children:(0,d.jsxs)("label",{className:"agents-modal-field wide",children:[(0,d.jsxs)("span",{children:["Type ",(0,d.jsx)("code",{className:"agents-modal-inline-code",children:c})," to confirm"]}),(0,d.jsx)("input",{type:"text",autoComplete:"off",spellCheck:!1,value:l,onChange:a=>m(a.target.value),placeholder:c,autoFocus:!0})]})}),(0,d.jsxs)("footer",{className:"agents-modal-foot",children:[(0,d.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>k(!1),children:"Cancel"}),(0,d.jsx)(j,{disabled:!n})]})]})})]})}},27746:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{X:()=>t,Z6:()=>p,dd:()=>n,mr:()=>r,sq:()=>q,sv:()=>o,vO:()=>s});var e=c(73024),f=c(76760),g=c(42382),h=c(67354),i=c(684),j=a([g,h]);[g,h]=j.then?(await j)():j;let u=new Set([".git","node_modules",".next","data"]);function k(a,b,c={}){(0,g.appendAudit)({type:`local.${a}`,summary:`${a} ${b}`,status:b,meta:c})}function l(a,b,c){return(0,h.D6)({action_type:a,risk:"medium",summary:`${a} requested for ${c}`,payload:{input:{...b,content:b.content?`[${String(b.content).length} chars]`:void 0},path:c}})}function m(a){return b=>b.path===a}async function n(a={}){let{path:b}=(0,i.hC)(a.path),c=Number(process.env.MADARX_FILE_READ_MAX_BYTES||1e5),d=e.statSync(b);if(!d.isFile())throw Error("Path is not a file");if(d.size>c)throw Error(`File too large: ${d.size} bytes`);let f=e.readFileSync(b,"utf8").split(/\r?\n/),g=Math.max(1,Number(a.offset||1)),h=Math.max(1,Math.min(2e3,Number(a.limit||500))),j=f.slice(g-1,g-1+h).join("\n");return k("file_read","complete",{path:b,bytes:Buffer.byteLength(j)}),{ok:!0,tool:"file_read",path:b,content:(0,i.nc)(j),metadata:{line_count:f.length,offset:g,limit:h}}}async function o(a={}){let{path:b}=(0,i.hC)(a.path||"."),c=Math.max(1,Math.min(500,Number(a.limit||100))),d=[];for(let a of e.readdirSync(b,{withFileTypes:!0})){if(d.length>=c)break;try{(0,i.hC)(f.join(b,a.name))}catch{continue}u.has(a.name)||d.push({name:a.name,type:a.isDirectory()?"directory":a.isFile()?"file":"other"})}return k("directory_list","complete",{path:b,count:d.length}),{ok:!0,tool:"directory_list",path:b,entries:d,metadata:{count:d.length}}}function p(a={}){let{path:b}=(0,i.hC)(a.path);if((0,i.Oe)(b))throw Error(`Write access denied: path is under a read-only root: ${a.path}`);return{absPath:b}}async function q(a={},b={}){let{absPath:c}=p(a);if(!b.owner_trusted&&!(0,h.v)(a.approval_id,{action_type:"file_write",matches:m(c)})){let b=l("file_write",a,c);return{ok:!1,status:"approval_required",approval_request_id:b.id,reason:"File writes require approval"}}return!1!==a.create_dirs&&e.mkdirSync(f.dirname(c),{recursive:!0}),e.writeFileSync(c,String(a.content??""),"utf8"),k("file_write","complete",{path:c}),{ok:!0,tool:"file_write",path:c,metadata:{bytes:Buffer.byteLength(String(a.content??""))}}}function r(a={}){let{path:b}=(0,i.hC)(a.path);if((0,i.Oe)(b))throw Error(`Write access denied: path is under a read-only root: ${a.path}`);let c=String(a.old_string??"");if(!c)throw Error("old_string is required");let d=e.readFileSync(b,"utf8"),f=d.split(c).length-1;if(!f)throw Error("old_string not found");if(f>1&&!a.replace_all)throw Error("old_string is ambiguous");return{absPath:b,content:d,matches:f,oldString:c}}async function s(a={},b={}){let{absPath:c,content:d,matches:f,oldString:g}=r(a),i=String(a.new_string??"");if(!b.owner_trusted&&!(0,h.v)(a.approval_id,{action_type:"file_patch",matches:m(c)})){let b=l("file_patch",{...a,new_string:`[${i.length} chars]`},c);return{ok:!1,status:"approval_required",approval_request_id:b.id,reason:"File patches require approval"}}return e.writeFileSync(c,a.replace_all?d.split(g).join(i):d.replace(g,i),"utf8"),k("file_patch","complete",{path:c,replacements:a.replace_all?f:1}),{ok:!0,tool:"file_patch",path:c,metadata:{replacements:a.replace_all?f:1}}}async function t(a={}){let{path:b}=(0,i.hC)(a.path||"."),c=String(a.pattern||"");if(!c)throw Error("pattern is required");let d=Math.max(1,Math.min(200,Number(a.limit||50))),g=RegExp(c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),h=a.target||"content",j=a.file_glob?String(a.file_glob):null,l=j?RegExp("^"+j.split("*").map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i"):null,m=[];for(let a of function a(b,c=[],d=1e3){if(c.length>=d)return c;for(let g of e.readdirSync(b,{withFileTypes:!0})){if(u.has(g.name))continue;let e=f.join(b,g.name);if(g.isDirectory()?a(e,c,d):g.isFile()&&c.push(e),c.length>=d)break}return c}(b,[],5e3)){if(m.length>=d)break;try{(0,i.hC)(a)}catch{continue}if(!l||l.test(f.basename(a))){if("path"===h||"name"===h){g.test("name"===h?f.basename(a):a)&&m.push({path:a});continue}e.statSync(a).size>25e4||/\.sqlite/.test(a)||/^\.env/.test(f.basename(a))||e.readFileSync(a,"utf8").split(/\r?\n/).forEach((b,c)=>{m.length<d&&g.test(b)&&m.push({path:a,line:c+1,text:(0,i.nc)(b)})})}}return k("file_search","complete",{path:b,count:m.length}),{ok:!0,tool:"file_search",path:b,results:m,metadata:{count:m.length}}}d()}catch(a){d(a)}})},27806:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{decryptActionBoundArgs:function(){return s},encryptActionBoundArgs:function(){return r}}),c(95818);let d=c(83183),e=c(51318),f=c(50931),g=c(54210),h=c(63033),i=c(90151),j=function(a){return a&&a.__esModule?a:{default:a}}(c(46204)),k=new TextEncoder,l=new TextDecoder,m=void 0,n=void 0;async function o(a,b){let c=await (0,g.getActionEncryptionKey)();if(void 0===c)throw Object.defineProperty(Error("Missing encryption key for Server Action. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E65",enumerable:!1,configurable:!0});let d=atob(b),e=d.slice(0,16),f=d.slice(16),h=l.decode(await (0,g.decrypt)(c,(0,g.stringToUint8Array)(e),(0,g.stringToUint8Array)(f)));if(!h.startsWith(a))throw Object.defineProperty(Error("Invalid Server Action payload: failed to decrypt."),"__NEXT_ERROR_CODE",{value:"E191",enumerable:!1,configurable:!0});return h.slice(a.length)}async function p(a,b){let c=await (0,g.getActionEncryptionKey)();if(void 0===c)throw Object.defineProperty(Error("Missing encryption key for Server Action. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E65",enumerable:!1,configurable:!0});let d=new Uint8Array(16);h.workUnitAsyncStorage.exit(()=>crypto.getRandomValues(d));let e=(0,g.arrayBufferToString)(d.buffer),f=await (0,g.encrypt)(c,d,k.encode(a+b));return btoa(e+(0,g.arrayBufferToString)(f))}var q=function(a){return a[a.Ready=0]="Ready",a[a.Pending=1]="Pending",a[a.Complete=2]="Complete",a}(q||{});let r=j.default.cache(async function a(b,...c){let e=h.workUnitAsyncStorage.getStore(),j=e?(0,h.getCacheSignal)(e):void 0,{clientModules:k}=(0,g.getClientReferenceManifestForRsc)(),l=Error();Error.captureStackTrace(l,a);let n=!1,o=e?(0,i.createHangingInputAbortSignal)(e):void 0,q=0;function r(){0===q&&(q=1,null==j||j.beginRead())}function s(){1===q&&(null==j||j.endRead()),q=2}o&&j&&o.addEventListener("abort",r,{once:!0});let t=await (0,f.streamToString)((0,d.renderToReadableStream)(c,k,{filterStackFrame:m,signal:o,onError(a){(null==o||!o.aborted)&&(n||(n=!0,l.message=a instanceof Error?a.message:String(a)))}}),o);if(n)throw s(),l;if(!e)return p(b,t);r();let u=(0,h.getPrerenderResumeDataCache)(e),v=(0,h.getRenderResumeDataCache)(e),w=b+t,x=(null==u?void 0:u.encryptedBoundArgs.get(w))??(null==v?void 0:v.encryptedBoundArgs.get(w));if(x)return x;let y=await p(b,t);return s(),null==u||u.encryptedBoundArgs.set(w,y),y});async function s(a,b){let c,d=await b,f=h.workUnitAsyncStorage.getStore();if(f){let b=(0,h.getCacheSignal)(f),e=(0,h.getPrerenderResumeDataCache)(f),g=(0,h.getRenderResumeDataCache)(f);(c=(null==e?void 0:e.decryptedBoundArgs.get(d))??(null==g?void 0:g.decryptedBoundArgs.get(d)))||(null==b||b.beginRead(),c=await o(a,d),null==b||b.endRead(),null==e||e.decryptedBoundArgs.set(d,c))}else c=await o(a,d);let{edgeRscModuleMapping:i,rscModuleMapping:j}=(0,g.getClientReferenceManifestForRsc)();return await (0,e.createFromReadableStream)(new ReadableStream({start(a){switch(a.enqueue(k.encode(c)),null==f?void 0:f.type){case"prerender":case"prerender-runtime":f.renderSignal.aborted?a.close():f.renderSignal.addEventListener("abort",()=>a.close(),{once:!0});break;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case void 0:return a.close()}}}),{findSourceMapURL:n,serverConsumerManifest:{moduleLoading:null,moduleMap:j,serverModuleMap:(0,g.getServerModuleMap)()}})}},28354:a=>{"use strict";a.exports=require("util")},28838:(a,b,c)=>{"use strict";c.d(b,{Qw:()=>m,U5:()=>l});var d=c(76760),e=c(80099);let f=Object.freeze(["strict","balanced","permissive"]),g="strict",h="MADARX_PRINTING_PRESS_SECURITY_MODE",i=new Set,j=null,k=0;function l(a){let b=a??function(){let a=Date.now();if(a-k<1500)return j;try{let a=process.env.MADARX_DATA_DIR||process.env.VILLA515_DATA_DIR,b=a?d.resolve(a):process.env.MADARX_HOME?d.join(d.resolve(process.env.MADARX_HOME),"data"):d.resolve(process.cwd(),"data"),c=d.join(b,"madarx.sqlite"),f=new e.DatabaseSync(c,{readOnly:!0});try{let a=f.prepare("SELECT value FROM config WHERE key = ?").get("printing_press_security_mode_override");j=a?.value||null}finally{f.close()}}catch{j=null}return k=a,j}()??process.env[h];if(!b)return g;let c=String(b).trim().toLowerCase();return f.includes(c)?c:(i.has(c)||(i.add(c),console.warn(`[printing-press] Unknown ${h}="${b}" — defaulting to "${g}".`)),g)}function m(a){let b=f.includes(a)?a:g;return"strict"===b?Object.freeze({mode:"strict",force_approval:!0,allowlist_default_allow:!1,allow_network_write_clis:!1,allow_mcp_mount:!1,rate_limit_multiplier:1,production_safe:!0,warn_in_production:!1,allow_install_at_runtime:!0,banner:"red",banner_message:"Strict mode: every Printing Press action requires explicit approval."}):"balanced"===b?Object.freeze({mode:"balanced",force_approval:!1,allowlist_default_allow:!1,allow_network_write_clis:!0,allow_mcp_mount:!0,rate_limit_multiplier:2,production_safe:!0,warn_in_production:!0,allow_install_at_runtime:!0,banner:"amber",banner_message:"Balanced mode: trust-mode rules apply. Allowlist still default-deny."}):Object.freeze({mode:"permissive",force_approval:!1,allowlist_default_allow:!0,allow_network_write_clis:!0,allow_mcp_mount:!0,rate_limit_multiplier:5,production_safe:!1,warn_in_production:!0,allow_install_at_runtime:!0,banner:"grey",banner_message:"Permissive mode: only suitable for sandboxes. Not allowed in production."})}},29089:a=>{(()=>{"use strict";var b={491:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ContextAPI=void 0;let d=c(223),e=c(172),f=c(930),g="context",h=new d.NoopContextManager;class i{constructor(){}static getInstance(){return this._instance||(this._instance=new i),this._instance}setGlobalContextManager(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}active(){return this._getContextManager().active()}with(a,b,c,...d){return this._getContextManager().with(a,b,c,...d)}bind(a,b){return this._getContextManager().bind(a,b)}_getContextManager(){return(0,e.getGlobal)(g)||h}disable(){this._getContextManager().disable(),(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.ContextAPI=i},930:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagAPI=void 0;let d=c(56),e=c(912),f=c(957),g=c(172);class h{constructor(){function a(a){return function(...b){let c=(0,g.getGlobal)("diag");if(c)return c[a](...b)}}let b=this;b.setLogger=(a,c={logLevel:f.DiagLogLevel.INFO})=>{var d,h,i;if(a===b){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return b.error(null!=(d=a.stack)?d:a.message),!1}"number"==typeof c&&(c={logLevel:c});let j=(0,g.getGlobal)("diag"),k=(0,e.createLogLevelDiagLogger)(null!=(h=c.logLevel)?h:f.DiagLogLevel.INFO,a);if(j&&!c.suppressOverrideMessage){let a=null!=(i=Error().stack)?i:"<failed to generate stacktrace>";j.warn(`Current logger will be overwritten from ${a}`),k.warn(`Current logger will overwrite one already registered from ${a}`)}return(0,g.registerGlobal)("diag",k,b,!0)},b.disable=()=>{(0,g.unregisterGlobal)("diag",b)},b.createComponentLogger=a=>new d.DiagComponentLogger(a),b.verbose=a("verbose"),b.debug=a("debug"),b.info=a("info"),b.warn=a("warn"),b.error=a("error")}static instance(){return this._instance||(this._instance=new h),this._instance}}b.DiagAPI=h},653:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MetricsAPI=void 0;let d=c(660),e=c(172),f=c(930),g="metrics";class h{constructor(){}static getInstance(){return this._instance||(this._instance=new h),this._instance}setGlobalMeterProvider(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}getMeterProvider(){return(0,e.getGlobal)(g)||d.NOOP_METER_PROVIDER}getMeter(a,b,c){return this.getMeterProvider().getMeter(a,b,c)}disable(){(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.MetricsAPI=h},181:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.PropagationAPI=void 0;let d=c(172),e=c(874),f=c(194),g=c(277),h=c(369),i=c(930),j="propagation",k=new e.NoopTextMapPropagator;class l{constructor(){this.createBaggage=h.createBaggage,this.getBaggage=g.getBaggage,this.getActiveBaggage=g.getActiveBaggage,this.setBaggage=g.setBaggage,this.deleteBaggage=g.deleteBaggage}static getInstance(){return this._instance||(this._instance=new l),this._instance}setGlobalPropagator(a){return(0,d.registerGlobal)(j,a,i.DiagAPI.instance())}inject(a,b,c=f.defaultTextMapSetter){return this._getGlobalPropagator().inject(a,b,c)}extract(a,b,c=f.defaultTextMapGetter){return this._getGlobalPropagator().extract(a,b,c)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,d.unregisterGlobal)(j,i.DiagAPI.instance())}_getGlobalPropagator(){return(0,d.getGlobal)(j)||k}}b.PropagationAPI=l},997:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceAPI=void 0;let d=c(172),e=c(846),f=c(139),g=c(607),h=c(930),i="trace";class j{constructor(){this._proxyTracerProvider=new e.ProxyTracerProvider,this.wrapSpanContext=f.wrapSpanContext,this.isSpanContextValid=f.isSpanContextValid,this.deleteSpan=g.deleteSpan,this.getSpan=g.getSpan,this.getActiveSpan=g.getActiveSpan,this.getSpanContext=g.getSpanContext,this.setSpan=g.setSpan,this.setSpanContext=g.setSpanContext}static getInstance(){return this._instance||(this._instance=new j),this._instance}setGlobalTracerProvider(a){let b=(0,d.registerGlobal)(i,this._proxyTracerProvider,h.DiagAPI.instance());return b&&this._proxyTracerProvider.setDelegate(a),b}getTracerProvider(){return(0,d.getGlobal)(i)||this._proxyTracerProvider}getTracer(a,b){return this.getTracerProvider().getTracer(a,b)}disable(){(0,d.unregisterGlobal)(i,h.DiagAPI.instance()),this._proxyTracerProvider=new e.ProxyTracerProvider}}b.TraceAPI=j},277:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.deleteBaggage=b.setBaggage=b.getActiveBaggage=b.getBaggage=void 0;let d=c(491),e=(0,c(780).createContextKey)("OpenTelemetry Baggage Key");function f(a){return a.getValue(e)||void 0}b.getBaggage=f,b.getActiveBaggage=function(){return f(d.ContextAPI.getInstance().active())},b.setBaggage=function(a,b){return a.setValue(e,b)},b.deleteBaggage=function(a){return a.deleteValue(e)}},993:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.BaggageImpl=void 0;class c{constructor(a){this._entries=a?new Map(a):new Map}getEntry(a){let b=this._entries.get(a);if(b)return Object.assign({},b)}getAllEntries(){return Array.from(this._entries.entries()).map(([a,b])=>[a,b])}setEntry(a,b){let d=new c(this._entries);return d._entries.set(a,b),d}removeEntry(a){let b=new c(this._entries);return b._entries.delete(a),b}removeEntries(...a){let b=new c(this._entries);for(let c of a)b._entries.delete(c);return b}clear(){return new c}}b.BaggageImpl=c},830:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataSymbol=void 0,b.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")},369:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataFromString=b.createBaggage=void 0;let d=c(930),e=c(993),f=c(830),g=d.DiagAPI.instance();b.createBaggage=function(a={}){return new e.BaggageImpl(new Map(Object.entries(a)))},b.baggageEntryMetadataFromString=function(a){return"string"!=typeof a&&(g.error(`Cannot create baggage metadata from unknown type: ${typeof a}`),a=""),{__TYPE__:f.baggageEntryMetadataSymbol,toString:()=>a}}},67:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.context=void 0,b.context=c(491).ContextAPI.getInstance()},223:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopContextManager=void 0;let d=c(780);class e{active(){return d.ROOT_CONTEXT}with(a,b,c,...d){return b.call(c,...d)}bind(a,b){return b}enable(){return this}disable(){return this}}b.NoopContextManager=e},780:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ROOT_CONTEXT=b.createContextKey=void 0,b.createContextKey=function(a){return Symbol.for(a)};class c{constructor(a){let b=this;b._currentContext=a?new Map(a):new Map,b.getValue=a=>b._currentContext.get(a),b.setValue=(a,d)=>{let e=new c(b._currentContext);return e._currentContext.set(a,d),e},b.deleteValue=a=>{let d=new c(b._currentContext);return d._currentContext.delete(a),d}}}b.ROOT_CONTEXT=new c},506:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.diag=void 0,b.diag=c(930).DiagAPI.instance()},56:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagComponentLogger=void 0;let d=c(172);class e{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return f("debug",this._namespace,a)}error(...a){return f("error",this._namespace,a)}info(...a){return f("info",this._namespace,a)}warn(...a){return f("warn",this._namespace,a)}verbose(...a){return f("verbose",this._namespace,a)}}function f(a,b,c){let e=(0,d.getGlobal)("diag");if(e)return c.unshift(b),e[a](...c)}b.DiagComponentLogger=e},972:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagConsoleLogger=void 0;let c=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];class d{constructor(){for(let a=0;a<c.length;a++)this[c[a].n]=function(a){return function(...b){if(console){let c=console[a];if("function"!=typeof c&&(c=console.log),"function"==typeof c)return c.apply(console,b)}}}(c[a].c)}}b.DiagConsoleLogger=d},912:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createLogLevelDiagLogger=void 0;let d=c(957);b.createLogLevelDiagLogger=function(a,b){function c(c,d){let e=b[c];return"function"==typeof e&&a>=d?e.bind(b):function(){}}return a<d.DiagLogLevel.NONE?a=d.DiagLogLevel.NONE:a>d.DiagLogLevel.ALL&&(a=d.DiagLogLevel.ALL),b=b||{},{error:c("error",d.DiagLogLevel.ERROR),warn:c("warn",d.DiagLogLevel.WARN),info:c("info",d.DiagLogLevel.INFO),debug:c("debug",d.DiagLogLevel.DEBUG),verbose:c("verbose",d.DiagLogLevel.VERBOSE)}}},957:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagLogLevel=void 0,function(a){a[a.NONE=0]="NONE",a[a.ERROR=30]="ERROR",a[a.WARN=50]="WARN",a[a.INFO=60]="INFO",a[a.DEBUG=70]="DEBUG",a[a.VERBOSE=80]="VERBOSE",a[a.ALL=9999]="ALL"}(b.DiagLogLevel||(b.DiagLogLevel={}))},172:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unregisterGlobal=b.getGlobal=b.registerGlobal=void 0;let d=c(200),e=c(521),f=c(130),g=e.VERSION.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i=d._globalThis;b.registerGlobal=function(a,b,c,d=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:e.VERSION};if(!d&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==e.VERSION){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${e.VERSION}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${e.VERSION}.`),!0},b.getGlobal=function(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&(0,f.isCompatible)(d))return null==(c=i[h])?void 0:c[a]},b.unregisterGlobal=function(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${e.VERSION}.`);let c=i[h];c&&delete c[a]}},130:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isCompatible=b._makeCompatibilityCheck=void 0;let d=c(521),e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function f(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}b._makeCompatibilityCheck=f,b.isCompatible=f(d.VERSION)},886:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.metrics=void 0,b.metrics=c(653).MetricsAPI.getInstance()},901:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ValueType=void 0,function(a){a[a.INT=0]="INT",a[a.DOUBLE=1]="DOUBLE"}(b.ValueType||(b.ValueType={}))},102:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createNoopMeter=b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=b.NOOP_OBSERVABLE_GAUGE_METRIC=b.NOOP_OBSERVABLE_COUNTER_METRIC=b.NOOP_UP_DOWN_COUNTER_METRIC=b.NOOP_HISTOGRAM_METRIC=b.NOOP_COUNTER_METRIC=b.NOOP_METER=b.NoopObservableUpDownCounterMetric=b.NoopObservableGaugeMetric=b.NoopObservableCounterMetric=b.NoopObservableMetric=b.NoopHistogramMetric=b.NoopUpDownCounterMetric=b.NoopCounterMetric=b.NoopMetric=b.NoopMeter=void 0;class c{constructor(){}createHistogram(a,c){return b.NOOP_HISTOGRAM_METRIC}createCounter(a,c){return b.NOOP_COUNTER_METRIC}createUpDownCounter(a,c){return b.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(a,c){return b.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(a,c){return b.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(a,c){return b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(a,b){}removeBatchObservableCallback(a){}}b.NoopMeter=c;class d{}b.NoopMetric=d;class e extends d{add(a,b){}}b.NoopCounterMetric=e;class f extends d{add(a,b){}}b.NoopUpDownCounterMetric=f;class g extends d{record(a,b){}}b.NoopHistogramMetric=g;class h{addCallback(a){}removeCallback(a){}}b.NoopObservableMetric=h;class i extends h{}b.NoopObservableCounterMetric=i;class j extends h{}b.NoopObservableGaugeMetric=j;class k extends h{}b.NoopObservableUpDownCounterMetric=k,b.NOOP_METER=new c,b.NOOP_COUNTER_METRIC=new e,b.NOOP_HISTOGRAM_METRIC=new g,b.NOOP_UP_DOWN_COUNTER_METRIC=new f,b.NOOP_OBSERVABLE_COUNTER_METRIC=new i,b.NOOP_OBSERVABLE_GAUGE_METRIC=new j,b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new k,b.createNoopMeter=function(){return b.NOOP_METER}},660:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NOOP_METER_PROVIDER=b.NoopMeterProvider=void 0;let d=c(102);class e{getMeter(a,b,c){return d.NOOP_METER}}b.NoopMeterProvider=e,b.NOOP_METER_PROVIDER=new e},200:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(46),b)},651:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b._globalThis=void 0,b._globalThis="object"==typeof globalThis?globalThis:global},46:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(651),b)},939:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.propagation=void 0,b.propagation=c(181).PropagationAPI.getInstance()},874:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTextMapPropagator=void 0;class c{inject(a,b){}extract(a,b){return a}fields(){return[]}}b.NoopTextMapPropagator=c},194:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.defaultTextMapSetter=b.defaultTextMapGetter=void 0,b.defaultTextMapGetter={get(a,b){if(null!=a)return a[b]},keys:a=>null==a?[]:Object.keys(a)},b.defaultTextMapSetter={set(a,b,c){null!=a&&(a[b]=c)}}},845:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.trace=void 0,b.trace=c(997).TraceAPI.getInstance()},403:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NonRecordingSpan=void 0;let d=c(476);class e{constructor(a=d.INVALID_SPAN_CONTEXT){this._spanContext=a}spanContext(){return this._spanContext}setAttribute(a,b){return this}setAttributes(a){return this}addEvent(a,b){return this}setStatus(a){return this}updateName(a){return this}end(a){}isRecording(){return!1}recordException(a,b){}}b.NonRecordingSpan=e},614:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracer=void 0;let d=c(491),e=c(607),f=c(403),g=c(139),h=d.ContextAPI.getInstance();class i{startSpan(a,b,c=h.active()){var d;if(null==b?void 0:b.root)return new f.NonRecordingSpan;let i=c&&(0,e.getSpanContext)(c);return"object"==typeof(d=i)&&"string"==typeof d.spanId&&"string"==typeof d.traceId&&"number"==typeof d.traceFlags&&(0,g.isSpanContextValid)(i)?new f.NonRecordingSpan(i):new f.NonRecordingSpan}startActiveSpan(a,b,c,d){let f,g,i;if(arguments.length<2)return;2==arguments.length?i=b:3==arguments.length?(f=b,i=c):(f=b,g=c,i=d);let j=null!=g?g:h.active(),k=this.startSpan(a,f,j),l=(0,e.setSpan)(j,k);return h.with(l,i,void 0,k)}}b.NoopTracer=i},124:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracerProvider=void 0;let d=c(614);class e{getTracer(a,b,c){return new d.NoopTracer}}b.NoopTracerProvider=e},125:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracer=void 0;let d=new(c(614)).NoopTracer;class e{constructor(a,b,c,d){this._provider=a,this.name=b,this.version=c,this.options=d}startSpan(a,b,c){return this._getTracer().startSpan(a,b,c)}startActiveSpan(a,b,c,d){let e=this._getTracer();return Reflect.apply(e.startActiveSpan,e,arguments)}_getTracer(){if(this._delegate)return this._delegate;let a=this._provider.getDelegateTracer(this.name,this.version,this.options);return a?(this._delegate=a,this._delegate):d}}b.ProxyTracer=e},846:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracerProvider=void 0;let d=c(125),e=new(c(124)).NoopTracerProvider;class f{getTracer(a,b,c){var e;return null!=(e=this.getDelegateTracer(a,b,c))?e:new d.ProxyTracer(this,a,b,c)}getDelegate(){var a;return null!=(a=this._delegate)?a:e}setDelegate(a){this._delegate=a}getDelegateTracer(a,b,c){var d;return null==(d=this._delegate)?void 0:d.getTracer(a,b,c)}}b.ProxyTracerProvider=f},996:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.SamplingDecision=void 0,function(a){a[a.NOT_RECORD=0]="NOT_RECORD",a[a.RECORD=1]="RECORD",a[a.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"}(b.SamplingDecision||(b.SamplingDecision={}))},607:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getSpanContext=b.setSpanContext=b.deleteSpan=b.setSpan=b.getActiveSpan=b.getSpan=void 0;let d=c(780),e=c(403),f=c(491),g=(0,d.createContextKey)("OpenTelemetry Context Key SPAN");function h(a){return a.getValue(g)||void 0}function i(a,b){return a.setValue(g,b)}b.getSpan=h,b.getActiveSpan=function(){return h(f.ContextAPI.getInstance().active())},b.setSpan=i,b.deleteSpan=function(a){return a.deleteValue(g)},b.setSpanContext=function(a,b){return i(a,new e.NonRecordingSpan(b))},b.getSpanContext=function(a){var b;return null==(b=h(a))?void 0:b.spanContext()}},325:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceStateImpl=void 0;let d=c(564);class e{constructor(a){this._internalState=new Map,a&&this._parse(a)}set(a,b){let c=this._clone();return c._internalState.has(a)&&c._internalState.delete(a),c._internalState.set(a,b),c}unset(a){let b=this._clone();return b._internalState.delete(a),b}get(a){return this._internalState.get(a)}serialize(){return this._keys().reduce((a,b)=>(a.push(b+"="+this.get(b)),a),[]).join(",")}_parse(a){!(a.length>512)&&(this._internalState=a.split(",").reverse().reduce((a,b)=>{let c=b.trim(),e=c.indexOf("=");if(-1!==e){let f=c.slice(0,e),g=c.slice(e+1,b.length);(0,d.validateKey)(f)&&(0,d.validateValue)(g)&&a.set(f,g)}return a},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let a=new e;return a._internalState=new Map(this._internalState),a}}b.TraceStateImpl=e},564:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateValue=b.validateKey=void 0;let c="[_0-9a-z-*/]",d=`[a-z]${c}{0,255}`,e=`[a-z0-9]${c}{0,240}@[a-z]${c}{0,13}`,f=RegExp(`^(?:${d}|${e})$`),g=/^[ -~]{0,255}[!-~]$/,h=/,|=/;b.validateKey=function(a){return f.test(a)},b.validateValue=function(a){return g.test(a)&&!h.test(a)}},98:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createTraceState=void 0;let d=c(325);b.createTraceState=function(a){return new d.TraceStateImpl(a)}},476:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.INVALID_SPAN_CONTEXT=b.INVALID_TRACEID=b.INVALID_SPANID=void 0;let d=c(475);b.INVALID_SPANID="0000000000000000",b.INVALID_TRACEID="00000000000000000000000000000000",b.INVALID_SPAN_CONTEXT={traceId:b.INVALID_TRACEID,spanId:b.INVALID_SPANID,traceFlags:d.TraceFlags.NONE}},357:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.SpanKind=void 0,function(a){a[a.INTERNAL=0]="INTERNAL",a[a.SERVER=1]="SERVER",a[a.CLIENT=2]="CLIENT",a[a.PRODUCER=3]="PRODUCER",a[a.CONSUMER=4]="CONSUMER"}(b.SpanKind||(b.SpanKind={}))},139:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.wrapSpanContext=b.isSpanContextValid=b.isValidSpanId=b.isValidTraceId=void 0;let d=c(476),e=c(403),f=/^([0-9a-f]{32})$/i,g=/^[0-9a-f]{16}$/i;function h(a){return f.test(a)&&a!==d.INVALID_TRACEID}function i(a){return g.test(a)&&a!==d.INVALID_SPANID}b.isValidTraceId=h,b.isValidSpanId=i,b.isSpanContextValid=function(a){return h(a.traceId)&&i(a.spanId)},b.wrapSpanContext=function(a){return new e.NonRecordingSpan(a)}},847:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.SpanStatusCode=void 0,function(a){a[a.UNSET=0]="UNSET",a[a.OK=1]="OK",a[a.ERROR=2]="ERROR"}(b.SpanStatusCode||(b.SpanStatusCode={}))},475:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceFlags=void 0,function(a){a[a.NONE=0]="NONE",a[a.SAMPLED=1]="SAMPLED"}(b.TraceFlags||(b.TraceFlags={}))},521:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.VERSION=void 0,b.VERSION="1.6.0"}},c={};function d(a){var e=c[a];if(void 0!==e)return e.exports;var f=c[a]={exports:{}},g=!0;try{b[a].call(f.exports,f,f.exports,d),g=!1}finally{g&&delete c[a]}return f.exports}d.ab=__dirname+"/";var e={};(()=>{Object.defineProperty(e,"__esModule",{value:!0}),e.trace=e.propagation=e.metrics=e.diag=e.context=e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=e.isValidSpanId=e.isValidTraceId=e.isSpanContextValid=e.createTraceState=e.TraceFlags=e.SpanStatusCode=e.SpanKind=e.SamplingDecision=e.ProxyTracerProvider=e.ProxyTracer=e.defaultTextMapSetter=e.defaultTextMapGetter=e.ValueType=e.createNoopMeter=e.DiagLogLevel=e.DiagConsoleLogger=e.ROOT_CONTEXT=e.createContextKey=e.baggageEntryMetadataFromString=void 0;var a=d(369);Object.defineProperty(e,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return a.baggageEntryMetadataFromString}});var b=d(780);Object.defineProperty(e,"createContextKey",{enumerable:!0,get:function(){return b.createContextKey}}),Object.defineProperty(e,"ROOT_CONTEXT",{enumerable:!0,get:function(){return b.ROOT_CONTEXT}});var c=d(972);Object.defineProperty(e,"DiagConsoleLogger",{enumerable:!0,get:function(){return c.DiagConsoleLogger}});var f=d(957);Object.defineProperty(e,"DiagLogLevel",{enumerable:!0,get:function(){return f.DiagLogLevel}});var g=d(102);Object.defineProperty(e,"createNoopMeter",{enumerable:!0,get:function(){return g.createNoopMeter}});var h=d(901);Object.defineProperty(e,"ValueType",{enumerable:!0,get:function(){return h.ValueType}});var i=d(194);Object.defineProperty(e,"defaultTextMapGetter",{enumerable:!0,get:function(){return i.defaultTextMapGetter}}),Object.defineProperty(e,"defaultTextMapSetter",{enumerable:!0,get:function(){return i.defaultTextMapSetter}});var j=d(125);Object.defineProperty(e,"ProxyTracer",{enumerable:!0,get:function(){return j.ProxyTracer}});var k=d(846);Object.defineProperty(e,"ProxyTracerProvider",{enumerable:!0,get:function(){return k.ProxyTracerProvider}});var l=d(996);Object.defineProperty(e,"SamplingDecision",{enumerable:!0,get:function(){return l.SamplingDecision}});var m=d(357);Object.defineProperty(e,"SpanKind",{enumerable:!0,get:function(){return m.SpanKind}});var n=d(847);Object.defineProperty(e,"SpanStatusCode",{enumerable:!0,get:function(){return n.SpanStatusCode}});var o=d(475);Object.defineProperty(e,"TraceFlags",{enumerable:!0,get:function(){return o.TraceFlags}});var p=d(98);Object.defineProperty(e,"createTraceState",{enumerable:!0,get:function(){return p.createTraceState}});var q=d(139);Object.defineProperty(e,"isSpanContextValid",{enumerable:!0,get:function(){return q.isSpanContextValid}}),Object.defineProperty(e,"isValidTraceId",{enumerable:!0,get:function(){return q.isValidTraceId}}),Object.defineProperty(e,"isValidSpanId",{enumerable:!0,get:function(){return q.isValidSpanId}});var r=d(476);Object.defineProperty(e,"INVALID_SPANID",{enumerable:!0,get:function(){return r.INVALID_SPANID}}),Object.defineProperty(e,"INVALID_TRACEID",{enumerable:!0,get:function(){return r.INVALID_TRACEID}}),Object.defineProperty(e,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return r.INVALID_SPAN_CONTEXT}});let s=d(67);Object.defineProperty(e,"context",{enumerable:!0,get:function(){return s.context}});let t=d(506);Object.defineProperty(e,"diag",{enumerable:!0,get:function(){return t.diag}});let u=d(886);Object.defineProperty(e,"metrics",{enumerable:!0,get:function(){return u.metrics}});let v=d(939);Object.defineProperty(e,"propagation",{enumerable:!0,get:function(){return v.propagation}});let w=d(845);Object.defineProperty(e,"trace",{enumerable:!0,get:function(){return w.trace}}),e.default={context:s.context,diag:t.diag,metrics:u.metrics,propagation:v.propagation,trace:w.trace}})(),a.exports=e})()},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30598:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getSortedRouteObjects:function(){return d.getSortedRouteObjects},getSortedRoutes:function(){return d.getSortedRoutes},isDynamicRoute:function(){return e.isDynamicRoute}});let d=c(34476),e=c(81626)},31421:a=>{"use strict";a.exports=require("node:child_process")},31730:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"LRUCache",{enumerable:!0,get:function(){return e}});class c{constructor(a,b,c){this.prev=null,this.next=null,this.key=a,this.data=b,this.size=c}}class d{constructor(){this.prev=null,this.next=null}}class e{constructor(a,b,c){this.cache=new Map,this.totalSize=0,this.maxSize=a,this.calculateSize=b,this.onEvict=c,this.head=new d,this.tail=new d,this.head.next=this.tail,this.tail.prev=this.head}addToHead(a){a.prev=this.head,a.next=this.head.next,this.head.next.prev=a,this.head.next=a}removeNode(a){a.prev.next=a.next,a.next.prev=a.prev}moveToHead(a){this.removeNode(a),this.addToHead(a)}removeTail(){let a=this.tail.prev;return this.removeNode(a),a}set(a,b){let d=(null==this.calculateSize?void 0:this.calculateSize.call(this,b))??1;if(d<=0)throw Object.defineProperty(Error(`LRUCache: calculateSize returned ${d}, but size must be > 0. Items with size 0 would never be evicted, causing unbounded cache growth.`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});if(d>this.maxSize)return console.warn("Single item size exceeds maxSize"),!1;let e=this.cache.get(a);if(e)e.data=b,this.totalSize=this.totalSize-e.size+d,e.size=d,this.moveToHead(e);else{let e=new c(a,b,d);this.cache.set(a,e),this.addToHead(e),this.totalSize+=d}for(;this.totalSize>this.maxSize&&this.cache.size>0;){let a=this.removeTail();this.cache.delete(a.key),this.totalSize-=a.size,null==this.onEvict||this.onEvict.call(this,a.key,a.data)}return!0}has(a){return this.cache.has(a)}get(a){let b=this.cache.get(a);if(b)return this.moveToHead(b),b.data}*[Symbol.iterator](){let a=this.head.next;for(;a&&a!==this.tail;){let b=a;yield[b.key,b.data],a=a.next}}remove(a){let b=this.cache.get(a);b&&(this.removeNode(b),this.cache.delete(a),this.totalSize-=b.size)}get size(){return this.cache.size}get currentSize(){return this.totalSize}}},31910:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addPathPrefix",{enumerable:!0,get:function(){return e}});let d=c(2213);function e(a,b){if(!a.startsWith("/")||!b)return a;let{pathname:c,query:e,hash:f}=(0,d.parsePath)(a);return""+b+c+e+f}},32198:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return g}});let d=c(50931),e=c(97857),f=c(58871);class g{static #a=this.EMPTY=new g(null,{metadata:{},contentType:null});static fromStatic(a,b){return new g(a,{metadata:{},contentType:b})}constructor(a,{contentType:b,waitUntil:c,metadata:d}){this.response=a,this.contentType=b,this.metadata=d,this.waitUntil=c}assignMetadata(a){Object.assign(this.metadata,a)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(a=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!a)throw Object.defineProperty(new f.InvariantError("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return(0,d.streamToString)(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(a){a.close()}}):"string"==typeof this.response?(0,d.streamFromString)(this.response):Buffer.isBuffer(this.response)?(0,d.streamFromBuffer)(this.response):Array.isArray(this.response)?(0,d.chainStreams)(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[(0,d.streamFromString)(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[(0,d.streamFromBuffer)(this.response)]:[this.response]}unshift(a){this.response=this.coerce(),this.response.unshift(a)}push(a){this.response=this.coerce(),this.response.push(a)}async pipeTo(a){try{await this.readable.pipeTo(a,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await a.close()}catch(b){if((0,e.isAbortError)(b))return void await a.abort(b);throw b}}async pipeToNodeResponse(a){await (0,e.pipeToNodeResponse)(this.readable,a,this.waitUntil)}}},32244:(a,b,c)=>{"use strict";c.d(b,{K:()=>l,r:()=>k});var d=c(31421),e=c(83498),f=c(684);function g(){let a=Number(process.env.MADARX_TOOL_OUTPUT_MAX_BYTES||5e4);return!Number.isFinite(a)||a<=0?5e4:Math.min(5e4,Math.floor(a))}function h(a){return(0,f.nc)(String(a||"").slice(0,g()))}function i(a,b){let c=g();return a.length>=c?a:a+String(b).slice(0,c-a.length)}function j(a,b){try{if(a.pid&&"win32"!==process.platform)return void process.kill(-a.pid,b)}catch(a){if(a?.code!=="ESRCH")throw a;return}a.kill(b)}function k(a={}){let b=String(a.script||"").trim();if(!b)throw Error("script is required");if(b.length>2e4)throw Error(`script is too large: ${b.length} chars; max 20000`);let c=Math.max(1e3,Math.min(6e5,Number(a.timeout_ms||12e4)||12e4));return{command:String(process.env.MADARX_BROWSER_HARNESS_BIN||"browser-harness-hermes"),script:b,timeoutMs:c}}async function l(a={}){let{command:b,script:c,timeoutMs:f}=k(a),g=Date.now();return await new Promise(a=>{let k="",l="",m=!1,n=!1,o=null,p=(0,d.spawn)(b,[],{cwd:(0,e.wn)(e.QG,e.un),shell:!1,detached:"win32"!==process.platform,stdio:["pipe","pipe","pipe"],env:Object.fromEntries(["PATH","HOME","USER","LOGNAME","TMPDIR","LANG","LC_ALL","BU_CDP_URL","BU_CDP_PORT","BU_CHROME_PROFILE"].filter(a=>process.env[a]).map(a=>[a,process.env[a]]))}),q=setTimeout(()=>{m=!0,j(p,"SIGTERM"),o=setTimeout(()=>{n||j(p,"SIGKILL")},2e3)},f);p.stdout.on("data",a=>{k=i(k,a)}),p.stderr.on("data",a=>{l=i(l,a)}),p.on("error",c=>{n||(n=!0,clearTimeout(q),o&&clearTimeout(o),a({ok:!1,tool:"browser_harness_run",status:"failed",command:b,error:c.message,stdout:h(k),stderr:h(l),duration_ms:Date.now()-g}))}),p.on("close",(c,d)=>{if(n)return;n=!0,clearTimeout(q),o&&clearTimeout(o);let e=m?"timeout":d?"failed":0===c?"complete":"failed";a({ok:0===c&&!d&&!m,tool:"browser_harness_run",status:e,command:b,exit_code:c,signal:d,stdout:h(k),stderr:h(l),duration_ms:Date.now()-g})}),p.stdin.end(`${c}
|
|
405
|
+
`)})}},32286:(a,b,c)=>{"use strict";c.d(b,{default:()=>m});var d=c(21124),e=c(38301),f=c(23312),g=c(43815),h=c(85708);let i=(0,h.createServerReference)("401686bc3fb5c25d7f361ad47d51d68e8bfc051b2a",h.callServer,void 0,h.findSourceMapURL,"createProjectAction");var j=c(54151);let k=[{value:"#c2452a",name:"Mars Red"},{value:"#a83a22",name:"Deep Red"},{value:"#7c2b19",name:"Dark Red"},{value:"#111318",name:"Charcoal"},{value:"#3f3a30",name:"Warm Black"},{value:"#68707b",name:"Slate"},{value:"#cdb78a",name:"Warm Sand"},{value:"#1f6c9f",name:"Skill Blue"}];function l(){let{pending:a}=(0,f.useFormStatus)();return(0,d.jsx)("button",{type:"submit",className:"admin-button",disabled:a,"aria-busy":a?"true":void 0,children:a?"Creating…":"Create project"})}function m({workspaceRoot:a="~/workspace/projects"}){let[b,c]=e.useState(!1),[f,h]=e.useState(""),[m,n]=e.useState("workspace"),[o,p]=e.useState(""),q=e.useRef(null),r=e.useMemo(()=>`${a.replace(/\/$/,"")}/${String(f||"").toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,64)||"project"}`,[a,f]);return e.useEffect(()=>{"custom"===m&&q.current?.focus()},[m]),(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{type:"button",className:"admin-button agents-new-cta",onClick:()=>c(!0),children:[(0,d.jsx)("span",{"aria-hidden":!0,className:"agents-new-cta-glyph",children:"+"}),"New project"]}),(0,d.jsx)(g.A,{open:b,onClose:()=>c(!1),eyebrow:"New project",title:"Create a project",children:(0,d.jsxs)("form",{className:"agents-modal-form",action:i,children:[(0,d.jsx)("p",{className:"agents-modal-help",children:"Scope agents, documents, memory, and integrations together."}),(0,d.jsx)("section",{className:"agents-modal-section",children:(0,d.jsxs)("label",{className:"agents-modal-field wide",children:[(0,d.jsx)("span",{children:"Name"}),(0,d.jsx)("input",{name:"name",type:"text",required:!0,placeholder:"Acme Co.",autoComplete:"off",value:f,onChange:a=>h(a.target.value),autoFocus:!0})]})}),(0,d.jsxs)("section",{className:"agents-modal-section",children:[(0,d.jsxs)("div",{className:"agents-modal-section-head",children:[(0,d.jsx)("span",{children:"Folder location"}),(0,d.jsx)("small",{children:"Where this project lives on disk."})]}),(0,d.jsxs)("div",{className:"agents-modal-radio-group",children:[(0,d.jsxs)("label",{className:`agents-modal-radio ${"workspace"===m?"on":""}`,children:[(0,d.jsx)("input",{type:"radio",name:"folder_mode",value:"workspace",checked:"workspace"===m,onChange:()=>n("workspace")}),(0,d.jsxs)("span",{className:"agents-modal-radio-body",children:[(0,d.jsx)("b",{children:"madarX workspace"}),(0,d.jsx)("code",{title:r,children:function(a,b=48){if(!a||a.length<=b)return a;let c=a.slice(0,Math.floor(b/2)-1),d=a.slice(a.length-Math.floor(b/2)+2);return`${c}…${d}`}(r)})]})]}),(0,d.jsxs)("label",{className:`agents-modal-radio ${"custom"===m?"on":""}`,children:[(0,d.jsx)("input",{type:"radio",name:"folder_mode",value:"custom",checked:"custom"===m,onChange:()=>n("custom")}),(0,d.jsxs)("span",{className:"agents-modal-radio-body",children:[(0,d.jsx)("b",{children:"Custom path"}),(0,d.jsx)("small",{children:"Any absolute folder. Created if missing."})]})]})]}),"custom"===m?(0,d.jsx)(j.A,{inputRef:q,value:o,onChange:p}):(0,d.jsx)("input",{type:"hidden",name:"folder_path",value:""})]}),(0,d.jsxs)("section",{className:"agents-modal-section",children:[(0,d.jsxs)("div",{className:"agents-modal-section-head",children:[(0,d.jsx)("span",{children:"Color"}),(0,d.jsx)("small",{children:"Used for the project tile across the app."})]}),(0,d.jsxs)("fieldset",{className:"agents-modal-swatches",children:[(0,d.jsx)("legend",{className:"visually-hidden",children:"Project color"}),k.map(a=>(0,d.jsxs)("label",{className:"agents-modal-swatch",style:{"--swatch":a.value},children:[(0,d.jsx)("input",{type:"radio",name:"color",value:a.value,defaultChecked:"#c2452a"===a.value}),(0,d.jsx)("span",{className:"agents-modal-swatch-ring","aria-hidden":"true"}),(0,d.jsx)("span",{className:"visually-hidden",children:a.name})]},a.value))]})]}),(0,d.jsxs)("section",{className:"agents-modal-section",children:[(0,d.jsxs)("div",{className:"agents-modal-section-head",children:[(0,d.jsx)("span",{children:"Description"}),(0,d.jsx)("small",{children:"Used as context for agents working in this project."})]}),(0,d.jsx)("label",{className:"agents-modal-field wide",children:(0,d.jsx)("textarea",{name:"description",rows:3,placeholder:"What is this project for? Goals, audience, voice, constraints."})})]}),(0,d.jsxs)("footer",{className:"agents-modal-foot",children:[(0,d.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>c(!1),children:"Cancel"}),(0,d.jsx)(l,{})]})]})})]})}},32409:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{cS:()=>j,r_:()=>i,vg:()=>k});var e=c(64319),f=a([e]);function g(a,{includeBody:b=!1}={}){let c=Object.fromEntries((a.payload?.headers||[]).map(a=>[String(a.name).toLowerCase(),a.value])),d={id:a.id,thread_id:a.threadId,from:c.from||null,subject:c.subject||null,date:c.date||null,snippet:a.snippet||""};return b&&(d.to=c.to||null,d.body_text=function a(b={}){if(b.body?.data)return function(a=""){if(!a)return"";try{return Buffer.from(String(a),"base64url").toString("utf8")}catch{return""}}(b.body.data);let c=Array.isArray(b.parts)?b.parts:[],d=c.find(a=>"text/plain"===a.mimeType&&a.body?.data)||c.find(a=>a.body?.data);return d?a(d):""}(a.payload||{})),d}async function h(a,b,c,d){let f=(0,e.s)(d,c),g=await f(a,{headers:{Authorization:`Bearer ${b}`}});if(!g.ok)throw Error(`google api failed: ${g.status}`);return g.json()}async function i(a={},b={}){let c="gmail_messages_list",d=await (0,e.r)(b,c),f=new URL("https://gmail.googleapis.com/gmail/v1/users/me/messages");for(let b of(a.max_results&&f.searchParams.set("maxResults",String(a.max_results)),a.q&&f.searchParams.set("q",a.q),a.label_ids||a.labelIds||[]))f.searchParams.append("labelIds",String(b));let j=(await h(f,d,b,c)).messages||[];return Promise.all(j.map(async a=>{let e=await h(`https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(a.id)}?format=metadata`,d,b,c);return g(e)}))}async function j(a={},b={}){if(!a.message_id)throw Error("message_id is required");let c="gmail_message_read",d=await (0,e.r)(b,c),f=await h(`https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(a.message_id)}?format=full`,d,b,c);return g(f,{includeBody:!0})}async function k(a={},b={}){if(!a.thread_id)throw Error("thread_id is required");let c="gmail_thread_read",d=await (0,e.r)(b,c),f=await h(`https://gmail.googleapis.com/gmail/v1/users/me/threads/${encodeURIComponent(a.thread_id)}?format=full`,d,b,c);return{id:f.id,messages:(f.messages||[]).map(a=>g(a,{includeBody:!0}))}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},33311:(a,b)=>{"use strict";var c;Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{bgBlack:function(){return A},bgBlue:function(){return E},bgCyan:function(){return G},bgGreen:function(){return C},bgMagenta:function(){return F},bgRed:function(){return B},bgWhite:function(){return H},bgYellow:function(){return D},black:function(){return q},blue:function(){return u},bold:function(){return j},cyan:function(){return x},dim:function(){return k},gray:function(){return z},green:function(){return s},hidden:function(){return o},inverse:function(){return n},italic:function(){return l},magenta:function(){return v},purple:function(){return w},red:function(){return r},reset:function(){return i},strikethrough:function(){return p},underline:function(){return m},white:function(){return y},yellow:function(){return t}});let{env:d,stdout:e}=(null==(c=globalThis)?void 0:c.process)??{},f=d&&!d.NO_COLOR&&(d.FORCE_COLOR||(null==e?void 0:e.isTTY)&&!d.CI&&"dumb"!==d.TERM),g=(a,b,c,d)=>{let e=a.substring(0,d)+c,f=a.substring(d+b.length),h=f.indexOf(b);return~h?e+g(f,b,c,h):e+f},h=(a,b,c=a)=>f?d=>{let e=""+d,f=e.indexOf(b,a.length);return~f?a+g(e,b,c,f)+b:a+e+b}:String,i=f?a=>`\x1b[0m${a}\x1b[0m`:String,j=h("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m"),k=h("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),l=h("\x1b[3m","\x1b[23m"),m=h("\x1b[4m","\x1b[24m"),n=h("\x1b[7m","\x1b[27m"),o=h("\x1b[8m","\x1b[28m"),p=h("\x1b[9m","\x1b[29m"),q=h("\x1b[30m","\x1b[39m"),r=h("\x1b[31m","\x1b[39m"),s=h("\x1b[32m","\x1b[39m"),t=h("\x1b[33m","\x1b[39m"),u=h("\x1b[34m","\x1b[39m"),v=h("\x1b[35m","\x1b[39m"),w=h("\x1b[38;2;173;127;168m","\x1b[39m"),x=h("\x1b[36m","\x1b[39m"),y=h("\x1b[37m","\x1b[39m"),z=h("\x1b[90m","\x1b[39m"),A=h("\x1b[40m","\x1b[49m"),B=h("\x1b[41m","\x1b[49m"),C=h("\x1b[42m","\x1b[49m"),D=h("\x1b[43m","\x1b[49m"),E=h("\x1b[44m","\x1b[49m"),F=h("\x1b[45m","\x1b[49m"),G=h("\x1b[46m","\x1b[49m"),H=h("\x1b[47m","\x1b[49m")},33873:a=>{"use strict";a.exports=require("path")},34392:(a,b,c)=>{"use strict";c.d(b,{default:()=>m});var d=c(21124),e=c(38301),f=c(23312),g=c(43815),h=c(85708);let i=(0,h.createServerReference)("404ee7720211af84da2a2198f49f0881c664ebb717",h.callServer,void 0,h.findSourceMapURL,"updateProjectAction");var j=c(54151);let k=[{value:"#c2452a",name:"Mars Red"},{value:"#a83a22",name:"Deep Red"},{value:"#7c2b19",name:"Dark Red"},{value:"#111318",name:"Charcoal"},{value:"#3f3a30",name:"Warm Black"},{value:"#68707b",name:"Slate"},{value:"#cdb78a",name:"Warm Sand"},{value:"#1f6c9f",name:"Skill Blue"}];function l(){let{pending:a}=(0,f.useFormStatus)();return(0,d.jsx)("button",{type:"submit",className:"admin-button",disabled:a,"aria-busy":a?"true":void 0,children:a?"Saving…":"Save changes"})}function m({projectId:a,projectName:b,projectColor:c,projectDescription:f,projectFolderPath:h}){let[m,n]=e.useState(!1),[o,p]=e.useState("keep"),[q,r]=e.useState(h||""),s=e.useRef(null);return e.useEffect(()=>{m&&(p("keep"),r(h||""))},[m,h]),e.useEffect(()=>{"custom"===o&&s.current?.focus()},[o]),(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",className:"admin-button secondary project-edit",onClick:()=>n(!0),"aria-label":`Edit ${b}`,children:"Edit"}),(0,d.jsx)(g.A,{open:m,onClose:()=>n(!1),eyebrow:"Edit project",title:`Edit ${b}`,children:(0,d.jsxs)("form",{className:"agents-modal-form",action:i,children:[(0,d.jsx)("input",{type:"hidden",name:"project_id",value:a}),(0,d.jsx)("section",{className:"agents-modal-section",children:(0,d.jsxs)("label",{className:"agents-modal-field wide",children:[(0,d.jsx)("span",{children:"Name"}),(0,d.jsx)("input",{name:"name",type:"text",defaultValue:b,autoComplete:"off",required:!0})]})}),(0,d.jsxs)("section",{className:"agents-modal-section",children:[(0,d.jsxs)("div",{className:"agents-modal-section-head",children:[(0,d.jsx)("span",{children:"Folder location"}),(0,d.jsx)("small",{children:"Where project files live on disk. Move only if you've already moved the folder yourself."})]}),(0,d.jsxs)("div",{className:"agents-modal-radio-group",children:[(0,d.jsxs)("label",{className:`agents-modal-radio ${"keep"===o?"on":""}`,children:[(0,d.jsx)("input",{type:"radio",name:"folder_mode",value:"keep",checked:"keep"===o,onChange:()=>p("keep")}),(0,d.jsxs)("span",{className:"agents-modal-radio-body",children:[(0,d.jsx)("b",{children:"Keep current"}),(0,d.jsx)("code",{title:h||"",children:function(a,b=48){if(!a||a.length<=b)return a;let c=a.slice(0,Math.floor(b/2)-1),d=a.slice(a.length-Math.floor(b/2)+2);return`${c}…${d}`}(h)||"(not set)"})]})]}),(0,d.jsxs)("label",{className:`agents-modal-radio ${"custom"===o?"on":""}`,children:[(0,d.jsx)("input",{type:"radio",name:"folder_mode",value:"custom",checked:"custom"===o,onChange:()=>p("custom")}),(0,d.jsxs)("span",{className:"agents-modal-radio-body",children:[(0,d.jsx)("b",{children:"Change to…"}),(0,d.jsx)("small",{children:"Absolute path. Must already exist or be writable."})]})]})]}),"custom"===o?(0,d.jsx)(j.A,{inputRef:s,value:q,onChange:r}):(0,d.jsx)("input",{type:"hidden",name:"folder_path",value:""})]}),(0,d.jsxs)("section",{className:"agents-modal-section",children:[(0,d.jsxs)("div",{className:"agents-modal-section-head",children:[(0,d.jsx)("span",{children:"Color"}),(0,d.jsx)("small",{children:"Tile color across the app."})]}),(0,d.jsxs)("fieldset",{className:"agents-modal-swatches",children:[(0,d.jsx)("legend",{className:"visually-hidden",children:"Project color"}),k.map(a=>(0,d.jsxs)("label",{className:"agents-modal-swatch",style:{"--swatch":a.value},children:[(0,d.jsx)("input",{type:"radio",name:"color",value:a.value,defaultChecked:a.value===(c||"#c2452a")}),(0,d.jsx)("span",{className:"agents-modal-swatch-ring","aria-hidden":"true"}),(0,d.jsx)("span",{className:"visually-hidden",children:a.name})]},a.value))]})]}),(0,d.jsxs)("section",{className:"agents-modal-section",children:[(0,d.jsxs)("div",{className:"agents-modal-section-head",children:[(0,d.jsx)("span",{children:"Description"}),(0,d.jsx)("small",{children:"Used as context for agents working in this project."})]}),(0,d.jsx)("label",{className:"agents-modal-field wide",children:(0,d.jsx)("textarea",{name:"description",rows:3,defaultValue:f||"",placeholder:"What is this project for? Goals, audience, voice, constraints."})})]}),(0,d.jsxs)("footer",{className:"agents-modal-foot",children:[(0,d.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>n(!1),children:"Cancel"}),(0,d.jsx)(l,{})]})]})})]})}},34476:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getSortedRouteObjects:function(){return e},getSortedRoutes:function(){return d}});class c{insert(a){this._insert(a.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(a){void 0===a&&(a="/");let b=[...this.children.keys()].sort();null!==this.slugName&&b.splice(b.indexOf("[]"),1),null!==this.restSlugName&&b.splice(b.indexOf("[...]"),1),null!==this.optionalRestSlugName&&b.splice(b.indexOf("[[...]]"),1);let c=b.map(b=>this.children.get(b)._smoosh(""+a+b+"/")).reduce((a,b)=>[...a,...b],[]);if(null!==this.slugName&&c.push(...this.children.get("[]")._smoosh(a+"["+this.slugName+"]/")),!this.placeholder){let b="/"===a?"/":a.slice(0,-1);if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error('You cannot define a route with the same specificity as a optional catch-all route ("'+b+'" and "'+b+"[[..."+this.optionalRestSlugName+']]").'),"__NEXT_ERROR_CODE",{value:"E458",enumerable:!1,configurable:!0});c.unshift(b)}return null!==this.restSlugName&&c.push(...this.children.get("[...]")._smoosh(a+"[..."+this.restSlugName+"]/")),null!==this.optionalRestSlugName&&c.push(...this.children.get("[[...]]")._smoosh(a+"[[..."+this.optionalRestSlugName+"]]/")),c}_insert(a,b,d){if(0===a.length){this.placeholder=!1;return}if(d)throw Object.defineProperty(Error("Catch-all must be the last part of the URL."),"__NEXT_ERROR_CODE",{value:"E392",enumerable:!1,configurable:!0});let e=a[0];if(e.startsWith("[")&&e.endsWith("]")){let c=e.slice(1,-1),g=!1;if(c.startsWith("[")&&c.endsWith("]")&&(c=c.slice(1,-1),g=!0),c.startsWith("…"))throw Object.defineProperty(Error("Detected a three-dot character ('…') at ('"+c+"'). Did you mean ('...')?"),"__NEXT_ERROR_CODE",{value:"E147",enumerable:!1,configurable:!0});if(c.startsWith("...")&&(c=c.substring(3),d=!0),c.startsWith("[")||c.endsWith("]"))throw Object.defineProperty(Error("Segment names may not start or end with extra brackets ('"+c+"')."),"__NEXT_ERROR_CODE",{value:"E421",enumerable:!1,configurable:!0});if(c.startsWith("."))throw Object.defineProperty(Error("Segment names may not start with erroneous periods ('"+c+"')."),"__NEXT_ERROR_CODE",{value:"E288",enumerable:!1,configurable:!0});function f(a,c){if(null!==a&&a!==c)throw Object.defineProperty(Error("You cannot use different slug names for the same dynamic path ('"+a+"' !== '"+c+"')."),"__NEXT_ERROR_CODE",{value:"E337",enumerable:!1,configurable:!0});b.forEach(a=>{if(a===c)throw Object.defineProperty(Error('You cannot have the same slug name "'+c+'" repeat within a single dynamic path'),"__NEXT_ERROR_CODE",{value:"E247",enumerable:!1,configurable:!0});if(a.replace(/\W/g,"")===e.replace(/\W/g,""))throw Object.defineProperty(Error('You cannot have the slug names "'+a+'" and "'+c+'" differ only by non-word symbols within a single dynamic path'),"__NEXT_ERROR_CODE",{value:"E499",enumerable:!1,configurable:!0})}),b.push(c)}if(d)if(g){if(null!=this.restSlugName)throw Object.defineProperty(Error('You cannot use both an required and optional catch-all route at the same level ("[...'+this.restSlugName+']" and "'+a[0]+'" ).'),"__NEXT_ERROR_CODE",{value:"E299",enumerable:!1,configurable:!0});f(this.optionalRestSlugName,c),this.optionalRestSlugName=c,e="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error('You cannot use both an optional and required catch-all route at the same level ("[[...'+this.optionalRestSlugName+']]" and "'+a[0]+'").'),"__NEXT_ERROR_CODE",{value:"E300",enumerable:!1,configurable:!0});f(this.restSlugName,c),this.restSlugName=c,e="[...]"}else{if(g)throw Object.defineProperty(Error('Optional route parameters are not yet supported ("'+a[0]+'").'),"__NEXT_ERROR_CODE",{value:"E435",enumerable:!1,configurable:!0});f(this.slugName,c),this.slugName=c,e="[]"}}this.children.has(e)||this.children.set(e,new c),this.children.get(e)._insert(a.slice(1),b,d)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function d(a){let b=new c;return a.forEach(a=>b.insert(a)),b.smoosh()}function e(a,b){let c={},e=[];for(let d=0;d<a.length;d++){let f=b(a[d]);c[f]=d,e[d]=f}return d(e).map(b=>a[c[b]])}},34976:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$F:()=>m});var e=c(84104),f=c(67354),g=c(21118),h=a([e,f]);function i(a){var b;return a?(b=(0,e.Lf)().prepare("SELECT * FROM hail_review_gates WHERE id = ?").get(a))?{...b}:null:null}function j({id:a,engagement_id:b,gate_type:c,reviewer_role:d,reviewer_user_id:f=null,decision:h,comments:j=null,approval_request_id:k=null}){if(!["approved","rejected","revision_requested","pending"].includes(h))throw Error(`recordGateDecision: invalid decision "${h}"`);let l=(0,e.Lf)(),m=(0,e.kF)();if(a){if(!i(a))throw Error(`recordGateDecision: gate "${a}" not found`);return l.prepare(`
|
|
406
406
|
UPDATE hail_review_gates
|
|
407
407
|
SET decision = ?, reviewer_user_id = COALESCE(?, reviewer_user_id),
|
|
408
408
|
comments = COALESCE(?, comments),
|
|
@@ -477,7 +477,15 @@ RULES:
|
|
|
477
477
|
manifest_json=excluded.manifest_json,
|
|
478
478
|
tags=excluded.tags
|
|
479
479
|
`).run(`agent:${c.slug}`,c.slug,c.title,c.description_long,c.role,JSON.stringify({agent:c,process_engine:!0}),c.approval_profile,JSON.stringify([c.role,c.engine_default,"process-engine"]),b)}d()}catch(a){d(a)}})},40410:(a,b)=>{"use strict";function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
480
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},40623:(a,b,c)=>{"use strict";c.d(b,{N:()=>e});var d=c(8512);function e(a,b,c,e){let f=e?e-1:1/0,g=0;return function(e){return(0,d.On)(e)?(a.enter(c),function e(h){return(0,d.On)(h)&&g++<f?(a.consume(h),e):(a.exit(c),b(h))}(e)):b(e)}}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41039:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{le:()=>n,y$:()=>m});var e=c(84104),f=c(84939),g=c(68571),h=a([e,f,g]);function i(a){return a?.acting_on_behalf_of_user_id||a?.user_id||null}function j(a={}){if(a.owner_trusted||"owner"===a.actor_role||"admin"===a.actor_role)return!0;let b=i(a);if(!b||"system"===b)return!1;try{let c=(0,e.Lf)().prepare("SELECT role FROM org_memberships WHERE user_id=? AND org_id=COALESCE(?, 'personal-org')").get(b,a.org_id||"personal-org");return c?.role==="owner"||c?.role==="admin"}catch{return!1}}function k(){return{ok:!1,status:"error",error:"insufficient_role",message:"Composite tool authoring requires owner/admin authority in addition to tool approval."}}function l(a){return a?.code==="spec_invalid"?{ok:!1,status:"error",error:"spec_invalid",errors:a.errors||[a.message]}:null}async function m(a,b={}){if(!j(b))return k();let c=a?.spec;if(!c||"object"!=typeof c)return{ok:!1,status:"error",error:"spec_required",message:"spec required (object)"};if(!c.slug||"string"!=typeof c.slug)return{ok:!1,error:"slug_required",message:"spec.slug required (string)"};if((0,f.uu)(c.slug))return{ok:!1,status:"error",error:"slug_in_use",slug:c.slug};let d=(0,g.VM)();if(d.names.has(c.slug))return{ok:!1,status:"error",error:"slug_in_use",slug:c.slug,message:"slug collides with an existing tool"};try{let a=(0,f.Hy)(c,{created_by_user_id:i(b),created_by_agent_id:b?.agent_id||null},{knownToolNames:d.names,toolRiskByName:d.riskByName});return{ok:!0,status:"complete",slug:a.slug,risk_level:a.risk_level,warnings:a.warnings||[]}}catch(b){let a=l(b);if(a)return a;throw b}}async function n(a,b={}){if(!j(b))return k();let c="string"==typeof a?.slug?a.slug.trim():"",d=a?.spec;if(!c)return{ok:!1,status:"error",error:"slug_required",message:"slug required (string)"};if(!d||"object"!=typeof d)return{ok:!1,status:"error",error:"spec_required",message:"spec required (object)"};if(!(0,f.uu)(c))return{ok:!1,status:"error",error:"not_found",slug:c};let e=(0,g.VM)(),h={...d,slug:c};try{let a=(0,f.Hy)(h,{created_by_user_id:i(b),created_by_agent_id:b?.agent_id||null},{knownToolNames:e.names,toolRiskByName:e.riskByName});return{ok:!0,status:"complete",slug:a.slug,risk_level:a.risk_level,warnings:a.warnings||[]}}catch(b){let a=l(b);if(a)return a;throw b}}[e,f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},
|
|
480
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},40623:(a,b,c)=>{"use strict";c.d(b,{N:()=>e});var d=c(8512);function e(a,b,c,e){let f=e?e-1:1/0,g=0;return function(e){return(0,d.On)(e)?(a.enter(c),function e(h){return(0,d.On)(h)&&g++<f?(a.consume(h),e):(a.exit(c),b(h))}(e)):b(e)}}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41039:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{le:()=>n,y$:()=>m});var e=c(84104),f=c(84939),g=c(68571),h=a([e,f,g]);function i(a){return a?.acting_on_behalf_of_user_id||a?.user_id||null}function j(a={}){if(a.owner_trusted||"owner"===a.actor_role||"admin"===a.actor_role)return!0;let b=i(a);if(!b||"system"===b)return!1;try{let c=(0,e.Lf)().prepare("SELECT role FROM org_memberships WHERE user_id=? AND org_id=COALESCE(?, 'personal-org')").get(b,a.org_id||"personal-org");return c?.role==="owner"||c?.role==="admin"}catch{return!1}}function k(){return{ok:!1,status:"error",error:"insufficient_role",message:"Composite tool authoring requires owner/admin authority in addition to tool approval."}}function l(a){return a?.code==="spec_invalid"?{ok:!1,status:"error",error:"spec_invalid",errors:a.errors||[a.message]}:null}async function m(a,b={}){if(!j(b))return k();let c=a?.spec;if(!c||"object"!=typeof c)return{ok:!1,status:"error",error:"spec_required",message:"spec required (object)"};if(!c.slug||"string"!=typeof c.slug)return{ok:!1,error:"slug_required",message:"spec.slug required (string)"};if((0,f.uu)(c.slug))return{ok:!1,status:"error",error:"slug_in_use",slug:c.slug};let d=(0,g.VM)();if(d.names.has(c.slug))return{ok:!1,status:"error",error:"slug_in_use",slug:c.slug,message:"slug collides with an existing tool"};try{let a=(0,f.Hy)(c,{created_by_user_id:i(b),created_by_agent_id:b?.agent_id||null},{knownToolNames:d.names,toolRiskByName:d.riskByName});return{ok:!0,status:"complete",slug:a.slug,risk_level:a.risk_level,warnings:a.warnings||[]}}catch(b){let a=l(b);if(a)return a;throw b}}async function n(a,b={}){if(!j(b))return k();let c="string"==typeof a?.slug?a.slug.trim():"",d=a?.spec;if(!c)return{ok:!1,status:"error",error:"slug_required",message:"slug required (string)"};if(!d||"object"!=typeof d)return{ok:!1,status:"error",error:"spec_required",message:"spec required (object)"};if(!(0,f.uu)(c))return{ok:!1,status:"error",error:"not_found",slug:c};let e=(0,g.VM)(),h={...d,slug:c};try{let a=(0,f.Hy)(h,{created_by_user_id:i(b),created_by_agent_id:b?.agent_id||null},{knownToolNames:e.names,toolRiskByName:e.riskByName});return{ok:!0,status:"complete",slug:a.slug,risk_level:a.risk_level,warnings:a.warnings||[]}}catch(b){let a=l(b);if(a)return a;throw b}}[e,f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},41422:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{eE:()=>j,zE:()=>i});var e=c(96307),f=c(83498),g=c(684),h=a([e]);e=(h.then?(await h)():h)[0];let k={"connect-chrome":{purpose:"Launch the visible GStack Chromium browser the operator can watch live.",invoke:"connect-chrome"},browse:{purpose:"Drive a browser to navigate, click, type, read pages, and capture screenshots.",invoke:"browse"},"qa-only":{purpose:"Run a QA pass against a running site and report findings (no fixes).",invoke:"qa-only"}};function i(a={}){if("1"===process.env.MADARX_SKILL_BRIDGE_DISABLED)throw Error("skill bridge is disabled (MADARX_SKILL_BRIDGE_DISABLED=1)");let b=String(a.skill||"").trim().toLowerCase();if(!b)throw Error("skill is required");let c=k[b];if(!c)throw Error(`skill "${b}" is not bridgeable. Allowed: ${Object.keys(k).join(", ")}`);let d=String(a.instruction||"").trim();if(!d)throw Error("instruction is required");if(d.length>4e3)throw Error(`instruction is too long: ${d.length} chars; max 4000`);let e=Math.max(5e3,Math.min(6e5,Number(a.timeout_ms||18e4)||18e4));return{skill:b,entry:c,instruction:d,timeoutMs:e}}async function j(a={},b={}){var c;let{skill:d,entry:h,instruction:k,timeoutMs:l}=i(a),m=Date.now(),n=`You are a single-purpose runner spawned by the madarX main agent.
|
|
481
|
+
Your ONLY job: invoke the /${h.invoke} skill and carry out the operator instruction with it.
|
|
482
|
+
Purpose of this skill: ${h.purpose}
|
|
483
|
+
Rules:
|
|
484
|
+
- Use ONLY the /${h.invoke} skill. Do not invoke other skills, write files outside workspace, or run unrelated commands.
|
|
485
|
+
- Do not read secrets, .env files, or anything the deny list blocks.
|
|
486
|
+
- When done, reply with a concise plain-text summary of what happened and what you observed (URLs visited, key results). No markdown tables.`,o=`Use the /${h.invoke} skill to do the following:
|
|
487
|
+
|
|
488
|
+
${k}`;try{let a=(c=await (0,e.M2)({systemPrompt:n,userMessage:o,maxTurns:25,timeoutMs:l,allowedTools:["Skill","Bash","Read","Write","Glob","Grep","WebFetch","WebSearch"],addDirs:[f.un,f.nJ],agentId:b.agent_id||"main",agentName:"skill-bridge"}),(0,g.nc)(String(c||"").slice(0,function(){let a=Number(process.env.MADARX_TOOL_OUTPUT_MAX_BYTES||12e3);return!Number.isFinite(a)||a<=0?12e3:Math.min(12e3,Math.floor(a))}())));return{ok:!0,tool:"skill_bridge_run",status:"complete",skill:d,summary:a,duration_ms:Date.now()-m}}catch(a){return{ok:!1,tool:"skill_bridge_run",status:"failed",skill:d,error:String(a?.message||a).slice(0,1e3),duration_ms:Date.now()-m}}}d()}catch(a){d(a)}})},41738:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Q:()=>n});var e=c(73024),f=c(31421),g=c(84104),h=c(38985),i=c(81909),j=c(16343),k=a([g,h,i,j]);async function l(a,b={}){let c=(0,i.r6)("OPENAI_API_KEY",b)||process.env.OPENAI_API_KEY;if(!c)throw Error("OPENAI_API_KEY missing for OpenAI Whisper transcription");let d=e.readFileSync(a.storage_path),f=new FormData;f.set("model",b.model||"whisper-1"),f.set("file",new Blob([d],{type:a.mime_type||"application/octet-stream"}),a.name),b.language&&f.set("language",b.language);let g=(0,j.N)("transcribe_audio",b.agent_id??null,b.fetch||fetch),h=await g("https://api.openai.com/v1/audio/transcriptions",{method:"POST",headers:{Authorization:`Bearer ${c}`},body:f});if(!h.ok)throw Error(`openai whisper failed: ${h.status}`);let k=await h.json();return{text:k.text||"",language:k.language||b.language||null,duration_seconds:k.duration_seconds??k.duration??null}}async function m(a,b={}){let c=(0,i.r6)("ELEVENLABS_API_KEY",b)||process.env.ELEVENLABS_API_KEY;if(!c)throw Error("ELEVENLABS_API_KEY missing for ElevenLabs Scribe transcription");let d=e.readFileSync(a.storage_path),f=new FormData;f.set("model_id",b.model||"scribe_v1"),f.set("file",new Blob([d],{type:a.mime_type||"application/octet-stream"}),a.name),b.language&&f.set("language_code",b.language);let g=(0,j.N)("transcribe_audio",b.agent_id??null,b.fetch||fetch),h=await g("https://api.elevenlabs.io/v1/speech-to-text",{method:"POST",headers:{"xi-api-key":c},body:f});if(!h.ok){let a="";try{a=(await h.text()).slice(0,256)}catch{}throw Error(`elevenlabs scribe failed: ${h.status} ${a.replace(c,"***")}`)}let k=await h.json();return{text:k.text||"",language:k.language_code||b.language||null,duration_seconds:k.duration_seconds??null}}[g,h,i,j]=k.then?(await k)():k;let o={openai:"openai_whisper",elevenlabs:"elevenlabs_scribe",local:"local_whisper"};async function n(a,b={}){let c=(0,h.mM)(a);if(!c)throw Error("source file not found");let d=function(a={}){if(a.use_local||"1"===process.env.LOCAL_WHISPER)return"local";let b=String(a.provider||process.env.TRANSCRIBE_DEFAULT_PROVIDER||"openai").toLowerCase();return["openai","whisper"].includes(b)?"openai":["elevenlabs","scribe","elevenlabs_scribe"].includes(b)?(0,i.r6)("ELEVENLABS_API_KEY",a)||process.env.ELEVENLABS_API_KEY?"elevenlabs":(console.warn("[transcribe] ELEVENLABS_API_KEY missing — falling back to openai whisper"),"openai"):"local"===b?"local":"openai"}(b),e="local"===d,j=o[d];if(c.local_only&&!e)return{status:"allowlist_violation",error:`local_only audio cannot be sent to ${d}`};if((0,h.AB)(a,j).redacted)return{status:"allowlist_violation",error:"audio source redacted for engine"};let k=(0,g.Lf)(),p=(0,g.kF)(),q=(0,g.Si)("tr");k.prepare(`INSERT INTO transcripts (id, source_file_id, project_id, status, provider, engine, text, created_at, updated_at)
|
|
481
489
|
VALUES (?, ?, ?, 'pending', ?, ?, '', ?, ?)`).run(q,a,c.project_id,d,j,p,p);let r="local"===d?()=>(function(a,b={}){if(b.mock_text)return{text:b.mock_text,language:b.language||null,duration_seconds:b.duration_seconds||null};let c=b.whisper_command||process.env.WHISPER_CPP_BIN||process.env.LOCAL_WHISPER_BIN;if(!c)return{text:`Transcript for ${a.name}`,language:b.language||null,duration_seconds:null};let d=(0,f.spawnSync)(c,["-f",a.storage_path],{encoding:"utf8",timeout:b.timeout_ms||12e4});if(0!==d.status)throw Error(`local whisper failed: ${d.stderr||d.stdout||d.status}`);return{text:String(d.stdout||"").trim(),language:b.language||null,duration_seconds:null}})(c,b):"elevenlabs"===d?()=>m(c,b):()=>l(c,b);try{k.prepare("UPDATE transcripts SET status='running', updated_at=? WHERE id=?").run((0,g.kF)(),q);let a=await r(),b=a.text||`Transcript for ${c.name}`,d=function(a){let b=(0,g.Lf)(),c=(0,h.dh)(a),d=b.prepare("SELECT * FROM disk_folders WHERE project_id = ? AND parent_id = ? AND name = ? LIMIT 1").get(a,c.id,"transcripts");return d||(0,h.vV)(a,c.id,"transcripts")}(c.project_id),e=(0,h.QM)(c.project_id,d.id,{name:`${c.name}.transcript.md`,content:`# Transcript: ${c.name}
|
|
482
490
|
|
|
483
491
|
${b}
|
|
@@ -592,7 +600,7 @@ ${(a.tools||[]).map(a=>`- ${a}`).join("\n")}
|
|
|
592
600
|
metadata_json=COALESCE(agents.metadata_json, excluded.metadata_json),
|
|
593
601
|
project_id=COALESCE(agents.project_id, excluded.project_id),
|
|
594
602
|
template_slug=COALESCE(agents.template_slug, excluded.template_slug)
|
|
595
|
-
`).run(d,c,g,o,q,j,k,JSON.stringify(r),s,JSON.stringify(B),w,A.expected_output,JSON.stringify(x),y,A.reports_to,A.role,A.title,A.status_reason,A.autonomy_mode,A.budget_monthly_cents,A.spent_monthly_cents,JSON.stringify(A.permissions_json),JSON.stringify(A.metadata_json),A.project_id,A.template_slug),!C&&(F({type:"agent.create",summary:`Created ${c}`,meta:{agent_id:d,files:B}}),a.suppress_live_event||(0,v.AC)({type:"agent_created",agent_id:d,agent_name:c,triggered_by:a.triggered_by||null})),{agent:{...A,status:"created",generated:!0,files:B},files:B}}[h,j,l,m,n,o,p,q,r,s,u,v,w]=y.then?(await y)():y,d()}catch(a){d(a)}})},42474:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"DetachedPromise",{enumerable:!0,get:function(){return c}});class c{constructor(){let a,b;this.promise=new Promise((c,d)=>{a=c,b=d}),this.resolve=a,this.reject=b}}},42864:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{K8:()=>u,j7:()=>s,vr:()=>j});var e=c(70761),f=c(62178),g=c(19376),h=c(17553),i=a([g,h]);[g,h]=i.then?(await i)():i;let v=/[\u{1F000}-\u{1FFFF}\u{2300}-\u{23FF}\u{2460}-\u{24FF}\u{25A0}-\u{27BF}\u{2900}-\u{297F}\u{2B00}-\u{2BFF}\u{3000}-\u{303F}\u{1F1E6}-\u{1F1FF}]/gu,w=/[︀-️]/g,x=//g,y=/⃣/g;function j(a){return a?String(a).replace(v,"").replace(w,"").replace(x,"").replace(y,"").replace(/[ \t]{2,}/g," "):""}function k(a){return(0,e.yt)(j(a||""),{allowDangerousHtml:!1,extensions:[(0,f.T)()],htmlExtensions:[(0,f.I)()]})}function l(a){return String(a??"").replace(/[&<>"']/g,a=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[a])}function m(a){return String(a||"").replace(/\\/g,"\\\\").replace(/"/g,'\\"')}function n(a){if(!a||"string"!=typeof a)return null;let b=a.trim().match(/^#?([0-9a-f]{6})$/i);if(!b)return null;let c=parseInt(b[1],16);return{r:c>>16&255,g:c>>8&255,b:255&c}}function o(a){let b=n(a);if(!b)return 0;let c=a=>{let b=a/255;return b<=.03928?b/12.92:Math.pow((b+.055)/1.055,2.4)};return .2126*c(b.r)+.7152*c(b.g)+.0722*c(b.b)}function p(a,b){let c=o(a),d=o(b),[e,f]=c>d?[c,d]:[d,c];return(e+.05)/(f+.05)}function q(a,{surface:b,primary:c}){let d=a.map(a=>a?.value).filter(a=>a&&function(a){let b=n(a);return!!b&&Math.max(b.r,b.g,b.b)-Math.min(b.r,b.g,b.b)>24}(a)&&a!==b&&a!==c).map(a=>({value:a,contrast:p(a,b)})).sort((a,b)=>b.contrast-a.contrast),e=d.find(a=>a.contrast>=3.5)||d[0];return e?e.value:a[a.length-1]?.value||c}let z=`
|
|
603
|
+
`).run(d,c,g,o,q,j,k,JSON.stringify(r),s,JSON.stringify(B),w,A.expected_output,JSON.stringify(x),y,A.reports_to,A.role,A.title,A.status_reason,A.autonomy_mode,A.budget_monthly_cents,A.spent_monthly_cents,JSON.stringify(A.permissions_json),JSON.stringify(A.metadata_json),A.project_id,A.template_slug),!C&&(F({type:"agent.create",summary:`Created ${c}`,meta:{agent_id:d,files:B}}),a.suppress_live_event||(0,v.AC)({type:"agent_created",agent_id:d,agent_name:c,triggered_by:a.triggered_by||null})),{agent:{...A,status:"created",generated:!0,files:B},files:B}}[h,j,l,m,n,o,p,q,r,s,u,v,w]=y.then?(await y)():y,process.env.MADARX_ACTIVE_TURN_TTL_MS,d()}catch(a){d(a)}})},42474:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"DetachedPromise",{enumerable:!0,get:function(){return c}});class c{constructor(){let a,b;this.promise=new Promise((c,d)=>{a=c,b=d}),this.resolve=a,this.reject=b}}},42864:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{K8:()=>u,j7:()=>s,vr:()=>j});var e=c(70761),f=c(62178),g=c(19376),h=c(17553),i=a([g,h]);[g,h]=i.then?(await i)():i;let v=/[\u{1F000}-\u{1FFFF}\u{2300}-\u{23FF}\u{2460}-\u{24FF}\u{25A0}-\u{27BF}\u{2900}-\u{297F}\u{2B00}-\u{2BFF}\u{3000}-\u{303F}\u{1F1E6}-\u{1F1FF}]/gu,w=/[︀-️]/g,x=//g,y=/⃣/g;function j(a){return a?String(a).replace(v,"").replace(w,"").replace(x,"").replace(y,"").replace(/[ \t]{2,}/g," "):""}function k(a){return(0,e.yt)(j(a||""),{allowDangerousHtml:!1,extensions:[(0,f.T)()],htmlExtensions:[(0,f.I)()]})}function l(a){return String(a??"").replace(/[&<>"']/g,a=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[a])}function m(a){return String(a||"").replace(/\\/g,"\\\\").replace(/"/g,'\\"')}function n(a){if(!a||"string"!=typeof a)return null;let b=a.trim().match(/^#?([0-9a-f]{6})$/i);if(!b)return null;let c=parseInt(b[1],16);return{r:c>>16&255,g:c>>8&255,b:255&c}}function o(a){let b=n(a);if(!b)return 0;let c=a=>{let b=a/255;return b<=.03928?b/12.92:Math.pow((b+.055)/1.055,2.4)};return .2126*c(b.r)+.7152*c(b.g)+.0722*c(b.b)}function p(a,b){let c=o(a),d=o(b),[e,f]=c>d?[c,d]:[d,c];return(e+.05)/(f+.05)}function q(a,{surface:b,primary:c}){let d=a.map(a=>a?.value).filter(a=>a&&function(a){let b=n(a);return!!b&&Math.max(b.r,b.g,b.b)-Math.min(b.r,b.g,b.b)>24}(a)&&a!==b&&a!==c).map(a=>({value:a,contrast:p(a,b)})).sort((a,b)=>b.contrast-a.contrast),e=d.find(a=>a.contrast>=3.5)||d[0];return e?e.value:a[a.length-1]?.value||c}let z=`
|
|
596
604
|
*, *::before, *::after { box-sizing: border-box; }
|
|
597
605
|
html, body { margin: 0; padding: 0; }
|
|
598
606
|
body {
|
|
@@ -976,10 +984,12 @@ ${A||' <p class="cl-sub">No notable changes recorded for this release.</p>'}
|
|
|
976
984
|
</div>
|
|
977
985
|
</div>
|
|
978
986
|
</body>
|
|
979
|
-
</html>`}d()}catch(a){d(a)}})},43709:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{NEXT_PATCH_SYMBOL:function(){return n},createPatchedFetcher:function(){return t},patchFetch:function(){return u},validateRevalidate:function(){return o},validateTags:function(){return p}});let d=c(45441),e=c(36821),f=c(73443),g=c(90151),h=c(85384),i=c(75522),j=c(63033),k=c(56557),l=c(86331),m=c(84125),n=Symbol.for("next-patch");function o(a,b){try{let c;if(!1===a)c=f.INFINITE_CACHE;else if("number"==typeof a&&!isNaN(a)&&a>-1)c=a;else if(void 0!==a)throw Object.defineProperty(Error(`Invalid revalidate value "${a}" on "${b}", must be a non-negative number or false`),"__NEXT_ERROR_CODE",{value:"E179",enumerable:!1,configurable:!0});return c}catch(a){if(a instanceof Error&&a.message.includes("Invalid revalidate"))throw a;return}}function p(a,b){let c=[],d=[];for(let e=0;e<a.length;e++){let g=a[e];if("string"!=typeof g?d.push({tag:g,reason:"invalid type, must be a string"}):g.length>f.NEXT_CACHE_TAG_MAX_LENGTH?d.push({tag:g,reason:`exceeded max length of ${f.NEXT_CACHE_TAG_MAX_LENGTH}`}):c.push(g),c.length>f.NEXT_CACHE_TAG_MAX_ITEMS){console.warn(`Warning: exceeded max tag count for ${b}, dropped tags:`,a.slice(e).join(", "));break}}if(d.length>0)for(let{tag:a,reason:c}of(console.warn(`Warning: invalid tags passed to ${b}: `),d))console.log(`tag: "${a}" ${c}`);return c}function q(a,b){a.shouldTrackFetchMetrics&&(a.fetchMetrics??=[],a.fetchMetrics.push({...b,end:performance.timeOrigin+performance.now(),idx:a.nextFetchId||0}))}async function r(a,b,c,d,e,f){let g=await a.arrayBuffer(),h={headers:Object.fromEntries(a.headers.entries()),body:Buffer.from(g).toString("base64"),status:a.status,url:a.url};return c&&await d.set(b,{kind:k.CachedRouteKind.FETCH,data:h,revalidate:e},c),await f(),new Response(g,{headers:a.headers,status:a.status,statusText:a.statusText})}async function s(a,b,c,d,e,f,g,h,i){let[j,l]=(0,m.cloneResponse)(b),n=j.arrayBuffer().then(async a=>{let b=Buffer.from(a),h={headers:Object.fromEntries(j.headers.entries()),body:b.toString("base64"),status:j.status,url:j.url};null==f||f.set(c,h),d&&await e.set(c,{kind:k.CachedRouteKind.FETCH,data:h,revalidate:g},d)}).catch(a=>console.warn("Failed to set fetch cache",h,a)).finally(i),o=`cache-set-${c}`;return a.pendingRevalidates??={},o in a.pendingRevalidates&&await a.pendingRevalidates[o],a.pendingRevalidates[o]=n.finally(()=>{var b;(null==(b=a.pendingRevalidates)?void 0:b[o])&&delete a.pendingRevalidates[o]}),l}function t(a,{workAsyncStorage:b,workUnitAsyncStorage:c}){let i=async function(i,n){var t,u;let v;try{(v=new URL(i instanceof Request?i.url:i)).username="",v.password=""}catch{v=void 0}let w=(null==v?void 0:v.href)??"",x=(null==n||null==(t=n.method)?void 0:t.toUpperCase())||"GET",y=(null==n||null==(u=n.next)?void 0:u.internal)===!0,z="1"===process.env.NEXT_OTEL_FETCH_DISABLED,A=y?void 0:performance.timeOrigin+performance.now(),B=b.getStore(),C=c.getStore(),D=C?(0,j.getCacheSignal)(C):null;D&&D.beginRead();let E=(0,e.getTracer)().trace(y?d.NextNodeServerSpan.internalFetch:d.AppRenderSpan.fetch,{hideSpan:z,kind:e.SpanKind.CLIENT,spanName:["fetch",x,w].filter(Boolean).join(" "),attributes:{"http.url":w,"http.method":x,"net.peer.name":null==v?void 0:v.hostname,"net.peer.port":(null==v?void 0:v.port)||void 0}},async()=>{var b;let c,d,e,j,t,u;if(y||!B||B.isDraftMode)return a(i,n);let v=i&&"object"==typeof i&&"string"==typeof i.method,x=a=>(null==n?void 0:n[a])||(v?i[a]:null),z=a=>{var b,c,d;return void 0!==(null==n||null==(b=n.next)?void 0:b[a])?null==n||null==(c=n.next)?void 0:c[a]:v?null==(d=i.next)?void 0:d[a]:void 0},E=z("revalidate"),F=E,G=p(z("tags")||[],`fetch ${i.toString()}`);if(C)switch(C.type){case"prerender":case"prerender-runtime":case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":c=C}if(c&&Array.isArray(G)){let a=c.tags??(c.tags=[]);for(let b of G)a.includes(b)||a.push(b)}let H=null==C?void 0:C.implicitTags,I=B.fetchCache;C&&"unstable-cache"===C.type&&(I="force-no-store");let J=!!B.isUnstableNoStore,K=x("cache"),L="";"string"==typeof K&&void 0!==F&&("force-cache"===K&&0===F||"no-store"===K&&(F>0||!1===F))&&(d=`Specified "cache: ${K}" and "revalidate: ${F}", only one should be specified.`,K=void 0,F=void 0);let M="no-cache"===K||"no-store"===K||"force-no-store"===I||"only-no-store"===I,N=!I&&!K&&!F&&B.forceDynamic;"force-cache"===K&&void 0===F?F=!1:(M||N)&&(F=0),("no-cache"===K||"no-store"===K)&&(L=`cache: ${K}`),u=o(F,B.route);let O=x("headers"),P="function"==typeof(null==O?void 0:O.get)?O:new Headers(O||{}),Q=P.get("authorization")||P.get("cookie"),R=!["get","head"].includes((null==(b=x("method"))?void 0:b.toLowerCase())||"get"),S=void 0==I&&(void 0==K||"default"===K)&&void 0==F,T=!!((Q||R)&&(null==c?void 0:c.revalidate)===0),U=!1;if(!T&&S&&(B.isBuildTimePrerendering?U=!0:T=!0),S&&void 0!==C)switch(C.type){case"prerender":case"prerender-runtime":case"prerender-client":return D&&(D.endRead(),D=null),(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}switch(I){case"force-no-store":L="fetchCache = force-no-store";break;case"only-no-store":if("force-cache"===K||void 0!==u&&u>0)throw Object.defineProperty(Error(`cache: 'force-cache' used on fetch for ${w} with 'export const fetchCache = 'only-no-store'`),"__NEXT_ERROR_CODE",{value:"E448",enumerable:!1,configurable:!0});L="fetchCache = only-no-store";break;case"only-cache":if("no-store"===K)throw Object.defineProperty(Error(`cache: 'no-store' used on fetch for ${w} with 'export const fetchCache = 'only-cache'`),"__NEXT_ERROR_CODE",{value:"E521",enumerable:!1,configurable:!0});break;case"force-cache":(void 0===F||0===F)&&(L="fetchCache = force-cache",u=f.INFINITE_CACHE)}if(void 0===u?"default-cache"!==I||J?"default-no-store"===I?(u=0,L="fetchCache = default-no-store"):J?(u=0,L="noStore call"):T?(u=0,L="auto no cache"):(L="auto cache",u=c?c.revalidate:f.INFINITE_CACHE):(u=f.INFINITE_CACHE,L="fetchCache = default-cache"):L||(L=`revalidate: ${u}`),!(B.forceStatic&&0===u)&&!T&&c&&u<c.revalidate){if(0===u){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return D&&(D.endRead(),D=null),(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,g.markCurrentScopeAsDynamic)(B,C,`revalidate: 0 fetch ${i} ${B.route}`)}c&&E===u&&(c.revalidate=u)}let V="number"==typeof u&&u>0,{incrementalCache:W}=B,X=!1;if(C)switch(C.type){case"request":case"cache":case"private-cache":X=C.isHmrRefresh??!1,j=C.serverComponentsHmrCache}if(W&&(V||j))try{e=await W.generateCacheKey(w,v?i:n)}catch(a){console.error("Failed to generate cache key for",i)}let Y=B.nextFetchId??1;B.nextFetchId=Y+1;let Z=()=>{},$=async(b,c)=>{let g=["cache","credentials","headers","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","window","duplex",...b?[]:["signal"]];if(v){let a=i,b={body:a._ogBody||a.body};for(let c of g)b[c]=a[c];i=new Request(a.url,b)}else if(n){let{_ogBody:a,body:c,signal:d,...e}=n;n={...e,body:a||c,signal:b?void 0:d}}let h={...n,next:{...null==n?void 0:n.next,fetchType:"origin",fetchIdx:Y}};return a(i,h).then(async a=>{if(!b&&A&&q(B,{start:A,url:w,cacheReason:c||L,cacheStatus:0===u||c?"skip":"miss",cacheWarning:d,status:a.status,method:h.method||"GET"}),200===a.status&&W&&e&&(V||j)){let b=u>=f.INFINITE_CACHE?f.CACHE_ONE_YEAR:u,c=V?{fetchCache:!0,fetchUrl:w,fetchIdx:Y,tags:G,isImplicitBuildTimeCache:U}:void 0;switch(null==C?void 0:C.type){case"prerender":case"prerender-client":case"prerender-runtime":return r(a,e,c,W,b,Z);case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case void 0:return s(B,a,e,c,W,j,b,i,Z)}}return await Z(),a}).catch(a=>{throw Z(),a})},_=!1,aa=!1;if(e&&W){let a;if(X&&j&&(a=j.get(e),aa=!0),V&&!a){Z=await W.lock(e);let b=B.isOnDemandRevalidate?null:await W.get(e,{kind:k.IncrementalCacheKind.FETCH,revalidate:u,fetchUrl:w,fetchIdx:Y,tags:G,softTags:null==H?void 0:H.tags});if(S&&C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":await (0,l.waitAtLeastOneReactRenderTask)()}if(b?await Z():t="cache-control: no-cache (hard refresh)",(null==b?void 0:b.value)&&b.value.kind===k.CachedRouteKind.FETCH)if(B.isRevalidate&&b.isStale)_=!0;else{if(b.isStale&&(B.pendingRevalidates??={},!B.pendingRevalidates[e])){let a=$(!0).then(async a=>({body:await a.arrayBuffer(),headers:a.headers,status:a.status,statusText:a.statusText})).finally(()=>{B.pendingRevalidates??={},delete B.pendingRevalidates[e||""]});a.catch(console.error),B.pendingRevalidates[e]=a}a=b.value.data}}if(a){A&&q(B,{start:A,url:w,cacheReason:L,cacheStatus:aa?"hmr":"hit",cacheWarning:d,status:a.status||200,method:(null==n?void 0:n.method)||"GET"});let b=new Response(Buffer.from(a.body,"base64"),{headers:a.headers,status:a.status});return Object.defineProperty(b,"url",{value:a.url}),b}}if(B.isStaticGeneration&&n&&"object"==typeof n){let{cache:a}=n;if("no-store"===a){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return D&&(D.endRead(),D=null),(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,g.markCurrentScopeAsDynamic)(B,C,`no-store fetch ${i} ${B.route}`)}let b="next"in n,{next:d={}}=n;if("number"==typeof d.revalidate&&c&&d.revalidate<c.revalidate){if(0===d.revalidate){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,g.markCurrentScopeAsDynamic)(B,C,`revalidate: 0 fetch ${i} ${B.route}`)}B.forceStatic&&0===d.revalidate||(c.revalidate=d.revalidate)}b&&delete n.next}if(!e||!_)return $(!1,t);{let a=e;B.pendingRevalidates??={};let b=B.pendingRevalidates[a];if(b){let a=await b;return new Response(a.body,{headers:a.headers,status:a.status,statusText:a.statusText})}let c=$(!0,t).then(m.cloneResponse);return(b=c.then(async a=>{let b=a[0];return{body:await b.arrayBuffer(),headers:b.headers,status:b.status,statusText:b.statusText}}).finally(()=>{var b;(null==(b=B.pendingRevalidates)?void 0:b[a])&&delete B.pendingRevalidates[a]})).catch(()=>{}),B.pendingRevalidates[a]=b,c.then(a=>a[1])}});if(D)try{return await E}finally{D&&D.endRead()}return E};return i.__nextPatched=!0,i.__nextGetStaticStore=()=>b,i._nextOriginalFetch=a,globalThis[n]=!0,Object.defineProperty(i,"name",{value:"fetch",writable:!1}),i}function u(a){if(!0===globalThis[n])return;let b=(0,i.createDedupeFetch)(globalThis.fetch);globalThis.fetch=t(b,a)}},43815:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(21124),e=c(38301),f=c(90386);function g({open:a,onClose:b,eyebrow:c,title:g,tone:h="default",size:i="default",children:j}){let k=e.useRef(null);return e.useEffect(()=>{let b=k.current;b&&(a&&!b.open&&("function"==typeof b.showModal?b.showModal():b.setAttribute("open","")),!a&&b.open&&b.close())},[a]),e.useEffect(()=>{let a=k.current;if(!a)return;let c=a=>{a.preventDefault(),b()};return a.addEventListener("cancel",c),()=>a.removeEventListener("cancel",c)},[b]),(0,d.jsx)("dialog",{ref:k,className:`agents-modal${"wide"===i?" agents-modal--wide":""}`,onClick:a=>{a.target===k.current&&b()},children:a?(0,d.jsxs)("div",{className:`agents-modal-card${"danger"===h?" agents-modal-card--danger":""}`,onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)("header",{className:"agents-modal-head",children:[(0,d.jsxs)("div",{children:[c?(0,d.jsx)("span",{className:"admin-kicker",children:c}):null,(0,d.jsx)("h2",{children:g})]}),(0,d.jsx)("button",{type:"button",className:"agents-modal-close",onClick:b,"aria-label":"Close",children:(0,d.jsx)(f.A,{size:14})})]}),j]}):null})}},44246:(a,b,c)=>{"use strict";c.d(b,{d:()=>m});var d=c(80099),e=c(73024),f=c(76760),g=c(73136);let h=f.dirname((0,g.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/scripts/migrate-auth-v1.mjs")),i=f.resolve(h,".."),j=process.env.MADARX_DATA_DIR||process.env.VILLA515_DATA_DIR?f.resolve(process.env.MADARX_DATA_DIR||process.env.VILLA515_DATA_DIR):process.env.MADARX_HOME?f.join(f.resolve(process.env.MADARX_HOME),"data"):f.join(i,"data"),k=f.join(j,"madarx.sqlite"),l=f.join(j,".auth-migrated-v1");function m(a){if(!a.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='organizations' LIMIT 1").get())throw Error("[migrate-auth-v1] organizations table does not exist. The schema has not been applied yet. Start the app once to initialize the schema, then re-run this migration.");let b=process.env.MADARX_OWNER_EMAIL||"owner@local.dev",c=new Date().toISOString();a.prepare(`INSERT OR IGNORE INTO organizations (id, slug, name, plan, created_at, updated_at)
|
|
987
|
+
</html>`}d()}catch(a){d(a)}})},43709:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{NEXT_PATCH_SYMBOL:function(){return n},createPatchedFetcher:function(){return t},patchFetch:function(){return u},validateRevalidate:function(){return o},validateTags:function(){return p}});let d=c(45441),e=c(36821),f=c(73443),g=c(90151),h=c(85384),i=c(75522),j=c(63033),k=c(56557),l=c(86331),m=c(84125),n=Symbol.for("next-patch");function o(a,b){try{let c;if(!1===a)c=f.INFINITE_CACHE;else if("number"==typeof a&&!isNaN(a)&&a>-1)c=a;else if(void 0!==a)throw Object.defineProperty(Error(`Invalid revalidate value "${a}" on "${b}", must be a non-negative number or false`),"__NEXT_ERROR_CODE",{value:"E179",enumerable:!1,configurable:!0});return c}catch(a){if(a instanceof Error&&a.message.includes("Invalid revalidate"))throw a;return}}function p(a,b){let c=[],d=[];for(let e=0;e<a.length;e++){let g=a[e];if("string"!=typeof g?d.push({tag:g,reason:"invalid type, must be a string"}):g.length>f.NEXT_CACHE_TAG_MAX_LENGTH?d.push({tag:g,reason:`exceeded max length of ${f.NEXT_CACHE_TAG_MAX_LENGTH}`}):c.push(g),c.length>f.NEXT_CACHE_TAG_MAX_ITEMS){console.warn(`Warning: exceeded max tag count for ${b}, dropped tags:`,a.slice(e).join(", "));break}}if(d.length>0)for(let{tag:a,reason:c}of(console.warn(`Warning: invalid tags passed to ${b}: `),d))console.log(`tag: "${a}" ${c}`);return c}function q(a,b){a.shouldTrackFetchMetrics&&(a.fetchMetrics??=[],a.fetchMetrics.push({...b,end:performance.timeOrigin+performance.now(),idx:a.nextFetchId||0}))}async function r(a,b,c,d,e,f){let g=await a.arrayBuffer(),h={headers:Object.fromEntries(a.headers.entries()),body:Buffer.from(g).toString("base64"),status:a.status,url:a.url};return c&&await d.set(b,{kind:k.CachedRouteKind.FETCH,data:h,revalidate:e},c),await f(),new Response(g,{headers:a.headers,status:a.status,statusText:a.statusText})}async function s(a,b,c,d,e,f,g,h,i){let[j,l]=(0,m.cloneResponse)(b),n=j.arrayBuffer().then(async a=>{let b=Buffer.from(a),h={headers:Object.fromEntries(j.headers.entries()),body:b.toString("base64"),status:j.status,url:j.url};null==f||f.set(c,h),d&&await e.set(c,{kind:k.CachedRouteKind.FETCH,data:h,revalidate:g},d)}).catch(a=>console.warn("Failed to set fetch cache",h,a)).finally(i),o=`cache-set-${c}`;return a.pendingRevalidates??={},o in a.pendingRevalidates&&await a.pendingRevalidates[o],a.pendingRevalidates[o]=n.finally(()=>{var b;(null==(b=a.pendingRevalidates)?void 0:b[o])&&delete a.pendingRevalidates[o]}),l}function t(a,{workAsyncStorage:b,workUnitAsyncStorage:c}){let i=async function(i,n){var t,u;let v;try{(v=new URL(i instanceof Request?i.url:i)).username="",v.password=""}catch{v=void 0}let w=(null==v?void 0:v.href)??"",x=(null==n||null==(t=n.method)?void 0:t.toUpperCase())||"GET",y=(null==n||null==(u=n.next)?void 0:u.internal)===!0,z="1"===process.env.NEXT_OTEL_FETCH_DISABLED,A=y?void 0:performance.timeOrigin+performance.now(),B=b.getStore(),C=c.getStore(),D=C?(0,j.getCacheSignal)(C):null;D&&D.beginRead();let E=(0,e.getTracer)().trace(y?d.NextNodeServerSpan.internalFetch:d.AppRenderSpan.fetch,{hideSpan:z,kind:e.SpanKind.CLIENT,spanName:["fetch",x,w].filter(Boolean).join(" "),attributes:{"http.url":w,"http.method":x,"net.peer.name":null==v?void 0:v.hostname,"net.peer.port":(null==v?void 0:v.port)||void 0}},async()=>{var b;let c,d,e,j,t,u;if(y||!B||B.isDraftMode)return a(i,n);let v=i&&"object"==typeof i&&"string"==typeof i.method,x=a=>(null==n?void 0:n[a])||(v?i[a]:null),z=a=>{var b,c,d;return void 0!==(null==n||null==(b=n.next)?void 0:b[a])?null==n||null==(c=n.next)?void 0:c[a]:v?null==(d=i.next)?void 0:d[a]:void 0},E=z("revalidate"),F=E,G=p(z("tags")||[],`fetch ${i.toString()}`);if(C)switch(C.type){case"prerender":case"prerender-runtime":case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":c=C}if(c&&Array.isArray(G)){let a=c.tags??(c.tags=[]);for(let b of G)a.includes(b)||a.push(b)}let H=null==C?void 0:C.implicitTags,I=B.fetchCache;C&&"unstable-cache"===C.type&&(I="force-no-store");let J=!!B.isUnstableNoStore,K=x("cache"),L="";"string"==typeof K&&void 0!==F&&("force-cache"===K&&0===F||"no-store"===K&&(F>0||!1===F))&&(d=`Specified "cache: ${K}" and "revalidate: ${F}", only one should be specified.`,K=void 0,F=void 0);let M="no-cache"===K||"no-store"===K||"force-no-store"===I||"only-no-store"===I,N=!I&&!K&&!F&&B.forceDynamic;"force-cache"===K&&void 0===F?F=!1:(M||N)&&(F=0),("no-cache"===K||"no-store"===K)&&(L=`cache: ${K}`),u=o(F,B.route);let O=x("headers"),P="function"==typeof(null==O?void 0:O.get)?O:new Headers(O||{}),Q=P.get("authorization")||P.get("cookie"),R=!["get","head"].includes((null==(b=x("method"))?void 0:b.toLowerCase())||"get"),S=void 0==I&&(void 0==K||"default"===K)&&void 0==F,T=!!((Q||R)&&(null==c?void 0:c.revalidate)===0),U=!1;if(!T&&S&&(B.isBuildTimePrerendering?U=!0:T=!0),S&&void 0!==C)switch(C.type){case"prerender":case"prerender-runtime":case"prerender-client":return D&&(D.endRead(),D=null),(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}switch(I){case"force-no-store":L="fetchCache = force-no-store";break;case"only-no-store":if("force-cache"===K||void 0!==u&&u>0)throw Object.defineProperty(Error(`cache: 'force-cache' used on fetch for ${w} with 'export const fetchCache = 'only-no-store'`),"__NEXT_ERROR_CODE",{value:"E448",enumerable:!1,configurable:!0});L="fetchCache = only-no-store";break;case"only-cache":if("no-store"===K)throw Object.defineProperty(Error(`cache: 'no-store' used on fetch for ${w} with 'export const fetchCache = 'only-cache'`),"__NEXT_ERROR_CODE",{value:"E521",enumerable:!1,configurable:!0});break;case"force-cache":(void 0===F||0===F)&&(L="fetchCache = force-cache",u=f.INFINITE_CACHE)}if(void 0===u?"default-cache"!==I||J?"default-no-store"===I?(u=0,L="fetchCache = default-no-store"):J?(u=0,L="noStore call"):T?(u=0,L="auto no cache"):(L="auto cache",u=c?c.revalidate:f.INFINITE_CACHE):(u=f.INFINITE_CACHE,L="fetchCache = default-cache"):L||(L=`revalidate: ${u}`),!(B.forceStatic&&0===u)&&!T&&c&&u<c.revalidate){if(0===u){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return D&&(D.endRead(),D=null),(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,g.markCurrentScopeAsDynamic)(B,C,`revalidate: 0 fetch ${i} ${B.route}`)}c&&E===u&&(c.revalidate=u)}let V="number"==typeof u&&u>0,{incrementalCache:W}=B,X=!1;if(C)switch(C.type){case"request":case"cache":case"private-cache":X=C.isHmrRefresh??!1,j=C.serverComponentsHmrCache}if(W&&(V||j))try{e=await W.generateCacheKey(w,v?i:n)}catch(a){console.error("Failed to generate cache key for",i)}let Y=B.nextFetchId??1;B.nextFetchId=Y+1;let Z=()=>{},$=async(b,c)=>{let g=["cache","credentials","headers","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","window","duplex",...b?[]:["signal"]];if(v){let a=i,b={body:a._ogBody||a.body};for(let c of g)b[c]=a[c];i=new Request(a.url,b)}else if(n){let{_ogBody:a,body:c,signal:d,...e}=n;n={...e,body:a||c,signal:b?void 0:d}}let h={...n,next:{...null==n?void 0:n.next,fetchType:"origin",fetchIdx:Y}};return a(i,h).then(async a=>{if(!b&&A&&q(B,{start:A,url:w,cacheReason:c||L,cacheStatus:0===u||c?"skip":"miss",cacheWarning:d,status:a.status,method:h.method||"GET"}),200===a.status&&W&&e&&(V||j)){let b=u>=f.INFINITE_CACHE?f.CACHE_ONE_YEAR:u,c=V?{fetchCache:!0,fetchUrl:w,fetchIdx:Y,tags:G,isImplicitBuildTimeCache:U}:void 0;switch(null==C?void 0:C.type){case"prerender":case"prerender-client":case"prerender-runtime":return r(a,e,c,W,b,Z);case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case void 0:return s(B,a,e,c,W,j,b,i,Z)}}return await Z(),a}).catch(a=>{throw Z(),a})},_=!1,aa=!1;if(e&&W){let a;if(X&&j&&(a=j.get(e),aa=!0),V&&!a){Z=await W.lock(e);let b=B.isOnDemandRevalidate?null:await W.get(e,{kind:k.IncrementalCacheKind.FETCH,revalidate:u,fetchUrl:w,fetchIdx:Y,tags:G,softTags:null==H?void 0:H.tags});if(S&&C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":await (0,l.waitAtLeastOneReactRenderTask)()}if(b?await Z():t="cache-control: no-cache (hard refresh)",(null==b?void 0:b.value)&&b.value.kind===k.CachedRouteKind.FETCH)if(B.isRevalidate&&b.isStale)_=!0;else{if(b.isStale&&(B.pendingRevalidates??={},!B.pendingRevalidates[e])){let a=$(!0).then(async a=>({body:await a.arrayBuffer(),headers:a.headers,status:a.status,statusText:a.statusText})).finally(()=>{B.pendingRevalidates??={},delete B.pendingRevalidates[e||""]});a.catch(console.error),B.pendingRevalidates[e]=a}a=b.value.data}}if(a){A&&q(B,{start:A,url:w,cacheReason:L,cacheStatus:aa?"hmr":"hit",cacheWarning:d,status:a.status||200,method:(null==n?void 0:n.method)||"GET"});let b=new Response(Buffer.from(a.body,"base64"),{headers:a.headers,status:a.status});return Object.defineProperty(b,"url",{value:a.url}),b}}if(B.isStaticGeneration&&n&&"object"==typeof n){let{cache:a}=n;if("no-store"===a){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return D&&(D.endRead(),D=null),(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,g.markCurrentScopeAsDynamic)(B,C,`no-store fetch ${i} ${B.route}`)}let b="next"in n,{next:d={}}=n;if("number"==typeof d.revalidate&&c&&d.revalidate<c.revalidate){if(0===d.revalidate){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,g.markCurrentScopeAsDynamic)(B,C,`revalidate: 0 fetch ${i} ${B.route}`)}B.forceStatic&&0===d.revalidate||(c.revalidate=d.revalidate)}b&&delete n.next}if(!e||!_)return $(!1,t);{let a=e;B.pendingRevalidates??={};let b=B.pendingRevalidates[a];if(b){let a=await b;return new Response(a.body,{headers:a.headers,status:a.status,statusText:a.statusText})}let c=$(!0,t).then(m.cloneResponse);return(b=c.then(async a=>{let b=a[0];return{body:await b.arrayBuffer(),headers:b.headers,status:b.status,statusText:b.statusText}}).finally(()=>{var b;(null==(b=B.pendingRevalidates)?void 0:b[a])&&delete B.pendingRevalidates[a]})).catch(()=>{}),B.pendingRevalidates[a]=b,c.then(a=>a[1])}});if(D)try{return await E}finally{D&&D.endRead()}return E};return i.__nextPatched=!0,i.__nextGetStaticStore=()=>b,i._nextOriginalFetch=a,globalThis[n]=!0,Object.defineProperty(i,"name",{value:"fetch",writable:!1}),i}function u(a){if(!0===globalThis[n])return;let b=(0,i.createDedupeFetch)(globalThis.fetch);globalThis.fetch=t(b,a)}},43815:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(21124),e=c(38301),f=c(90386);function g({open:a,onClose:b,eyebrow:c,title:g,tone:h="default",size:i="default",children:j}){let k=e.useRef(null);return e.useEffect(()=>{let b=k.current;b&&(a&&!b.open&&("function"==typeof b.showModal?b.showModal():b.setAttribute("open","")),!a&&b.open&&b.close())},[a]),e.useEffect(()=>{let a=k.current;if(!a)return;let c=a=>{a.preventDefault(),b()};return a.addEventListener("cancel",c),()=>a.removeEventListener("cancel",c)},[b]),(0,d.jsx)("dialog",{ref:k,className:`agents-modal${"wide"===i?" agents-modal--wide":""}`,onClick:a=>{a.target===k.current&&b()},children:a?(0,d.jsxs)("div",{className:`agents-modal-card${"danger"===h?" agents-modal-card--danger":""}`,onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)("header",{className:"agents-modal-head",children:[(0,d.jsxs)("div",{children:[c?(0,d.jsx)("span",{className:"admin-kicker",children:c}):null,(0,d.jsx)("h2",{children:g})]}),(0,d.jsx)("button",{type:"button",className:"agents-modal-close",onClick:b,"aria-label":"Close",children:(0,d.jsx)(f.A,{size:14})})]}),j]}):null})}},44246:(a,b,c)=>{"use strict";c.d(b,{d:()=>n});var d=c(80099),e=c(73024),f=c(76760),g=c(73136);let h=f.dirname((0,g.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/scripts/migrate-auth-v1.mjs")),i=f.resolve(h,".."),j=process.env.MADARX_DATA_DIR||process.env.VILLA515_DATA_DIR?f.resolve(process.env.MADARX_DATA_DIR||process.env.VILLA515_DATA_DIR):process.env.MADARX_HOME?f.join(f.resolve(process.env.MADARX_HOME),"data"):f.join(i,"data"),k=f.join(j,"madarx.sqlite"),l=f.join(j,".auth-migrated-v1");function m(){return new Date().toISOString()}function n(a){if(!a.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='organizations' LIMIT 1").get())throw Error("[migrate-auth-v1] organizations table does not exist. The schema has not been applied yet. Start the app once to initialize the schema, then re-run this migration.");let b=process.env.MADARX_OWNER_EMAIL||"owner@local.dev",c=m();a.prepare(`INSERT OR IGNORE INTO organizations (id, slug, name, plan, created_at, updated_at)
|
|
980
988
|
VALUES ('personal-org', 'personal', 'Personal Org', 'free', ?, ?)`).run(c,c),a.prepare(`INSERT OR IGNORE INTO users (id, email, display_name, auth_provider, created_at)
|
|
981
989
|
VALUES ('local-user-1', ?, 'Local Owner', 'local', ?)`).run(b,c),a.prepare(`INSERT OR IGNORE INTO org_memberships (id, org_id, user_id, role, accepted_at)
|
|
982
|
-
VALUES ('mem-local-owner', 'personal-org', 'local-user-1', 'owner', ?)`).run(c);let d=a.prepare("UPDATE projects SET org_id = 'personal-org' WHERE org_id IS NULL").run(),e=a.prepare("UPDATE artifacts SET sharing_scope = 'private' WHERE sharing_scope IS NULL").run();return{projectsUpdated:d.changes,artifactsUpdated:e.changes}}async function n(){e.existsSync(l)&&console.log("[migrate-auth-v1] Marker file exists — migration already applied. Re-running for idempotency check."),e.existsSync(k)||(console.error("[migrate-auth-v1] Database file not found at "+k+". Start the app once to create it, then re-run this script."),process.exit(1));let a=new d.DatabaseSync(k);a.exec("PRAGMA journal_mode=WAL;"),a.exec("PRAGMA foreign_keys=ON;");try{let b=m(a);e.writeFileSync(l,"migrated at "+new Date().toISOString()+"\n","utf8");let c=process.env.MADARX_OWNER_EMAIL||"owner@local.dev";console.log("[migrate-auth-v1] Migration complete."),console.log(" personal-org: ensured"),console.log(" local-user-1: ensured (email: "+c+")"),console.log(" owner membership: ensured"),console.log(" projects bound: "+b.projectsUpdated),console.log(" artifacts defaulted: "+b.artifactsUpdated),console.log(" marker: "+l)}catch(a){console.error("[migrate-auth-v1] ERROR:",a.message),process.exit(1)}finally{try{a.close()}catch{}}}let o=(0,g.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/scripts/migrate-auth-v1.mjs");(process.argv[1]?f.resolve(process.argv[1]):null)===o&&n()},44338:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{REDIRECT_ERROR_CODE:function(){return e},RedirectType:function(){return f},isRedirectError:function(){return g}});let d=c(62284),e="NEXT_REDIRECT";var f=function(a){return a.push="push",a.replace="replace",a}({});function g(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,f]=b,g=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===e&&("replace"===f||"push"===f)&&"string"==typeof g&&!isNaN(h)&&h in d.RedirectStatusCode}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},44500:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{RequestCookies:function(){return d.RequestCookies},ResponseCookies:function(){return d.ResponseCookies},stringifyCookie:function(){return d.stringifyCookie}});let d=c(7265)},45441:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{AppRenderSpan:function(){return i},AppRouteRouteHandlersSpan:function(){return l},BaseServerSpan:function(){return c},LoadComponentsSpan:function(){return d},LogSpanAllowList:function(){return p},MiddlewareSpan:function(){return n},NextNodeServerSpan:function(){return f},NextServerSpan:function(){return e},NextVanillaSpanAllowlist:function(){return o},NodeSpan:function(){return k},RenderSpan:function(){return h},ResolveMetadataSpan:function(){return m},RouterSpan:function(){return j},StartServerSpan:function(){return g}});var c=function(a){return a.handleRequest="BaseServer.handleRequest",a.run="BaseServer.run",a.pipe="BaseServer.pipe",a.getStaticHTML="BaseServer.getStaticHTML",a.render="BaseServer.render",a.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",a.renderToResponse="BaseServer.renderToResponse",a.renderToHTML="BaseServer.renderToHTML",a.renderError="BaseServer.renderError",a.renderErrorToResponse="BaseServer.renderErrorToResponse",a.renderErrorToHTML="BaseServer.renderErrorToHTML",a.render404="BaseServer.render404",a}(c||{}),d=function(a){return a.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",a.loadComponents="LoadComponents.loadComponents",a}(d||{}),e=function(a){return a.getRequestHandler="NextServer.getRequestHandler",a.getServer="NextServer.getServer",a.getServerRequestHandler="NextServer.getServerRequestHandler",a.createServer="createServer.createServer",a}(e||{}),f=function(a){return a.compression="NextNodeServer.compression",a.getBuildId="NextNodeServer.getBuildId",a.createComponentTree="NextNodeServer.createComponentTree",a.clientComponentLoading="NextNodeServer.clientComponentLoading",a.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",a.generateStaticRoutes="NextNodeServer.generateStaticRoutes",a.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",a.generatePublicRoutes="NextNodeServer.generatePublicRoutes",a.generateImageRoutes="NextNodeServer.generateImageRoutes.route",a.sendRenderResult="NextNodeServer.sendRenderResult",a.proxyRequest="NextNodeServer.proxyRequest",a.runApi="NextNodeServer.runApi",a.render="NextNodeServer.render",a.renderHTML="NextNodeServer.renderHTML",a.imageOptimizer="NextNodeServer.imageOptimizer",a.getPagePath="NextNodeServer.getPagePath",a.getRoutesManifest="NextNodeServer.getRoutesManifest",a.findPageComponents="NextNodeServer.findPageComponents",a.getFontManifest="NextNodeServer.getFontManifest",a.getServerComponentManifest="NextNodeServer.getServerComponentManifest",a.getRequestHandler="NextNodeServer.getRequestHandler",a.renderToHTML="NextNodeServer.renderToHTML",a.renderError="NextNodeServer.renderError",a.renderErrorToHTML="NextNodeServer.renderErrorToHTML",a.render404="NextNodeServer.render404",a.startResponse="NextNodeServer.startResponse",a.route="route",a.onProxyReq="onProxyReq",a.apiResolver="apiResolver",a.internalFetch="internalFetch",a}(f||{}),g=function(a){return a.startServer="startServer.startServer",a}(g||{}),h=function(a){return a.getServerSideProps="Render.getServerSideProps",a.getStaticProps="Render.getStaticProps",a.renderToString="Render.renderToString",a.renderDocument="Render.renderDocument",a.createBodyResult="Render.createBodyResult",a}(h||{}),i=function(a){return a.renderToString="AppRender.renderToString",a.renderToReadableStream="AppRender.renderToReadableStream",a.getBodyResult="AppRender.getBodyResult",a.fetch="AppRender.fetch",a}(i||{}),j=function(a){return a.executeRoute="Router.executeRoute",a}(j||{}),k=function(a){return a.runHandler="Node.runHandler",a}(k||{}),l=function(a){return a.runHandler="AppRouteRouteHandlers.runHandler",a}(l||{}),m=function(a){return a.generateMetadata="ResolveMetadata.generateMetadata",a.generateViewport="ResolveMetadata.generateViewport",a}(m||{}),n=function(a){return a.execute="Middleware.execute",a}(n||{});let o=new Set(["Middleware.execute","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"]),p=new Set(["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"])},45510:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{S:()=>j,f:()=>k});var e=c(80599),f=c(84104),g=a([e,f]);function h(a){return a?.acting_on_behalf_of_user_id||a?.user_id||null}function i(a={}){if(a.owner_trusted||"owner"===a.actor_role||"admin"===a.actor_role)return!0;let b=h(a);if(!b||"system"===b)return!1;try{let c=(0,f.Lf)().prepare("SELECT role FROM org_memberships WHERE user_id=? AND org_id=COALESCE(?, 'personal-org')").get(b,a.org_id||"personal-org");return c?.role==="owner"||c?.role==="admin"}catch{return!1}}async function j(a,b={}){if(!i(b))return{ok:!1,status:"error",error:"insufficient_role",message:"Skill authoring requires owner/admin authority."};let c=a?.spec;if(!c||"object"!=typeof c)return{ok:!1,status:"error",error:"spec_required",message:"spec required (object)"};if(!c.slug||"string"!=typeof c.slug)return{ok:!1,error:"slug_required",message:"spec.slug required (string)"};if((0,e.dc)(c.slug))return{ok:!1,status:"error",error:"slug_in_use",slug:c.slug};try{let a=(0,e.fw)(c,{created_by_user_id:h(b),created_by_agent_id:b?.agent_id||null});return{ok:!0,status:"complete",skill_id:a.id,slug:a.slug,invocation:a.invocation,file_path:a.file_path}}catch(a){if("spec_invalid"===a.code)return{ok:!1,status:"error",error:"spec_invalid",errors:a.errors||[a.message]};throw a}}async function k(a,b={}){if(!i(b))return{ok:!1,status:"error",error:"insufficient_role",message:"Skill authoring requires owner/admin authority."};let c="string"==typeof a?.slug?a.slug.trim():"",d=a?.spec;if(!c)return{ok:!1,status:"error",error:"slug_required",message:"slug required (string)"};if(!d||"object"!=typeof d)return{ok:!1,status:"error",error:"spec_required",message:"spec required (object)"};if(!(0,e.dc)(c))return{ok:!1,status:"error",error:"not_found",slug:c};let f={...d,slug:c};try{let a=(0,e.fw)(f,{created_by_user_id:h(b),created_by_agent_id:b?.agent_id||null});return{ok:!0,status:"complete",skill_id:a.id,slug:a.slug,invocation:a.invocation,file_path:a.file_path}}catch(a){if("spec_invalid"===a.code)return{ok:!1,status:"error",error:"spec_invalid",errors:a.errors||[a.message]};throw a}}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},45555:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Im:()=>j,fo:()=>l,vR:()=>k}),c(73024);var e=c(76760);c(77030),c(71553),c(77598);var f=c(66324),g=c(81909),h=c(83498),i=a([f,g]);[f,g]=i.then?(await i)():i;let m=new Set(["local","supabase"]);function j(){let a=function(){let a=process.env.MADARX_AUTH_MODE;return a&&String(a).trim()?String(a).trim().toLowerCase():null}();if(a&&m.has(a))return a;try{let a=(0,f.zj)("auth_mode",null);if(a&&m.has(a))return a}catch{}return"local"}function k(){let a=null,b=null;try{a=(0,g.r6)("SUPABASE_URL"),b=(0,g.r6)("SUPABASE_ANON_KEY")}catch{}return a=a||process.env.NEXT_PUBLIC_SUPABASE_URL||process.env.SUPABASE_URL||null,b=b||process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY||process.env.SUPABASE_ANON_KEY||null,{url:a||null,anonKey:b||null}}function l(){try{let a=(0,g.r6)("SUPABASE_SERVICE_ROLE_KEY");if(a)return a}catch{}return process.env.SUPABASE_SERVICE_ROLE_KEY||null}e.join(h.nJ,".auth-recovery-token"),d()}catch(a){d(a)}})},45599:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{p:()=>o});var e=c(81909),f=c(16343),g=c(89145),h=c(80028),i=c(15667),j=c(99850),k=a([e,f,g,h,j]);[e,f,g,h,j]=k.then?(await k)():k;let p=new Set(["__connector_slug","__endpoint","approval_id","body","query"]);function l(a){let b,c=[],d=/\{([a-z][a-z0-9_]*)\}/g;for(;null!==(b=d.exec(a));)c.push(b[1]);return c}function m(a={}){let b={},c={},d=a=>{let b=(0,e.r6)(a);if(null==b||""===b){let b=Error(`Required secret not configured: ${a}`);throw b.code="secret_missing",b.secret_ref=a,b}return String(b)};if("bearer"===a.type){let c=d(a.secret_ref);b[a.header||"Authorization"]=`${a.prefix??"Bearer "}${c}`}else if("api_key"===a.type){let e=d(a.secret_ref);a.query_param?c[a.query_param]=`${a.prefix??""}${e}`:b[a.header||"Authorization"]=`${a.prefix??""}${e}`}else if("basic"===a.type){let c=d(a.username_ref),e=d(a.password_ref);b.Authorization=`Basic ${Buffer.from(`${c}:${e}`).toString("base64")}`}else if("oauth2"===a.type){let c=d(a.access_token_ref);b[a.header||"Authorization"]=`${a.prefix??"Bearer "}${c}`}return{headers:b,query:c}}async function n(a,b){let c;if(a?.type!=="oauth2"||!a.refresh_token_ref)return!1;let d=(0,e.r6)(a.refresh_token_ref);if(!d)return!1;let f=(0,i.Kd)(a.provider,{token_url:a.token_url});if(!f?.token_url)return!1;let g=a.client_id_ref?(0,e.r6)(a.client_id_ref):null,h=a.client_secret_ref?(0,e.r6)(a.client_secret_ref):null;try{c=await (0,j.J1)(f,{refresh_token:String(d),client_id:g||"",client_secret:h||""},b)}catch{return!1}if(!c?.ok||!c.access_token)return!1;try{(0,e.Pq)(a.access_token_ref,c.access_token,{source:"oauth_refresh"}),c.refresh_token&&a.refresh_token_ref&&(0,e.Pq)(a.refresh_token_ref,c.refresh_token,{source:"oauth_refresh"})}catch{return!1}return!0}async function o(a={},b={}){let c,d,e,i=a.__connector_slug,j=a.__endpoint,k=i&&j?`${i}.${j}`:null,q=k?(0,h.tP)(k):null;if(!q)return{ok:!1,status:"error",error:"not_found",message:`Unknown connector endpoint: ${k||"(none)"}`};let{manifest:r,endpointDef:s}=q,t=s.path;for(let b of l(s.path)){let c=a[b]??a.params?.[b];if(null==c||""===c)return{ok:!1,status:"error",error:"missing_path_param",message:`Missing path parameter: ${b}`};t=t.replaceAll(`{${b}}`,encodeURIComponent(String(c)))}if(/\{[a-z]/i.test(t))return{ok:!1,status:"error",error:"missing_path_param",message:`Unresolved path parameter in ${t}`};try{c=new URL(r.base_url.replace(/\/+$/g,"")+t)}catch{return{ok:!1,status:"error",error:"bad_url",message:"Could not build request URL"}}try{(0,g.vC)(c.toString())}catch(a){return{ok:!1,status:"error",error:"blocked_host",message:a.message}}let u=c.hostname.toLowerCase();if(!Array.isArray(r.allowed_hosts)||!r.allowed_hosts.includes(u))return{ok:!1,status:"error",error:"host_not_allowed",message:`Host ${u} is not in the connector allowlist`};try{d=m(r.auth||{})}catch(a){if("secret_missing"===a.code)return{ok:!1,status:"error",error:"secret_missing",secret_ref:a.secret_ref,message:a.message};throw a}for(let[a,b]of Object.entries(d.query))c.searchParams.set(a,b);if(a.query&&"object"==typeof a.query)for(let[b,d]of Object.entries(a.query))null!=d&&c.searchParams.set(b,String(d));let v={Accept:"application/json",...r.default_headers||{}},w=Object.keys(d.headers),x=s.method,y=["POST","PUT","PATCH","DELETE"].includes(x),z=null,A=null;if(y){let b=a.body;if(null==b){let c=l(s.path);for(let[d,e]of(b={},Object.entries(a)))p.has(d)||c.includes(d)||"params"===d||(b[d]=e)}b&&"object"==typeof b&&Object.keys(b).length>0&&(A=(r.default_headers||{})["Content-Type"]||"application/json",z=JSON.stringify(b))}let B=a=>{let b={...v};if(a===c.hostname.toLowerCase())for(let a of w)b[a]=d.headers[a];A&&(b["Content-Type"]=A);let e={method:x,headers:b,redirect:"manual"};return null!=z&&(e.body=z),e},C=(0,f.N)(k,b.agent_id??null),D=new Set([301,302,303,307,308]);for(let a=0;a<2;a++){let b=c,f=null;for(let a=0;a<5;a++){let c;try{e=await C(b,B(b.hostname.toLowerCase()))}catch(a){return{ok:!1,status:"error",error:"request_failed",message:String(a?.message||a)}}if(!D.has(e.status))break;let d=e.headers.get("location");if(!d)break;try{c=new URL(d,b)}catch{return{ok:!1,status:"error",error:"bad_redirect",message:`Invalid redirect target: ${d}`}}try{(0,g.vC)(c.toString())}catch(a){return{ok:!1,status:"error",error:"blocked_redirect",message:`Redirect blocked: ${a.message}`}}if(!r.allowed_hosts.includes(c.hostname.toLowerCase()))return{ok:!1,status:"error",error:"blocked_redirect",message:`Redirect to ${c.hostname} is not in the connector allowlist`};if(b=c,4===a){f={ok:!1,status:"error",error:"too_many_redirects",message:"Exceeded redirect limit"};break}}if(f)return f;if(0===a&&401===e.status&&"oauth2"===(r.auth||{}).type&&await n(r.auth,C)){try{d=m(r.auth||{}),w=Object.keys(d.headers)}catch{break}continue}break}let E=e.headers.get("content-type")||"",F=e.body?.getReader(),G="";if(F){let a=[],b=0;for(;;){let{value:c,done:d}=await F.read();if(d)break;if((b+=c.byteLength)>512e3){G="[response truncated: exceeds 512KB]";break}a.push(c)}G||(G=Buffer.concat(a).toString("utf8"))}else G=(await e.text()).slice(0,512e3);let H=null;if(E.includes("application/json"))try{H=JSON.parse(G)}catch{H=null}return e.ok?{ok:!0,status:"complete",http_status:e.status,content_type:E,data:H??G.slice(0,512e3)}:{ok:!1,status:"error",error:"http_error",http_status:e.status,message:`${x} ${j} → ${e.status}`,body:H??G.slice(0,2e3)}}d()}catch(a){d(a)}})},45830:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{fx:()=>j});var e=c(73024),f=c(73136),g=c(76760),h=c(75994),i=a([h]);h=(i.then?(await i)():i)[0];let k=(0,g.dirname)((0,f.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/process/seeds/adgm-entity-setup.js")),l=null;function j(){let a=(l||(l=function(){let a=(0,g.join)(k,"specs","adgm-entity-setup.json");return JSON.parse((0,e.readFileSync)(a,"utf8"))}()),l);(0,h.R1)(a,{source_spec_json:JSON.stringify(a)})}d()}catch(a){d(a)}})},46204:(a,b,c)=>{"use strict";a.exports=c(49754).vendored["react-rsc"].React},47344:a=>{"use strict";a.exports=JSON.parse('{"schema_version":1,"slug":"contract-review","name":"Contract Review","version":1,"description":"Paste a contract draft and route it through an automated clause review, then counsel approval, then a packaged review report.","category":"legal","source":"marketplace","status":"published","stages":[{"slug":"intake","name":"Contract intake","kind":"intake_form","config":{"form_schema":{"title":"Contract Review — Intake","description":"Paste the contract text and a few details for the reviewer.","fields":[{"name":"counterparty","label":"Counterparty name","type":"text","required":true},{"name":"contract_title","label":"Contract title","type":"text","required":true},{"name":"contract_type","label":"Contract type","type":"select","required":true,"options":["MSA","SOW","NDA","DPA","Order Form","Other"]},{"name":"value_usd","label":"Contract value (USD)","type":"number","required":false,"min":0},{"name":"contract_text","label":"Contract text","type":"textarea","required":true,"min_length":200,"placeholder":"Paste the full contract text here. Minimum 200 characters."},{"name":"notes","label":"Reviewer notes","type":"textarea","required":false}]}}},{"slug":"clause-review","name":"Automated clause review","kind":"agent_run","config":{"agent_template_slug":"contract-reviewer","prompt":"You are a contract reviewer. Read the contract text in the intake payload and produce a structured review. Return strict JSON only, no surrounding prose: { \\"outcome\\": \\"pass\\" | \\"reject\\", \\"flags\\": [{ \\"clause\\": string, \\"severity\\": \\"low\\" | \\"medium\\" | \\"high\\", \\"concern\\": string, \\"suggested_edit\\": string }], \\"overall_recommendation\\": \\"approve\\" | \\"amend\\" | \\"reject\\", \\"summary\\": \\"one paragraph\\" }. Set outcome=\\"reject\\" only when the contract is so broken counsel cannot fix it (corrupted text, wrong document, illegal clauses). Set outcome=\\"pass\\" otherwise — counsel approval is the real gate. Focus on: indemnity scope, liability cap, IP assignment, auto-renewal, termination for convenience, data-processing addendum, governing law. If a clause is missing entirely from the contract, list it as severity high with concern \\"missing\\".","output_schema":"contract_review_v1","timeout_ms":90000,"on_outcome":{"pass":"counsel-approval","reject":"fail"}},"on_pass_stage_slug":"counsel-approval","on_fail_stage_slug":null},{"slug":"counsel-approval","name":"Counsel approval","kind":"human_approval","config":{"action_type":"process.stage.approve","risk":"high","summary_template":"Approve contract review for {{intake.contract_title}} with {{intake.counterparty}} — recommendation {{clause-review.overall_recommendation}}"},"on_pass_stage_slug":"final-package","on_fail_stage_slug":null},{"slug":"final-package","name":"Review report","kind":"package","config":{"title_template":"Contract review — {{intake.contract_title}}","include_stages":["intake","clause-review","counsel-approval"]}}]}')},47390:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{INTERNALS:function(){return h},NextRequest:function(){return i}});let d=c(69942),e=c(66568),f=c(91209),g=c(44500),h=Symbol("internal request");class i extends Request{constructor(a,b={}){let c="string"!=typeof a&&"url"in a?a.url:String(a);(0,e.validateURL)(c),b.body&&"half"!==b.duplex&&(b.duplex="half"),a instanceof Request?super(a,b):super(c,b);let f=new d.NextURL(c,{headers:(0,e.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:b.nextConfig});this[h]={cookies:new g.RequestCookies(this.headers),nextUrl:f,url:f.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[h].cookies}get nextUrl(){return this[h].nextUrl}get page(){throw new f.RemovedPageError}get ua(){throw new f.RemovedUAError}get url(){return this[h].url}}},47735:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{N:()=>g});var e=c(84104),f=a([e]);e=(f.then?(await f)():f)[0];let h="personal-org";function g(a,b=h){if(!a)return null;let c=b||h;return(0,e.Lf)().prepare(`
|
|
990
|
+
VALUES ('mem-local-owner', 'personal-org', 'local-user-1', 'owner', ?)`).run(c);let d=function(a){let b,c;if(!a.prepare("SELECT id FROM organizations WHERE id = ?").get(p))return{status:"no_default_org"};let d=a.prepare("SELECT user_id FROM org_memberships WHERE org_id = ? AND role = 'owner' AND user_id != ?").get(p,o);if(d)return{status:"already_owned",user_id:d.user_id};let e=a.prepare("SELECT user_id FROM org_memberships WHERE org_id = ? AND user_id != ?").all(p,o);if(0===e.length)return{status:"no_real_user"};if(1===e.length)b=e[0].user_id,c="sole_member";else{let d=process.env.MADARX_OWNER_EMAIL;if(!d||"owner@local.dev"===d)return{status:"ambiguous",count:e.length};let f=a.prepare(`SELECT m.user_id FROM org_memberships m JOIN users u ON u.id = m.user_id
|
|
991
|
+
WHERE m.org_id = ? AND m.user_id != ? AND lower(u.email) = lower(?)`).all(p,o,d);if(1!==f.length)return{status:"ambiguous",count:e.length};b=f[0].user_id,c="owner_email"}if(!a.prepare("UPDATE org_memberships SET role = 'owner' WHERE org_id = ? AND user_id = ? AND role != 'owner'").run(p,b).changes)return{status:"already_owned",user_id:b};try{a.prepare(`INSERT INTO audit_logs (id, at, type, summary, status, meta, user_id, org_id, action_target_id, action_target_type)
|
|
992
|
+
VALUES (?, ?, 'auth.default_org.owner_healed', ?, 'success', ?, ?, ?, ?, 'org_membership')`).run(`audit-orgheal-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,m(),`Promoted real operator to owner of ${p} (was member; default org was owned only by synthetic ${o})`,JSON.stringify({org_id:p,user_id:b,basis:c}),b,p,b)}catch{}return{status:"promoted",user_id:b,basis:c}}(a),e=a.prepare("UPDATE projects SET org_id = 'personal-org' WHERE org_id IS NULL").run(),f=a.prepare("UPDATE artifacts SET sharing_scope = 'private' WHERE sharing_scope IS NULL").run();return{projectsUpdated:e.changes,artifactsUpdated:f.changes,ownershipHeal:d}}let o="local-user-1",p="personal-org";async function q(){e.existsSync(l)&&console.log("[migrate-auth-v1] Marker file exists — migration already applied. Re-running for idempotency check."),e.existsSync(k)||(console.error("[migrate-auth-v1] Database file not found at "+k+". Start the app once to create it, then re-run this script."),process.exit(1));let a=new d.DatabaseSync(k);a.exec("PRAGMA journal_mode=WAL;"),a.exec("PRAGMA foreign_keys=ON;");try{let b=n(a);e.writeFileSync(l,"migrated at "+new Date().toISOString()+"\n","utf8");let c=process.env.MADARX_OWNER_EMAIL||"owner@local.dev";console.log("[migrate-auth-v1] Migration complete."),console.log(" personal-org: ensured"),console.log(" local-user-1: ensured (email: "+c+")"),console.log(" owner membership: ensured"),console.log(" ownership heal: "+b.ownershipHeal.status+(b.ownershipHeal.user_id?" ("+b.ownershipHeal.user_id+")":"")),console.log(" projects bound: "+b.projectsUpdated),console.log(" artifacts defaulted: "+b.artifactsUpdated),console.log(" marker: "+l)}catch(a){console.error("[migrate-auth-v1] ERROR:",a.message),process.exit(1)}finally{try{a.close()}catch{}}}let r=(0,g.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/scripts/migrate-auth-v1.mjs");(process.argv[1]?f.resolve(process.argv[1]):null)===r&&q()},44338:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{REDIRECT_ERROR_CODE:function(){return e},RedirectType:function(){return f},isRedirectError:function(){return g}});let d=c(62284),e="NEXT_REDIRECT";var f=function(a){return a.push="push",a.replace="replace",a}({});function g(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,f]=b,g=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===e&&("replace"===f||"push"===f)&&"string"==typeof g&&!isNaN(h)&&h in d.RedirectStatusCode}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},44500:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{RequestCookies:function(){return d.RequestCookies},ResponseCookies:function(){return d.ResponseCookies},stringifyCookie:function(){return d.stringifyCookie}});let d=c(7265)},45441:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{AppRenderSpan:function(){return i},AppRouteRouteHandlersSpan:function(){return l},BaseServerSpan:function(){return c},LoadComponentsSpan:function(){return d},LogSpanAllowList:function(){return p},MiddlewareSpan:function(){return n},NextNodeServerSpan:function(){return f},NextServerSpan:function(){return e},NextVanillaSpanAllowlist:function(){return o},NodeSpan:function(){return k},RenderSpan:function(){return h},ResolveMetadataSpan:function(){return m},RouterSpan:function(){return j},StartServerSpan:function(){return g}});var c=function(a){return a.handleRequest="BaseServer.handleRequest",a.run="BaseServer.run",a.pipe="BaseServer.pipe",a.getStaticHTML="BaseServer.getStaticHTML",a.render="BaseServer.render",a.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",a.renderToResponse="BaseServer.renderToResponse",a.renderToHTML="BaseServer.renderToHTML",a.renderError="BaseServer.renderError",a.renderErrorToResponse="BaseServer.renderErrorToResponse",a.renderErrorToHTML="BaseServer.renderErrorToHTML",a.render404="BaseServer.render404",a}(c||{}),d=function(a){return a.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",a.loadComponents="LoadComponents.loadComponents",a}(d||{}),e=function(a){return a.getRequestHandler="NextServer.getRequestHandler",a.getServer="NextServer.getServer",a.getServerRequestHandler="NextServer.getServerRequestHandler",a.createServer="createServer.createServer",a}(e||{}),f=function(a){return a.compression="NextNodeServer.compression",a.getBuildId="NextNodeServer.getBuildId",a.createComponentTree="NextNodeServer.createComponentTree",a.clientComponentLoading="NextNodeServer.clientComponentLoading",a.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",a.generateStaticRoutes="NextNodeServer.generateStaticRoutes",a.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",a.generatePublicRoutes="NextNodeServer.generatePublicRoutes",a.generateImageRoutes="NextNodeServer.generateImageRoutes.route",a.sendRenderResult="NextNodeServer.sendRenderResult",a.proxyRequest="NextNodeServer.proxyRequest",a.runApi="NextNodeServer.runApi",a.render="NextNodeServer.render",a.renderHTML="NextNodeServer.renderHTML",a.imageOptimizer="NextNodeServer.imageOptimizer",a.getPagePath="NextNodeServer.getPagePath",a.getRoutesManifest="NextNodeServer.getRoutesManifest",a.findPageComponents="NextNodeServer.findPageComponents",a.getFontManifest="NextNodeServer.getFontManifest",a.getServerComponentManifest="NextNodeServer.getServerComponentManifest",a.getRequestHandler="NextNodeServer.getRequestHandler",a.renderToHTML="NextNodeServer.renderToHTML",a.renderError="NextNodeServer.renderError",a.renderErrorToHTML="NextNodeServer.renderErrorToHTML",a.render404="NextNodeServer.render404",a.startResponse="NextNodeServer.startResponse",a.route="route",a.onProxyReq="onProxyReq",a.apiResolver="apiResolver",a.internalFetch="internalFetch",a}(f||{}),g=function(a){return a.startServer="startServer.startServer",a}(g||{}),h=function(a){return a.getServerSideProps="Render.getServerSideProps",a.getStaticProps="Render.getStaticProps",a.renderToString="Render.renderToString",a.renderDocument="Render.renderDocument",a.createBodyResult="Render.createBodyResult",a}(h||{}),i=function(a){return a.renderToString="AppRender.renderToString",a.renderToReadableStream="AppRender.renderToReadableStream",a.getBodyResult="AppRender.getBodyResult",a.fetch="AppRender.fetch",a}(i||{}),j=function(a){return a.executeRoute="Router.executeRoute",a}(j||{}),k=function(a){return a.runHandler="Node.runHandler",a}(k||{}),l=function(a){return a.runHandler="AppRouteRouteHandlers.runHandler",a}(l||{}),m=function(a){return a.generateMetadata="ResolveMetadata.generateMetadata",a.generateViewport="ResolveMetadata.generateViewport",a}(m||{}),n=function(a){return a.execute="Middleware.execute",a}(n||{});let o=new Set(["Middleware.execute","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"]),p=new Set(["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"])},45510:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{S:()=>j,f:()=>k});var e=c(80599),f=c(84104),g=a([e,f]);function h(a){return a?.acting_on_behalf_of_user_id||a?.user_id||null}function i(a={}){if(a.owner_trusted||"owner"===a.actor_role||"admin"===a.actor_role)return!0;let b=h(a);if(!b||"system"===b)return!1;try{let c=(0,f.Lf)().prepare("SELECT role FROM org_memberships WHERE user_id=? AND org_id=COALESCE(?, 'personal-org')").get(b,a.org_id||"personal-org");return c?.role==="owner"||c?.role==="admin"}catch{return!1}}async function j(a,b={}){if(!i(b))return{ok:!1,status:"error",error:"insufficient_role",message:"Skill authoring requires owner/admin authority."};let c=a?.spec;if(!c||"object"!=typeof c)return{ok:!1,status:"error",error:"spec_required",message:"spec required (object)"};if(!c.slug||"string"!=typeof c.slug)return{ok:!1,error:"slug_required",message:"spec.slug required (string)"};if((0,e.dc)(c.slug))return{ok:!1,status:"error",error:"slug_in_use",slug:c.slug};try{let a=(0,e.fw)(c,{created_by_user_id:h(b),created_by_agent_id:b?.agent_id||null});return{ok:!0,status:"complete",skill_id:a.id,slug:a.slug,invocation:a.invocation,file_path:a.file_path}}catch(a){if("spec_invalid"===a.code)return{ok:!1,status:"error",error:"spec_invalid",errors:a.errors||[a.message]};throw a}}async function k(a,b={}){if(!i(b))return{ok:!1,status:"error",error:"insufficient_role",message:"Skill authoring requires owner/admin authority."};let c="string"==typeof a?.slug?a.slug.trim():"",d=a?.spec;if(!c)return{ok:!1,status:"error",error:"slug_required",message:"slug required (string)"};if(!d||"object"!=typeof d)return{ok:!1,status:"error",error:"spec_required",message:"spec required (object)"};if(!(0,e.dc)(c))return{ok:!1,status:"error",error:"not_found",slug:c};let f={...d,slug:c};try{let a=(0,e.fw)(f,{created_by_user_id:h(b),created_by_agent_id:b?.agent_id||null});return{ok:!0,status:"complete",skill_id:a.id,slug:a.slug,invocation:a.invocation,file_path:a.file_path}}catch(a){if("spec_invalid"===a.code)return{ok:!1,status:"error",error:"spec_invalid",errors:a.errors||[a.message]};throw a}}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},45555:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Im:()=>k,fo:()=>m,vR:()=>l}),c(73024);var e=c(76760);c(77030),c(71553),c(77598);var f=c(66324),g=c(81909),h=c(83498),i=a([f,g]);[f,g]=i.then?(await i)():i;let n=new Set(["local","supabase"]);function j(){let a=process.env.MADARX_AUTH_MODE;if(a&&String(a).trim()){let b=String(a).trim().toLowerCase();if(n.has(b))return b}return null}function k(){if(function(){let a=String(process.env.MADARX_AUTH_MODE_LOCK||"").trim().toLowerCase();return!!(j()&&("1"===a||"true"===a))}())return j();if("supabase"===j()&&function(){let{url:a,anonKey:b}=l();return!!(a&&b)}())return"supabase";try{let a=(0,f.zj)("auth_mode",null);if(a&&n.has(a))return a}catch{}return j()||"local"}function l(){let a=null,b=null;try{a=(0,g.r6)("SUPABASE_URL"),b=(0,g.r6)("SUPABASE_ANON_KEY")}catch{}return a=a||process.env.NEXT_PUBLIC_SUPABASE_URL||process.env.SUPABASE_URL||null,b=b||process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY||process.env.SUPABASE_ANON_KEY||null,{url:a||null,anonKey:b||null}}function m(){try{let a=(0,g.r6)("SUPABASE_SERVICE_ROLE_KEY");if(a)return a}catch{}return process.env.SUPABASE_SERVICE_ROLE_KEY||null}e.join(h.nJ,".auth-recovery-token"),d()}catch(a){d(a)}})},45599:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{p:()=>o});var e=c(81909),f=c(16343),g=c(89145),h=c(80028),i=c(15667),j=c(99850),k=a([e,f,g,h,j]);[e,f,g,h,j]=k.then?(await k)():k;let p=new Set(["__connector_slug","__endpoint","approval_id","body","query"]);function l(a){let b,c=[],d=/\{([a-z][a-z0-9_]*)\}/g;for(;null!==(b=d.exec(a));)c.push(b[1]);return c}function m(a={}){let b={},c={},d=a=>{let b=(0,e.r6)(a);if(null==b||""===b){let b=Error(`Required secret not configured: ${a}`);throw b.code="secret_missing",b.secret_ref=a,b}return String(b)};if("bearer"===a.type){let c=d(a.secret_ref);b[a.header||"Authorization"]=`${a.prefix??"Bearer "}${c}`}else if("api_key"===a.type){let e=d(a.secret_ref);a.query_param?c[a.query_param]=`${a.prefix??""}${e}`:b[a.header||"Authorization"]=`${a.prefix??""}${e}`}else if("basic"===a.type){let c=d(a.username_ref),e=d(a.password_ref);b.Authorization=`Basic ${Buffer.from(`${c}:${e}`).toString("base64")}`}else if("oauth2"===a.type){let c=d(a.access_token_ref);b[a.header||"Authorization"]=`${a.prefix??"Bearer "}${c}`}return{headers:b,query:c}}async function n(a,b){let c;if(a?.type!=="oauth2"||!a.refresh_token_ref)return!1;let d=(0,e.r6)(a.refresh_token_ref);if(!d)return!1;let f=(0,i.Kd)(a.provider,{token_url:a.token_url});if(!f?.token_url)return!1;let g=a.client_id_ref?(0,e.r6)(a.client_id_ref):null,h=a.client_secret_ref?(0,e.r6)(a.client_secret_ref):null;try{c=await (0,j.J1)(f,{refresh_token:String(d),client_id:g||"",client_secret:h||""},b)}catch{return!1}if(!c?.ok||!c.access_token)return!1;try{(0,e.Pq)(a.access_token_ref,c.access_token,{source:"oauth_refresh"}),c.refresh_token&&a.refresh_token_ref&&(0,e.Pq)(a.refresh_token_ref,c.refresh_token,{source:"oauth_refresh"})}catch{return!1}return!0}async function o(a={},b={}){let c,d,e,i=a.__connector_slug,j=a.__endpoint,k=i&&j?`${i}.${j}`:null,q=k?(0,h.tP)(k):null;if(!q)return{ok:!1,status:"error",error:"not_found",message:`Unknown connector endpoint: ${k||"(none)"}`};let{manifest:r,endpointDef:s}=q,t=s.path;for(let b of l(s.path)){let c=a[b]??a.params?.[b];if(null==c||""===c)return{ok:!1,status:"error",error:"missing_path_param",message:`Missing path parameter: ${b}`};t=t.replaceAll(`{${b}}`,encodeURIComponent(String(c)))}if(/\{[a-z]/i.test(t))return{ok:!1,status:"error",error:"missing_path_param",message:`Unresolved path parameter in ${t}`};try{c=new URL(r.base_url.replace(/\/+$/g,"")+t)}catch{return{ok:!1,status:"error",error:"bad_url",message:"Could not build request URL"}}try{(0,g.vC)(c.toString())}catch(a){return{ok:!1,status:"error",error:"blocked_host",message:a.message}}let u=c.hostname.toLowerCase();if(!Array.isArray(r.allowed_hosts)||!r.allowed_hosts.includes(u))return{ok:!1,status:"error",error:"host_not_allowed",message:`Host ${u} is not in the connector allowlist`};try{d=m(r.auth||{})}catch(a){if("secret_missing"===a.code)return{ok:!1,status:"error",error:"secret_missing",secret_ref:a.secret_ref,message:a.message};throw a}for(let[a,b]of Object.entries(d.query))c.searchParams.set(a,b);if(a.query&&"object"==typeof a.query)for(let[b,d]of Object.entries(a.query))null!=d&&c.searchParams.set(b,String(d));let v={Accept:"application/json",...r.default_headers||{}},w=Object.keys(d.headers),x=s.method,y=["POST","PUT","PATCH","DELETE"].includes(x),z=null,A=null;if(y){let b=a.body;if(null==b){let c=l(s.path);for(let[d,e]of(b={},Object.entries(a)))p.has(d)||c.includes(d)||"params"===d||(b[d]=e)}b&&"object"==typeof b&&Object.keys(b).length>0&&(A=(r.default_headers||{})["Content-Type"]||"application/json",z=JSON.stringify(b))}let B=a=>{let b={...v};if(a===c.hostname.toLowerCase())for(let a of w)b[a]=d.headers[a];A&&(b["Content-Type"]=A);let e={method:x,headers:b,redirect:"manual"};return null!=z&&(e.body=z),e},C=(0,f.N)(k,b.agent_id??null),D=new Set([301,302,303,307,308]);for(let a=0;a<2;a++){let b=c,f=null;for(let a=0;a<5;a++){let c;try{e=await C(b,B(b.hostname.toLowerCase()))}catch(a){return{ok:!1,status:"error",error:"request_failed",message:String(a?.message||a)}}if(!D.has(e.status))break;let d=e.headers.get("location");if(!d)break;try{c=new URL(d,b)}catch{return{ok:!1,status:"error",error:"bad_redirect",message:`Invalid redirect target: ${d}`}}try{(0,g.vC)(c.toString())}catch(a){return{ok:!1,status:"error",error:"blocked_redirect",message:`Redirect blocked: ${a.message}`}}if(!r.allowed_hosts.includes(c.hostname.toLowerCase()))return{ok:!1,status:"error",error:"blocked_redirect",message:`Redirect to ${c.hostname} is not in the connector allowlist`};if(b=c,4===a){f={ok:!1,status:"error",error:"too_many_redirects",message:"Exceeded redirect limit"};break}}if(f)return f;if(0===a&&401===e.status&&"oauth2"===(r.auth||{}).type&&await n(r.auth,C)){try{d=m(r.auth||{}),w=Object.keys(d.headers)}catch{break}continue}break}let E=e.headers.get("content-type")||"",F=e.body?.getReader(),G="";if(F){let a=[],b=0;for(;;){let{value:c,done:d}=await F.read();if(d)break;if((b+=c.byteLength)>512e3){G="[response truncated: exceeds 512KB]";break}a.push(c)}G||(G=Buffer.concat(a).toString("utf8"))}else G=(await e.text()).slice(0,512e3);let H=null;if(E.includes("application/json"))try{H=JSON.parse(G)}catch{H=null}return e.ok?{ok:!0,status:"complete",http_status:e.status,content_type:E,data:H??G.slice(0,512e3)}:{ok:!1,status:"error",error:"http_error",http_status:e.status,message:`${x} ${j} → ${e.status}`,body:H??G.slice(0,2e3)}}d()}catch(a){d(a)}})},45830:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{fx:()=>j});var e=c(73024),f=c(73136),g=c(76760),h=c(75994),i=a([h]);h=(i.then?(await i)():i)[0];let k=(0,g.dirname)((0,f.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/process/seeds/adgm-entity-setup.js")),l=null;function j(){let a=(l||(l=function(){let a=(0,g.join)(k,"specs","adgm-entity-setup.json");return JSON.parse((0,e.readFileSync)(a,"utf8"))}()),l);(0,h.R1)(a,{source_spec_json:JSON.stringify(a)})}d()}catch(a){d(a)}})},46204:(a,b,c)=>{"use strict";a.exports=c(49754).vendored["react-rsc"].React},47344:a=>{"use strict";a.exports=JSON.parse('{"schema_version":1,"slug":"contract-review","name":"Contract Review","version":1,"description":"Paste a contract draft and route it through an automated clause review, then counsel approval, then a packaged review report.","category":"legal","source":"marketplace","status":"published","stages":[{"slug":"intake","name":"Contract intake","kind":"intake_form","config":{"form_schema":{"title":"Contract Review — Intake","description":"Paste the contract text and a few details for the reviewer.","fields":[{"name":"counterparty","label":"Counterparty name","type":"text","required":true},{"name":"contract_title","label":"Contract title","type":"text","required":true},{"name":"contract_type","label":"Contract type","type":"select","required":true,"options":["MSA","SOW","NDA","DPA","Order Form","Other"]},{"name":"value_usd","label":"Contract value (USD)","type":"number","required":false,"min":0},{"name":"contract_text","label":"Contract text","type":"textarea","required":true,"min_length":200,"placeholder":"Paste the full contract text here. Minimum 200 characters."},{"name":"notes","label":"Reviewer notes","type":"textarea","required":false}]}}},{"slug":"clause-review","name":"Automated clause review","kind":"agent_run","config":{"agent_template_slug":"contract-reviewer","prompt":"You are a contract reviewer. Read the contract text in the intake payload and produce a structured review. Return strict JSON only, no surrounding prose: { \\"outcome\\": \\"pass\\" | \\"reject\\", \\"flags\\": [{ \\"clause\\": string, \\"severity\\": \\"low\\" | \\"medium\\" | \\"high\\", \\"concern\\": string, \\"suggested_edit\\": string }], \\"overall_recommendation\\": \\"approve\\" | \\"amend\\" | \\"reject\\", \\"summary\\": \\"one paragraph\\" }. Set outcome=\\"reject\\" only when the contract is so broken counsel cannot fix it (corrupted text, wrong document, illegal clauses). Set outcome=\\"pass\\" otherwise — counsel approval is the real gate. Focus on: indemnity scope, liability cap, IP assignment, auto-renewal, termination for convenience, data-processing addendum, governing law. If a clause is missing entirely from the contract, list it as severity high with concern \\"missing\\".","output_schema":"contract_review_v1","timeout_ms":90000,"on_outcome":{"pass":"counsel-approval","reject":"fail"}},"on_pass_stage_slug":"counsel-approval","on_fail_stage_slug":null},{"slug":"counsel-approval","name":"Counsel approval","kind":"human_approval","config":{"action_type":"process.stage.approve","risk":"high","summary_template":"Approve contract review for {{intake.contract_title}} with {{intake.counterparty}} — recommendation {{clause-review.overall_recommendation}}"},"on_pass_stage_slug":"final-package","on_fail_stage_slug":null},{"slug":"final-package","name":"Review report","kind":"package","config":{"title_template":"Contract review — {{intake.contract_title}}","include_stages":["intake","clause-review","counsel-approval"]}}]}')},47390:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{INTERNALS:function(){return h},NextRequest:function(){return i}});let d=c(69942),e=c(66568),f=c(91209),g=c(44500),h=Symbol("internal request");class i extends Request{constructor(a,b={}){let c="string"!=typeof a&&"url"in a?a.url:String(a);(0,e.validateURL)(c),b.body&&"half"!==b.duplex&&(b.duplex="half"),a instanceof Request?super(a,b):super(c,b);let f=new d.NextURL(c,{headers:(0,e.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:b.nextConfig});this[h]={cookies:new g.RequestCookies(this.headers),nextUrl:f,url:f.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[h].cookies}get nextUrl(){return this[h].nextUrl}get page(){throw new f.RemovedPageError}get ua(){throw new f.RemovedUAError}get url(){return this[h].url}}},47735:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{N:()=>g});var e=c(84104),f=a([e]);e=(f.then?(await f)():f)[0];let h="personal-org";function g(a,b=h){if(!a)return null;let c=b||h;return(0,e.Lf)().prepare(`
|
|
983
993
|
SELECT mp.*, COALESCE(p.org_id, ?) AS effective_org_id
|
|
984
994
|
FROM mines_projects mp
|
|
985
995
|
LEFT JOIN projects p ON p.id = mp.os_project_id
|
|
@@ -997,7 +1007,7 @@ Read more at https://nextjs.org/docs/messages/missing-root-layout-tags"
|
|
|
997
1007
|
data-next-error-digest="${j.MISSING_ROOT_TAGS_ERROR}"
|
|
998
1008
|
data-next-error-stack=""
|
|
999
1009
|
></template>
|
|
1000
|
-
`))}})}async function B(a,{suffix:b,inlinedDataStream:c,isStaticGeneration:d,isBuildTimePrerendering:e,buildId:h,getServerInsertedHTML:i,getServerInsertedMetadata:j,validateRootLayout:k}){let l,n,o=b?b.split(y,1)[0]:null;d&&await a.allReady;var p=[s(),t(e,h),v(j),null!=o&&o.length>0?(n=!1,new TransformStream({transform(a,b){if(b.enqueue(a),!n){n=!0;let a=new f.DetachedPromise;l=a,(0,g.scheduleImmediate)(()=>{try{b.enqueue(m.encode(o))}catch{}finally{l=void 0,a.resolve()}})}},flush(a){if(l)return l.promise;n||a.enqueue(m.encode(o))}})):null,c?x(c,!0):null,k?A():null,z(),w(i)];let q=a;for(let a of p)a&&(q=q.pipeThrough(a));return q}async function C(a,{getServerInsertedHTML:b,getServerInsertedMetadata:c}){return a.pipeThrough(s()).pipeThrough(new TransformStream({transform(a,b){(0,i.isEquivalentUint8Arrays)(a,h.ENCODED_TAGS.CLOSED.BODY_AND_HTML)||(0,i.isEquivalentUint8Arrays)(a,h.ENCODED_TAGS.CLOSED.BODY)||(0,i.isEquivalentUint8Arrays)(a,h.ENCODED_TAGS.CLOSED.HTML)||(a=(0,i.removeFromUint8Array)(a,h.ENCODED_TAGS.CLOSED.BODY),a=(0,i.removeFromUint8Array)(a,h.ENCODED_TAGS.CLOSED.HTML),b.enqueue(a))}})).pipeThrough(w(b)).pipeThrough(v(c))}async function D(a,{inlinedDataStream:b,getServerInsertedHTML:c,getServerInsertedMetadata:d,isBuildTimePrerendering:e,buildId:f}){return a.pipeThrough(s()).pipeThrough(t(e,f)).pipeThrough(w(c)).pipeThrough(v(d)).pipeThrough(x(b,!0)).pipeThrough(z())}async function E(a,{delayDataUntilFirstHtmlChunk:b,inlinedDataStream:c,getServerInsertedHTML:d,getServerInsertedMetadata:e}){return a.pipeThrough(s()).pipeThrough(w(d)).pipeThrough(v(e)).pipeThrough(x(c,b)).pipeThrough(z())}function F(){return o(y)}},51318:(a,b,c)=>{"use strict";a.exports=c(9907)},52237:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addPathSuffix",{enumerable:!0,get:function(){return e}});let d=c(2213);function e(a,b){if(!a.startsWith("/")||!b)return a;let{pathname:c,query:e,hash:f}=(0,d.parsePath)(a);return""+c+b+e+f}},52318:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{BailoutToCSRError:function(){return d},isBailoutToCSRError:function(){return e}});let c="BAILOUT_TO_CLIENT_SIDE_RENDERING";class d extends Error{constructor(a){super("Bail out to client-side rendering: "+a),this.reason=a,this.digest=c}}function e(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===c}},52577:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{DynamicServerError:function(){return d},isDynamicServerError:function(){return e}});let c="DYNAMIC_SERVER_USAGE";class d extends Error{constructor(a){super("Dynamic server usage: "+a),this.description=a,this.digest=c}}function e(a){return"object"==typeof a&&null!==a&&"digest"in a&&"string"==typeof a.digest&&a.digest===c}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},52644:(a,b,c)=>{"use strict";a.exports=c.p+"static/media/check-disk-encryption.6b124b4e.mjs"},52741:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return e}});let d=""+c(15570).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function e(){let a=Object.defineProperty(Error(d),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=d,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},53476:(a,b)=>{"use strict";function c(a,b){if(0===b.length)return 0;if(0===a.length||b.length>a.length)return -1;for(let c=0;c<=a.length-b.length;c++){let d=!0;for(let e=0;e<b.length;e++)if(a[c+e]!==b[e]){d=!1;break}if(d)return c}return -1}function d(a,b){if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}function e(a,b){let d=c(a,b);if(0===d)return a.subarray(b.length);if(!(d>-1))return a;{let c=new Uint8Array(a.length-b.length);return c.set(a.slice(0,d)),c.set(a.slice(d+b.length),d),c}}Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{indexOfUint8Array:function(){return c},isEquivalentUint8Arrays:function(){return d},removeFromUint8Array:function(){return e}})},54151:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(21124),e=c(38301);function f({name:a="folder_path",value:b,onChange:c,inputRef:f,placeholder:g="/Users/you/Documents/my-project"}){let[h,i]=e.useState(null),[j,k]=e.useState(!1),[l,m]=e.useState(""),[n,o]=e.useState(""),[p,q]=e.useState(null);async function r(){let a;if(i(null),!navigator.clipboard?.readText)return void i({kind:"error",message:"Clipboard not available."});try{a=await navigator.clipboard.readText()}catch{i({kind:"error",message:"Allow clipboard access."});return}let b=(a||"").trim();if((b.startsWith('"')&&b.endsWith('"')||b.startsWith("'")&&b.endsWith("'"))&&(b=b.slice(1,-1)),b.startsWith("file://"))try{b=decodeURI(b.slice(7))}catch{}return b?b.startsWith("/")||b.startsWith("~")?void(c(b),i({kind:"success",message:"Pasted."})):void i({kind:"error",message:"Path must be absolute."}):void i({kind:"error",message:"Clipboard is empty."})}async function s(){i(null),q("pick");try{let a=await fetch("/api/fs/pick-folder",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({title:"Choose project folder",start_path:b&&b.startsWith("/")?b:void 0})});if(499===a.status)return void i({kind:"error",message:"Cancelled."});let d=await a.json();if(!a.ok)return void i({kind:"error",message:d.error||"Picker failed."});c(d.folder_path),i({kind:"success",message:`Selected ${d.folder_path}`})}catch(a){i({kind:"error",message:String(a?.message||a)})}finally{q(null)}}async function t(){if(i(null),!l.trim()||!n.trim())return void i({kind:"error",message:"Parent and name required."});q("create");try{let a=await fetch("/api/fs/create-folder",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({parent:l.trim(),name:n.trim()})}),b=await a.json();if(!a.ok)return void i({kind:"error",message:b.error||"Create failed."});c(b.folder_path),k(!1),o(""),i({kind:"success",message:`Created ${b.folder_path}`})}catch(a){i({kind:"error",message:String(a?.message||a)})}finally{q(null)}}return e.useEffect(()=>{j&&!l&&m(b||"~/Documents")},[j,b,l]),(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"agents-modal-paste-row",children:[(0,d.jsx)("input",{ref:f,name:a,type:"text",placeholder:g,autoComplete:"off",spellCheck:!1,value:b||"",onChange:a=>{c(a.target.value),h&&i(null)},required:!0}),(0,d.jsx)("button",{type:"button",className:"admin-button secondary",onClick:s,disabled:"pick"===p,children:"pick"===p?"Opening…":"Choose folder…"})]}),(0,d.jsxs)("div",{className:"agents-modal-folder-tools",children:[(0,d.jsx)("button",{type:"button",className:"admin-button secondary",onClick:r,children:"Paste from clipboard"}),(0,d.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>c("~/Documents"),children:"~/Documents"}),(0,d.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>c("~/Desktop"),children:"~/Desktop"}),(0,d.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>k(a=>!a),children:j?"Cancel new folder":"+ New folder"})]}),j?(0,d.jsxs)("div",{className:"agents-modal-create-folder",children:[(0,d.jsx)("small",{children:"Create a folder anywhere outside system directories. Parent must exist."}),(0,d.jsx)("div",{className:"agents-modal-create-row",children:(0,d.jsx)("input",{type:"text",placeholder:"Parent (e.g. ~/Documents)",value:l,onChange:a=>m(a.target.value),spellCheck:!1,autoComplete:"off"})}),(0,d.jsxs)("div",{className:"agents-modal-create-row",children:[(0,d.jsx)("input",{type:"text",placeholder:"New folder name",value:n,onChange:a=>o(a.target.value),spellCheck:!1,autoComplete:"off"}),(0,d.jsx)("button",{type:"button",className:"admin-button",onClick:t,disabled:"create"===p,children:"create"===p?"Creating…":"Create"})]})]}):null,h?(0,d.jsx)("p",{className:`agents-modal-feedback ${h.kind}`,role:"status","aria-live":"polite",children:h.message}):null]})}},54210:(a,b,c)=>{"use strict";let d;Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{arrayBufferToString:function(){return h},decrypt:function(){return k},encrypt:function(){return j},getActionEncryptionKey:function(){return p},getClientReferenceManifestForRsc:function(){return o},getServerModuleMap:function(){return n},setReferenceManifestsSingleton:function(){return m},stringToUint8Array:function(){return i}});let e=c(58871),f=c(17916),g=c(29294);function h(a){let b=new Uint8Array(a),c=b.byteLength;if(c<65535)return String.fromCharCode.apply(null,b);let d="";for(let a=0;a<c;a++)d+=String.fromCharCode(b[a]);return d}function i(a){let b=a.length,c=new Uint8Array(b);for(let d=0;d<b;d++)c[d]=a.charCodeAt(d);return c}function j(a,b,c){return crypto.subtle.encrypt({name:"AES-GCM",iv:b},a,c)}function k(a,b,c){return crypto.subtle.decrypt({name:"AES-GCM",iv:b},a,c)}let l=Symbol.for("next.server.action-manifests");function m({page:a,clientReferenceManifest:b,serverActionsManifest:c,serverModuleMap:d}){var e;let g=null==(e=globalThis[l])?void 0:e.clientReferenceManifestsPerPage;globalThis[l]={clientReferenceManifestsPerPage:{...g,[(0,f.normalizeAppPath)(a)]:b},serverActionsManifest:c,serverModuleMap:d}}function n(){let a=globalThis[l];if(!a)throw Object.defineProperty(new e.InvariantError("Missing manifest for Server Actions."),"__NEXT_ERROR_CODE",{value:"E606",enumerable:!1,configurable:!0});return a.serverModuleMap}function o(){let a=globalThis[l];if(!a)throw Object.defineProperty(new e.InvariantError("Missing manifest for Server Actions."),"__NEXT_ERROR_CODE",{value:"E606",enumerable:!1,configurable:!0});let{clientReferenceManifestsPerPage:b}=a,c=g.workAsyncStorage.getStore();if(!c){var d=b;let a=Object.values(d),c={clientModules:{},edgeRscModuleMapping:{},rscModuleMapping:{}};for(let b of a)c.clientModules={...c.clientModules,...b.clientModules},c.edgeRscModuleMapping={...c.edgeRscModuleMapping,...b.edgeRscModuleMapping},c.rscModuleMapping={...c.rscModuleMapping,...b.rscModuleMapping};return c}let f=b[c.route];if(!f)throw Object.defineProperty(new e.InvariantError(`Missing Client Reference Manifest for ${c.route}.`),"__NEXT_ERROR_CODE",{value:"E570",enumerable:!1,configurable:!0});return f}async function p(){if(d)return d;let a=globalThis[l];if(!a)throw Object.defineProperty(new e.InvariantError("Missing manifest for Server Actions."),"__NEXT_ERROR_CODE",{value:"E606",enumerable:!1,configurable:!0});let b=process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY||a.serverActionsManifest.encryptionKey;if(void 0===b)throw Object.defineProperty(new e.InvariantError("Missing encryption key for Server Actions"),"__NEXT_ERROR_CODE",{value:"E571",enumerable:!1,configurable:!0});return d=await crypto.subtle.importKey("raw",i(atob(b)),"AES-GCM",!0,["encrypt","decrypt"])}},54353:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{DOC_PREFETCH_RANGE_HEADER_VALUE:function(){return d},doesExportedHtmlMatchBuildId:function(){return g},insertBuildIdComment:function(){return f}});let c="<!DOCTYPE html>",d="bytes=0-63";function e(a){return a.slice(0,24).replace(/-/g,"_")}function f(a,b){return b.includes("--\x3e")||!a.startsWith(c)?a:a.replace(c,c+"\x3c!--"+e(b)+"--\x3e")}function g(a,b){return a.startsWith(c+"\x3c!--"+e(b)+"--\x3e")}},54591:(a,b,c)=>{"use strict";function d(a={}){let b=Number(a.price_au_usd_oz??0),c=Number(a.payable_production_oz_per_year??0),e=Math.max(0,Math.floor(Number(a.life_years??0))),f=Number(a.opex_annual??0),g=Number(a.sustaining_capex??0),h=Number(a.royalties??0),i=Number(a.taxes??0),j=Number(a.closure_provision??0),k=Number(a.discount_rate??.08);if(!b||!c||!e)return{valuation_tier:"t2_dcf",status:"insufficient_inputs",npv_usd:null,annual_cash_flows:[]};let l=[],m=0;for(let a=1;a<=e;a++){let d=c*b,n=d-f-g-h-i-(a===e?j:0),o=1/(1+k)**a*n;m+=o,l.push({year:a,revenue_usd:d,free_cash_flow_usd:n,discounted_fcf_usd:o})}return{valuation_tier:"t2_dcf",status:"ok",npv_usd:Math.round(100*m)/100,discount_rate:k,annual_cash_flows:l.map(a=>({year:a.year,revenue_usd:Math.round(100*a.revenue_usd)/100,free_cash_flow_usd:Math.round(100*a.free_cash_flow_usd)/100,discounted_fcf_usd:Math.round(100*a.discounted_fcf_usd)/100}))}}c.d(b,{d:()=>d})},55864:(a,b,c)=>{Promise.resolve().then(c.bind(c,94657)),Promise.resolve().then(c.bind(c,12556)),Promise.resolve().then(c.bind(c,82120)),Promise.resolve().then(c.bind(c,5543)),Promise.resolve().then(c.t.bind(c,3991,23))},56534:(a,b,c)=>{"use strict";function d(a){return a.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}c.d(b,{B:()=>d})},56557:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return n}});let d=c(3017),e=c(31730),f=c(9027),g=c(86331),h=c(90914);function i(a,b){if(!a)return b;let c=parseInt(a,10);return Number.isFinite(c)&&c>0?c:b}!function(a,b){Object.keys(a).forEach(function(c){"default"===c||Object.prototype.hasOwnProperty.call(b,c)||Object.defineProperty(b,c,{enumerable:!0,get:function(){return a[c]}})})}(c(94062),b);let j=i(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),k=i(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),l="__ttl_sentinel__";function m(a,b){return`${a}\0${b??l}`}class n{constructor(a,b=k,c=j){this.batcher=d.Batcher.create({cacheKeyFn:({key:a,isOnDemandRevalidate:b})=>`${a}-${b?"1":"0"}`,schedulerFn:g.scheduleOnNextTick}),this.revalidateBatcher=d.Batcher.create({schedulerFn:g.scheduleOnNextTick}),this.evictedInvocationIDs=new Set,this.minimal_mode=a,this.maxSize=b,this.ttl=c,this.cache=new e.LRUCache(b,void 0,a=>{let b=function(a){let b=a.lastIndexOf("\0");if(-1===b)return;let c=a.slice(b+1);return c===l?void 0:c}(a);if(b){if(this.evictedInvocationIDs.size>=100){let a=this.evictedInvocationIDs.values().next().value;a&&this.evictedInvocationIDs.delete(a)}this.evictedInvocationIDs.add(b)}})}async get(a,b,c){if(!a)return b({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let b=m(a,c.invocationID),d=this.cache.get(b);if(d){if(void 0!==c.invocationID)return(0,h.toResponseCacheEntry)(d.entry);let a=Date.now();if(d.expiresAt>a)return(0,h.toResponseCacheEntry)(d.entry);this.cache.remove(b)}c.invocationID&&this.evictedInvocationIDs.has(c.invocationID)&&(0,f.warnOnce)(`Response cache entry was evicted for invocation ${c.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:d,isOnDemandRevalidate:e=!1,isFallback:g=!1,isRoutePPREnabled:i=!1,isPrefetch:j=!1,waitUntil:k,routeKind:l,invocationID:n}=c,o=await this.batcher.batch({key:a,isOnDemandRevalidate:e},(c,f)=>{let h=this.handleGet(a,b,{incrementalCache:d,isOnDemandRevalidate:e,isFallback:g,isRoutePPREnabled:i,isPrefetch:j,routeKind:l,invocationID:n},f);return k&&k(h),h});return(0,h.toResponseCacheEntry)(o)}async handleGet(a,b,c,d){let e=null,f=!1;try{if((e=this.minimal_mode?null:await c.incrementalCache.get(a,{kind:(0,h.routeKindToIncrementalCacheKind)(c.routeKind),isRoutePPREnabled:c.isRoutePPREnabled,isFallback:c.isFallback}))&&!c.isOnDemandRevalidate&&(d(e),f=!0,!e.isStale||c.isPrefetch))return e;let g=await this.revalidate(a,c.incrementalCache,c.isRoutePPREnabled,c.isFallback,b,e,null!==e&&!c.isOnDemandRevalidate,void 0,c.invocationID);if(!g){if(this.minimal_mode){let b=m(a,c.invocationID);this.cache.remove(b)}return null}return c.isOnDemandRevalidate,g}catch(a){if(f)return console.error(a),null;throw a}}async revalidate(a,b,c,d,e,f,g,h,i){return this.revalidateBatcher.batch(a,()=>{let j=this.handleRevalidate(a,b,c,d,e,f,g,i);return h&&h(j),j})}async handleRevalidate(a,b,c,d,e,f,g,i){try{let j=await e({hasResolved:g,previousCacheEntry:f,isRevalidating:!0});if(!j)return null;let k=await (0,h.fromResponseCacheEntry)({...j,isMiss:!f});if(k.cacheControl)if(this.minimal_mode){let b=m(a,i);this.cache.set(b,{entry:k,expiresAt:Date.now()+this.ttl})}else await b.set(a,k.value,{cacheControl:k.cacheControl,isRoutePPREnabled:c,isFallback:d});return k}catch(e){if(null==f?void 0:f.cacheControl){let e=Math.min(Math.max(f.cacheControl.revalidate||3,3),30),g=void 0===f.cacheControl.expire?void 0:Math.max(e+3,f.cacheControl.expire);await b.set(a,f.value,{cacheControl:{revalidate:e,expire:g},isRoutePPREnabled:c,isFallback:d})}throw e}}}},57100:(a,b)=>{"use strict";function c(a,b){let c;if((null==b?void 0:b.host)&&!Array.isArray(b.host))c=b.host.toString().split(":",1)[0];else{if(!a.hostname)return;c=a.hostname}return c.toLowerCase()}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getHostname",{enumerable:!0,get:function(){return c}})},57403:(a,b,c)=>{"use strict";let d,e;c.d(b,{K3:()=>f,rU:()=>l,tj:()=>j});let f=Number(process.env.MINES_OCR_THRESHOLD_CHARS_PER_PAGE)||80,g=process.env.MINES_OCR_LANGS||"spa+eng";async function h(){return void 0===d&&(d=(async()=>{try{return await import("tesseract.js")}catch{return null}})().catch(()=>null)),d}async function i(){return void 0===e&&(e=(async()=>{try{let a=await import("pdf-to-png-converter");if("function"==typeof a?.pdfToPng)return async b=>(await a.pdfToPng(b,{viewportScale:2})).map((a,b)=>({page:a.pageNumber||b+1,buffer:a.content}))}catch{}return null})().catch(()=>null)),e}function j(a,b){let c=b;return(null==c||Number.isNaN(Number(c)))&&(c=String(a??"").trim().length),Number(c)<f}async function k(a,b=g){let c=await h(),d=c?.recognize||c?.default?.recognize;if("function"!=typeof d)return null;try{let{data:c}=await d(a,b);return{text:String(c?.text||""),confidence:Number(c?.confidence??0)}}catch{return null}}async function l(a,b){let c,d=await i(),e=await h();if(!d||!e)return{available:!1,pages:[]};try{c=await d(a)}catch{return{available:!1,pages:[]}}let[f,g]=Array.isArray(b)?b:[null,null],j=[];for(let a of c){if(null!=f&&a.page<f||null!=g&&a.page>g)continue;let b=await k(a.buffer);j.push({page:a.page,text:b?.text||"",confidence:b?.confidence??0})}return{available:!0,pages:j}}},57647:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{pz:()=>j,yi:()=>i}),c(73024),c(76760);var e=c(84104);c(83498);var f=c(42382),g=c(40266),h=a([e,f,g]);[e,f,g]=h.then?(await h)():h;let k=[["project-watcher","Project Watcher","project_watcher","claude-code",["gh_repo_read","gh_issue_list","gh_pr_list","web_fetch","file_read"],["investigate","retro"],"Watches repos, issues, PRs, deploys, and produces weekly project pulses."],["personal-assistant","Personal Assistant","personal_assistant","anthropic",["gmail_messages_list","gmail_message_read","calendar_events_list","whatsapp_send"],[],"Reads inbox and calendar context, drafts replies, and keeps the operator organized."],["engineering-lead","Engineering Lead","engineering_lead","claude-code",["gh_repo_read","gh_issue_list","gh_pr_list","terminal_run","file_read","file_write"],["investigate","review","ship","qa"],"Leads implementation, review, QA, and preview deploys with explicit approval gates."],["marketing-lead","Marketing Lead","marketing_lead","anthropic",["web_search","web_fetch","file_write","create_artifact"],["design-shotgun","impeccable"],"Creates market research, launch copy, positioning, and design briefs."],["meeting-notes","Meeting Notes Taker","meeting_notes","anthropic",["transcribe_audio","file_write","create_artifact"],[],"Turns recordings into transcripts, decisions, action items, and follow-ups."],["bug-triage","Bug Triage Specialist","bug_triage","claude-code",["gh_issue_list","gh_pr_list","file_read"],["investigate"],"Classifies incoming bugs and proposes severity and next actions."],["phase-runner","Phase Runner","phase_runner","claude-code",["file_read","file_write","terminal_run"],["ship"],"Executes approved implementation phases and reports blockers."],["code-reviewer","Code Reviewer","code_reviewer","claude-code",["file_read","gh_pr_list"],["review"],"Provides independent diff review before merge."],["competitor-scout","Competitor Scout","competitor_scout","anthropic",["web_search","web_fetch","create_artifact"],[],"Tracks competitor movement and summarizes weekly signals."],["finance-ops","Finance and Ops","finance_ops","anthropic",["file_read","create_artifact"],[],"Reads finance docs and drafts advisory runway and ops summaries."],["legal-compliance","Legal and Compliance","legal_compliance","anthropic",["file_read","web_fetch","create_artifact"],[],"Reviews policy and compliance documents as advisory output only."],["customer-support","Customer Support","customer_support","anthropic",["gmail_message_read","file_write"],[],"Drafts customer replies and escalates approval-required sends."],["chief-of-staff","Chief of Staff","chief_of_staff","anthropic",["web_search","file_read","file_write","create_artifact","create_workflow_definition"],["report-builder","market-research"],"Translates founder intent into delegated work across the company, runs the weekly cadence, and surfaces decisions. No direct external writes."],["ads-media-buyer","Ads / Media Buyer","ads_media_buyer","anthropic",["web_search","file_write","create_artifact"],["design-shotgun"],"Plans, builds, and reports on paid campaigns across Meta/Google/TikTok within budget caps. Every campaign publish and budget set is approval-gated."],["content-social","Content / Social Manager","content_social","anthropic",["web_search","file_write","create_artifact","voice_speak"],["design-shotgun"],"Produces and schedules organic posts, reels, and videos and maintains brand voice. Every publish is approval-gated."],["sales-bd","Sales / BD","sales_bd","anthropic",["web_search","web_fetch","gmail_messages_list","email_send","create_artifact"],["inbox-triage"],"Builds target lists, enriches leads, runs outreach, and logs CRM activity. Bulk sends and CRM writes are approval-gated."],["ops-manager","Operations","ops_manager","anthropic",["calendar_events_list","calendar_event_read","file_read","file_write","create_artifact"],["meeting-scheduler","report-builder"],"Keeps the business running — scheduling, internal docs, recurring checklists, vendor coordination. Calendar invites and webhooks are approval-gated."],["product-pm","Product / Project Manager","product_pm","claude-code",["gh_repo_read","gh_issue_list","gh_issue_create","gh_pr_list","file_read","file_write","create_workflow_definition"],["review"],"Maintains the roadmap, writes specs, tracks delivery, and runs standups. Issue/PR creates respect the GitHub allowlist."],["web-ecommerce","Web / Ecommerce","web_ecommerce","claude-code",["web_fetch","supabase_rest_select","browser_open","file_read","file_write","create_artifact"],["web-automation"],"Manages site/store content, products, SEO, and deploys. Deploys, store writes, and DB writes are approval-gated."]].map(([a,b,c,d,e,f,g])=>({slug:a,title:b,role:c,engine_default:d,tools_required:e,tools_optional:[],skills:f,memory_scopes:["agent","project"],approval_profile:"personal_assistant"===c?"strict":"standard",description_long:g}));k.push({slug:"tool-smith",title:"Tool Smith",role:"tool_smith",engine_default:"claude-code",tools_required:["create_skill","update_skill","create_composite_tool","update_composite_tool","create_connector","update_connector","propose_tool","web_search","web_fetch","file_read"],tools_optional:[],skills:["plan","review"],memory_scopes:["agent","project"],approval_profile:"standard",description_long:"Authors reusable capabilities for the marketplace — declarative skills, composite tools chaining existing primitives, and REST API connectors. For non-REST integrations it proposes reviewable code; it never executes self-authored code.",system_prompt:'You are Tool Smith, the capability-authoring agent. Your only job is to author\nreusable capabilities other agents can use, and publish them to the marketplace.\n\nPick the RIGHT authoring path for each request:\n • A recipe chaining tools that ALREADY exist -> author a COMPOSITE TOOL\n (create_composite_tool). Reference only existing primitive tools; the\n composite inherits the MAX risk of its steps and every gate re-fires per\n step. Use this for "do X then Y then summarize" style capabilities.\n • A new REST API (Notion, Linear, Stripe, Airtable, ...) -> author a CONNECTOR\n (create_connector) with a declarative manifest: https base_url, allowed_hosts,\n secret-by-reference auth (NEVER paste a raw key — reference it by name, e.g.\n NOTION_TOKEN), and per-endpoint method/path/risk. Each endpoint becomes a\n callable <slug>.<endpoint> tool the instant the owner supplies the key once.\n • A reusable instruction/prompt recipe an LLM follows with tools it already\n has -> author a SKILL (create_skill).\n • A genuinely new integration that is NOT REST (binary, SDK-only, websockets,\n complex OAuth) -> propose_tool. This stages reviewable code; it is INERT and\n a human must merge + restart. You never execute self-authored code.\n\nHard rules: never put a raw secret in a connector manifest. Never declare a\ndestructive endpoint as low risk — the validator clamps writes to medium and\nhigh/irreversible endpoints always require human approval at run time. When asked\nfor a capability that already exists, say so instead of duplicating it.'});let l=["project-watcher","personal-assistant","engineering-lead","marketing-lead","meeting-notes"];function i(a=(0,e.Lf)()){if(globalThis.__madarxAgentTemplatesSeeded)return;let b=(0,e.kF)();for(let c of k)a.prepare(`INSERT INTO marketplace_items (id, kind, slug, title, description, category, author, source_kind, version, manifest_json, risk_summary, tags, created_at)
|
|
1010
|
+
`))}})}async function B(a,{suffix:b,inlinedDataStream:c,isStaticGeneration:d,isBuildTimePrerendering:e,buildId:h,getServerInsertedHTML:i,getServerInsertedMetadata:j,validateRootLayout:k}){let l,n,o=b?b.split(y,1)[0]:null;d&&await a.allReady;var p=[s(),t(e,h),v(j),null!=o&&o.length>0?(n=!1,new TransformStream({transform(a,b){if(b.enqueue(a),!n){n=!0;let a=new f.DetachedPromise;l=a,(0,g.scheduleImmediate)(()=>{try{b.enqueue(m.encode(o))}catch{}finally{l=void 0,a.resolve()}})}},flush(a){if(l)return l.promise;n||a.enqueue(m.encode(o))}})):null,c?x(c,!0):null,k?A():null,z(),w(i)];let q=a;for(let a of p)a&&(q=q.pipeThrough(a));return q}async function C(a,{getServerInsertedHTML:b,getServerInsertedMetadata:c}){return a.pipeThrough(s()).pipeThrough(new TransformStream({transform(a,b){(0,i.isEquivalentUint8Arrays)(a,h.ENCODED_TAGS.CLOSED.BODY_AND_HTML)||(0,i.isEquivalentUint8Arrays)(a,h.ENCODED_TAGS.CLOSED.BODY)||(0,i.isEquivalentUint8Arrays)(a,h.ENCODED_TAGS.CLOSED.HTML)||(a=(0,i.removeFromUint8Array)(a,h.ENCODED_TAGS.CLOSED.BODY),a=(0,i.removeFromUint8Array)(a,h.ENCODED_TAGS.CLOSED.HTML),b.enqueue(a))}})).pipeThrough(w(b)).pipeThrough(v(c))}async function D(a,{inlinedDataStream:b,getServerInsertedHTML:c,getServerInsertedMetadata:d,isBuildTimePrerendering:e,buildId:f}){return a.pipeThrough(s()).pipeThrough(t(e,f)).pipeThrough(w(c)).pipeThrough(v(d)).pipeThrough(x(b,!0)).pipeThrough(z())}async function E(a,{delayDataUntilFirstHtmlChunk:b,inlinedDataStream:c,getServerInsertedHTML:d,getServerInsertedMetadata:e}){return a.pipeThrough(s()).pipeThrough(w(d)).pipeThrough(v(e)).pipeThrough(x(c,b)).pipeThrough(z())}function F(){return o(y)}},51318:(a,b,c)=>{"use strict";a.exports=c(9907)},52237:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addPathSuffix",{enumerable:!0,get:function(){return e}});let d=c(2213);function e(a,b){if(!a.startsWith("/")||!b)return a;let{pathname:c,query:e,hash:f}=(0,d.parsePath)(a);return""+c+b+e+f}},52318:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{BailoutToCSRError:function(){return d},isBailoutToCSRError:function(){return e}});let c="BAILOUT_TO_CLIENT_SIDE_RENDERING";class d extends Error{constructor(a){super("Bail out to client-side rendering: "+a),this.reason=a,this.digest=c}}function e(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===c}},52577:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{DynamicServerError:function(){return d},isDynamicServerError:function(){return e}});let c="DYNAMIC_SERVER_USAGE";class d extends Error{constructor(a){super("Dynamic server usage: "+a),this.description=a,this.digest=c}}function e(a){return"object"==typeof a&&null!==a&&"digest"in a&&"string"==typeof a.digest&&a.digest===c}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},52644:(a,b,c)=>{"use strict";a.exports=c.p+"static/media/check-disk-encryption.6b124b4e.mjs"},52741:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return e}});let d=""+c(15570).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function e(){let a=Object.defineProperty(Error(d),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=d,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},53476:(a,b)=>{"use strict";function c(a,b){if(0===b.length)return 0;if(0===a.length||b.length>a.length)return -1;for(let c=0;c<=a.length-b.length;c++){let d=!0;for(let e=0;e<b.length;e++)if(a[c+e]!==b[e]){d=!1;break}if(d)return c}return -1}function d(a,b){if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}function e(a,b){let d=c(a,b);if(0===d)return a.subarray(b.length);if(!(d>-1))return a;{let c=new Uint8Array(a.length-b.length);return c.set(a.slice(0,d)),c.set(a.slice(d+b.length),d),c}}Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{indexOfUint8Array:function(){return c},isEquivalentUint8Arrays:function(){return d},removeFromUint8Array:function(){return e}})},54151:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(21124),e=c(38301);function f({name:a="folder_path",value:b,onChange:c,inputRef:f,placeholder:g="/Users/you/Documents/my-project"}){let[h,i]=e.useState(null),[j,k]=e.useState(!1),[l,m]=e.useState(""),[n,o]=e.useState(""),[p,q]=e.useState(null);async function r(){let a;if(i(null),!navigator.clipboard?.readText)return void i({kind:"error",message:"Clipboard not available."});try{a=await navigator.clipboard.readText()}catch{i({kind:"error",message:"Allow clipboard access."});return}let b=(a||"").trim();if((b.startsWith('"')&&b.endsWith('"')||b.startsWith("'")&&b.endsWith("'"))&&(b=b.slice(1,-1)),b.startsWith("file://"))try{b=decodeURI(b.slice(7))}catch{}return b?b.startsWith("/")||b.startsWith("~")?void(c(b),i({kind:"success",message:"Pasted."})):void i({kind:"error",message:"Path must be absolute."}):void i({kind:"error",message:"Clipboard is empty."})}async function s(){i(null),q("pick");try{let a=await fetch("/api/fs/pick-folder",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({title:"Choose project folder",start_path:b&&b.startsWith("/")?b:void 0})});if(499===a.status)return void i({kind:"error",message:"Cancelled."});let d=await a.json();if(!a.ok)return void i({kind:"error",message:d.error||"Picker failed."});c(d.folder_path),i({kind:"success",message:`Selected ${d.folder_path}`})}catch(a){i({kind:"error",message:String(a?.message||a)})}finally{q(null)}}async function t(){if(i(null),!l.trim()||!n.trim())return void i({kind:"error",message:"Parent and name required."});q("create");try{let a=await fetch("/api/fs/create-folder",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({parent:l.trim(),name:n.trim()})}),b=await a.json();if(!a.ok)return void i({kind:"error",message:b.error||"Create failed."});c(b.folder_path),k(!1),o(""),i({kind:"success",message:`Created ${b.folder_path}`})}catch(a){i({kind:"error",message:String(a?.message||a)})}finally{q(null)}}return e.useEffect(()=>{j&&!l&&m(b||"~/Documents")},[j,b,l]),(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"agents-modal-paste-row",children:[(0,d.jsx)("input",{ref:f,name:a,type:"text",placeholder:g,autoComplete:"off",spellCheck:!1,value:b||"",onChange:a=>{c(a.target.value),h&&i(null)},required:!0}),(0,d.jsx)("button",{type:"button",className:"admin-button secondary",onClick:s,disabled:"pick"===p,children:"pick"===p?"Opening…":"Choose folder…"})]}),(0,d.jsxs)("div",{className:"agents-modal-folder-tools",children:[(0,d.jsx)("button",{type:"button",className:"admin-button secondary",onClick:r,children:"Paste from clipboard"}),(0,d.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>c("~/Documents"),children:"~/Documents"}),(0,d.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>c("~/Desktop"),children:"~/Desktop"}),(0,d.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>k(a=>!a),children:j?"Cancel new folder":"+ New folder"})]}),j?(0,d.jsxs)("div",{className:"agents-modal-create-folder",children:[(0,d.jsx)("small",{children:"Create a folder anywhere outside system directories. Parent must exist."}),(0,d.jsx)("div",{className:"agents-modal-create-row",children:(0,d.jsx)("input",{type:"text",placeholder:"Parent (e.g. ~/Documents)",value:l,onChange:a=>m(a.target.value),spellCheck:!1,autoComplete:"off"})}),(0,d.jsxs)("div",{className:"agents-modal-create-row",children:[(0,d.jsx)("input",{type:"text",placeholder:"New folder name",value:n,onChange:a=>o(a.target.value),spellCheck:!1,autoComplete:"off"}),(0,d.jsx)("button",{type:"button",className:"admin-button",onClick:t,disabled:"create"===p,children:"create"===p?"Creating…":"Create"})]})]}):null,h?(0,d.jsx)("p",{className:`agents-modal-feedback ${h.kind}`,role:"status","aria-live":"polite",children:h.message}):null]})}},54210:(a,b,c)=>{"use strict";let d;Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{arrayBufferToString:function(){return h},decrypt:function(){return k},encrypt:function(){return j},getActionEncryptionKey:function(){return p},getClientReferenceManifestForRsc:function(){return o},getServerModuleMap:function(){return n},setReferenceManifestsSingleton:function(){return m},stringToUint8Array:function(){return i}});let e=c(58871),f=c(17916),g=c(29294);function h(a){let b=new Uint8Array(a),c=b.byteLength;if(c<65535)return String.fromCharCode.apply(null,b);let d="";for(let a=0;a<c;a++)d+=String.fromCharCode(b[a]);return d}function i(a){let b=a.length,c=new Uint8Array(b);for(let d=0;d<b;d++)c[d]=a.charCodeAt(d);return c}function j(a,b,c){return crypto.subtle.encrypt({name:"AES-GCM",iv:b},a,c)}function k(a,b,c){return crypto.subtle.decrypt({name:"AES-GCM",iv:b},a,c)}let l=Symbol.for("next.server.action-manifests");function m({page:a,clientReferenceManifest:b,serverActionsManifest:c,serverModuleMap:d}){var e;let g=null==(e=globalThis[l])?void 0:e.clientReferenceManifestsPerPage;globalThis[l]={clientReferenceManifestsPerPage:{...g,[(0,f.normalizeAppPath)(a)]:b},serverActionsManifest:c,serverModuleMap:d}}function n(){let a=globalThis[l];if(!a)throw Object.defineProperty(new e.InvariantError("Missing manifest for Server Actions."),"__NEXT_ERROR_CODE",{value:"E606",enumerable:!1,configurable:!0});return a.serverModuleMap}function o(){let a=globalThis[l];if(!a)throw Object.defineProperty(new e.InvariantError("Missing manifest for Server Actions."),"__NEXT_ERROR_CODE",{value:"E606",enumerable:!1,configurable:!0});let{clientReferenceManifestsPerPage:b}=a,c=g.workAsyncStorage.getStore();if(!c){var d=b;let a=Object.values(d),c={clientModules:{},edgeRscModuleMapping:{},rscModuleMapping:{}};for(let b of a)c.clientModules={...c.clientModules,...b.clientModules},c.edgeRscModuleMapping={...c.edgeRscModuleMapping,...b.edgeRscModuleMapping},c.rscModuleMapping={...c.rscModuleMapping,...b.rscModuleMapping};return c}let f=b[c.route];if(!f)throw Object.defineProperty(new e.InvariantError(`Missing Client Reference Manifest for ${c.route}.`),"__NEXT_ERROR_CODE",{value:"E570",enumerable:!1,configurable:!0});return f}async function p(){if(d)return d;let a=globalThis[l];if(!a)throw Object.defineProperty(new e.InvariantError("Missing manifest for Server Actions."),"__NEXT_ERROR_CODE",{value:"E606",enumerable:!1,configurable:!0});let b=process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY||a.serverActionsManifest.encryptionKey;if(void 0===b)throw Object.defineProperty(new e.InvariantError("Missing encryption key for Server Actions"),"__NEXT_ERROR_CODE",{value:"E571",enumerable:!1,configurable:!0});return d=await crypto.subtle.importKey("raw",i(atob(b)),"AES-GCM",!0,["encrypt","decrypt"])}},54353:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{DOC_PREFETCH_RANGE_HEADER_VALUE:function(){return d},doesExportedHtmlMatchBuildId:function(){return g},insertBuildIdComment:function(){return f}});let c="<!DOCTYPE html>",d="bytes=0-63";function e(a){return a.slice(0,24).replace(/-/g,"_")}function f(a,b){return b.includes("--\x3e")||!a.startsWith(c)?a:a.replace(c,c+"\x3c!--"+e(b)+"--\x3e")}function g(a,b){return a.startsWith(c+"\x3c!--"+e(b)+"--\x3e")}},54591:(a,b,c)=>{"use strict";function d(a={}){let b=Number(a.price_au_usd_oz??0),c=Number(a.payable_production_oz_per_year??0),e=Math.max(0,Math.floor(Number(a.life_years??0))),f=Number(a.opex_annual??0),g=Number(a.sustaining_capex??0),h=Number(a.royalties??0),i=Number(a.taxes??0),j=Number(a.closure_provision??0),k=Number(a.discount_rate??.08);if(!b||!c||!e)return{valuation_tier:"t2_dcf",status:"insufficient_inputs",npv_usd:null,annual_cash_flows:[]};let l=[],m=0;for(let a=1;a<=e;a++){let d=c*b,n=d-f-g-h-i-(a===e?j:0),o=1/(1+k)**a*n;m+=o,l.push({year:a,revenue_usd:d,free_cash_flow_usd:n,discounted_fcf_usd:o})}return{valuation_tier:"t2_dcf",status:"ok",npv_usd:Math.round(100*m)/100,discount_rate:k,annual_cash_flows:l.map(a=>({year:a.year,revenue_usd:Math.round(100*a.revenue_usd)/100,free_cash_flow_usd:Math.round(100*a.free_cash_flow_usd)/100,discounted_fcf_usd:Math.round(100*a.discounted_fcf_usd)/100}))}}c.d(b,{d:()=>d})},55864:(a,b,c)=>{Promise.resolve().then(c.bind(c,94657)),Promise.resolve().then(c.bind(c,27704)),Promise.resolve().then(c.bind(c,34392)),Promise.resolve().then(c.bind(c,32286)),Promise.resolve().then(c.t.bind(c,3991,23))},56534:(a,b,c)=>{"use strict";function d(a){return a.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}c.d(b,{B:()=>d})},56557:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return n}});let d=c(3017),e=c(31730),f=c(9027),g=c(86331),h=c(90914);function i(a,b){if(!a)return b;let c=parseInt(a,10);return Number.isFinite(c)&&c>0?c:b}!function(a,b){Object.keys(a).forEach(function(c){"default"===c||Object.prototype.hasOwnProperty.call(b,c)||Object.defineProperty(b,c,{enumerable:!0,get:function(){return a[c]}})})}(c(94062),b);let j=i(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),k=i(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),l="__ttl_sentinel__";function m(a,b){return`${a}\0${b??l}`}class n{constructor(a,b=k,c=j){this.batcher=d.Batcher.create({cacheKeyFn:({key:a,isOnDemandRevalidate:b})=>`${a}-${b?"1":"0"}`,schedulerFn:g.scheduleOnNextTick}),this.revalidateBatcher=d.Batcher.create({schedulerFn:g.scheduleOnNextTick}),this.evictedInvocationIDs=new Set,this.minimal_mode=a,this.maxSize=b,this.ttl=c,this.cache=new e.LRUCache(b,void 0,a=>{let b=function(a){let b=a.lastIndexOf("\0");if(-1===b)return;let c=a.slice(b+1);return c===l?void 0:c}(a);if(b){if(this.evictedInvocationIDs.size>=100){let a=this.evictedInvocationIDs.values().next().value;a&&this.evictedInvocationIDs.delete(a)}this.evictedInvocationIDs.add(b)}})}async get(a,b,c){if(!a)return b({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let b=m(a,c.invocationID),d=this.cache.get(b);if(d){if(void 0!==c.invocationID)return(0,h.toResponseCacheEntry)(d.entry);let a=Date.now();if(d.expiresAt>a)return(0,h.toResponseCacheEntry)(d.entry);this.cache.remove(b)}c.invocationID&&this.evictedInvocationIDs.has(c.invocationID)&&(0,f.warnOnce)(`Response cache entry was evicted for invocation ${c.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:d,isOnDemandRevalidate:e=!1,isFallback:g=!1,isRoutePPREnabled:i=!1,isPrefetch:j=!1,waitUntil:k,routeKind:l,invocationID:n}=c,o=await this.batcher.batch({key:a,isOnDemandRevalidate:e},(c,f)=>{let h=this.handleGet(a,b,{incrementalCache:d,isOnDemandRevalidate:e,isFallback:g,isRoutePPREnabled:i,isPrefetch:j,routeKind:l,invocationID:n},f);return k&&k(h),h});return(0,h.toResponseCacheEntry)(o)}async handleGet(a,b,c,d){let e=null,f=!1;try{if((e=this.minimal_mode?null:await c.incrementalCache.get(a,{kind:(0,h.routeKindToIncrementalCacheKind)(c.routeKind),isRoutePPREnabled:c.isRoutePPREnabled,isFallback:c.isFallback}))&&!c.isOnDemandRevalidate&&(d(e),f=!0,!e.isStale||c.isPrefetch))return e;let g=await this.revalidate(a,c.incrementalCache,c.isRoutePPREnabled,c.isFallback,b,e,null!==e&&!c.isOnDemandRevalidate,void 0,c.invocationID);if(!g){if(this.minimal_mode){let b=m(a,c.invocationID);this.cache.remove(b)}return null}return c.isOnDemandRevalidate,g}catch(a){if(f)return console.error(a),null;throw a}}async revalidate(a,b,c,d,e,f,g,h,i){return this.revalidateBatcher.batch(a,()=>{let j=this.handleRevalidate(a,b,c,d,e,f,g,i);return h&&h(j),j})}async handleRevalidate(a,b,c,d,e,f,g,i){try{let j=await e({hasResolved:g,previousCacheEntry:f,isRevalidating:!0});if(!j)return null;let k=await (0,h.fromResponseCacheEntry)({...j,isMiss:!f});if(k.cacheControl)if(this.minimal_mode){let b=m(a,i);this.cache.set(b,{entry:k,expiresAt:Date.now()+this.ttl})}else await b.set(a,k.value,{cacheControl:k.cacheControl,isRoutePPREnabled:c,isFallback:d});return k}catch(e){if(null==f?void 0:f.cacheControl){let e=Math.min(Math.max(f.cacheControl.revalidate||3,3),30),g=void 0===f.cacheControl.expire?void 0:Math.max(e+3,f.cacheControl.expire);await b.set(a,f.value,{cacheControl:{revalidate:e,expire:g},isRoutePPREnabled:c,isFallback:d})}throw e}}}},57100:(a,b)=>{"use strict";function c(a,b){let c;if((null==b?void 0:b.host)&&!Array.isArray(b.host))c=b.host.toString().split(":",1)[0];else{if(!a.hostname)return;c=a.hostname}return c.toLowerCase()}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getHostname",{enumerable:!0,get:function(){return c}})},57403:(a,b,c)=>{"use strict";let d,e;c.d(b,{K3:()=>f,rU:()=>l,tj:()=>j});let f=Number(process.env.MINES_OCR_THRESHOLD_CHARS_PER_PAGE)||80,g=process.env.MINES_OCR_LANGS||"spa+eng";async function h(){return void 0===d&&(d=(async()=>{try{return await import("tesseract.js")}catch{return null}})().catch(()=>null)),d}async function i(){return void 0===e&&(e=(async()=>{try{let a=await import("pdf-to-png-converter");if("function"==typeof a?.pdfToPng)return async b=>(await a.pdfToPng(b,{viewportScale:2})).map((a,b)=>({page:a.pageNumber||b+1,buffer:a.content}))}catch{}return null})().catch(()=>null)),e}function j(a,b){let c=b;return(null==c||Number.isNaN(Number(c)))&&(c=String(a??"").trim().length),Number(c)<f}async function k(a,b=g){let c=await h(),d=c?.recognize||c?.default?.recognize;if("function"!=typeof d)return null;try{let{data:c}=await d(a,b);return{text:String(c?.text||""),confidence:Number(c?.confidence??0)}}catch{return null}}async function l(a,b){let c,d=await i(),e=await h();if(!d||!e)return{available:!1,pages:[]};try{c=await d(a)}catch{return{available:!1,pages:[]}}let[f,g]=Array.isArray(b)?b:[null,null],j=[];for(let a of c){if(null!=f&&a.page<f||null!=g&&a.page>g)continue;let b=await k(a.buffer);j.push({page:a.page,text:b?.text||"",confidence:b?.confidence??0})}return{available:!0,pages:j}}},57647:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{pz:()=>j,yi:()=>i}),c(73024),c(76760);var e=c(84104);c(83498);var f=c(42382),g=c(40266),h=a([e,f,g]);[e,f,g]=h.then?(await h)():h;let k=[["project-watcher","Project Watcher","project_watcher","claude-code",["gh_repo_read","gh_issue_list","gh_pr_list","web_fetch","file_read"],["investigate","retro"],"Watches repos, issues, PRs, deploys, and produces weekly project pulses."],["personal-assistant","Personal Assistant","personal_assistant","anthropic",["gmail_messages_list","gmail_message_read","calendar_events_list","whatsapp_send"],[],"Reads inbox and calendar context, drafts replies, and keeps the operator organized."],["engineering-lead","Engineering Lead","engineering_lead","claude-code",["gh_repo_read","gh_issue_list","gh_pr_list","terminal_run","file_read","file_write"],["investigate","review","ship","qa"],"Leads implementation, review, QA, and preview deploys with explicit approval gates."],["marketing-lead","Marketing Lead","marketing_lead","anthropic",["web_search","web_fetch","file_write","create_artifact"],["design-shotgun","impeccable"],"Creates market research, launch copy, positioning, and design briefs."],["meeting-notes","Meeting Notes Taker","meeting_notes","anthropic",["transcribe_audio","file_write","create_artifact"],[],"Turns recordings into transcripts, decisions, action items, and follow-ups."],["bug-triage","Bug Triage Specialist","bug_triage","claude-code",["gh_issue_list","gh_pr_list","file_read"],["investigate"],"Classifies incoming bugs and proposes severity and next actions."],["phase-runner","Phase Runner","phase_runner","claude-code",["file_read","file_write","terminal_run"],["ship"],"Executes approved implementation phases and reports blockers."],["code-reviewer","Code Reviewer","code_reviewer","claude-code",["file_read","gh_pr_list"],["review"],"Provides independent diff review before merge."],["competitor-scout","Competitor Scout","competitor_scout","anthropic",["web_search","web_fetch","create_artifact"],[],"Tracks competitor movement and summarizes weekly signals."],["finance-ops","Finance and Ops","finance_ops","anthropic",["file_read","create_artifact"],[],"Reads finance docs and drafts advisory runway and ops summaries."],["legal-compliance","Legal and Compliance","legal_compliance","anthropic",["file_read","web_fetch","create_artifact"],[],"Reviews policy and compliance documents as advisory output only."],["customer-support","Customer Support","customer_support","anthropic",["gmail_message_read","file_write"],[],"Drafts customer replies and escalates approval-required sends."],["chief-of-staff","Chief of Staff","chief_of_staff","anthropic",["web_search","file_read","file_write","create_artifact","create_workflow_definition"],["report-builder","market-research"],"Translates founder intent into delegated work across the company, runs the weekly cadence, and surfaces decisions. No direct external writes."],["ads-media-buyer","Ads / Media Buyer","ads_media_buyer","anthropic",["web_search","file_write","create_artifact"],["design-shotgun"],"Plans, builds, and reports on paid campaigns across Meta/Google/TikTok within budget caps. Every campaign publish and budget set is approval-gated."],["content-social","Content / Social Manager","content_social","anthropic",["web_search","file_write","create_artifact","voice_speak"],["design-shotgun"],"Produces and schedules organic posts, reels, and videos and maintains brand voice. Every publish is approval-gated."],["sales-bd","Sales / BD","sales_bd","anthropic",["web_search","web_fetch","gmail_messages_list","email_send","create_artifact"],["inbox-triage"],"Builds target lists, enriches leads, runs outreach, and logs CRM activity. Bulk sends and CRM writes are approval-gated."],["ops-manager","Operations","ops_manager","anthropic",["calendar_events_list","calendar_event_read","file_read","file_write","create_artifact"],["meeting-scheduler","report-builder"],"Keeps the business running — scheduling, internal docs, recurring checklists, vendor coordination. Calendar invites and webhooks are approval-gated."],["product-pm","Product / Project Manager","product_pm","claude-code",["gh_repo_read","gh_issue_list","gh_issue_create","gh_pr_list","file_read","file_write","create_workflow_definition"],["review"],"Maintains the roadmap, writes specs, tracks delivery, and runs standups. Issue/PR creates respect the GitHub allowlist."],["web-ecommerce","Web / Ecommerce","web_ecommerce","claude-code",["web_fetch","supabase_rest_select","browser_open","file_read","file_write","create_artifact"],["web-automation"],"Manages site/store content, products, SEO, and deploys. Deploys, store writes, and DB writes are approval-gated."]].map(([a,b,c,d,e,f,g])=>({slug:a,title:b,role:c,engine_default:d,tools_required:e,tools_optional:[],skills:f,memory_scopes:["agent","project"],approval_profile:"personal_assistant"===c?"strict":"standard",description_long:g}));k.push({slug:"tool-smith",title:"Tool Smith",role:"tool_smith",engine_default:"claude-code",tools_required:["create_skill","update_skill","create_composite_tool","update_composite_tool","create_connector","update_connector","propose_tool","web_search","web_fetch","file_read"],tools_optional:[],skills:["plan","review"],memory_scopes:["agent","project"],approval_profile:"standard",description_long:"Authors reusable capabilities for the marketplace — declarative skills, composite tools chaining existing primitives, and REST API connectors. For non-REST integrations it proposes reviewable code; it never executes self-authored code.",system_prompt:'You are Tool Smith, the capability-authoring agent. Your only job is to author\nreusable capabilities other agents can use, and publish them to the marketplace.\n\nPick the RIGHT authoring path for each request:\n • A recipe chaining tools that ALREADY exist -> author a COMPOSITE TOOL\n (create_composite_tool). Reference only existing primitive tools; the\n composite inherits the MAX risk of its steps and every gate re-fires per\n step. Use this for "do X then Y then summarize" style capabilities.\n • A new REST API (Notion, Linear, Stripe, Airtable, ...) -> author a CONNECTOR\n (create_connector) with a declarative manifest: https base_url, allowed_hosts,\n secret-by-reference auth (NEVER paste a raw key — reference it by name, e.g.\n NOTION_TOKEN), and per-endpoint method/path/risk. Each endpoint becomes a\n callable <slug>.<endpoint> tool the instant the owner supplies the key once.\n • A reusable instruction/prompt recipe an LLM follows with tools it already\n has -> author a SKILL (create_skill).\n • A genuinely new integration that is NOT REST (binary, SDK-only, websockets,\n complex OAuth) -> propose_tool. This stages reviewable code; it is INERT and\n a human must merge + restart. You never execute self-authored code.\n\nHard rules: never put a raw secret in a connector manifest. Never declare a\ndestructive endpoint as low risk — the validator clamps writes to medium and\nhigh/irreversible endpoints always require human approval at run time. When asked\nfor a capability that already exists, say so instead of duplicating it.'});let l=["project-watcher","personal-assistant","engineering-lead","marketing-lead","meeting-notes"];function i(a=(0,e.Lf)()){if(globalThis.__madarxAgentTemplatesSeeded)return;let b=(0,e.kF)();for(let c of k)a.prepare(`INSERT INTO marketplace_items (id, kind, slug, title, description, category, author, source_kind, version, manifest_json, risk_summary, tags, created_at)
|
|
1001
1011
|
VALUES (?, 'agent', ?, ?, ?, ?, 'madarx', 'builtin', '1.0', ?, ?, ?, ?)
|
|
1002
1012
|
ON CONFLICT(kind, slug) DO UPDATE SET title=excluded.title, description=excluded.description, manifest_json=excluded.manifest_json, tags=excluded.tags`).run(`agent:${c.slug}`,c.slug,c.title,c.description_long,c.role,JSON.stringify({agent:c}),c.approval_profile,JSON.stringify([c.role,c.engine_default]),b);if("1"!==process.env.MADARX_SEED_DEFAULT_AGENTS){globalThis.__madarxAgentTemplatesSeeded=!0;return}let c=l.map(()=>"?").join(","),d=a.prepare(`SELECT COUNT(*) AS c FROM agent_template_installations
|
|
1003
1013
|
WHERE project_id = 'personal' AND template_slug IN (${c})`).get(...l);if(d?.c>=l.length){globalThis.__madarxAgentTemplatesSeeded=!0;return}for(let a of l)try{j(a,"personal",{seed:!0})}catch{}globalThis.__madarxAgentTemplatesSeeded=!0}function j(a,b="personal",c={}){let d=function(a){var b;let c=k.find(b=>b.slug===a);return c?c:(b=g.S.find(b=>b.slug===a))?{slug:b.slug,title:b.title,role:b.role,engine_default:b.engine_default,tools_required:Array.isArray(b.tools_required)?b.tools_required:[],tools_optional:Array.isArray(b.tools_optional)?b.tools_optional:[],skills:Array.isArray(b.skills)?b.skills:[],memory_scopes:["agent","project"],approval_profile:b.approval_profile||"standard",description_long:b.description_long,system_prompt:"string"==typeof b.system_prompt?b.system_prompt:null}:null}(a);if(!d)throw Error("agent template not found");let h=(0,e.Lf)(),i=h.prepare("SELECT * FROM agent_template_installations WHERE template_slug = ? AND project_id = ?").get(a,b);if(i&&!c.overwrite)return i;let l=c.agent_id||`${b}-${a}`.replace(/[^a-zA-Z0-9_-]/g,"-"),m=(0,f.Sn)({id:l,name:d.title,type:d.role,role:d.role,title:d.title,engine:d.engine_default,tools:d.tools_required,mission:d.description_long,system_prompt:d.system_prompt||void 0,approval:d.approval_profile,project_id:b,template_slug:a,suppress_live_event:!!c.seed});for(let a of d.tools_required)(0,f.Xr)(l,a,a.includes("write")||a.includes("send")||a.includes("terminal")?"approval_required":"auto");let n=(0,e.kF)();return h.prepare(`INSERT INTO agent_template_installations (id, template_slug, agent_id, project_id, installed_at, status)
|
|
@@ -1014,7 +1024,7 @@ Read more at https://nextjs.org/docs/messages/missing-root-layout-tags"
|
|
|
1014
1024
|
WHERE project_id = ? AND embedding IS NOT NULL`;d&&(c+=" AND document_category = ?",b.push(d)),c+=" LIMIT ?",b.push(5e4);let e=i.prepare(c).all(...b);if(e.length>0){let a=[];for(let b of e){let c=(0,f.DD)(b.embedding);if(!c)continue;let d=(0,f.Lb)(l,c);a.push({id:b.id,source_document_id:b.source_document_id,page:b.page??null,text:b.text,language:b.language,document_category:b.document_category,similarity_score:d})}if(a.length>0)return a.sort((a,b)=>b.similarity_score-a.similarity_score),{mode:"embedding",chunks:a.slice(0,j)}}}return{mode:"text",chunks:function(a,b,c,d,e){let f=[...new Set(c.toLowerCase().split(/[^\p{L}\p{N}]+/u).map(a=>a.trim()).filter(a=>a.length>=3))].slice(0,10),g=[b],h=`
|
|
1015
1025
|
SELECT id, source_document_id, page, text, language, document_category
|
|
1016
1026
|
FROM mines_document_chunks
|
|
1017
|
-
WHERE project_id = ?`;e&&(h+=" AND document_category = ?",g.push(e)),h+=" LIMIT ?",g.push(5e4);let i=a.prepare(h).all(...g).map(a=>{let b=String(a.text||"").toLowerCase(),c=0,d=0;for(let a of f){let e=b.indexOf(a);if(-1!==e)for(c++;-1!==e;)d++,e=b.indexOf(a,e+a.length)}let e=f.length?c/f.length:0,g=0===c?0:Math.min(1,e+Math.min(.2,d/100));return{id:a.id,source_document_id:a.source_document_id,page:a.page??null,text:a.text,language:a.language,document_category:a.document_category,similarity_score:g,_matchedTerms:c,_occurrences:d}}).filter(a=>a._matchedTerms>0);return i.sort((a,b)=>b._matchedTerms-a._matchedTerms||b._occurrences-a._occurrences||String(a.id).localeCompare(String(b.id))),i.slice(0,d).map(({_matchedTerms:a,_occurrences:b,...c})=>c)}(i,a,k,j,d)}}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},61415:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{D6:()=>q,Hz:()=>r,Jz:()=>t,aU:()=>s});var e=c(76760),f=c(73024),g=c(83498),h=c(684),i=c(89145),j=a([i]);i=(j.then?(await j)():j)[0];let u=e.join(g.nJ,"browser-profile"),v=e.join(g.nJ,"browser-screenshots"),w=null,x=null,y=null;function k(a){let b=Number(a);return!Number.isFinite(b)||b<=0?3e4:Math.min(12e4,Math.max(1e3,Math.floor(b)))}function l(a){return(0,h.nc)(String(a??"").slice(0,2e4))}function m(){y&&clearTimeout(y),y=setTimeout(()=>{n().catch(()=>{})},9e4),"function"==typeof y.unref&&y.unref()}async function n(){y&&(clearTimeout(y),y=null);let a=w;if(w=null,x=null,a)try{await a.close()}catch{}}async function o(){let a;if(w&&x&&!x.isClosed())return m(),x;try{({chromium:a}=await Promise.resolve().then(c.bind(c,83237)))}catch{throw Error("Playwright is not installed. Run: npm install playwright && npx playwright install chromium")}f.mkdirSync(u,{recursive:!0});try{w=await a.launchPersistentContext(u,{headless:!0,args:["--no-sandbox","--disable-dev-shm-usage"]})}catch(a){throw w=null,Error(`Failed to launch Chromium (${a?.message||a}). Provision it with: npx playwright install chromium`)}return w.setDefaultTimeout(3e4),x=w.pages()[0]||await w.newPage(),m(),x}async function p(a){let b="";try{b=await a.title()}catch{}return{url:a.url(),title:b}}async function q(a={}){let b=(0,i.vC)(a.url).href,c=k(a.timeout_ms);try{let d=await o();if(await d.goto(b,{waitUntil:"domcontentloaded",timeout:c}),a.wait_for)try{await d.waitForSelector(String(a.wait_for),{timeout:c})}catch{}let{url:e,title:f}=await p(d),g=await d.evaluate(()=>document.body?.innerText||"");return{ok:!0,tool:"browser_open",status:"complete",url:e,title:f,text:l(g)}}catch(a){return{ok:!1,tool:"browser_open",status:"failed",url:b,error:String(a?.message||a)}}}let z=new Set(["click","fill","type","select","press","scroll","wait"]);async function r(a={}){let b,c=String(a.action||"").toLowerCase();if(!z.has(c))return{ok:!1,tool:"browser_act",status:"error",error:`unknown action: ${c||"(none)"}`};let d=k(a.timeout_ms);try{b=await o()}catch(a){return{ok:!1,tool:"browser_act",status:"failed",error:String(a?.message||a)}}try{if("scroll"===c)await b.evaluate(()=>window.scrollBy(0,window.innerHeight));else if("wait"===c)a.selector?await b.waitForSelector(String(a.selector),{timeout:d}):await b.waitForTimeout(Math.min(d,1e4));else{let e=String(a.selector||"");if(!e)return{ok:!1,tool:"browser_act",status:"error",error:"selector is required"};let f=b.locator(e).first();"click"===c?await f.click({timeout:d}):"fill"===c?await f.fill(String(a.text??""),{timeout:d}):"type"===c?await f.pressSequentially(String(a.text??""),{timeout:d}):"select"===c?await f.selectOption(String(a.value??a.text??""),{timeout:d}):"press"===c&&await f.press(String(a.key||"Enter"),{timeout:d})}let{url:e,title:f}=await p(b);return{ok:!0,tool:"browser_act",status:"complete",action:c,url:e,title:f}}catch(a){return{ok:!1,tool:"browser_act",status:"failed",action:c,error:String(a?.message||a)}}}async function s(a={}){let b,c=String(a.mode||"text").toLowerCase(),d=a.selector?String(a.selector):null;try{b=await o()}catch(a){return{ok:!1,tool:"browser_extract",status:"failed",error:String(a?.message||a)}}try{let a="";a="html"===c?d?await b.locator(d).first().innerHTML().catch(()=>"")||"":await b.content():"json-ld"===c?(await b.evaluate(()=>Array.from(document.querySelectorAll('script[type="application/ld+json"]')).map(a=>a.textContent||""))).join("\n"):d?await b.locator(d).first().innerText().catch(()=>"")||"":await b.evaluate(()=>document.body?.innerText||"");let{url:e,title:f}=await p(b);return{ok:!0,tool:"browser_extract",status:"complete",mode:c,url:e,title:f,content:l(a)}}catch(a){return{ok:!1,tool:"browser_extract",status:"failed",error:String(a?.message||a)}}}async function t(a={}){let b;try{b=await o()}catch(a){return{ok:!1,tool:"browser_screenshot",status:"failed",error:String(a?.message||a)}}try{f.mkdirSync(v,{recursive:!0});let c=`shot-${Date.now()}.png`.replace(/[^a-zA-Z0-9_.-]/g,"-"),d=e.join(v,c),g={path:d,fullPage:!!a.full_page};a.selector?await b.locator(String(a.selector)).first().screenshot({path:d}):await b.screenshot(g);let{url:h,title:i}=await p(b);return{ok:!0,tool:"browser_screenshot",status:"complete",url:h,title:i,path:d}}catch(a){return{ok:!1,tool:"browser_screenshot",status:"failed",error:String(a?.message||a)}}}d()}catch(a){d(a)}})},61666:(a,b,c)=>{"use strict";c.d(b,{A5:()=>j,Pf:()=>h,decryptFromDiskBuffer:()=>k});var d=c(77598),e=c(7346);let f=Buffer.from("madarx-artifact-dek-v1"),g="1"===process.env.MADARX_ARTIFACT_ENCRYPTION;function h(){return g}function i(a){if(!a)throw Error("deriveOrgDek requires orgId");let b=(0,d.createHash)("sha256").update(a).digest(),c=(0,e.K2)({allowGenerate:!0});return Buffer.from((0,d.hkdfSync)("sha256",c,b,f,32))}function j(a,b){let{ciphertext:c,iv:e,authTag:f}=function(a,b){let c=i(a),e=(0,d.randomBytes)(12),f=(0,d.createCipheriv)("aes-256-gcm",c,e),g=Buffer.isBuffer(b)?b:Buffer.from(b,"utf8");return{ciphertext:Buffer.concat([f.update(g),f.final()]),iv:e,authTag:f.getAuthTag()}}(a,b);return Buffer.concat([e,f,c])}function k(a,b){if(!Buffer.isBuffer(b)||b.length<28)throw Error("Invalid encrypted artifact: too short");let c=b.subarray(0,12),e=b.subarray(12,28),f=b.subarray(28),g=i(a),h=(0,d.createDecipheriv)("aes-256-gcm",g,c);return h.setAuthTag(e),Buffer.concat([h.update(f),h.final()])}},62178:(a,b,c)=>{"use strict";c.d(b,{T:()=>aa,I:()=>ab});var d=c(74467),e=c(8512);let f={tokenize:function(a,b,c){let d=0;return function b(f){return(87===f||119===f)&&d<3?(d++,a.consume(f),b):46===f&&3===d?(a.consume(f),e):c(f)};function e(a){return null===a?c(a):b(a)}},partial:!0},g={tokenize:function(a,b,c){let d,f,g;return h;function h(b){return 46===b||95===b?a.check(i,k,j)(b):null===b||(0,e.Ee)(b)||(0,e.Ny)(b)||45!==b&&(0,e.es)(b)?k(b):(g=!0,a.consume(b),h)}function j(b){return 95===b?d=!0:(f=d,d=void 0),a.consume(b),h}function k(a){return f||d||!g?c(a):b(a)}},partial:!0},h={tokenize:function(a,b){let c=0,d=0;return f;function f(h){return 40===h?(c++,a.consume(h),f):41===h&&d<c?g(h):33===h||34===h||38===h||39===h||41===h||42===h||44===h||46===h||58===h||59===h||60===h||63===h||93===h||95===h||126===h?a.check(i,b,g)(h):null===h||(0,e.Ee)(h)||(0,e.Ny)(h)?b(h):(a.consume(h),f)}function g(b){return 41===b&&d++,a.consume(b),f}},partial:!0},i={tokenize:function(a,b,c){return d;function d(h){return 33===h||34===h||39===h||41===h||42===h||44===h||46===h||58===h||59===h||63===h||95===h||126===h?(a.consume(h),d):38===h?(a.consume(h),g):93===h?(a.consume(h),f):60===h||null===h||(0,e.Ee)(h)||(0,e.Ny)(h)?b(h):c(h)}function f(a){return null===a||40===a||91===a||(0,e.Ee)(a)||(0,e.Ny)(a)?b(a):d(a)}function g(b){return(0,e.CW)(b)?function b(f){return 59===f?(a.consume(f),d):(0,e.CW)(f)?(a.consume(f),b):c(f)}(b):c(b)}},partial:!0},j={tokenize:function(a,b,c){return function(b){return a.consume(b),d};function d(a){return(0,e.lV)(a)?c(a):b(a)}},partial:!0},k={name:"wwwAutolink",tokenize:function(a,b,c){let d=this;return function(b){return 87!==b&&119!==b||!p.call(d,d.previous)||t(d.events)?c(b):(a.enter("literalAutolink"),a.enter("literalAutolinkWww"),a.check(f,a.attempt(g,a.attempt(h,e),c),c)(b))};function e(c){return a.exit("literalAutolinkWww"),a.exit("literalAutolink"),b(c)}},previous:p},l={name:"protocolAutolink",tokenize:function(a,b,c){let d=this,f="",i=!1;return function(b){return(72===b||104===b)&&q.call(d,d.previous)&&!t(d.events)?(a.enter("literalAutolink"),a.enter("literalAutolinkHttp"),f+=String.fromCodePoint(b),a.consume(b),j):c(b)};function j(b){if((0,e.CW)(b)&&f.length<5)return f+=String.fromCodePoint(b),a.consume(b),j;if(58===b){let c=f.toLowerCase();if("http"===c||"https"===c)return a.consume(b),k}return c(b)}function k(b){return 47===b?(a.consume(b),i)?l:(i=!0,k):c(b)}function l(b){return null===b||(0,e.JQ)(b)||(0,e.Ee)(b)||(0,e.Ny)(b)||(0,e.es)(b)?c(b):a.attempt(g,a.attempt(h,m),c)(b)}function m(c){return a.exit("literalAutolinkHttp"),a.exit("literalAutolink"),b(c)}},previous:q},m={name:"emailAutolink",tokenize:function(a,b,c){let d,f,g=this;return function(b){return!s(b)||!r.call(g,g.previous)||t(g.events)?c(b):(a.enter("literalAutolink"),a.enter("literalAutolinkEmail"),function b(d){return s(d)?(a.consume(d),b):64===d?(a.consume(d),h):c(d)}(b))};function h(b){return 46===b?a.check(j,k,i)(b):45===b||95===b||(0,e.lV)(b)?(f=!0,a.consume(b),h):k(b)}function i(b){return a.consume(b),d=!0,h}function k(h){return f&&d&&(0,e.CW)(g.previous)?(a.exit("literalAutolinkEmail"),a.exit("literalAutolink"),b(h)):c(h)}},previous:r},n={},o=48;for(;o<123;)n[o]=m,58==++o?o=65:91===o&&(o=97);function p(a){return null===a||40===a||42===a||95===a||91===a||93===a||126===a||(0,e.Ee)(a)}function q(a){return!(0,e.CW)(a)}function r(a){return!(47===a||s(a))}function s(a){return 43===a||45===a||46===a||95===a||(0,e.lV)(a)}function t(a){let b=a.length,c=!1;for(;b--;){let d=a[b][1];if(("labelLink"===d.type||"labelImage"===d.type)&&!d._balanced){c=!0;break}if(d._gfmAutolinkLiteralWalkedInto){c=!1;break}}return a.length>0&&!c&&(a[a.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),c}n[43]=m,n[45]=m,n[46]=m,n[95]=m,n[72]=[m,l],n[104]=[m,l],n[87]=[m,k],n[119]=[m,k];var u=c(13633);function v(a){y.call(this,a,"http://")}function w(a){y.call(this,a,"mailto:")}function x(a){y.call(this,a)}function y(a,b){let c=this.sliceSerialize(a);this.tag('<a href="'+(0,u.Q)((b||"")+c)+'">'),this.raw(this.encode(c)),this.tag("</a>")}var z=c(15675),A=c(40623),B=c(56534);let C={tokenize:function(a,b,c){let d=this;return(0,A.N)(a,function(a){let e=d.events[d.events.length-1];return e&&"gfmFootnoteDefinitionIndent"===e[1].type&&4===e[2].sliceSerialize(e[1],!0).length?b(a):c(a)},"gfmFootnoteDefinitionIndent",5)},partial:!0};function D(a,b,c){let d,e=this,f=e.events.length,g=e.parser.gfmFootnotes||(e.parser.gfmFootnotes=[]);for(;f--;){let a=e.events[f][1];if("labelImage"===a.type){d=a;break}if("gfmFootnoteCall"===a.type||"labelLink"===a.type||"label"===a.type||"image"===a.type||"link"===a.type)break}return function(f){if(!d||!d._balanced)return c(f);let h=(0,B.B)(e.sliceSerialize({start:d.end,end:e.now()}));return 94===h.codePointAt(0)&&g.includes(h.slice(1))?(a.enter("gfmFootnoteCallLabelMarker"),a.consume(f),a.exit("gfmFootnoteCallLabelMarker"),b(f)):c(f)}}function E(a,b){let c=a.length;for(;c--;)if("labelImage"===a[c][1].type&&"enter"===a[c][0]){a[c][1];break}a[c+1][1].type="data",a[c+3][1].type="gfmFootnoteCallLabelMarker";let d={type:"gfmFootnoteCall",start:Object.assign({},a[c+3][1].start),end:Object.assign({},a[a.length-1][1].end)},e={type:"gfmFootnoteCallMarker",start:Object.assign({},a[c+3][1].end),end:Object.assign({},a[c+3][1].end)};e.end.column++,e.end.offset++,e.end._bufferIndex++;let f={type:"gfmFootnoteCallString",start:Object.assign({},e.end),end:Object.assign({},a[a.length-1][1].start)},g={type:"chunkString",contentType:"string",start:Object.assign({},f.start),end:Object.assign({},f.end)},h=[a[c+1],a[c+2],["enter",d,b],a[c+3],a[c+4],["enter",e,b],["exit",e,b],["enter",f,b],["enter",g,b],["exit",g,b],["exit",f,b],a[a.length-2],a[a.length-1],["exit",d,b]];return a.splice(c,a.length-c+1,...h),a}function F(a,b,c){let d,f=this,g=f.parser.gfmFootnotes||(f.parser.gfmFootnotes=[]),h=0;return function(b){return a.enter("gfmFootnoteCall"),a.enter("gfmFootnoteCallLabelMarker"),a.consume(b),a.exit("gfmFootnoteCallLabelMarker"),i};function i(b){return 94!==b?c(b):(a.enter("gfmFootnoteCallMarker"),a.consume(b),a.exit("gfmFootnoteCallMarker"),a.enter("gfmFootnoteCallString"),a.enter("chunkString").contentType="string",j)}function j(i){if(h>999||93===i&&!d||null===i||91===i||(0,e.Ee)(i))return c(i);if(93===i){a.exit("chunkString");let d=a.exit("gfmFootnoteCallString");return g.includes((0,B.B)(f.sliceSerialize(d)))?(a.enter("gfmFootnoteCallLabelMarker"),a.consume(i),a.exit("gfmFootnoteCallLabelMarker"),a.exit("gfmFootnoteCall"),b):c(i)}return(0,e.Ee)(i)||(d=!0),h++,a.consume(i),92===i?k:j}function k(b){return 91===b||92===b||93===b?(a.consume(b),h++,j):j(b)}}function G(a,b,c){let d,f,g=this,h=g.parser.gfmFootnotes||(g.parser.gfmFootnotes=[]),i=0;return function(b){return a.enter("gfmFootnoteDefinition")._container=!0,a.enter("gfmFootnoteDefinitionLabel"),a.enter("gfmFootnoteDefinitionLabelMarker"),a.consume(b),a.exit("gfmFootnoteDefinitionLabelMarker"),j};function j(b){return 94===b?(a.enter("gfmFootnoteDefinitionMarker"),a.consume(b),a.exit("gfmFootnoteDefinitionMarker"),a.enter("gfmFootnoteDefinitionLabelString"),a.enter("chunkString").contentType="string",k):c(b)}function k(b){if(i>999||93===b&&!f||null===b||91===b||(0,e.Ee)(b))return c(b);if(93===b){a.exit("chunkString");let c=a.exit("gfmFootnoteDefinitionLabelString");return d=(0,B.B)(g.sliceSerialize(c)),a.enter("gfmFootnoteDefinitionLabelMarker"),a.consume(b),a.exit("gfmFootnoteDefinitionLabelMarker"),a.exit("gfmFootnoteDefinitionLabel"),m}return(0,e.Ee)(b)||(f=!0),i++,a.consume(b),92===b?l:k}function l(b){return 91===b||92===b||93===b?(a.consume(b),i++,k):k(b)}function m(b){return 58===b?(a.enter("definitionMarker"),a.consume(b),a.exit("definitionMarker"),h.includes(d)||h.push(d),(0,A.N)(a,n,"gfmFootnoteDefinitionWhitespace")):c(b)}function n(a){return b(a)}}function H(a,b,c){return a.check(z.B,b,a.attempt(C,b,c))}function I(a){a.exit("gfmFootnoteDefinition")}let J={}.hasOwnProperty,K={};function L(a,b){return"Back to reference "+(a+1)+(b>1?"-"+b:"")}var M=c(87301),N=c(81929),O=c(48467);class P{constructor(){this.map=[]}add(a,b,c){!function(a,b,c,d){let e=0;if(0!==c||0!==d.length){for(;e<a.map.length;){if(a.map[e][0]===b){a.map[e][1]+=c,a.map[e][2].push(...d);return}e+=1}a.map.push([b,c,d])}}(this,a,b,c)}consume(a){if(this.map.sort(function(a,b){return a[0]-b[0]}),0===this.map.length)return;let b=this.map.length,c=[];for(;b>0;)b-=1,c.push(a.slice(this.map[b][0]+this.map[b][1]),this.map[b][2]),a.length=this.map[b][0];c.push(a.slice()),a.length=0;let d=c.pop();for(;d;){for(let b of d)a.push(b);d=c.pop()}this.map.length=0}}function Q(a,b,c){let d,f=this,g=0,h=0;return function(a){let b=f.events.length-1;for(;b>-1;){let a=f.events[b][1].type;if("lineEnding"===a||"linePrefix"===a)b--;else break}let d=b>-1?f.events[b][1].type:null,e="tableHead"===d||"tableRow"===d?t:i;return e===t&&f.parser.lazy[f.now().line]?c(a):e(a)};function i(b){var c;return a.enter("tableHead"),a.enter("tableRow"),124===(c=b)||(d=!0,h+=1),j(c)}function j(b){return null===b?c(b):(0,e.HP)(b)?h>1?(h=0,f.interrupt=!0,a.exit("tableRow"),a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),m):c(b):(0,e.On)(b)?(0,A.N)(a,j,"whitespace")(b):(h+=1,d&&(d=!1,g+=1),124===b)?(a.enter("tableCellDivider"),a.consume(b),a.exit("tableCellDivider"),d=!0,j):(a.enter("data"),k(b))}function k(b){return null===b||124===b||(0,e.Ee)(b)?(a.exit("data"),j(b)):(a.consume(b),92===b?l:k)}function l(b){return 92===b||124===b?(a.consume(b),k):k(b)}function m(b){return(f.interrupt=!1,f.parser.lazy[f.now().line])?c(b):(a.enter("tableDelimiterRow"),d=!1,(0,e.On)(b))?(0,A.N)(a,n,"linePrefix",f.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(b):n(b)}function n(b){return 45===b||58===b?p(b):124===b?(d=!0,a.enter("tableCellDivider"),a.consume(b),a.exit("tableCellDivider"),o):c(b)}function o(b){return(0,e.On)(b)?(0,A.N)(a,p,"whitespace")(b):p(b)}function p(b){return 58===b?(h+=1,d=!0,a.enter("tableDelimiterMarker"),a.consume(b),a.exit("tableDelimiterMarker"),q):45===b?(h+=1,q(b)):null===b||(0,e.HP)(b)?s(b):c(b)}function q(b){return 45===b?(a.enter("tableDelimiterFiller"),function b(c){return 45===c?(a.consume(c),b):58===c?(d=!0,a.exit("tableDelimiterFiller"),a.enter("tableDelimiterMarker"),a.consume(c),a.exit("tableDelimiterMarker"),r):(a.exit("tableDelimiterFiller"),r(c))}(b)):c(b)}function r(b){return(0,e.On)(b)?(0,A.N)(a,s,"whitespace")(b):s(b)}function s(f){if(124===f)return n(f);if(null===f||(0,e.HP)(f))return d&&g===h?(a.exit("tableDelimiterRow"),a.exit("tableHead"),b(f)):c(f);return c(f)}function t(b){return a.enter("tableRow"),u(b)}function u(c){return 124===c?(a.enter("tableCellDivider"),a.consume(c),a.exit("tableCellDivider"),u):null===c||(0,e.HP)(c)?(a.exit("tableRow"),b(c)):(0,e.On)(c)?(0,A.N)(a,u,"whitespace")(c):(a.enter("data"),v(c))}function v(b){return null===b||124===b||(0,e.Ee)(b)?(a.exit("data"),u(b)):(a.consume(b),92===b?w:v)}function w(b){return 92===b||124===b?(a.consume(b),v):v(b)}}function R(a,b){let c,d,e,f=-1,g=!0,h=0,i=[0,0,0,0],j=[0,0,0,0],k=!1,l=0,m=new P;for(;++f<a.length;){let n=a[f],o=n[1];"enter"===n[0]?"tableHead"===o.type?(k=!1,0!==l&&(T(m,b,l,c,d),d=void 0,l=0),c={type:"table",start:Object.assign({},o.start),end:Object.assign({},o.end)},m.add(f,0,[["enter",c,b]])):"tableRow"===o.type||"tableDelimiterRow"===o.type?(g=!0,e=void 0,i=[0,0,0,0],j=[0,f+1,0,0],k&&(k=!1,d={type:"tableBody",start:Object.assign({},o.start),end:Object.assign({},o.end)},m.add(f,0,[["enter",d,b]])),h="tableDelimiterRow"===o.type?2:d?3:1):h&&("data"===o.type||"tableDelimiterMarker"===o.type||"tableDelimiterFiller"===o.type)?(g=!1,0===j[2]&&(0!==i[1]&&(j[0]=j[1],e=S(m,b,i,h,void 0,e),i=[0,0,0,0]),j[2]=f)):"tableCellDivider"===o.type&&(g?g=!1:(0!==i[1]&&(j[0]=j[1],e=S(m,b,i,h,void 0,e)),j=[(i=j)[1],f,0,0])):"tableHead"===o.type?(k=!0,l=f):"tableRow"===o.type||"tableDelimiterRow"===o.type?(l=f,0!==i[1]?(j[0]=j[1],e=S(m,b,i,h,f,e)):0!==j[1]&&(e=S(m,b,j,h,f,e)),h=0):h&&("data"===o.type||"tableDelimiterMarker"===o.type||"tableDelimiterFiller"===o.type)&&(j[3]=f)}for(0!==l&&T(m,b,l,c,d),m.consume(b.events),f=-1;++f<b.events.length;){let a=b.events[f];"enter"===a[0]&&"table"===a[1].type&&(a[1]._align=function(a,b){let c=!1,d=[];for(;b<a.length;){let e=a[b];if(c){if("enter"===e[0])"tableContent"===e[1].type&&d.push("tableDelimiterMarker"===a[b+1][1].type?"left":"none");else if("tableContent"===e[1].type){if("tableDelimiterMarker"===a[b-1][1].type){let a=d.length-1;d[a]="left"===d[a]?"center":"right"}}else if("tableDelimiterRow"===e[1].type)break}else"enter"===e[0]&&"tableDelimiterRow"===e[1].type&&(c=!0);b+=1}return d}(b.events,f))}return a}function S(a,b,c,d,e,f){0!==c[0]&&(f.end=Object.assign({},U(b.events,c[0])),a.add(c[0],0,[["exit",f,b]]));let g=U(b.events,c[1]);if(f={type:1===d?"tableHeader":2===d?"tableDelimiter":"tableData",start:Object.assign({},g),end:Object.assign({},g)},a.add(c[1],0,[["enter",f,b]]),0!==c[2]){let e=U(b.events,c[2]),f=U(b.events,c[3]),g={type:"tableContent",start:Object.assign({},e),end:Object.assign({},f)};if(a.add(c[2],0,[["enter",g,b]]),2!==d){let d=b.events[c[2]],e=b.events[c[3]];if(d[1].end=Object.assign({},e[1].end),d[1].type="chunkText",d[1].contentType="text",c[3]>c[2]+1){let b=c[2]+1,d=c[3]-c[2]-1;a.add(b,d,[])}}a.add(c[3]+1,0,[["exit",g,b]])}return void 0!==e&&(f.end=Object.assign({},U(b.events,e)),a.add(e,0,[["exit",f,b]]),f=void 0),f}function T(a,b,c,d,e){let f=[],g=U(b.events,c);e&&(e.end=Object.assign({},g),f.push(["exit",e,b])),d.end=Object.assign({},g),f.push(["exit",d,b]),a.add(c+1,0,f)}function U(a,b){let c=a[b],d="enter"===c[0]?"start":"end";return c[1][d]}let V={none:"",left:' align="left"',right:' align="right"',center:' align="center"'};function W(a,b){return"|"===b?b:a}let X=/<(\/?)(iframe|noembed|noframes|plaintext|script|style|title|textarea|xmp)(?=[\t\n\f\r />])/gi,Y=RegExp("^"+X.source,"i");function Z(a,b){let c=this.sliceSerialize(a);this.options.allowDangerousHtml&&(c=c.replace(b,"<$1$2")),this.raw(this.encode(c))}let $={name:"tasklistCheck",tokenize:function(a,b,c){let d=this;return function(b){return null===d.previous&&d._gfmTasklistFirstContentOfListItem?(a.enter("taskListCheck"),a.enter("taskListCheckMarker"),a.consume(b),a.exit("taskListCheckMarker"),f):c(b)};function f(b){return(0,e.Ee)(b)?(a.enter("taskListCheckValueUnchecked"),a.consume(b),a.exit("taskListCheckValueUnchecked"),g):88===b||120===b?(a.enter("taskListCheckValueChecked"),a.consume(b),a.exit("taskListCheckValueChecked"),g):c(b)}function g(b){return 93===b?(a.enter("taskListCheckMarker"),a.consume(b),a.exit("taskListCheckMarker"),a.exit("taskListCheck"),h):c(b)}function h(d){return(0,e.HP)(d)?b(d):(0,e.On)(d)?a.check({tokenize:_},b,c)(d):c(d)}}};function _(a,b,c){return(0,A.N)(a,function(a){return null===a?c(a):b(a)},"whitespace")}function aa(a){return(0,d.y)([{text:n},{document:{91:{name:"gfmFootnoteDefinition",tokenize:G,continuation:{tokenize:H},exit:I}},text:{91:{name:"gfmFootnoteCall",tokenize:F},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:D,resolveTo:E}}},function(a){let b=(a||{}).singleTilde,c={name:"strikethrough",tokenize:function(a,c,d){let e=this.previous,f=this.events,g=0;return function(h){return 126===e&&"characterEscape"!==f[f.length-1][1].type?d(h):(a.enter("strikethroughSequenceTemporary"),function f(h){let i=(0,N.S)(e);if(126===h)return g>1?d(h):(a.consume(h),g++,f);if(g<2&&!b)return d(h);let j=a.exit("strikethroughSequenceTemporary"),k=(0,N.S)(h);return j._open=!k||2===k&&!!i,j._close=!i||2===i&&!!k,c(h)}(h))}},resolveAll:function(a,b){let c=-1;for(;++c<a.length;)if("enter"===a[c][0]&&"strikethroughSequenceTemporary"===a[c][1].type&&a[c][1]._close){let d=c;for(;d--;)if("exit"===a[d][0]&&"strikethroughSequenceTemporary"===a[d][1].type&&a[d][1]._open&&a[c][1].end.offset-a[c][1].start.offset==a[d][1].end.offset-a[d][1].start.offset){a[c][1].type="strikethroughSequence",a[d][1].type="strikethroughSequence";let e={type:"strikethrough",start:Object.assign({},a[d][1].start),end:Object.assign({},a[c][1].end)},f={type:"strikethroughText",start:Object.assign({},a[d][1].end),end:Object.assign({},a[c][1].start)},g=[["enter",e,b],["enter",a[d][1],b],["exit",a[d][1],b],["enter",f,b]],h=b.parser.constructs.insideSpan.null;h&&(0,M.m)(g,g.length,0,(0,O.W)(h,a.slice(d+1,c),b)),(0,M.m)(g,g.length,0,[["exit",f,b],["enter",a[c][1],b],["exit",a[c][1],b],["exit",e,b]]),(0,M.m)(a,d-1,c-d+3,g),c=d+g.length-2;break}}for(c=-1;++c<a.length;)"strikethroughSequenceTemporary"===a[c][1].type&&(a[c][1].type="data");return a}};return null==b&&(b=!0),{text:{126:c},insideSpan:{null:[c]},attentionMarkers:{null:[126]}}}(a),{flow:{null:{name:"table",tokenize:Q,resolveAll:R}}},{text:{91:$}}])}function ab(a){return(0,d.v)([{exit:{literalAutolinkEmail:w,literalAutolinkHttp:x,literalAutolinkWww:v}},function(a){let b=a||K,c=b.label||"Footnotes",d=b.labelTagName||"h2",e=null===b.labelAttributes||void 0===b.labelAttributes?'class="sr-only"':b.labelAttributes,f=b.backLabel||L,g=null===b.clobberPrefix||void 0===b.clobberPrefix?"user-content-":b.clobberPrefix;return{enter:{gfmFootnoteDefinition(){this.getData("tightStack").push(!1)},gfmFootnoteDefinitionLabelString(){this.buffer()},gfmFootnoteCallString(){this.buffer()}},exit:{gfmFootnoteDefinition(){let a=this.getData("gfmFootnoteDefinitions"),b=this.getData("gfmFootnoteDefinitionStack"),c=this.getData("tightStack"),d=b.pop(),e=this.resume();a||this.setData("gfmFootnoteDefinitions",a={}),J.call(a,d)||(a[d]=e),c.pop(),this.setData("slurpOneLineEnding",!0),this.setData("lastWasTag")},gfmFootnoteDefinitionLabelString(a){let b=this.getData("gfmFootnoteDefinitionStack");b||this.setData("gfmFootnoteDefinitionStack",b=[]),b.push((0,B.B)(this.sliceSerialize(a))),this.resume(),this.buffer()},gfmFootnoteCallString(a){let b,c=this.getData("gfmFootnoteCallOrder"),d=this.getData("gfmFootnoteCallCounts"),e=(0,B.B)(this.sliceSerialize(a));this.resume(),c||this.setData("gfmFootnoteCallOrder",c=[]),d||this.setData("gfmFootnoteCallCounts",d={});let f=c.indexOf(e),h=(0,u.Q)(e.toLowerCase());-1===f?(c.push(e),d[e]=1,b=c.length):(d[e]++,b=f+1);let i=d[e];this.tag('<sup><a href="#'+g+"fn-"+h+'" id="'+g+"fnref-"+h+(i>1?"-"+i:"")+'" data-footnote-ref="" aria-describedby="footnote-label">'+String(b)+"</a></sup>")},null(){let a=this.getData("gfmFootnoteCallOrder")||[],b=this.getData("gfmFootnoteCallCounts")||{},h=this.getData("gfmFootnoteDefinitions")||{},i=-1;for(a.length>0&&(this.lineEndingIfNeeded(),this.tag('<section data-footnotes="" class="footnotes"><'+d+' id="footnote-label"'+(e?" "+e:"")+">"),this.raw(this.encode(c)),this.tag("</"+d+">"),this.lineEndingIfNeeded(),this.tag("<ol>"));++i<a.length;){let c=a[i],d=(0,u.Q)(c.toLowerCase()),e=0,j=[];for(;++e<=b[c];)j.push('<a href="#'+g+"fnref-"+d+(e>1?"-"+e:"")+'" data-footnote-backref="" aria-label="'+this.encode("string"==typeof f?f:f(i,e))+'" class="data-footnote-backref">↩'+(e>1?"<sup>"+e+"</sup>":"")+"</a>");let k=j.join(" "),l=!1;this.lineEndingIfNeeded(),this.tag('<li id="'+g+"fn-"+d+'">'),this.lineEndingIfNeeded(),this.tag(h[c].replace(/<\/p>(?:\r?\n|\r)?$/,function(a){return l=!0," "+k+a})),l||(this.lineEndingIfNeeded(),this.tag(k)),this.lineEndingIfNeeded(),this.tag("</li>")}a.length>0&&(this.lineEndingIfNeeded(),this.tag("</ol>"),this.lineEndingIfNeeded(),this.tag("</section>"))}}}}(a),{enter:{strikethrough(){this.tag("<del>")}},exit:{strikethrough(){this.tag("</del>")}}},{enter:{table(a){let b=a._align;this.lineEndingIfNeeded(),this.tag("<table>"),this.setData("tableAlign",b)},tableBody(){this.tag("<tbody>")},tableData(){let a=V[this.getData("tableAlign")[this.getData("tableColumn")]];void 0===a?this.buffer():(this.lineEndingIfNeeded(),this.tag("<td"+a+">"))},tableHead(){this.lineEndingIfNeeded(),this.tag("<thead>")},tableHeader(){let a=V[this.getData("tableAlign")[this.getData("tableColumn")]];this.lineEndingIfNeeded(),this.tag("<th"+a+">")},tableRow(){this.setData("tableColumn",0),this.lineEndingIfNeeded(),this.tag("<tr>")}},exit:{codeTextData(a){let b=this.sliceSerialize(a);this.getData("tableAlign")&&(b=b.replace(/\\([\\|])/g,W)),this.raw(this.encode(b))},table(){this.setData("tableAlign"),this.setData("slurpAllLineEndings"),this.lineEndingIfNeeded(),this.tag("</table>")},tableBody(){this.lineEndingIfNeeded(),this.tag("</tbody>")},tableData(){let a=this.getData("tableAlign"),b=this.getData("tableColumn");b in a?(this.tag("</td>"),this.setData("tableColumn",b+1)):this.resume()},tableHead(){this.lineEndingIfNeeded(),this.tag("</thead>")},tableHeader(){let a=this.getData("tableColumn");this.tag("</th>"),this.setData("tableColumn",a+1)},tableRow(){let a=this.getData("tableAlign"),b=this.getData("tableColumn");for(;b<a.length;)this.lineEndingIfNeeded(),this.tag("<td"+V[a[b]]+"></td>"),b++;this.setData("tableColumn",b),this.lineEndingIfNeeded(),this.tag("</tr>")}}},{exit:{htmlFlowData(a){Z.call(this,a,X)},htmlTextData(a){Z.call(this,a,Y)}}},{enter:{taskListCheck(){this.tag('<input type="checkbox" disabled="" ')}},exit:{taskListCheck(){this.tag("/>")},taskListCheckValueChecked(){this.tag('checked="" ')}}}])}},62284:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"RedirectStatusCode",{enumerable:!0,get:function(){return c}});var c=function(a){return a[a.SeeOther=303]="SeeOther",a[a.TemporaryRedirect=307]="TemporaryRedirect",a[a.PermanentRedirect=308]="PermanentRedirect",a}({});("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},62670:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{H6:()=>j});var e=c(73024),f=c(73136),g=c(76760),h=c(75994),i=a([h]);h=(i.then?(await i)():i)[0];let k=(0,g.dirname)((0,f.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/process/seeds/hail-engagement-lifecycle.js")),l=null;function j(){let a=(l||(l=function(){let a=(0,g.join)(k,"specs","hail-engagement-lifecycle.json");return JSON.parse((0,e.readFileSync)(a,"utf8"))}()),l);return(0,h.R1)(a,{source_spec_json:JSON.stringify(a)})}d()}catch(a){d(a)}})},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64319:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{r:()=>h,s:()=>i});var e=c(81909),f=c(16343),g=a([e,f]);async function h(a={},b="google_oauth"){if(a.access_token)return a.access_token;let c=(0,e.r6)("GOOGLE_ACCESS_TOKEN",a);if(c&&!a.force_refresh)return c;let d=(0,e.r6)("GOOGLE_REFRESH_TOKEN",a),g=(0,e.r6)("GOOGLE_OAUTH_CLIENT_ID",a)||process.env.GOOGLE_CLIENT_ID,i=(0,e.r6)("GOOGLE_OAUTH_CLIENT_SECRET",a)||process.env.GOOGLE_CLIENT_SECRET;if(!d)throw Error("GOOGLE_REFRESH_TOKEN missing");if(!g||!i)throw Error("GOOGLE_OAUTH_CLIENT_ID/GOOGLE_OAUTH_CLIENT_SECRET missing");let j=new URLSearchParams({client_id:g,client_secret:i,refresh_token:d,grant_type:"refresh_token"}),k=(0,f.N)(b,a.agent_id??null,a.fetch||fetch),l=await k("https://oauth2.googleapis.com/token",{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:j});if(!l.ok)throw Error(`google token refresh failed: ${l.status}`);let m=await l.json();if(!m.access_token)throw Error("google token refresh returned no access_token");return(0,e.Pq)("GOOGLE_ACCESS_TOKEN",m.access_token,{...a,source:"oauth_access",metadata:{expires_in:m.expires_in||null,refreshed_at:new Date().toISOString()}}),m.access_token}function i(a,b={}){return(0,f.N)(a,b.agent_id??null,b.fetch||fetch)}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},64509:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>s,dynamic:()=>t});var e=c(75338),f=c(76760),g=c(48161),h=c(65169),i=c(86893),j=c(61423),k=c(93154),l=c(73912),m=c(9381),n=c(78516),o=c(79148),p=c(72987),q=a([j,k,l]);[j,k,l]=q.then?(await q)():q;let t="force-dynamic";function r(a){if(!a)return"";let b=g.homedir();return b&&a.startsWith(b)?a.replace(b,"~"):a}function s(){let a=(0,j.hF)({status:"all"}),b=a.filter(a=>"active"===a.status),c=a.filter(a=>"active"!==a.status),d=(0,k.cK)(),g=(0,l.xP)(),q=a.map(a=>({...a,agentCount:d[a.id]||0,fileCount:g[a.id]||0})),s=r(f.join(m.un,"projects")),t=(0,e.jsx)(n.default,{workspaceRoot:s});return(0,e.jsx)(i.iN,{kicker:"Projects",title:"Projects",description:"Group agents, Disk, memory, secrets, approvals, and missions into project scopes.",actions:t,hideProjectSwitcher:!0,children:(0,e.jsxs)("div",{className:"mkt-page","data-page":"projects",children:[(0,e.jsxs)("section",{className:"mkt-stats",children:[(0,e.jsxs)("div",{className:"mkt-stat",children:[(0,e.jsx)("b",{children:a.length}),(0,e.jsx)("span",{children:"Total"})]}),(0,e.jsxs)("div",{className:"mkt-stat",children:[(0,e.jsx)("b",{children:b.length}),(0,e.jsx)("span",{children:"Active"})]}),(0,e.jsxs)("div",{className:"mkt-stat",children:[(0,e.jsx)("b",{children:c.length}),(0,e.jsx)("span",{children:"Archived"})]}),(0,e.jsxs)("div",{className:"mkt-stat",children:[(0,e.jsx)("b",{children:q.reduce((a,b)=>a+b.agentCount,0)}),(0,e.jsx)("span",{children:"Agents"})]})]}),(0,e.jsx)("section",{className:"mkt-section","aria-live":"polite",children:q.length?(0,e.jsx)("ul",{className:"mkt-grid project-grid",children:q.map(a=>(0,e.jsxs)("li",{className:`mkt-card project-card ${"active"===a.status?"on":""}`,children:[(0,e.jsxs)("div",{className:"mkt-card-head",children:[(0,e.jsx)("span",{className:"mkt-chip-tile project-tile",style:{backgroundColor:a.color||"#111318",borderColor:"rgba(17,19,24,.08)"},"aria-hidden":"true",children:(0,e.jsx)("span",{className:"project-tile-glyph",children:(a.name||a.slug).slice(0,1).toUpperCase()})}),(0,e.jsx)(h,{href:`/projects/${a.slug}`,className:"project-card-slug",children:a.slug})]}),(0,e.jsxs)("div",{className:"mkt-card-body",children:[(0,e.jsx)("h3",{className:"mkt-card-title",children:a.name}),a.description?(0,e.jsx)("p",{className:"mkt-card-desc",children:a.description}):null]}),(0,e.jsxs)("div",{className:"mkt-card-meta",children:[(0,e.jsxs)("span",{children:["Agents ",(0,e.jsx)("b",{children:a.agentCount})]}),(0,e.jsxs)("span",{children:["Disk files ",(0,e.jsx)("b",{children:a.fileCount})]}),(0,e.jsxs)("span",{children:["Status ",(0,e.jsx)("b",{children:a.status})]}),a.folder_path?(0,e.jsxs)("span",{className:"project-folder-meta",title:a.folder_path,children:["Folder ",(0,e.jsx)("code",{children:r(a.folder_path)})]}):null]}),(0,e.jsxs)("div",{className:"mkt-card-foot",children:[(0,e.jsx)("span",{className:`mkt-availability ${"active"===a.status?"installed":""}`,children:"active"===a.status?"Active":"Archived"}),(0,e.jsxs)("div",{className:"project-card-actions",children:[(0,e.jsx)(h,{href:`/projects/${a.slug}`,className:"admin-button secondary project-open","aria-label":`Open ${a.name}`,children:"Open"}),(0,e.jsx)(p.default,{projectId:a.id,projectName:a.name,projectColor:a.color,projectDescription:a.description,projectFolderPath:a.folder_path}),(0,e.jsx)(o.default,{projectId:a.id,projectName:a.name,projectSlug:a.slug,isProtected:a.id===j.Sk})]})]})]},a.id))}):(0,e.jsx)(i.pp,{title:"No projects yet",children:"Create your first project to scope agents, files, and secrets."})})]})})}d()}catch(a){d(a)}})},65169:(a,b,c)=>{let{createProxy:d}=c(39893);a.exports=d("/home/runner/work/madarx-os/madarx-os/node_modules/next/dist/client/app-dir/link.js")},65303:(a,b)=>{"use strict";function c(a){return a.replace(/\/$/,"")||"/"}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removeTrailingSlash",{enumerable:!0,get:function(){return c}})},65527:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Kg:()=>k,kA:()=>l,v2:()=>j});var e=c(73024),f=c(76760),g=c(83498),h=c(79336),i=a([h]);h=(i.then?(await i)():i)[0];let m="artifacts";function j(a){var b;let c=null;return(c=a&&"object"==typeof a?a:(0,h.U1)(a||h.Sk)||null)?f.join((b=c,b?.folder_path?b.folder_path:b?.slug?(0,h.ct)(b.slug):(0,h.ct)(h.Sk)),m):f.join((0,h.ct)(h.Sk),m)}function k(a){let b=j(a);return e.mkdirSync(b,{recursive:!0}),b}function l(a){if(!a)return!1;let b=f.resolve(a);return[f.resolve(g.yQ),...function(){try{return(0,h.hF)({status:"all"}).map(a=>f.resolve(j(a)))}catch{return[]}}()].some(a=>b===a||b.startsWith(`${a}${f.sep}`))}d()}catch(a){d(a)}})},66324:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{zj:()=>g});var e=c(84104),f=a([e]);function g(a,b=null){if(!a)return b;let c=(0,e.Lf)().prepare("SELECT value FROM config WHERE key = ?").get(String(a));return c?c.value:b}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},66568:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{fromNodeOutgoingHttpHeaders:function(){return e},normalizeNextQueryParam:function(){return i},splitCookiesString:function(){return f},toNodeOutgoingHttpHeaders:function(){return g},validateURL:function(){return h}});let d=c(73443);function e(a){let b=new Headers;for(let[c,d]of Object.entries(a))for(let a of Array.isArray(d)?d:[d])void 0!==a&&("number"==typeof a&&(a=a.toString()),b.append(c,a));return b}function f(a){var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}function g(a){let b={},c=[];if(a)for(let[d,e]of a.entries())"set-cookie"===d.toLowerCase()?(c.push(...f(e)),b[d]=1===c.length?c[0]:c):b[d]=e;return b}function h(a){try{return String(new URL(String(a)))}catch(b){throw Object.defineProperty(Error(`URL is malformed "${String(a)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:b}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function i(a){for(let b of[d.NEXT_QUERY_PARAM_PREFIX,d.NEXT_INTERCEPTION_MARKER_PREFIX])if(a!==b&&a.startsWith(b))return a.substring(b.length);return null}},66740:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{resolveAnthropicApiKey:()=>g});var e=c(81909),f=a([e]);function g(){try{let a=(0,e.r6)("ANTHROPIC_API_KEY");if(a)return a}catch{}return process.env.ANTHROPIC_API_KEY||null}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},67354:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{D6:()=>k,t6:()=>m,v:()=>n,zU:()=>i});var e=c(84104),f=c(67644),g=c(89998),h=a([e,f,g]);[e,f,g]=h.then?(await h)():h;let o=new Set;function i(a){return"function"!=typeof a?()=>{}:(o.add(a),()=>{o.delete(a)})}function j(){try{(0,g.jO)("approvals")}catch{}}function k({action_type:a,risk:b="medium",summary:c,payload:d={},requested_by:f="system",expires_at:g=null,project_id:h=null}){let i=(0,e.Lf)(),k=(0,e.Si)("approval"),m=(0,e.kF)(),n=h||d?.project_id||d?.projectId||null;return i.prepare(`
|
|
1027
|
+
WHERE project_id = ?`;e&&(h+=" AND document_category = ?",g.push(e)),h+=" LIMIT ?",g.push(5e4);let i=a.prepare(h).all(...g).map(a=>{let b=String(a.text||"").toLowerCase(),c=0,d=0;for(let a of f){let e=b.indexOf(a);if(-1!==e)for(c++;-1!==e;)d++,e=b.indexOf(a,e+a.length)}let e=f.length?c/f.length:0,g=0===c?0:Math.min(1,e+Math.min(.2,d/100));return{id:a.id,source_document_id:a.source_document_id,page:a.page??null,text:a.text,language:a.language,document_category:a.document_category,similarity_score:g,_matchedTerms:c,_occurrences:d}}).filter(a=>a._matchedTerms>0);return i.sort((a,b)=>b._matchedTerms-a._matchedTerms||b._occurrences-a._occurrences||String(a.id).localeCompare(String(b.id))),i.slice(0,d).map(({_matchedTerms:a,_occurrences:b,...c})=>c)}(i,a,k,j,d)}}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},61666:(a,b,c)=>{"use strict";c.d(b,{A5:()=>j,Pf:()=>h,decryptFromDiskBuffer:()=>k});var d=c(77598),e=c(7346);let f=Buffer.from("madarx-artifact-dek-v1"),g="1"===process.env.MADARX_ARTIFACT_ENCRYPTION;function h(){return g}function i(a){if(!a)throw Error("deriveOrgDek requires orgId");let b=(0,d.createHash)("sha256").update(a).digest(),c=(0,e.K2)({allowGenerate:!0});return Buffer.from((0,d.hkdfSync)("sha256",c,b,f,32))}function j(a,b){let{ciphertext:c,iv:e,authTag:f}=function(a,b){let c=i(a),e=(0,d.randomBytes)(12),f=(0,d.createCipheriv)("aes-256-gcm",c,e),g=Buffer.isBuffer(b)?b:Buffer.from(b,"utf8");return{ciphertext:Buffer.concat([f.update(g),f.final()]),iv:e,authTag:f.getAuthTag()}}(a,b);return Buffer.concat([e,f,c])}function k(a,b){if(!Buffer.isBuffer(b)||b.length<28)throw Error("Invalid encrypted artifact: too short");let c=b.subarray(0,12),e=b.subarray(12,28),f=b.subarray(28),g=i(a),h=(0,d.createDecipheriv)("aes-256-gcm",g,c);return h.setAuthTag(e),Buffer.concat([h.update(f),h.final()])}},62178:(a,b,c)=>{"use strict";c.d(b,{T:()=>aa,I:()=>ab});var d=c(74467),e=c(8512);let f={tokenize:function(a,b,c){let d=0;return function b(f){return(87===f||119===f)&&d<3?(d++,a.consume(f),b):46===f&&3===d?(a.consume(f),e):c(f)};function e(a){return null===a?c(a):b(a)}},partial:!0},g={tokenize:function(a,b,c){let d,f,g;return h;function h(b){return 46===b||95===b?a.check(i,k,j)(b):null===b||(0,e.Ee)(b)||(0,e.Ny)(b)||45!==b&&(0,e.es)(b)?k(b):(g=!0,a.consume(b),h)}function j(b){return 95===b?d=!0:(f=d,d=void 0),a.consume(b),h}function k(a){return f||d||!g?c(a):b(a)}},partial:!0},h={tokenize:function(a,b){let c=0,d=0;return f;function f(h){return 40===h?(c++,a.consume(h),f):41===h&&d<c?g(h):33===h||34===h||38===h||39===h||41===h||42===h||44===h||46===h||58===h||59===h||60===h||63===h||93===h||95===h||126===h?a.check(i,b,g)(h):null===h||(0,e.Ee)(h)||(0,e.Ny)(h)?b(h):(a.consume(h),f)}function g(b){return 41===b&&d++,a.consume(b),f}},partial:!0},i={tokenize:function(a,b,c){return d;function d(h){return 33===h||34===h||39===h||41===h||42===h||44===h||46===h||58===h||59===h||63===h||95===h||126===h?(a.consume(h),d):38===h?(a.consume(h),g):93===h?(a.consume(h),f):60===h||null===h||(0,e.Ee)(h)||(0,e.Ny)(h)?b(h):c(h)}function f(a){return null===a||40===a||91===a||(0,e.Ee)(a)||(0,e.Ny)(a)?b(a):d(a)}function g(b){return(0,e.CW)(b)?function b(f){return 59===f?(a.consume(f),d):(0,e.CW)(f)?(a.consume(f),b):c(f)}(b):c(b)}},partial:!0},j={tokenize:function(a,b,c){return function(b){return a.consume(b),d};function d(a){return(0,e.lV)(a)?c(a):b(a)}},partial:!0},k={name:"wwwAutolink",tokenize:function(a,b,c){let d=this;return function(b){return 87!==b&&119!==b||!p.call(d,d.previous)||t(d.events)?c(b):(a.enter("literalAutolink"),a.enter("literalAutolinkWww"),a.check(f,a.attempt(g,a.attempt(h,e),c),c)(b))};function e(c){return a.exit("literalAutolinkWww"),a.exit("literalAutolink"),b(c)}},previous:p},l={name:"protocolAutolink",tokenize:function(a,b,c){let d=this,f="",i=!1;return function(b){return(72===b||104===b)&&q.call(d,d.previous)&&!t(d.events)?(a.enter("literalAutolink"),a.enter("literalAutolinkHttp"),f+=String.fromCodePoint(b),a.consume(b),j):c(b)};function j(b){if((0,e.CW)(b)&&f.length<5)return f+=String.fromCodePoint(b),a.consume(b),j;if(58===b){let c=f.toLowerCase();if("http"===c||"https"===c)return a.consume(b),k}return c(b)}function k(b){return 47===b?(a.consume(b),i)?l:(i=!0,k):c(b)}function l(b){return null===b||(0,e.JQ)(b)||(0,e.Ee)(b)||(0,e.Ny)(b)||(0,e.es)(b)?c(b):a.attempt(g,a.attempt(h,m),c)(b)}function m(c){return a.exit("literalAutolinkHttp"),a.exit("literalAutolink"),b(c)}},previous:q},m={name:"emailAutolink",tokenize:function(a,b,c){let d,f,g=this;return function(b){return!s(b)||!r.call(g,g.previous)||t(g.events)?c(b):(a.enter("literalAutolink"),a.enter("literalAutolinkEmail"),function b(d){return s(d)?(a.consume(d),b):64===d?(a.consume(d),h):c(d)}(b))};function h(b){return 46===b?a.check(j,k,i)(b):45===b||95===b||(0,e.lV)(b)?(f=!0,a.consume(b),h):k(b)}function i(b){return a.consume(b),d=!0,h}function k(h){return f&&d&&(0,e.CW)(g.previous)?(a.exit("literalAutolinkEmail"),a.exit("literalAutolink"),b(h)):c(h)}},previous:r},n={},o=48;for(;o<123;)n[o]=m,58==++o?o=65:91===o&&(o=97);function p(a){return null===a||40===a||42===a||95===a||91===a||93===a||126===a||(0,e.Ee)(a)}function q(a){return!(0,e.CW)(a)}function r(a){return!(47===a||s(a))}function s(a){return 43===a||45===a||46===a||95===a||(0,e.lV)(a)}function t(a){let b=a.length,c=!1;for(;b--;){let d=a[b][1];if(("labelLink"===d.type||"labelImage"===d.type)&&!d._balanced){c=!0;break}if(d._gfmAutolinkLiteralWalkedInto){c=!1;break}}return a.length>0&&!c&&(a[a.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),c}n[43]=m,n[45]=m,n[46]=m,n[95]=m,n[72]=[m,l],n[104]=[m,l],n[87]=[m,k],n[119]=[m,k];var u=c(13633);function v(a){y.call(this,a,"http://")}function w(a){y.call(this,a,"mailto:")}function x(a){y.call(this,a)}function y(a,b){let c=this.sliceSerialize(a);this.tag('<a href="'+(0,u.Q)((b||"")+c)+'">'),this.raw(this.encode(c)),this.tag("</a>")}var z=c(15675),A=c(40623),B=c(56534);let C={tokenize:function(a,b,c){let d=this;return(0,A.N)(a,function(a){let e=d.events[d.events.length-1];return e&&"gfmFootnoteDefinitionIndent"===e[1].type&&4===e[2].sliceSerialize(e[1],!0).length?b(a):c(a)},"gfmFootnoteDefinitionIndent",5)},partial:!0};function D(a,b,c){let d,e=this,f=e.events.length,g=e.parser.gfmFootnotes||(e.parser.gfmFootnotes=[]);for(;f--;){let a=e.events[f][1];if("labelImage"===a.type){d=a;break}if("gfmFootnoteCall"===a.type||"labelLink"===a.type||"label"===a.type||"image"===a.type||"link"===a.type)break}return function(f){if(!d||!d._balanced)return c(f);let h=(0,B.B)(e.sliceSerialize({start:d.end,end:e.now()}));return 94===h.codePointAt(0)&&g.includes(h.slice(1))?(a.enter("gfmFootnoteCallLabelMarker"),a.consume(f),a.exit("gfmFootnoteCallLabelMarker"),b(f)):c(f)}}function E(a,b){let c=a.length;for(;c--;)if("labelImage"===a[c][1].type&&"enter"===a[c][0]){a[c][1];break}a[c+1][1].type="data",a[c+3][1].type="gfmFootnoteCallLabelMarker";let d={type:"gfmFootnoteCall",start:Object.assign({},a[c+3][1].start),end:Object.assign({},a[a.length-1][1].end)},e={type:"gfmFootnoteCallMarker",start:Object.assign({},a[c+3][1].end),end:Object.assign({},a[c+3][1].end)};e.end.column++,e.end.offset++,e.end._bufferIndex++;let f={type:"gfmFootnoteCallString",start:Object.assign({},e.end),end:Object.assign({},a[a.length-1][1].start)},g={type:"chunkString",contentType:"string",start:Object.assign({},f.start),end:Object.assign({},f.end)},h=[a[c+1],a[c+2],["enter",d,b],a[c+3],a[c+4],["enter",e,b],["exit",e,b],["enter",f,b],["enter",g,b],["exit",g,b],["exit",f,b],a[a.length-2],a[a.length-1],["exit",d,b]];return a.splice(c,a.length-c+1,...h),a}function F(a,b,c){let d,f=this,g=f.parser.gfmFootnotes||(f.parser.gfmFootnotes=[]),h=0;return function(b){return a.enter("gfmFootnoteCall"),a.enter("gfmFootnoteCallLabelMarker"),a.consume(b),a.exit("gfmFootnoteCallLabelMarker"),i};function i(b){return 94!==b?c(b):(a.enter("gfmFootnoteCallMarker"),a.consume(b),a.exit("gfmFootnoteCallMarker"),a.enter("gfmFootnoteCallString"),a.enter("chunkString").contentType="string",j)}function j(i){if(h>999||93===i&&!d||null===i||91===i||(0,e.Ee)(i))return c(i);if(93===i){a.exit("chunkString");let d=a.exit("gfmFootnoteCallString");return g.includes((0,B.B)(f.sliceSerialize(d)))?(a.enter("gfmFootnoteCallLabelMarker"),a.consume(i),a.exit("gfmFootnoteCallLabelMarker"),a.exit("gfmFootnoteCall"),b):c(i)}return(0,e.Ee)(i)||(d=!0),h++,a.consume(i),92===i?k:j}function k(b){return 91===b||92===b||93===b?(a.consume(b),h++,j):j(b)}}function G(a,b,c){let d,f,g=this,h=g.parser.gfmFootnotes||(g.parser.gfmFootnotes=[]),i=0;return function(b){return a.enter("gfmFootnoteDefinition")._container=!0,a.enter("gfmFootnoteDefinitionLabel"),a.enter("gfmFootnoteDefinitionLabelMarker"),a.consume(b),a.exit("gfmFootnoteDefinitionLabelMarker"),j};function j(b){return 94===b?(a.enter("gfmFootnoteDefinitionMarker"),a.consume(b),a.exit("gfmFootnoteDefinitionMarker"),a.enter("gfmFootnoteDefinitionLabelString"),a.enter("chunkString").contentType="string",k):c(b)}function k(b){if(i>999||93===b&&!f||null===b||91===b||(0,e.Ee)(b))return c(b);if(93===b){a.exit("chunkString");let c=a.exit("gfmFootnoteDefinitionLabelString");return d=(0,B.B)(g.sliceSerialize(c)),a.enter("gfmFootnoteDefinitionLabelMarker"),a.consume(b),a.exit("gfmFootnoteDefinitionLabelMarker"),a.exit("gfmFootnoteDefinitionLabel"),m}return(0,e.Ee)(b)||(f=!0),i++,a.consume(b),92===b?l:k}function l(b){return 91===b||92===b||93===b?(a.consume(b),i++,k):k(b)}function m(b){return 58===b?(a.enter("definitionMarker"),a.consume(b),a.exit("definitionMarker"),h.includes(d)||h.push(d),(0,A.N)(a,n,"gfmFootnoteDefinitionWhitespace")):c(b)}function n(a){return b(a)}}function H(a,b,c){return a.check(z.B,b,a.attempt(C,b,c))}function I(a){a.exit("gfmFootnoteDefinition")}let J={}.hasOwnProperty,K={};function L(a,b){return"Back to reference "+(a+1)+(b>1?"-"+b:"")}var M=c(87301),N=c(81929),O=c(48467);class P{constructor(){this.map=[]}add(a,b,c){!function(a,b,c,d){let e=0;if(0!==c||0!==d.length){for(;e<a.map.length;){if(a.map[e][0]===b){a.map[e][1]+=c,a.map[e][2].push(...d);return}e+=1}a.map.push([b,c,d])}}(this,a,b,c)}consume(a){if(this.map.sort(function(a,b){return a[0]-b[0]}),0===this.map.length)return;let b=this.map.length,c=[];for(;b>0;)b-=1,c.push(a.slice(this.map[b][0]+this.map[b][1]),this.map[b][2]),a.length=this.map[b][0];c.push(a.slice()),a.length=0;let d=c.pop();for(;d;){for(let b of d)a.push(b);d=c.pop()}this.map.length=0}}function Q(a,b,c){let d,f=this,g=0,h=0;return function(a){let b=f.events.length-1;for(;b>-1;){let a=f.events[b][1].type;if("lineEnding"===a||"linePrefix"===a)b--;else break}let d=b>-1?f.events[b][1].type:null,e="tableHead"===d||"tableRow"===d?t:i;return e===t&&f.parser.lazy[f.now().line]?c(a):e(a)};function i(b){var c;return a.enter("tableHead"),a.enter("tableRow"),124===(c=b)||(d=!0,h+=1),j(c)}function j(b){return null===b?c(b):(0,e.HP)(b)?h>1?(h=0,f.interrupt=!0,a.exit("tableRow"),a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),m):c(b):(0,e.On)(b)?(0,A.N)(a,j,"whitespace")(b):(h+=1,d&&(d=!1,g+=1),124===b)?(a.enter("tableCellDivider"),a.consume(b),a.exit("tableCellDivider"),d=!0,j):(a.enter("data"),k(b))}function k(b){return null===b||124===b||(0,e.Ee)(b)?(a.exit("data"),j(b)):(a.consume(b),92===b?l:k)}function l(b){return 92===b||124===b?(a.consume(b),k):k(b)}function m(b){return(f.interrupt=!1,f.parser.lazy[f.now().line])?c(b):(a.enter("tableDelimiterRow"),d=!1,(0,e.On)(b))?(0,A.N)(a,n,"linePrefix",f.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(b):n(b)}function n(b){return 45===b||58===b?p(b):124===b?(d=!0,a.enter("tableCellDivider"),a.consume(b),a.exit("tableCellDivider"),o):c(b)}function o(b){return(0,e.On)(b)?(0,A.N)(a,p,"whitespace")(b):p(b)}function p(b){return 58===b?(h+=1,d=!0,a.enter("tableDelimiterMarker"),a.consume(b),a.exit("tableDelimiterMarker"),q):45===b?(h+=1,q(b)):null===b||(0,e.HP)(b)?s(b):c(b)}function q(b){return 45===b?(a.enter("tableDelimiterFiller"),function b(c){return 45===c?(a.consume(c),b):58===c?(d=!0,a.exit("tableDelimiterFiller"),a.enter("tableDelimiterMarker"),a.consume(c),a.exit("tableDelimiterMarker"),r):(a.exit("tableDelimiterFiller"),r(c))}(b)):c(b)}function r(b){return(0,e.On)(b)?(0,A.N)(a,s,"whitespace")(b):s(b)}function s(f){if(124===f)return n(f);if(null===f||(0,e.HP)(f))return d&&g===h?(a.exit("tableDelimiterRow"),a.exit("tableHead"),b(f)):c(f);return c(f)}function t(b){return a.enter("tableRow"),u(b)}function u(c){return 124===c?(a.enter("tableCellDivider"),a.consume(c),a.exit("tableCellDivider"),u):null===c||(0,e.HP)(c)?(a.exit("tableRow"),b(c)):(0,e.On)(c)?(0,A.N)(a,u,"whitespace")(c):(a.enter("data"),v(c))}function v(b){return null===b||124===b||(0,e.Ee)(b)?(a.exit("data"),u(b)):(a.consume(b),92===b?w:v)}function w(b){return 92===b||124===b?(a.consume(b),v):v(b)}}function R(a,b){let c,d,e,f=-1,g=!0,h=0,i=[0,0,0,0],j=[0,0,0,0],k=!1,l=0,m=new P;for(;++f<a.length;){let n=a[f],o=n[1];"enter"===n[0]?"tableHead"===o.type?(k=!1,0!==l&&(T(m,b,l,c,d),d=void 0,l=0),c={type:"table",start:Object.assign({},o.start),end:Object.assign({},o.end)},m.add(f,0,[["enter",c,b]])):"tableRow"===o.type||"tableDelimiterRow"===o.type?(g=!0,e=void 0,i=[0,0,0,0],j=[0,f+1,0,0],k&&(k=!1,d={type:"tableBody",start:Object.assign({},o.start),end:Object.assign({},o.end)},m.add(f,0,[["enter",d,b]])),h="tableDelimiterRow"===o.type?2:d?3:1):h&&("data"===o.type||"tableDelimiterMarker"===o.type||"tableDelimiterFiller"===o.type)?(g=!1,0===j[2]&&(0!==i[1]&&(j[0]=j[1],e=S(m,b,i,h,void 0,e),i=[0,0,0,0]),j[2]=f)):"tableCellDivider"===o.type&&(g?g=!1:(0!==i[1]&&(j[0]=j[1],e=S(m,b,i,h,void 0,e)),j=[(i=j)[1],f,0,0])):"tableHead"===o.type?(k=!0,l=f):"tableRow"===o.type||"tableDelimiterRow"===o.type?(l=f,0!==i[1]?(j[0]=j[1],e=S(m,b,i,h,f,e)):0!==j[1]&&(e=S(m,b,j,h,f,e)),h=0):h&&("data"===o.type||"tableDelimiterMarker"===o.type||"tableDelimiterFiller"===o.type)&&(j[3]=f)}for(0!==l&&T(m,b,l,c,d),m.consume(b.events),f=-1;++f<b.events.length;){let a=b.events[f];"enter"===a[0]&&"table"===a[1].type&&(a[1]._align=function(a,b){let c=!1,d=[];for(;b<a.length;){let e=a[b];if(c){if("enter"===e[0])"tableContent"===e[1].type&&d.push("tableDelimiterMarker"===a[b+1][1].type?"left":"none");else if("tableContent"===e[1].type){if("tableDelimiterMarker"===a[b-1][1].type){let a=d.length-1;d[a]="left"===d[a]?"center":"right"}}else if("tableDelimiterRow"===e[1].type)break}else"enter"===e[0]&&"tableDelimiterRow"===e[1].type&&(c=!0);b+=1}return d}(b.events,f))}return a}function S(a,b,c,d,e,f){0!==c[0]&&(f.end=Object.assign({},U(b.events,c[0])),a.add(c[0],0,[["exit",f,b]]));let g=U(b.events,c[1]);if(f={type:1===d?"tableHeader":2===d?"tableDelimiter":"tableData",start:Object.assign({},g),end:Object.assign({},g)},a.add(c[1],0,[["enter",f,b]]),0!==c[2]){let e=U(b.events,c[2]),f=U(b.events,c[3]),g={type:"tableContent",start:Object.assign({},e),end:Object.assign({},f)};if(a.add(c[2],0,[["enter",g,b]]),2!==d){let d=b.events[c[2]],e=b.events[c[3]];if(d[1].end=Object.assign({},e[1].end),d[1].type="chunkText",d[1].contentType="text",c[3]>c[2]+1){let b=c[2]+1,d=c[3]-c[2]-1;a.add(b,d,[])}}a.add(c[3]+1,0,[["exit",g,b]])}return void 0!==e&&(f.end=Object.assign({},U(b.events,e)),a.add(e,0,[["exit",f,b]]),f=void 0),f}function T(a,b,c,d,e){let f=[],g=U(b.events,c);e&&(e.end=Object.assign({},g),f.push(["exit",e,b])),d.end=Object.assign({},g),f.push(["exit",d,b]),a.add(c+1,0,f)}function U(a,b){let c=a[b],d="enter"===c[0]?"start":"end";return c[1][d]}let V={none:"",left:' align="left"',right:' align="right"',center:' align="center"'};function W(a,b){return"|"===b?b:a}let X=/<(\/?)(iframe|noembed|noframes|plaintext|script|style|title|textarea|xmp)(?=[\t\n\f\r />])/gi,Y=RegExp("^"+X.source,"i");function Z(a,b){let c=this.sliceSerialize(a);this.options.allowDangerousHtml&&(c=c.replace(b,"<$1$2")),this.raw(this.encode(c))}let $={name:"tasklistCheck",tokenize:function(a,b,c){let d=this;return function(b){return null===d.previous&&d._gfmTasklistFirstContentOfListItem?(a.enter("taskListCheck"),a.enter("taskListCheckMarker"),a.consume(b),a.exit("taskListCheckMarker"),f):c(b)};function f(b){return(0,e.Ee)(b)?(a.enter("taskListCheckValueUnchecked"),a.consume(b),a.exit("taskListCheckValueUnchecked"),g):88===b||120===b?(a.enter("taskListCheckValueChecked"),a.consume(b),a.exit("taskListCheckValueChecked"),g):c(b)}function g(b){return 93===b?(a.enter("taskListCheckMarker"),a.consume(b),a.exit("taskListCheckMarker"),a.exit("taskListCheck"),h):c(b)}function h(d){return(0,e.HP)(d)?b(d):(0,e.On)(d)?a.check({tokenize:_},b,c)(d):c(d)}}};function _(a,b,c){return(0,A.N)(a,function(a){return null===a?c(a):b(a)},"whitespace")}function aa(a){return(0,d.y)([{text:n},{document:{91:{name:"gfmFootnoteDefinition",tokenize:G,continuation:{tokenize:H},exit:I}},text:{91:{name:"gfmFootnoteCall",tokenize:F},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:D,resolveTo:E}}},function(a){let b=(a||{}).singleTilde,c={name:"strikethrough",tokenize:function(a,c,d){let e=this.previous,f=this.events,g=0;return function(h){return 126===e&&"characterEscape"!==f[f.length-1][1].type?d(h):(a.enter("strikethroughSequenceTemporary"),function f(h){let i=(0,N.S)(e);if(126===h)return g>1?d(h):(a.consume(h),g++,f);if(g<2&&!b)return d(h);let j=a.exit("strikethroughSequenceTemporary"),k=(0,N.S)(h);return j._open=!k||2===k&&!!i,j._close=!i||2===i&&!!k,c(h)}(h))}},resolveAll:function(a,b){let c=-1;for(;++c<a.length;)if("enter"===a[c][0]&&"strikethroughSequenceTemporary"===a[c][1].type&&a[c][1]._close){let d=c;for(;d--;)if("exit"===a[d][0]&&"strikethroughSequenceTemporary"===a[d][1].type&&a[d][1]._open&&a[c][1].end.offset-a[c][1].start.offset==a[d][1].end.offset-a[d][1].start.offset){a[c][1].type="strikethroughSequence",a[d][1].type="strikethroughSequence";let e={type:"strikethrough",start:Object.assign({},a[d][1].start),end:Object.assign({},a[c][1].end)},f={type:"strikethroughText",start:Object.assign({},a[d][1].end),end:Object.assign({},a[c][1].start)},g=[["enter",e,b],["enter",a[d][1],b],["exit",a[d][1],b],["enter",f,b]],h=b.parser.constructs.insideSpan.null;h&&(0,M.m)(g,g.length,0,(0,O.W)(h,a.slice(d+1,c),b)),(0,M.m)(g,g.length,0,[["exit",f,b],["enter",a[c][1],b],["exit",a[c][1],b],["exit",e,b]]),(0,M.m)(a,d-1,c-d+3,g),c=d+g.length-2;break}}for(c=-1;++c<a.length;)"strikethroughSequenceTemporary"===a[c][1].type&&(a[c][1].type="data");return a}};return null==b&&(b=!0),{text:{126:c},insideSpan:{null:[c]},attentionMarkers:{null:[126]}}}(a),{flow:{null:{name:"table",tokenize:Q,resolveAll:R}}},{text:{91:$}}])}function ab(a){return(0,d.v)([{exit:{literalAutolinkEmail:w,literalAutolinkHttp:x,literalAutolinkWww:v}},function(a){let b=a||K,c=b.label||"Footnotes",d=b.labelTagName||"h2",e=null===b.labelAttributes||void 0===b.labelAttributes?'class="sr-only"':b.labelAttributes,f=b.backLabel||L,g=null===b.clobberPrefix||void 0===b.clobberPrefix?"user-content-":b.clobberPrefix;return{enter:{gfmFootnoteDefinition(){this.getData("tightStack").push(!1)},gfmFootnoteDefinitionLabelString(){this.buffer()},gfmFootnoteCallString(){this.buffer()}},exit:{gfmFootnoteDefinition(){let a=this.getData("gfmFootnoteDefinitions"),b=this.getData("gfmFootnoteDefinitionStack"),c=this.getData("tightStack"),d=b.pop(),e=this.resume();a||this.setData("gfmFootnoteDefinitions",a={}),J.call(a,d)||(a[d]=e),c.pop(),this.setData("slurpOneLineEnding",!0),this.setData("lastWasTag")},gfmFootnoteDefinitionLabelString(a){let b=this.getData("gfmFootnoteDefinitionStack");b||this.setData("gfmFootnoteDefinitionStack",b=[]),b.push((0,B.B)(this.sliceSerialize(a))),this.resume(),this.buffer()},gfmFootnoteCallString(a){let b,c=this.getData("gfmFootnoteCallOrder"),d=this.getData("gfmFootnoteCallCounts"),e=(0,B.B)(this.sliceSerialize(a));this.resume(),c||this.setData("gfmFootnoteCallOrder",c=[]),d||this.setData("gfmFootnoteCallCounts",d={});let f=c.indexOf(e),h=(0,u.Q)(e.toLowerCase());-1===f?(c.push(e),d[e]=1,b=c.length):(d[e]++,b=f+1);let i=d[e];this.tag('<sup><a href="#'+g+"fn-"+h+'" id="'+g+"fnref-"+h+(i>1?"-"+i:"")+'" data-footnote-ref="" aria-describedby="footnote-label">'+String(b)+"</a></sup>")},null(){let a=this.getData("gfmFootnoteCallOrder")||[],b=this.getData("gfmFootnoteCallCounts")||{},h=this.getData("gfmFootnoteDefinitions")||{},i=-1;for(a.length>0&&(this.lineEndingIfNeeded(),this.tag('<section data-footnotes="" class="footnotes"><'+d+' id="footnote-label"'+(e?" "+e:"")+">"),this.raw(this.encode(c)),this.tag("</"+d+">"),this.lineEndingIfNeeded(),this.tag("<ol>"));++i<a.length;){let c=a[i],d=(0,u.Q)(c.toLowerCase()),e=0,j=[];for(;++e<=b[c];)j.push('<a href="#'+g+"fnref-"+d+(e>1?"-"+e:"")+'" data-footnote-backref="" aria-label="'+this.encode("string"==typeof f?f:f(i,e))+'" class="data-footnote-backref">↩'+(e>1?"<sup>"+e+"</sup>":"")+"</a>");let k=j.join(" "),l=!1;this.lineEndingIfNeeded(),this.tag('<li id="'+g+"fn-"+d+'">'),this.lineEndingIfNeeded(),this.tag(h[c].replace(/<\/p>(?:\r?\n|\r)?$/,function(a){return l=!0," "+k+a})),l||(this.lineEndingIfNeeded(),this.tag(k)),this.lineEndingIfNeeded(),this.tag("</li>")}a.length>0&&(this.lineEndingIfNeeded(),this.tag("</ol>"),this.lineEndingIfNeeded(),this.tag("</section>"))}}}}(a),{enter:{strikethrough(){this.tag("<del>")}},exit:{strikethrough(){this.tag("</del>")}}},{enter:{table(a){let b=a._align;this.lineEndingIfNeeded(),this.tag("<table>"),this.setData("tableAlign",b)},tableBody(){this.tag("<tbody>")},tableData(){let a=V[this.getData("tableAlign")[this.getData("tableColumn")]];void 0===a?this.buffer():(this.lineEndingIfNeeded(),this.tag("<td"+a+">"))},tableHead(){this.lineEndingIfNeeded(),this.tag("<thead>")},tableHeader(){let a=V[this.getData("tableAlign")[this.getData("tableColumn")]];this.lineEndingIfNeeded(),this.tag("<th"+a+">")},tableRow(){this.setData("tableColumn",0),this.lineEndingIfNeeded(),this.tag("<tr>")}},exit:{codeTextData(a){let b=this.sliceSerialize(a);this.getData("tableAlign")&&(b=b.replace(/\\([\\|])/g,W)),this.raw(this.encode(b))},table(){this.setData("tableAlign"),this.setData("slurpAllLineEndings"),this.lineEndingIfNeeded(),this.tag("</table>")},tableBody(){this.lineEndingIfNeeded(),this.tag("</tbody>")},tableData(){let a=this.getData("tableAlign"),b=this.getData("tableColumn");b in a?(this.tag("</td>"),this.setData("tableColumn",b+1)):this.resume()},tableHead(){this.lineEndingIfNeeded(),this.tag("</thead>")},tableHeader(){let a=this.getData("tableColumn");this.tag("</th>"),this.setData("tableColumn",a+1)},tableRow(){let a=this.getData("tableAlign"),b=this.getData("tableColumn");for(;b<a.length;)this.lineEndingIfNeeded(),this.tag("<td"+V[a[b]]+"></td>"),b++;this.setData("tableColumn",b),this.lineEndingIfNeeded(),this.tag("</tr>")}}},{exit:{htmlFlowData(a){Z.call(this,a,X)},htmlTextData(a){Z.call(this,a,Y)}}},{enter:{taskListCheck(){this.tag('<input type="checkbox" disabled="" ')}},exit:{taskListCheck(){this.tag("/>")},taskListCheckValueChecked(){this.tag('checked="" ')}}}])}},62284:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"RedirectStatusCode",{enumerable:!0,get:function(){return c}});var c=function(a){return a[a.SeeOther=303]="SeeOther",a[a.TemporaryRedirect=307]="TemporaryRedirect",a[a.PermanentRedirect=308]="PermanentRedirect",a}({});("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},62516:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"401686bc3fb5c25d7f361ad47d51d68e8bfc051b2a":()=>e.gL,"404ee7720211af84da2a2198f49f0881c664ebb717":()=>e.Tg,"4081e58c00b062ff7a62a36bd7e36cb7320a9553f9":()=>e.Dv});var e=c(11812),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},62670:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{H6:()=>j});var e=c(73024),f=c(73136),g=c(76760),h=c(75994),i=a([h]);h=(i.then?(await i)():i)[0];let k=(0,g.dirname)((0,f.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/process/seeds/hail-engagement-lifecycle.js")),l=null;function j(){let a=(l||(l=function(){let a=(0,g.join)(k,"specs","hail-engagement-lifecycle.json");return JSON.parse((0,e.readFileSync)(a,"utf8"))}()),l);return(0,h.R1)(a,{source_spec_json:JSON.stringify(a)})}d()}catch(a){d(a)}})},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64319:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{r:()=>h,s:()=>i});var e=c(81909),f=c(16343),g=a([e,f]);async function h(a={},b="google_oauth"){if(a.access_token)return a.access_token;let c=(0,e.r6)("GOOGLE_ACCESS_TOKEN",a);if(c&&!a.force_refresh)return c;let d=(0,e.r6)("GOOGLE_REFRESH_TOKEN",a),g=(0,e.r6)("GOOGLE_OAUTH_CLIENT_ID",a)||process.env.GOOGLE_CLIENT_ID,i=(0,e.r6)("GOOGLE_OAUTH_CLIENT_SECRET",a)||process.env.GOOGLE_CLIENT_SECRET;if(!d)throw Error("GOOGLE_REFRESH_TOKEN missing");if(!g||!i)throw Error("GOOGLE_OAUTH_CLIENT_ID/GOOGLE_OAUTH_CLIENT_SECRET missing");let j=new URLSearchParams({client_id:g,client_secret:i,refresh_token:d,grant_type:"refresh_token"}),k=(0,f.N)(b,a.agent_id??null,a.fetch||fetch),l=await k("https://oauth2.googleapis.com/token",{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:j});if(!l.ok)throw Error(`google token refresh failed: ${l.status}`);let m=await l.json();if(!m.access_token)throw Error("google token refresh returned no access_token");return(0,e.Pq)("GOOGLE_ACCESS_TOKEN",m.access_token,{...a,source:"oauth_access",metadata:{expires_in:m.expires_in||null,refreshed_at:new Date().toISOString()}}),m.access_token}function i(a,b={}){return(0,f.N)(a,b.agent_id??null,b.fetch||fetch)}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},64509:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>s,dynamic:()=>t});var e=c(75338),f=c(76760),g=c(48161),h=c(65169),i=c(86893),j=c(61423),k=c(93154),l=c(73912),m=c(9381),n=c(78516),o=c(79148),p=c(72987),q=a([j,k,l]);[j,k,l]=q.then?(await q)():q;let t="force-dynamic";function r(a){if(!a)return"";let b=g.homedir();return b&&a.startsWith(b)?a.replace(b,"~"):a}function s(){let a=(0,j.hF)({status:"all"}),b=a.filter(a=>"active"===a.status),c=a.filter(a=>"active"!==a.status),d=(0,k.cK)(),g=(0,l.xP)(),q=a.map(a=>({...a,agentCount:d[a.id]||0,fileCount:g[a.id]||0})),s=r(f.join(m.un,"projects")),t=(0,e.jsx)(n.default,{workspaceRoot:s});return(0,e.jsx)(i.iN,{kicker:"Projects",title:"Projects",description:"Group agents, Disk, memory, secrets, approvals, and missions into project scopes.",actions:t,hideProjectSwitcher:!0,children:(0,e.jsxs)("div",{className:"mkt-page","data-page":"projects",children:[(0,e.jsxs)("section",{className:"mkt-stats",children:[(0,e.jsxs)("div",{className:"mkt-stat",children:[(0,e.jsx)("b",{children:a.length}),(0,e.jsx)("span",{children:"Total"})]}),(0,e.jsxs)("div",{className:"mkt-stat",children:[(0,e.jsx)("b",{children:b.length}),(0,e.jsx)("span",{children:"Active"})]}),(0,e.jsxs)("div",{className:"mkt-stat",children:[(0,e.jsx)("b",{children:c.length}),(0,e.jsx)("span",{children:"Archived"})]}),(0,e.jsxs)("div",{className:"mkt-stat",children:[(0,e.jsx)("b",{children:q.reduce((a,b)=>a+b.agentCount,0)}),(0,e.jsx)("span",{children:"Agents"})]})]}),(0,e.jsx)("section",{className:"mkt-section","aria-live":"polite",children:q.length?(0,e.jsx)("ul",{className:"mkt-grid project-grid",children:q.map(a=>(0,e.jsxs)("li",{className:`mkt-card project-card ${"active"===a.status?"on":""}`,children:[(0,e.jsxs)("div",{className:"mkt-card-head",children:[(0,e.jsx)("span",{className:"mkt-chip-tile project-tile",style:{backgroundColor:a.color||"#111318",borderColor:"rgba(17,19,24,.08)"},"aria-hidden":"true",children:(0,e.jsx)("span",{className:"project-tile-glyph",children:(a.name||a.slug).slice(0,1).toUpperCase()})}),(0,e.jsx)(h,{href:`/projects/${a.slug}`,className:"project-card-slug",children:a.slug})]}),(0,e.jsxs)("div",{className:"mkt-card-body",children:[(0,e.jsx)("h3",{className:"mkt-card-title",children:a.name}),a.description?(0,e.jsx)("p",{className:"mkt-card-desc",children:a.description}):null]}),(0,e.jsxs)("div",{className:"mkt-card-meta",children:[(0,e.jsxs)("span",{children:["Agents ",(0,e.jsx)("b",{children:a.agentCount})]}),(0,e.jsxs)("span",{children:["Disk files ",(0,e.jsx)("b",{children:a.fileCount})]}),(0,e.jsxs)("span",{children:["Status ",(0,e.jsx)("b",{children:a.status})]}),a.folder_path?(0,e.jsxs)("span",{className:"project-folder-meta",title:a.folder_path,children:["Folder ",(0,e.jsx)("code",{children:r(a.folder_path)})]}):null]}),(0,e.jsxs)("div",{className:"mkt-card-foot",children:[(0,e.jsx)("span",{className:`mkt-availability ${"active"===a.status?"installed":""}`,children:"active"===a.status?"Active":"Archived"}),(0,e.jsxs)("div",{className:"project-card-actions",children:[(0,e.jsx)(h,{href:`/projects/${a.slug}`,className:"admin-button secondary project-open","aria-label":`Open ${a.name}`,children:"Open"}),(0,e.jsx)(p.default,{projectId:a.id,projectName:a.name,projectColor:a.color,projectDescription:a.description,projectFolderPath:a.folder_path}),(0,e.jsx)(o.default,{projectId:a.id,projectName:a.name,projectSlug:a.slug,isProtected:a.id===j.Sk})]})]})]},a.id))}):(0,e.jsx)(i.pp,{title:"No projects yet",children:"Create your first project to scope agents, files, and secrets."})})]})})}d()}catch(a){d(a)}})},65169:(a,b,c)=>{let{createProxy:d}=c(39893);a.exports=d("/home/runner/work/madarx-os/madarx-os/node_modules/next/dist/client/app-dir/link.js")},65303:(a,b)=>{"use strict";function c(a){return a.replace(/\/$/,"")||"/"}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removeTrailingSlash",{enumerable:!0,get:function(){return c}})},65527:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Kg:()=>k,kA:()=>l,v2:()=>j});var e=c(73024),f=c(76760),g=c(83498),h=c(79336),i=a([h]);h=(i.then?(await i)():i)[0];let m="artifacts";function j(a){var b;let c=null;return(c=a&&"object"==typeof a?a:(0,h.U1)(a||h.Sk)||null)?f.join((b=c,b?.folder_path?b.folder_path:b?.slug?(0,h.ct)(b.slug):(0,h.ct)(h.Sk)),m):f.join((0,h.ct)(h.Sk),m)}function k(a){let b=j(a);return e.mkdirSync(b,{recursive:!0}),b}function l(a){if(!a)return!1;let b=f.resolve(a);return[f.resolve(g.yQ),...function(){try{return(0,h.hF)({status:"all"}).map(a=>f.resolve(j(a)))}catch{return[]}}()].some(a=>b===a||b.startsWith(`${a}${f.sep}`))}d()}catch(a){d(a)}})},66324:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{zj:()=>g});var e=c(84104),f=a([e]);function g(a,b=null){if(!a)return b;let c=(0,e.Lf)().prepare("SELECT value FROM config WHERE key = ?").get(String(a));return c?c.value:b}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},66568:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{fromNodeOutgoingHttpHeaders:function(){return e},normalizeNextQueryParam:function(){return i},splitCookiesString:function(){return f},toNodeOutgoingHttpHeaders:function(){return g},validateURL:function(){return h}});let d=c(73443);function e(a){let b=new Headers;for(let[c,d]of Object.entries(a))for(let a of Array.isArray(d)?d:[d])void 0!==a&&("number"==typeof a&&(a=a.toString()),b.append(c,a));return b}function f(a){var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}function g(a){let b={},c=[];if(a)for(let[d,e]of a.entries())"set-cookie"===d.toLowerCase()?(c.push(...f(e)),b[d]=1===c.length?c[0]:c):b[d]=e;return b}function h(a){try{return String(new URL(String(a)))}catch(b){throw Object.defineProperty(Error(`URL is malformed "${String(a)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:b}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function i(a){for(let b of[d.NEXT_QUERY_PARAM_PREFIX,d.NEXT_INTERCEPTION_MARKER_PREFIX])if(a!==b&&a.startsWith(b))return a.substring(b.length);return null}},66740:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{resolveAnthropicApiKey:()=>g});var e=c(81909),f=a([e]);function g(){try{let a=(0,e.r6)("ANTHROPIC_API_KEY");if(a)return a}catch{}return process.env.ANTHROPIC_API_KEY||null}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},67354:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{D6:()=>k,t6:()=>m,v:()=>n,zU:()=>i});var e=c(84104),f=c(67644),g=c(89998),h=a([e,f,g]);[e,f,g]=h.then?(await h)():h;let o=new Set;function i(a){return"function"!=typeof a?()=>{}:(o.add(a),()=>{o.delete(a)})}function j(){try{(0,g.jO)("approvals")}catch{}}function k({action_type:a,risk:b="medium",summary:c,payload:d={},requested_by:f="system",expires_at:g=null,project_id:h=null}){let i=(0,e.Lf)(),k=(0,e.Si)("approval"),m=(0,e.kF)(),n=h||d?.project_id||d?.projectId||null;return i.prepare(`
|
|
1018
1028
|
INSERT INTO approval_requests (id, status, action_type, risk, summary, payload, requested_by, created_at, expires_at, project_id)
|
|
1019
1029
|
VALUES (?, 'pending', ?, ?, ?, ?, ?, ?, ?, ?)
|
|
1020
1030
|
`).run(k,a,b,c,JSON.stringify(d),f,m,g,n),i.prepare(`
|
|
@@ -1037,30 +1047,30 @@ Read more at https://nextjs.org/docs/messages/missing-root-layout-tags"
|
|
|
1037
1047
|
UPDATE heartbeat_tasks
|
|
1038
1048
|
SET status='queued', lease_owner=NULL, lease_expires_at=NULL, updated_at=?, error='Recovered stale lease'
|
|
1039
1049
|
WHERE id=?
|
|
1040
|
-
`).run((0,e.kF)(),a.id),j(a.id,{type:"stale_recovered",message:"Recovered stale lease"});return b.length&&h(),b.length}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},68571:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{VM:()=>ab,hM:()=>ah});var e=c(77598),f=c(84104),g=c(67354),h=c(66324),i=c(684),j=c(81909),k=c(24867),l=c(37788),m=c(49248),n=c(37937),o=c(89145),p=c(35532),q=c(23339),r=c(22896),s=c(2796),t=c(27746),u=c(80781),v=c(78712),w=c(20749),x=c(32409),y=c(94387),z=c(59080),A=c(32244),B=c(75392),C=c(61415),D=c(96084),E=c(71844),F=c(16483),G=c(23799),H=c(45510),I=c(41039),J=c(85855),K=c(14821),L=c(45599),M=c(76862),N=c(84939),O=c(80028),P=c(98450),Q=c(78547),R=c(59728),S=c(36665),T=c(36393),U=c(71326),V=c(9203),W=c(37047),X=c(26940),Y=c(86615),Z=a([f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,B,C,D,E,F,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,X,Y]);[f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,B,C,D,E,F,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,X,Y]=Z.then?(await Z)():Z;let ai="approval_required",aj=new Set(["approval_required","auto"]),ak=[{name:"file_read",title:"Read file",description:"Read a bounded file inside approved local roots. Secret files are blocked.",category:"local_machine",risk_level:"low",approval_mode:"auto",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{path:{type:"string"},offset:{type:"number"},limit:{type:"number"}},required:["path"]}},{name:"directory_list",title:"List folder",description:"List directory entries inside approved local roots.",category:"local_machine",risk_level:"low",approval_mode:"auto",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{path:{type:"string"},limit:{type:"number"}}}},{name:"file_search",title:"Search files",description:"Search safe local files while skipping build output, dependencies, databases, and secret files.",category:"local_machine",risk_level:"low",approval_mode:"auto",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{pattern:{type:"string"},path:{type:"string"},target:{type:"string"},file_glob:{type:"string"},limit:{type:"number"}},required:["pattern"]}},{name:"file_write",title:"Write file",description:"Write a file inside approved local roots after owner approval.",category:"local_machine",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{path:{type:"string"},content:{type:"string"},create_dirs:{type:"boolean"},approval_id:{type:"string"}},required:["path","content"]}},{name:"file_patch",title:"Edit file",description:"Patch a file inside approved local roots after owner approval.",category:"local_machine",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{path:{type:"string"},old_string:{type:"string"},new_string:{type:"string"},replace_all:{type:"boolean"},approval_id:{type:"string"}},required:["path","old_string","new_string"]}},{name:"terminal_run",title:"Run command",description:"Run a bounded local command with spawn command and args, never shell:true.",category:"local_machine",risk_level:"medium",approval_mode:"policy",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:20},input_schema:{type:"object",properties:{command:{type:"string"},args:{type:"array",items:{type:"string"}},cwd:{type:"string"},timeout_ms:{type:"number"},approval_id:{type:"string"}},required:["command"]}},{name:"process_start",title:"Start process",description:"Start a madarX-owned local process and persist process state.",category:"local_machine",risk_level:"medium",approval_mode:"policy",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:20},input_schema:{type:"object",properties:{command:{type:"string"},args:{type:"array",items:{type:"string"}},cwd:{type:"string"},approval_id:{type:"string"}},required:["command"]}},{name:"process_poll",title:"Check process",description:"Poll a madarX-owned local process row.",category:"local_machine",risk_level:"low",approval_mode:"auto",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{process_id:{type:"string"}},required:["process_id"]}},{name:"process_kill",title:"Stop process",description:"Stop a madarX-owned process after owner approval.",category:"local_machine",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:20},input_schema:{type:"object",properties:{process_id:{type:"string"},approval_id:{type:"string"}},required:["process_id"]}},{name:"web_search",title:"Search the web",description:"Search the public web with Firecrawl, SearXNG, Brave Search, or the no-key DuckDuckGo Lite fallback, returning ranked results with title, URL, snippet, and source metadata.",category:"web",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{query:{type:"string",description:"Search query."},count:{type:"number",description:"Number of results, 1-10. Default 5."},country:{type:"string",description:"Optional Brave country code, e.g. US."},search_lang:{type:"string",description:"Optional search language, e.g. en."}},required:["query"]}},{name:"web_fetch",title:"Fetch a webpage",description:"Fetch a public URL, block local/private network targets, strip HTML to readable text, and cap response size.",category:"web",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{url:{type:"string",description:"Public http(s) URL to fetch."},max_bytes:{type:"number",description:"Maximum response bytes, capped at 512000."}},required:["url"]}},{name:"web_extract",title:"Extract from webpage",description:"Extract readable content from a public URL with Firecrawl scrape when configured, otherwise fall back to direct web fetch.",category:"web",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{url:{type:"string",description:"Public http(s) URL to extract."},max_bytes:{type:"number",description:"Maximum response bytes for direct fetch fallback, capped at 512000."}},required:["url"]}},{name:"browser_harness_run",title:"Browser Harness",description:"Run a bounded browser-harness Python snippet against an activated Chrome CDP browser. This is local-code-execution risk: it starts disabled and requires owner approval for every main-agent or sub-agent execution.",category:"browser",risk_level:"irreversible_external",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:60,max:20},input_schema:{type:"object",properties:{script:{type:"string",description:"Python code executed by browser-harness. Helpers are pre-imported; use new_tab(url), wait_for_load(), page_info(), capture_screenshot(), click_at_xy(), js(), or cdp()."},timeout_ms:{type:"number",description:"Timeout in milliseconds, capped at 600000. Default 120000."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["script"]}},{name:"browser_open",title:"Browser Open (Playwright)",description:"Open a URL in a real headless Chromium and return the final URL, page title, and visible text. Use this (not browser_navigate) for JavaScript-rendered pages, SPAs, or anything that needs a real browser. The page persists across calls so you can browser_act / browser_extract on it next.",category:"browser",risk_level:"medium",required_env:[],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{url:{type:"string",description:"Public http(s) URL to open."},wait_for:{type:"string",description:"Optional CSS selector to wait for after load."},timeout_ms:{type:"number",description:"Navigation timeout in ms (default 30000, max 120000)."}},required:["url"]}},{name:"browser_act",title:"Browser Act (Playwright)",description:"Interact with the currently open page: click, fill, type, select, press a key, scroll, or wait. State-changing — gated for approval in approval-required trust mode. Locate elements with a CSS selector or a Playwright text= selector. Does NOT expand the agent's permissions; it only drives the page already loaded by browser_open.",category:"browser",risk_level:"high",required_env:[],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{action:{type:"string",enum:["click","fill","type","select","press","scroll","wait"],description:"Interaction to perform."},selector:{type:"string",description:"CSS selector or Playwright text= selector for the target element. Required for click/fill/type/select/press."},text:{type:"string",description:"Text to fill/type (for fill/type), or option value (for select)."},value:{type:"string",description:"Option value for select (alternative to text)."},key:{type:"string",description:"Key to press for the press action (default Enter)."},timeout_ms:{type:"number",description:"Action timeout in ms (default 30000, max 120000)."}},required:["action"]}},{name:"browser_extract",title:"Browser Extract (Playwright)",description:"Read content from the currently open page: visible text (default), raw HTML, or JSON-LD blocks. Optionally scoped to a CSS selector. Use after browser_open / browser_act to pull the rendered result.",category:"browser",risk_level:"medium",required_env:[],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{mode:{type:"string",enum:["text","html","json-ld"],default:"text",description:"What to extract."},selector:{type:"string",description:"Optional CSS selector to scope extraction."}}}},{name:"browser_screenshot",title:"Browser Screenshot (Playwright)",description:"Capture a PNG screenshot of the currently open page (or a selector / full page). Saved to disk under data/browser-screenshots; returns the file path.",category:"browser",risk_level:"medium",required_env:[],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:20},input_schema:{type:"object",properties:{selector:{type:"string",description:"Optional CSS selector to screenshot just one element."},full_page:{type:"boolean",description:"Capture the full scrollable page (default false)."}}}},{name:"browser_navigate",title:"Browser Navigate",description:"Fetch a URL with Chrome 124 headers, cookie jar, redirect following, and configurable extraction (text, markdown, json-ld, metadata, raw). Falls back gracefully on JS-only pages.",category:"web",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_ms:6e4,max:30},input_schema:{type:"object",properties:{url:{type:"string",description:"HTTP/HTTPS URL"},extract:{type:"string",enum:["text","markdown","json-ld","metadata","raw"],default:"text"},selector:{type:"string",description:"Optional CSS-like selector: tag, #id, or .class"},wait_for:{type:"string",description:"Optional substring expected in response; returns hint if missing"},max_chars:{type:"integer",default:12e3,maximum:5e4}},required:["url"]}},{name:"browser_extract_structured",title:"Browser Extract Structured",description:"Fetch a URL and extract both JSON-LD structured data and page metadata (title, og:*, meta tags) in one call.",category:"web",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_ms:6e4,max:30},input_schema:{type:"object",properties:{url:{type:"string"}},required:["url"]}},{name:"supabase_list_projects",title:"List Supabase projects",description:"List Supabase projects available to the configured personal access token.",category:"supabase",risk_level:"medium",required_env:["SUPABASE_ACCESS_TOKEN"],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{}}},{name:"supabase_rest_select",title:"Read database rows",description:"Read rows from a Supabase table using the REST API with optional filters and limit.",category:"supabase",risk_level:"medium",required_env:["SUPABASE_URL",["SUPABASE_SERVICE_ROLE_KEY","SUPABASE_ANON_KEY"]],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{table:{type:"string",description:"Table name."},select:{type:"string",description:"PostgREST select expression. Default *."},filters:{type:"object",description:"Column filters. Values may be raw PostgREST operators or plain values for eq."},limit:{type:"number",description:"Maximum rows, 1-100. Default 25."}},required:["table"]}},{name:"supabase_rest_insert",title:"Add database rows",description:"Insert one or more rows into a Supabase table using the REST API. Returns the inserted rows.",category:"supabase",risk_level:"medium",required_env:["SUPABASE_URL",["SUPABASE_SERVICE_ROLE_KEY","SUPABASE_ANON_KEY"]],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"table",allowlist_default_allow:!1,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{table:{type:"string",description:"Target table name (schema-qualified allowed, e.g. auth.users)."},rows:{type:"array",items:{type:"object"},description:"Array of row objects to insert."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["table","rows"]}},{name:"supabase_rest_upsert",title:"Add or update rows",description:"Upsert one or more rows into a Supabase table. Merges on conflict. Returns affected rows.",category:"supabase",risk_level:"medium",required_env:["SUPABASE_URL",["SUPABASE_SERVICE_ROLE_KEY","SUPABASE_ANON_KEY"]],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"table",allowlist_default_allow:!1,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{table:{type:"string",description:"Target table name."},rows:{type:"array",items:{type:"object"},description:"Array of row objects to upsert."},on_conflict:{type:"string",description:"Comma-separated column(s) to resolve conflicts on."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["table","rows"]}},{name:"supabase_rest_update",title:"Update database rows",description:"Update rows in a Supabase table matching the given filters. Filters are required — table-wide updates are blocked.",category:"supabase",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:["SUPABASE_URL",["SUPABASE_SERVICE_ROLE_KEY","SUPABASE_ANON_KEY"]],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"table",allowlist_default_allow:!1,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{table:{type:"string",description:"Target table name."},patch:{type:"object",description:"Column values to set on matching rows."},filters:{type:"object",description:"Row filters. At least one filter is required."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["table","patch","filters"]}},{name:"supabase_rest_delete",title:"Delete database rows",description:"Delete rows from a Supabase table matching the given filters. Filters are required — bulk table truncation is blocked. Always requires approval regardless of trust mode.",category:"supabase",risk_level:"irreversible_external",approval_required:!0,approval_mode:"approval_required",required_env:["SUPABASE_URL",["SUPABASE_SERVICE_ROLE_KEY","SUPABASE_ANON_KEY"]],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"table",allowlist_default_allow:!1,rate_limit:{window_seconds:3600,max:10},input_schema:{type:"object",properties:{table:{type:"string",description:"Target table name."},filters:{type:"object",description:"Row filters. At least one filter is required."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["table","filters"]}},{name:"supabase_rpc",title:"Call database function",description:"Call a Postgres function via the Supabase REST RPC endpoint.",category:"supabase",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:["SUPABASE_URL",["SUPABASE_SERVICE_ROLE_KEY","SUPABASE_ANON_KEY"]],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"function_name",allowlist_default_allow:!1,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{function_name:{type:"string",description:"Postgres function name to call."},params:{type:"object",description:"Parameters passed as the request body."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["function_name"]}},{name:"supabase_sql",title:"Run SQL query",description:"Execute raw SQL via the madarx_exec_sql() Postgres function. Uses the service-role key and BYPASSES Row-Level Security. Always requires approval regardless of trust mode. Requires creating the madarx_exec_sql() function in your project.",category:"supabase",risk_level:"irreversible_external",approval_required:!0,approval_mode:"approval_required",required_env:["SUPABASE_URL",["SUPABASE_SERVICE_ROLE_KEY","SUPABASE_ANON_KEY"]],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:3600,max:5},input_schema:{type:"object",properties:{query:{type:"string",description:"SQL query to execute via madarx_exec_sql()."},params:{type:"object",description:"Optional named parameters for the query."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["query"]}},{name:"vercel_list_projects",title:"List Vercel projects",description:"List Vercel projects visible to the configured token.",category:"vercel",risk_level:"medium",required_env:["VERCEL_TOKEN"],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{team_id:{type:"string",description:"Optional Vercel team id."},limit:{type:"number",description:"Maximum projects."}}}},{name:"vercel_list_deployments",title:"List Vercel deployments",description:"List Vercel deployments, optionally scoped by project.",category:"vercel",risk_level:"medium",required_env:["VERCEL_TOKEN"],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{team_id:{type:"string",description:"Optional Vercel team id."},project_id:{type:"string",description:"Optional Vercel project id."},project_name:{type:"string",description:"Optional Vercel project name."},limit:{type:"number",description:"Maximum deployments."}}}},{name:"vercel_create_deployment",title:"Deploy to Vercel",description:"Stage a Vercel deployment request for owner approval. This does not deploy until approved.",category:"vercel",risk_level:"high",required_env:["VERCEL_TOKEN"],enabled_default:!1,approval_required:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:5},input_schema:{type:"object",properties:{summary:{type:"string",description:"Deployment purpose and requested target."}}}},{name:"email_send",title:"Send email",description:"Send a transactional email via Resend. Approval is required.",category:"email",risk_level:"irreversible_external",approval_required:!0,approval_mode:"approval_required",required_env:["RESEND_API_KEY"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"recipient_domain",allowlist_default_allow:!1,rate_limit:{window_seconds:3600,max:20},input_schema:{type:"object",properties:{from:{type:"string",description:"Sender address. Defaults to RESEND_FROM_EMAIL secret/env."},to:{type:"string",description:'Single recipient email address, e.g. "user@example.com".'},subject:{type:"string",description:"Email subject line."},text:{type:"string",description:"Plain-text email body. Either text or html is required."},html:{type:"string",description:"HTML email body. Either text or html is required."},reply_to:{type:"string",description:"Reply-to address."},recipient_domain:{type:"string",description:'Domain portion of the "to" address, e.g. "example.com". Must match the domain in "to" exactly — used by the allowlist gate.'},approval_id:{type:"string",description:"Approval request ID to consume for one-shot execution."}},required:["to","subject"]}},{name:"email_status_lookup",title:"Check email delivery",description:"Look up the delivery status of a previously-sent email.",category:"email",risk_level:"low",required_env:["RESEND_API_KEY"],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{email_id:{type:"string",description:"Resend email ID returned by email_send."}},required:["email_id"]}},{name:"gh_repo_read",title:"Read a GitHub repo",description:"Read metadata for a GitHub repository (name, visibility, default branch, stars, forks).",category:"github",risk_level:"low",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format, e.g. acme/api."}},required:["repo_full_name"]}},{name:"gh_repo_list",title:"List GitHub repos",description:"List GitHub repositories accessible to the configured token.",category:"github",risk_level:"low",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{visibility:{type:"string",description:"Filter by visibility: all, public, private."},type:{type:"string",description:"Filter by type: all, owner, member."},sort:{type:"string",description:"Sort by: created, updated, pushed, full_name."},per_page:{type:"number",description:"Results per page, 1-100. Default 30."}}}},{name:"gh_issue_list",title:"List issues",description:"List issues in a GitHub repository with optional state and label filters.",category:"github",risk_level:"low",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},state:{type:"string",description:"Issue state: open, closed, all. Default open."},labels:{type:"string",description:"Comma-separated label names to filter by."},per_page:{type:"number",description:"Results per page, 1-100. Default 30."}},required:["repo_full_name"]}},{name:"gh_issue_create",title:"Create an issue",description:"Create an issue in an allowlisted GitHub repository.",category:"github",risk_level:"medium",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"repo_full_name",rate_limit:{window_seconds:3600,max:20},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},title:{type:"string",description:"Issue title."},body:{type:"string",description:"Issue body in Markdown."},labels:{type:"array",items:{type:"string"},description:"Labels to apply."},assignees:{type:"array",items:{type:"string"},description:"GitHub usernames to assign."}},required:["repo_full_name","title"]}},{name:"gh_issue_comment",title:"Comment on an issue",description:"Post a comment on a GitHub issue in an allowlisted repository.",category:"github",risk_level:"medium",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"repo_full_name",rate_limit:{window_seconds:3600,max:30},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},issue_number:{type:"number",description:"Issue number."},body:{type:"string",description:"Comment body in Markdown."}},required:["repo_full_name","issue_number","body"]}},{name:"gh_pr_list",title:"List pull requests",description:"List pull requests in a GitHub repository with optional filters.",category:"github",risk_level:"low",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},state:{type:"string",description:"PR state: open, closed, all. Default open."},head:{type:"string",description:"Filter by head branch (user:branch)."},base:{type:"string",description:"Filter by base branch name."},per_page:{type:"number",description:"Results per page, 1-100. Default 30."}},required:["repo_full_name"]}},{name:"gh_pr_create",title:"Open a pull request",description:"Open a pull request in an allowlisted GitHub repository.",category:"github",risk_level:"high",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"repo_full_name",rate_limit:{window_seconds:3600,max:10},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},title:{type:"string",description:"PR title."},head:{type:"string",description:"Head branch (source)."},base:{type:"string",description:"Base branch (target)."},body:{type:"string",description:"PR description in Markdown."},draft:{type:"boolean",description:"Open as a draft PR."}},required:["repo_full_name","title","head","base"]}},{name:"gh_pr_comment",title:"Comment on a pull request",description:"Post a comment on a GitHub pull request in an allowlisted repository.",category:"github",risk_level:"medium",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"repo_full_name",rate_limit:{window_seconds:3600,max:30},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},pr_number:{type:"number",description:"Pull request number."},body:{type:"string",description:"Comment body in Markdown."}},required:["repo_full_name","pr_number","body"]}},{name:"gh_pr_merge",title:"Merge a pull request",description:"Merge a pull request in an allowlisted GitHub repository. This action is irreversible once completed.",category:"github",risk_level:"irreversible_external",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"repo_full_name",rate_limit:{window_seconds:3600,max:5},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},pr_number:{type:"number",description:"Pull request number."},commit_title:{type:"string",description:"Custom commit title for squash merge."},commit_message:{type:"string",description:"Custom commit message for squash merge."},merge_method:{type:"string",description:"Merge method: merge, squash, rebase. Default squash."}},required:["repo_full_name","pr_number"]}},{name:"gh_actions_dispatch",title:"Run a GitHub workflow",description:"Trigger a workflow dispatch event in an allowlisted GitHub repository.",category:"github",risk_level:"high",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"repo_full_name",rate_limit:{window_seconds:3600,max:10},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},workflow_id:{type:"string",description:"Workflow filename or ID (e.g. deploy.yml)."},ref:{type:"string",description:"Branch or tag to run the workflow on."},inputs:{type:"object",description:"Optional workflow dispatch inputs."}},required:["repo_full_name","workflow_id","ref"]}},{name:"gh_release_create",title:"Publish a release",description:"Create a release in an allowlisted GitHub repository.",category:"github",risk_level:"high",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"repo_full_name",rate_limit:{window_seconds:3600,max:5},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},tag_name:{type:"string",description:"Git tag for the release."},target_commitish:{type:"string",description:"Commit SHA or branch to tag."},name:{type:"string",description:"Release title."},body:{type:"string",description:"Release notes in Markdown."},draft:{type:"boolean",description:"Create as a draft release."},prerelease:{type:"boolean",description:"Mark as a pre-release."}},required:["repo_full_name","tag_name"]}},{name:"flight_search",title:"Search flights",description:"Search flight offers and return curated price + itinerary data. Uses Amadeus when AMADEUS_CLIENT_ID and AMADEUS_CLIENT_SECRET are configured, otherwise falls back to a free, key-less Google Flights backend lookup.",category:"travel",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{origin:{type:"string",description:'Origin airport IATA code, e.g. "JFK".'},destination:{type:"string",description:'Destination airport IATA code, e.g. "LHR".'},departure_date:{type:"string",description:"Departure date YYYY-MM-DD."},return_date:{type:"string",description:"Optional return date YYYY-MM-DD for round-trip search."},adults:{type:"number",description:"Adult passengers 1-9. Default 1."},children:{type:"number",description:"Child passengers 0-8."},travel_class:{type:"string",description:"ECONOMY | PREMIUM_ECONOMY | BUSINESS | FIRST."},currency:{type:"string",description:"3-letter ISO currency code. Default USD."},non_stop:{type:"boolean",description:"Only return non-stop itineraries."},max_results:{type:"number",description:"Max offers 1-25. Default 5."}},required:["origin","destination","departure_date"]}},{name:"flight_status",title:"Check flight status",description:"Look up live or scheduled flight status via Aviationstack. Returns departure, arrival, delay, and live position.",category:"travel",risk_level:"low",required_env:["AVIATIONSTACK_API_KEY"],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{flight_iata:{type:"string",description:'Flight IATA code, e.g. "BA283".'},flight_icao:{type:"string",description:"Flight ICAO code."},airline_iata:{type:"string",description:'Filter by airline IATA, e.g. "BA".'},dep_iata:{type:"string",description:"Departure airport IATA."},arr_iata:{type:"string",description:"Arrival airport IATA."},flight_date:{type:"string",description:"Flight date YYYY-MM-DD."},limit:{type:"number",description:"Max results 1-100. Default 5."}}}},{name:"hotel_search",title:"Search hotels",description:"List hotels at a TripAdvisor location via Xotelo. No API key required. Returns hotel_keys you can pass to hotel_rates.",category:"travel",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{location_key:{type:"string",description:'TripAdvisor geo location key, e.g. "g60763" for New York City.'},offset:{type:"number",description:"Pagination offset. Default 0."},limit:{type:"number",description:"Results 1-30. Default 10."},sort:{type:"string",description:"popularity | price | rating."},currency:{type:"string",description:"3-letter ISO currency. Default USD."},hotel_class:{type:"string",description:'Filter by star class, e.g. "4,5".'}},required:["location_key"]}},{name:"hotel_rates",title:"Check hotel rates",description:"Get real-time hotel rates from Booking.com, Expedia, Hotels.com, Agoda, etc. via Xotelo. No API key required.",category:"travel",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{hotel_key:{type:"string",description:'TripAdvisor hotel key, e.g. "g60763-d224867". Obtain from hotel_search.'},chk_in:{type:"string",description:"Check-in date YYYY-MM-DD."},chk_out:{type:"string",description:"Check-out date YYYY-MM-DD (must be after chk_in)."},currency:{type:"string",description:"3-letter ISO currency. Default USD."},rooms:{type:"number",description:"Rooms 1-9. Default 1."},adults:{type:"number",description:"Adults 1-9. Default 2."}},required:["hotel_key","chk_in","chk_out"]}},{name:"gmail_messages_list",title:"List Gmail messages",description:"Read message metadata from the operator Gmail inbox.",category:"email",risk_level:"low",approval_mode:"auto",required_env:["GOOGLE_REFRESH_TOKEN"],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{max_results:{type:"number"},q:{type:"string"}}}},{name:"gmail_message_read",title:"Read a Gmail message",description:"Read one Gmail message for summarization or drafting.",category:"email",risk_level:"low",approval_mode:"auto",required_env:["GOOGLE_REFRESH_TOKEN"],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{message_id:{type:"string"}},required:["message_id"]}},{name:"gmail_thread_read",title:"Read a Gmail thread",description:"Read a Gmail thread for context.",category:"email",risk_level:"low",approval_mode:"auto",required_env:["GOOGLE_REFRESH_TOKEN"],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{thread_id:{type:"string"}},required:["thread_id"]}},{name:"calendar_events_list",title:"List calendar events",description:"Read upcoming Google Calendar events.",category:"calendar",risk_level:"low",approval_mode:"auto",required_env:["GOOGLE_REFRESH_TOKEN"],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{calendar_id:{type:"string"},time_min:{type:"string"},time_max:{type:"string"},max_results:{type:"number"}}}},{name:"calendar_event_read",title:"Read a calendar event",description:"Read one Google Calendar event.",category:"calendar",risk_level:"low",approval_mode:"auto",required_env:["GOOGLE_REFRESH_TOKEN"],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{event_id:{type:"string"},calendar_id:{type:"string"}},required:["event_id"]}},{name:"transcribe_audio",title:"Transcribe audio",description:"Transcribe a Disk audio file and save the transcript as a Disk artifact. Provider: openai (whisper, default), elevenlabs (Scribe), or local.",category:"local_machine",risk_level:"medium",approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:10},input_schema:{type:"object",properties:{file_id:{type:"string"},use_local:{type:"boolean"},provider:{type:"string",description:'Transcription provider: openai | elevenlabs | local. Defaults to TRANSCRIBE_DEFAULT_PROVIDER or "openai".'},language:{type:"string"}},required:["file_id"]}},{name:"voice_speak",title:"Speak text aloud",description:"Synthesize a short text reply to audio via OpenAI TTS (default) or ElevenLabs. Returns base64 audio; optionally saves to Disk.",category:"voice",risk_level:"low",approval_mode:"auto",required_env:[["OPENAI_API_KEY","ELEVENLABS_API_KEY"]],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:60},input_schema:{type:"object",properties:{text:{type:"string",description:"Text to synthesize. Up to 4000 chars."},provider:{type:"string",description:"Provider: openai (default) or elevenlabs."},voice:{type:"string",description:"Provider-specific voice id. OpenAI: alloy|echo|fable|onyx|nova|shimmer. ElevenLabs: voice id."},model:{type:"string"},format:{type:"string",description:"mp3 (default) or wav."},save_to_disk:{type:"boolean"},project_id:{type:"string"}},required:["text"]}},{name:"printing_press_install",title:"Install Printing Press sub-package",description:"Install the printing-press sub-package required to generate scoped CLIs. Always approval-gated.",category:"cli_generator",risk_level:"irreversible_external",approval_required:!0,approval_mode:"approval_required",enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:3600,max:5},input_schema:{type:"object",properties:{},required:[]}},{name:"printing_press_generate",title:"Generate a scoped CLI",description:"Generate a new scoped CLI from a starter pack, GitHub repo, or local source.",category:"cli_generator",risk_level:"irreversible_external",approval_required:!0,approval_mode:"approval_required",enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:3600,max:20},input_schema:{type:"object",properties:{slug:{type:"string",description:"Lowercase kebab-case CLI slug."},source:{type:"string",description:"starter-pack | github | local | spec"},source_url:{type:"string",description:"Required when source is not starter-pack."}},required:["slug"]}},{name:"printing_press_run",title:"Run an installed CLI",description:"Execute a previously-installed printing-press CLI with bounded args.",category:"cli_generator",risk_level:"high",approval_mode:"approval_required",enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"printing_press_cli",allowlist_default_allow:!1,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{slug:{type:"string",description:"CLI slug to run."},args:{type:"array",items:{type:"string"},description:"Bounded arg list (no shell metacharacters)."},printing_press_cli:{type:"string",description:"Slug used by the allowlist gate. Must equal `slug`."}},required:["slug"]}},{name:"create_workflow_definition",title:"Create workflow definition",description:'Create a new process workflow from a JSON spec. The spec is validated against lib/process/spec-validator.js. The new definition is published immediately at status="published" — cases can be started from it. Risk-gated by approval.',category:"workflow",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:20},input_schema:{type:"object",properties:{spec:{type:"object",description:"Full workflow spec JSON. Must include schema_version, slug, name, version, stages[]. First stage must be intake_form. See ai-docs/process-engine.md and the validator at lib/process/spec-validator.js for the full schema."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["spec"]}},{name:"update_workflow_definition",title:"Update workflow definition",description:"Update an existing process workflow at a given slug. Spec is re-validated. version must be bumped if the stage list changed structurally. In-flight cases keep their old definition_id; new cases use the new version.",category:"workflow",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:20},input_schema:{type:"object",properties:{slug:{type:"string",description:"Slug of the existing workflow to update."},spec:{type:"object",description:"Full workflow spec JSON. slug is forced to match the path slug."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["slug","spec"]}},{name:"self_update",title:"Update madarX OS",description:"Update the madarX OS install to the latest published version (npm i -g madarx@latest). Irreversible-external: an agent calling this ALWAYS requires owner approval — it can never silently replace the running binary. A restart is required after a successful update.",category:"system",risk_level:"irreversible_external",required_env:[],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:86400,max:4},input_schema:{type:"object",properties:{approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:[]}},{name:"printing_press_query",title:"Query an installed CLI SQLite mirror",description:"Run a single read-only SELECT against a CLI local SQLite mirror, if it exposes one.",category:"cli_generator",risk_level:"low",approval_mode:"auto",enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"printing_press_cli",allowlist_default_allow:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{slug:{type:"string",description:"CLI slug whose SQLite mirror to query."},sql:{type:"string",description:"Single SELECT statement. Multi-statement SQL is refused."},printing_press_cli:{type:"string",description:"Slug used by the allowlist gate. Must equal the slug."}},required:["slug","sql"]}},{name:"mines_project_create",title:"Create mine project",description:"Create a new mine project workspace and register it in the Mines module.",category:"mines",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:30},input_schema:{type:"object",properties:{name:{type:"string"},slug:{type:"string",description:'Lowercase kebab-case, e.g. "batamote"'},asset_stage:{type:"string",enum:["exploration","development","production","care_and_maintenance","unknown"]},commodity:{type:"string"},deposit_type:{type:"string"},approval_id:{type:"string"}},required:["name","slug"]}},{name:"mines_project_read",title:"Read mine project summary",description:"Read a mine project record including data completeness and document counts by category.",category:"mines",risk_level:"low",approval_mode:"auto",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{project_id:{type:"string"}},required:["project_id"]}},{name:"mines_catalog_import",title:"Import portfolio catalog",description:"Load a master project catalog XLSX into Portfolio and PortfolioEntry records.",category:"mines",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:10},input_schema:{type:"object",properties:{file_id:{type:"string",description:"Disk file ID of the XLSX catalog."},portfolio_name:{type:"string"},sheet_name:{type:"string",description:"Optional sheet override."},approval_id:{type:"string"}},required:["file_id","portfolio_name"]}},{name:"mines_data_import",title:"Bulk import mine data directory",description:"Walk a directory tree, auto-classify files by folder taxonomy, and enqueue each file for ingestion. Incremental and resumable.",category:"mines",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:5},input_schema:{type:"object",properties:{project_id:{type:"string"},directory_path:{type:"string"},resume:{type:"boolean",description:"Skip files already past queued status."},approval_id:{type:"string"}},required:["project_id","directory_path"]}},{name:"mines_document_extract",title:"Extract and embed document",description:"Parse a source document (PDF/DOCX/PPTX), OCR if scanned, chunk text, and embed chunks. Spanish-first.",category:"mines",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:20},input_schema:{type:"object",properties:{source_document_id:{type:"string"},force_ocr:{type:"boolean"},approval_id:{type:"string"}},required:["source_document_id"]}},{name:"mines_spatial_index",title:"Index spatial assets",description:"Read GIS/CAD file metadata (kind, CRS, bounding box) without rendering geometry.",category:"mines",risk_level:"low",approval_mode:"auto",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{project_id:{type:"string"},source_document_id:{type:"string",description:"Index a single already-catalogued file."}},required:["project_id"]}},{name:"mines_extract_facts",title:"Extract structured facts from documents (LLM)",description:"Read a project document's indexed chunks and extract structured, provenance-cited geology/economics facts into mines_extracted_facts. Every fact is validated to cite a real chunk + verbatim quote; uncited facts are rejected. Never declares a mineral resource the source did not. Feeds mines_report_generate and mines_valuation_run.",category:"mines",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:20},input_schema:{type:"object",properties:{project_id:{type:"string"},source_document_id:{type:"string",description:"Document to extract from. Defaults to the project's most-chunked document (its technical report)."},max_chunks:{type:"number",description:"Max chunks fed to the model. Default 48."},char_budget:{type:"number",description:"Max source characters per call. Default 32000."},approval_id:{type:"string"}},required:["project_id"]}},{name:"mines_assumption_validate",title:"Validate valuation assumptions",description:"Check completeness of data required for T1 or T2 valuation and return a gap list.",category:"mines",risk_level:"low",approval_mode:"auto",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{project_id:{type:"string"},target_tier:{type:"string",enum:["t1_in_situ","t2_dcf","auto"]}},required:["project_id"]}},{name:"mines_valuation_run",title:"Run tiered mine valuation",description:"Compute base/downside/upside valuation. Selects T1 (in-situ) or T2 (DCF) based on asset stage and data completeness. States tier and rationale.",category:"mines",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:10},input_schema:{type:"object",properties:{project_id:{type:"string"},commodity_prices_json:{type:"string",description:'JSON price override e.g. {"Au":2300,"Cu":4.2}. Defaults to latest mines_market_snapshots.'},in_situ_factor_override:{type:"number"},force_tier:{type:"string",enum:["t1_in_situ","t2_dcf"]},approval_id:{type:"string"}},required:["project_id"]}},{name:"mines_sensitivity_run",title:"Run valuation sensitivity analysis",description:"Compute sensitivity of valuation to key drivers (grade, price, recovery, in_situ_factor, discount_rate).",category:"mines",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:10},input_schema:{type:"object",properties:{scenario_id:{type:"string"},drivers:{type:"array",items:{type:"string"}},steps:{type:"number",description:"Steps per driver. Default 5."},approval_id:{type:"string"}},required:["scenario_id"]}},{name:"mines_market_snapshot",title:"Fetch commodity market data",description:"Retrieve current commodity prices from an approved market data provider.",category:"mines",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:["MINES_MARKET_API_KEY"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"market_provider_host",allowlist_default_allow:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{commodities:{type:"array",items:{type:"string"}},market_provider_host:{type:"string",description:'e.g. "metals-api.com". Must be in allowlist.'},approval_id:{type:"string"}},required:["market_provider_host"]}},{name:"mines_report_generate",title:"Generate mine project report",description:"Generate a cited, structured report artifact. External email send always requires separate irreversible_external approval.",category:"mines",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:5},input_schema:{type:"object",properties:{project_id:{type:"string"},report_kind:{type:"string",enum:["interpretation_memo","due_diligence_memo","data_quality_report","investor_presentation","pfs_readiness_report","valuation_report","due_diligence_questions","project_package","portfolio_screen"]},scenario_id:{type:"string",description:"Required for valuation_report."},space_id:{type:"string",description:"Optional dashboard space to publish into. Defaults to the project’s configured default space; the artifact is pinned there so it appears as a window on the dashboard board."},language:{type:"string",enum:["en","es"],description:'Default "en".'},narrative:{type:"object",description:"LLM-authored prose slots (all optional, each falls back to data-driven copy). For investor_presentation: hero_headline, hero_subhead (strings); opportunity (array of paragraph strings); findings_lead, upside_lead, risk_lead, the_ask (strings). For pfs_readiness_report: verdict, gap_intro, work_program, recommendation (strings). Numbers/figures are never taken from here — they always come from cited DB rows.",properties:{hero_headline:{type:"string"},hero_subhead:{type:"string"},opportunity:{type:"array",items:{type:"string"}},findings_lead:{type:"string"},upside_lead:{type:"string"},risk_lead:{type:"string"},the_ask:{type:"string"},verdict:{type:"string"},gap_intro:{type:"string"},work_program:{type:"string"},recommendation:{type:"string"}}},send_email:{type:"boolean"},recipient_email:{type:"string"},approval_id:{type:"string"}},required:["project_id","report_kind"]}},{name:"create_skill",title:"Author skill",description:"Author a declarative skill (SKILL.md + marketplace row) any agent can invoke. Instructions only — no code executes. Owner/admin authority required.",category:"authoring",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{spec:{type:"object",description:"{ slug, title, description?, markdown, invocation?, trigger_examples?[], category? }"},approval_id:{type:"string"}},required:["spec"]}},{name:"update_skill",title:"Update skill",description:"Update an existing authored skill by slug. Owner/admin authority required.",category:"authoring",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{slug:{type:"string"},spec:{type:"object"},approval_id:{type:"string"}},required:["slug","spec"]}},{name:"create_composite_tool",title:"Author composite tool",description:"Author a composite tool: a declarative recipe chaining EXISTING primitive tools + LLM steps. Inherits the MAX risk of its steps; every gate re-fires per sub-step. Owner/admin authority required.",category:"authoring",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{spec:{type:"object",description:'{ slug, title, description?, input_schema?, steps:[{kind:"tool_call"|"llm_synthesis"|"artifact_write", id, ...}] }'},approval_id:{type:"string"}},required:["spec"]}},{name:"update_composite_tool",title:"Update composite tool",description:"Update an existing composite tool by slug. Owner/admin authority required.",category:"authoring",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{slug:{type:"string"},spec:{type:"object"},approval_id:{type:"string"}},required:["slug","spec"]}},{name:"create_connector",title:"Author API connector",description:"Author a declarative REST API connector (Option D). Each endpoint becomes a callable <slug>.<endpoint> tool backed by the generic http_api_call executor. Manifest is inert data: https-only, secret-by-reference auth, host allowlist, per-endpoint risk ceiling. Owner/admin authority required. The owner supplies the API key once.",category:"authoring",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{manifest:{type:"object",description:"{ slug, base_url(https), allowed_hosts[], auth:{type,secret_ref|username_ref/password_ref,header?,prefix?,query_param?}, default_headers?, endpoints:{ name:{method,path,risk?,input_schema?} } }"},approval_id:{type:"string"}},required:["manifest"]}},{name:"update_connector",title:"Update API connector",description:"Update an existing API connector by slug. Owner/admin authority required.",category:"authoring",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{slug:{type:"string"},manifest:{type:"object"},approval_id:{type:"string"}},required:["slug","manifest"]}},{name:"propose_tool",title:"Propose new tool (code-gen)",description:"Option B escape hatch for non-REST integrations: generate an adapter scaffold + registry snippet + tests into a staging dir. The proposal is INERT — it is never callable until a human reviews, merges, and restarts. Writes files only; executes nothing.",category:"authoring",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{slug:{type:"string",description:"snake_case tool name"},summary:{type:"string"},risk:{type:"string",enum:["low","medium","high","irreversible_external"]},approval_id:{type:"string"}},required:["slug"]}}],al={web_search:o.tE,web_fetch:o.dV,web_extract:o.IY,email_send:p.x,email_status_lookup:p.f,supabase_list_projects:q.NO,supabase_rest_select:q.TP,supabase_rest_insert:q.c3,supabase_rest_upsert:q.mD,supabase_rest_update:q.sX,supabase_rest_delete:q.oc,supabase_rpc:q.wm,supabase_sql:q.l8,vercel_list_projects:r.Q$,vercel_list_deployments:r.I6,vercel_create_deployment:r.vV,gh_repo_read:s.Sj,gh_repo_list:s.AU,gh_issue_list:s.jj,gh_issue_create:s.vj,gh_issue_comment:s.iP,gh_pr_list:s.gn,gh_pr_create:s.Ud,gh_pr_comment:s.J,gh_pr_merge:s.wt,gh_actions_dispatch:s.zI,gh_release_create:s.Bb,file_read:t.dd,directory_list:t.sv,file_search:t.X,file_write:t.sq,file_patch:t.vO,terminal_run:u.y,process_start:v.gy,process_poll:v.p3,process_kill:v.MU,flight_search:w.R5,flight_status:w.zP,hotel_search:w.FE,hotel_rates:w.Y$,gmail_messages_list:x.r_,gmail_message_read:x.cS,gmail_thread_read:x.vg,calendar_events_list:y.u,calendar_event_read:y.r,transcribe_audio:z.b,browser_harness_run:A.K,browser_open:C.D6,browser_act:C.Hz,browser_extract:C.aU,browser_screenshot:C.Jz,browser_navigate:B.M,browser_extract_structured:B.B,voice_speak:D.o,printing_press_install:E.gE,printing_press_generate:E.ID,printing_press_run:E.Cw,printing_press_query:E.VC,create_workflow_definition:F.h,update_workflow_definition:F.m,self_update:G.m,create_skill:H.S,update_skill:H.f,create_composite_tool:I.y$,update_composite_tool:I.le,create_connector:J.U$,update_connector:J.zc,propose_tool:K.B,http_api_call:L.p,composite_tool_run:M.n,mines_project_create:P.m,mines_project_read:P.I,mines_catalog_import:Q.b,mines_data_import:R.I,mines_document_extract:S.f,mines_extract_facts:Y.$,mines_spatial_index:T.d,mines_assumption_validate:U.w,mines_valuation_run:V.R,mines_sensitivity_run:V.h,mines_market_snapshot:W.V,mines_report_generate:X.Q},am={file_write:t.Z6,file_patch:t.mr,terminal_run:u.x,process_start:v.H7,process_kill:v.L7,browser_harness_run:A.r},an=new Set;function $(a){try{if((0,j.r6)(a))return!0}catch{}return!!process.env[a]&&(an.has(a)||(an.add(a),console.warn(`[secrets] ${a} is being read from process.env as a fallback. Migrate it to the vault with: node scripts/migrate-env-to-secrets.mjs`)),!0)}function _(a=[]){return a.filter(a=>Array.isArray(a)?!a.some(a=>$(a)):!$(a)).map(a=>Array.isArray(a)?a.join(" or "):a)}let ao=[{marker:"tool.repair.flight_search_enable_v1",tool_name:"flight_search",summary:"One-shot: enable flight_search on installs where the Amadeus→Google fallback shipped after the row was created."}];function aa(a,b){try{let c=JSON.parse(a||"[]");return Array.isArray(c)?c:b}catch{return b}}function ab(){let a=new Set,b=new Map;for(let c of ak)a.add(c.name),b.set(c.name,c.risk_level||"medium");return{names:a,riskByName:b}}function ac({agent_id:a,tool_name:b,status:c,summary:d,meta:e={}}){a&&(0,f.Lf)().prepare(`
|
|
1050
|
+
`).run((0,e.kF)(),a.id),j(a.id,{type:"stale_recovered",message:"Recovered stale lease"});return b.length&&h(),b.length}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},68571:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{VM:()=>ac,hM:()=>ai});var e=c(77598),f=c(84104),g=c(67354),h=c(66324),i=c(684),j=c(81909),k=c(24867),l=c(37788),m=c(49248),n=c(37937),o=c(89145),p=c(35532),q=c(23339),r=c(22896),s=c(2796),t=c(27746),u=c(80781),v=c(78712),w=c(20749),x=c(32409),y=c(94387),z=c(59080),A=c(32244),B=c(41422),C=c(75392),D=c(83796),E=c(96084),F=c(71844),G=c(16483),H=c(23799),I=c(45510),J=c(41039),K=c(85855),L=c(14821),M=c(45599),N=c(76862),O=c(84939),P=c(80028),Q=c(98450),R=c(78547),S=c(59728),T=c(36665),U=c(36393),V=c(71326),W=c(9203),X=c(37047),Y=c(26940),Z=c(86615),$=a([f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,B,C,D,E,F,G,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,Y,Z]);[f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,B,C,D,E,F,G,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,Y,Z]=$.then?(await $)():$;let aj="approval_required",ak=new Set(["approval_required","auto"]),al=[{name:"file_read",title:"Read file",description:"Read a bounded file inside approved local roots. Secret files are blocked.",category:"local_machine",risk_level:"low",approval_mode:"auto",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{path:{type:"string"},offset:{type:"number"},limit:{type:"number"}},required:["path"]}},{name:"directory_list",title:"List folder",description:"List directory entries inside approved local roots.",category:"local_machine",risk_level:"low",approval_mode:"auto",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{path:{type:"string"},limit:{type:"number"}}}},{name:"file_search",title:"Search files",description:"Search safe local files while skipping build output, dependencies, databases, and secret files.",category:"local_machine",risk_level:"low",approval_mode:"auto",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{pattern:{type:"string"},path:{type:"string"},target:{type:"string"},file_glob:{type:"string"},limit:{type:"number"}},required:["pattern"]}},{name:"file_write",title:"Write file",description:"Write a file inside approved local roots after owner approval.",category:"local_machine",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{path:{type:"string"},content:{type:"string"},create_dirs:{type:"boolean"},approval_id:{type:"string"}},required:["path","content"]}},{name:"file_patch",title:"Edit file",description:"Patch a file inside approved local roots after owner approval.",category:"local_machine",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{path:{type:"string"},old_string:{type:"string"},new_string:{type:"string"},replace_all:{type:"boolean"},approval_id:{type:"string"}},required:["path","old_string","new_string"]}},{name:"terminal_run",title:"Run command",description:"Run a bounded local command with spawn command and args, never shell:true.",category:"local_machine",risk_level:"medium",approval_mode:"policy",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:20},input_schema:{type:"object",properties:{command:{type:"string"},args:{type:"array",items:{type:"string"}},cwd:{type:"string"},timeout_ms:{type:"number"},approval_id:{type:"string"}},required:["command"]}},{name:"process_start",title:"Start process",description:"Start a madarX-owned local process and persist process state.",category:"local_machine",risk_level:"medium",approval_mode:"policy",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:20},input_schema:{type:"object",properties:{command:{type:"string"},args:{type:"array",items:{type:"string"}},cwd:{type:"string"},approval_id:{type:"string"}},required:["command"]}},{name:"process_poll",title:"Check process",description:"Poll a madarX-owned local process row.",category:"local_machine",risk_level:"low",approval_mode:"auto",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{process_id:{type:"string"}},required:["process_id"]}},{name:"process_kill",title:"Stop process",description:"Stop a madarX-owned process after owner approval.",category:"local_machine",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:20},input_schema:{type:"object",properties:{process_id:{type:"string"},approval_id:{type:"string"}},required:["process_id"]}},{name:"web_search",title:"Search the web",description:"Search the public web with Firecrawl, SearXNG, Brave Search, or the no-key DuckDuckGo Lite fallback, returning ranked results with title, URL, snippet, and source metadata.",category:"web",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{query:{type:"string",description:"Search query."},count:{type:"number",description:"Number of results, 1-10. Default 5."},country:{type:"string",description:"Optional Brave country code, e.g. US."},search_lang:{type:"string",description:"Optional search language, e.g. en."}},required:["query"]}},{name:"web_fetch",title:"Fetch a webpage",description:"Fetch a public URL, block local/private network targets, strip HTML to readable text, and cap response size.",category:"web",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{url:{type:"string",description:"Public http(s) URL to fetch."},max_bytes:{type:"number",description:"Maximum response bytes, capped at 512000."}},required:["url"]}},{name:"web_extract",title:"Extract from webpage",description:"Extract readable content from a public URL with Firecrawl scrape when configured, otherwise fall back to direct web fetch.",category:"web",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{url:{type:"string",description:"Public http(s) URL to extract."},max_bytes:{type:"number",description:"Maximum response bytes for direct fetch fallback, capped at 512000."}},required:["url"]}},{name:"browser_harness_run",title:"Browser Harness",description:"Run a bounded browser-harness Python snippet against an activated Chrome CDP browser. This is local-code-execution risk: it starts disabled and requires owner approval for every main-agent or sub-agent execution.",category:"browser",risk_level:"irreversible_external",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:60,max:20},input_schema:{type:"object",properties:{script:{type:"string",description:"Python code executed by browser-harness. Helpers are pre-imported; use new_tab(url), wait_for_load(), page_info(), capture_screenshot(), click_at_xy(), js(), or cdp()."},timeout_ms:{type:"number",description:"Timeout in milliseconds, capped at 600000. Default 120000."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["script"]}},{name:"skill_bridge_run",title:"Skill Bridge",description:"Run one allowlisted first-party gstack CLI skill (connect-chrome, browse, qa-only) to drive the real visible browser the operator can watch live. Crosses the Claude Code CLI trust boundary, so it is ALWAYS approval-gated for every run (even in trust-mode auto) and disabled by default. Pass the skill slug and a plain-language instruction; the bridge invokes only that skill, bounded by the .claude deny list.",category:"browser",risk_level:"irreversible_external",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:300,max:10},input_schema:{type:"object",properties:{skill:{type:"string",description:"Skill slug to invoke. One of: connect-chrome, browse, qa-only.",enum:["connect-chrome","browse","qa-only"]},instruction:{type:"string",description:'Plain-language instruction for the skill (e.g. "open Google News and search US Iran war, read the top 3 headlines"). Max 4000 chars.'},timeout_ms:{type:"number",description:"Timeout in milliseconds, capped at 600000. Default 180000."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["skill","instruction"]}},{name:"browser_open",title:"Browser Open (Playwright)",description:"Open a URL in a real headless Chromium and return the final URL, page title, and visible text. Use this (not browser_navigate) for JavaScript-rendered pages, SPAs, or anything that needs a real browser. The page persists across calls so you can browser_act / browser_extract on it next.",category:"browser",risk_level:"medium",required_env:[],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{url:{type:"string",description:"Public http(s) URL to open."},wait_for:{type:"string",description:"Optional CSS selector to wait for after load."},timeout_ms:{type:"number",description:"Navigation timeout in ms (default 30000, max 120000)."}},required:["url"]}},{name:"browser_act",title:"Browser Act (Playwright)",description:"Interact with the currently open page: click, fill, type, select, press a key, scroll, or wait. State-changing — gated for approval in approval-required trust mode. Locate elements with a CSS selector or a Playwright text= selector. Does NOT expand the agent's permissions; it only drives the page already loaded by browser_open.",category:"browser",risk_level:"high",required_env:[],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{action:{type:"string",enum:["click","fill","type","select","press","scroll","wait"],description:"Interaction to perform."},selector:{type:"string",description:"CSS selector or Playwright text= selector for the target element. Required for click/fill/type/select/press."},text:{type:"string",description:"Text to fill/type (for fill/type), or option value (for select)."},value:{type:"string",description:"Option value for select (alternative to text)."},key:{type:"string",description:"Key to press for the press action (default Enter)."},timeout_ms:{type:"number",description:"Action timeout in ms (default 30000, max 120000)."}},required:["action"]}},{name:"browser_extract",title:"Browser Extract (Playwright)",description:"Read content from the currently open page: visible text (default), raw HTML, or JSON-LD blocks. Optionally scoped to a CSS selector. Use after browser_open / browser_act to pull the rendered result.",category:"browser",risk_level:"medium",required_env:[],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{mode:{type:"string",enum:["text","html","json-ld"],default:"text",description:"What to extract."},selector:{type:"string",description:"Optional CSS selector to scope extraction."}}}},{name:"browser_screenshot",title:"Browser Screenshot (Playwright)",description:"Capture a PNG screenshot of the currently open page (or a selector / full page). Saved to disk under data/browser-screenshots; returns the file path.",category:"browser",risk_level:"medium",required_env:[],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:20},input_schema:{type:"object",properties:{selector:{type:"string",description:"Optional CSS selector to screenshot just one element."},full_page:{type:"boolean",description:"Capture the full scrollable page (default false)."}}}},{name:"browser_navigate",title:"Browser Navigate",description:"Fetch a URL with Chrome 124 headers, cookie jar, redirect following, and configurable extraction (text, markdown, json-ld, metadata, raw). Falls back gracefully on JS-only pages.",category:"web",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_ms:6e4,max:30},input_schema:{type:"object",properties:{url:{type:"string",description:"HTTP/HTTPS URL"},extract:{type:"string",enum:["text","markdown","json-ld","metadata","raw"],default:"text"},selector:{type:"string",description:"Optional CSS-like selector: tag, #id, or .class"},wait_for:{type:"string",description:"Optional substring expected in response; returns hint if missing"},max_chars:{type:"integer",default:12e3,maximum:5e4}},required:["url"]}},{name:"browser_extract_structured",title:"Browser Extract Structured",description:"Fetch a URL and extract both JSON-LD structured data and page metadata (title, og:*, meta tags) in one call.",category:"web",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_ms:6e4,max:30},input_schema:{type:"object",properties:{url:{type:"string"}},required:["url"]}},{name:"supabase_list_projects",title:"List Supabase projects",description:"List Supabase projects available to the configured personal access token.",category:"supabase",risk_level:"medium",required_env:["SUPABASE_ACCESS_TOKEN"],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{}}},{name:"supabase_rest_select",title:"Read database rows",description:"Read rows from a Supabase table using the REST API with optional filters and limit.",category:"supabase",risk_level:"medium",required_env:["SUPABASE_URL",["SUPABASE_SERVICE_ROLE_KEY","SUPABASE_ANON_KEY"]],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{table:{type:"string",description:"Table name."},select:{type:"string",description:"PostgREST select expression. Default *."},filters:{type:"object",description:"Column filters. Values may be raw PostgREST operators or plain values for eq."},limit:{type:"number",description:"Maximum rows, 1-100. Default 25."}},required:["table"]}},{name:"supabase_rest_insert",title:"Add database rows",description:"Insert one or more rows into a Supabase table using the REST API. Returns the inserted rows.",category:"supabase",risk_level:"medium",required_env:["SUPABASE_URL",["SUPABASE_SERVICE_ROLE_KEY","SUPABASE_ANON_KEY"]],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"table",allowlist_default_allow:!1,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{table:{type:"string",description:"Target table name (schema-qualified allowed, e.g. auth.users)."},rows:{type:"array",items:{type:"object"},description:"Array of row objects to insert."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["table","rows"]}},{name:"supabase_rest_upsert",title:"Add or update rows",description:"Upsert one or more rows into a Supabase table. Merges on conflict. Returns affected rows.",category:"supabase",risk_level:"medium",required_env:["SUPABASE_URL",["SUPABASE_SERVICE_ROLE_KEY","SUPABASE_ANON_KEY"]],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"table",allowlist_default_allow:!1,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{table:{type:"string",description:"Target table name."},rows:{type:"array",items:{type:"object"},description:"Array of row objects to upsert."},on_conflict:{type:"string",description:"Comma-separated column(s) to resolve conflicts on."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["table","rows"]}},{name:"supabase_rest_update",title:"Update database rows",description:"Update rows in a Supabase table matching the given filters. Filters are required — table-wide updates are blocked.",category:"supabase",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:["SUPABASE_URL",["SUPABASE_SERVICE_ROLE_KEY","SUPABASE_ANON_KEY"]],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"table",allowlist_default_allow:!1,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{table:{type:"string",description:"Target table name."},patch:{type:"object",description:"Column values to set on matching rows."},filters:{type:"object",description:"Row filters. At least one filter is required."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["table","patch","filters"]}},{name:"supabase_rest_delete",title:"Delete database rows",description:"Delete rows from a Supabase table matching the given filters. Filters are required — bulk table truncation is blocked. Always requires approval regardless of trust mode.",category:"supabase",risk_level:"irreversible_external",approval_required:!0,approval_mode:"approval_required",required_env:["SUPABASE_URL",["SUPABASE_SERVICE_ROLE_KEY","SUPABASE_ANON_KEY"]],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"table",allowlist_default_allow:!1,rate_limit:{window_seconds:3600,max:10},input_schema:{type:"object",properties:{table:{type:"string",description:"Target table name."},filters:{type:"object",description:"Row filters. At least one filter is required."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["table","filters"]}},{name:"supabase_rpc",title:"Call database function",description:"Call a Postgres function via the Supabase REST RPC endpoint.",category:"supabase",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:["SUPABASE_URL",["SUPABASE_SERVICE_ROLE_KEY","SUPABASE_ANON_KEY"]],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"function_name",allowlist_default_allow:!1,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{function_name:{type:"string",description:"Postgres function name to call."},params:{type:"object",description:"Parameters passed as the request body."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["function_name"]}},{name:"supabase_sql",title:"Run SQL query",description:"Execute raw SQL via the madarx_exec_sql() Postgres function. Uses the service-role key and BYPASSES Row-Level Security. Always requires approval regardless of trust mode. Requires creating the madarx_exec_sql() function in your project.",category:"supabase",risk_level:"irreversible_external",approval_required:!0,approval_mode:"approval_required",required_env:["SUPABASE_URL",["SUPABASE_SERVICE_ROLE_KEY","SUPABASE_ANON_KEY"]],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:3600,max:5},input_schema:{type:"object",properties:{query:{type:"string",description:"SQL query to execute via madarx_exec_sql()."},params:{type:"object",description:"Optional named parameters for the query."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["query"]}},{name:"vercel_list_projects",title:"List Vercel projects",description:"List Vercel projects visible to the configured token.",category:"vercel",risk_level:"medium",required_env:["VERCEL_TOKEN"],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{team_id:{type:"string",description:"Optional Vercel team id."},limit:{type:"number",description:"Maximum projects."}}}},{name:"vercel_list_deployments",title:"List Vercel deployments",description:"List Vercel deployments, optionally scoped by project.",category:"vercel",risk_level:"medium",required_env:["VERCEL_TOKEN"],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{team_id:{type:"string",description:"Optional Vercel team id."},project_id:{type:"string",description:"Optional Vercel project id."},project_name:{type:"string",description:"Optional Vercel project name."},limit:{type:"number",description:"Maximum deployments."}}}},{name:"vercel_create_deployment",title:"Deploy to Vercel",description:"Stage a Vercel deployment request for owner approval. This does not deploy until approved.",category:"vercel",risk_level:"high",required_env:["VERCEL_TOKEN"],enabled_default:!1,approval_required:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:5},input_schema:{type:"object",properties:{summary:{type:"string",description:"Deployment purpose and requested target."}}}},{name:"email_send",title:"Send email",description:"Send a transactional email via Resend. Approval is required.",category:"email",risk_level:"irreversible_external",approval_required:!0,approval_mode:"approval_required",required_env:["RESEND_API_KEY"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"recipient_domain",allowlist_default_allow:!1,rate_limit:{window_seconds:3600,max:20},input_schema:{type:"object",properties:{from:{type:"string",description:"Sender address. Defaults to RESEND_FROM_EMAIL secret/env."},to:{type:"string",description:'Single recipient email address, e.g. "user@example.com".'},subject:{type:"string",description:"Email subject line."},text:{type:"string",description:"Plain-text email body. Either text or html is required."},html:{type:"string",description:"HTML email body. Either text or html is required."},reply_to:{type:"string",description:"Reply-to address."},recipient_domain:{type:"string",description:'Domain portion of the "to" address, e.g. "example.com". Must match the domain in "to" exactly — used by the allowlist gate.'},approval_id:{type:"string",description:"Approval request ID to consume for one-shot execution."}},required:["to","subject"]}},{name:"email_status_lookup",title:"Check email delivery",description:"Look up the delivery status of a previously-sent email.",category:"email",risk_level:"low",required_env:["RESEND_API_KEY"],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{email_id:{type:"string",description:"Resend email ID returned by email_send."}},required:["email_id"]}},{name:"gh_repo_read",title:"Read a GitHub repo",description:"Read metadata for a GitHub repository (name, visibility, default branch, stars, forks).",category:"github",risk_level:"low",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format, e.g. acme/api."}},required:["repo_full_name"]}},{name:"gh_repo_list",title:"List GitHub repos",description:"List GitHub repositories the token can access. Without `org`, lists across all affiliations (owned + collaborator + organization_member). Pass `org` to list a specific organization's repos you were granted access to.",category:"github",risk_level:"low",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{org:{type:"string",description:"List repos for this organization/owner (GET /orgs/{org}/repos). Use this to reach org repos you were granted access to."},affiliation:{type:"string",description:"Comma-separated: owner, collaborator, organization_member. Default lists all three. Ignored when `org` is set."},visibility:{type:"string",description:"Filter by visibility: all, public, private. Ignored when `org` is set."},type:{type:"string",description:"Without org: all|owner|member (mutually exclusive with affiliation). With org: all|public|private|forks|sources|member."},sort:{type:"string",description:"Sort by: created, updated, pushed, full_name."},per_page:{type:"number",description:"Results per page, 1-100. Default 30."},page:{type:"number",description:"Page number for pagination. Default 1."}}}},{name:"gh_issue_list",title:"List issues",description:"List issues in a GitHub repository with optional state and label filters.",category:"github",risk_level:"low",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},state:{type:"string",description:"Issue state: open, closed, all. Default open."},labels:{type:"string",description:"Comma-separated label names to filter by."},per_page:{type:"number",description:"Results per page, 1-100. Default 30."}},required:["repo_full_name"]}},{name:"gh_issue_create",title:"Create an issue",description:"Create an issue in an allowlisted GitHub repository.",category:"github",risk_level:"medium",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"repo_full_name",rate_limit:{window_seconds:3600,max:20},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},title:{type:"string",description:"Issue title."},body:{type:"string",description:"Issue body in Markdown."},labels:{type:"array",items:{type:"string"},description:"Labels to apply."},assignees:{type:"array",items:{type:"string"},description:"GitHub usernames to assign."}},required:["repo_full_name","title"]}},{name:"gh_issue_comment",title:"Comment on an issue",description:"Post a comment on a GitHub issue in an allowlisted repository.",category:"github",risk_level:"medium",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"repo_full_name",rate_limit:{window_seconds:3600,max:30},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},issue_number:{type:"number",description:"Issue number."},body:{type:"string",description:"Comment body in Markdown."}},required:["repo_full_name","issue_number","body"]}},{name:"gh_pr_list",title:"List pull requests",description:"List pull requests in a GitHub repository with optional filters.",category:"github",risk_level:"low",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},state:{type:"string",description:"PR state: open, closed, all. Default open."},head:{type:"string",description:"Filter by head branch (user:branch)."},base:{type:"string",description:"Filter by base branch name."},per_page:{type:"number",description:"Results per page, 1-100. Default 30."}},required:["repo_full_name"]}},{name:"gh_pr_create",title:"Open a pull request",description:"Open a pull request in an allowlisted GitHub repository.",category:"github",risk_level:"high",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"repo_full_name",rate_limit:{window_seconds:3600,max:10},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},title:{type:"string",description:"PR title."},head:{type:"string",description:"Head branch (source)."},base:{type:"string",description:"Base branch (target)."},body:{type:"string",description:"PR description in Markdown."},draft:{type:"boolean",description:"Open as a draft PR."}},required:["repo_full_name","title","head","base"]}},{name:"gh_pr_comment",title:"Comment on a pull request",description:"Post a comment on a GitHub pull request in an allowlisted repository.",category:"github",risk_level:"medium",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"repo_full_name",rate_limit:{window_seconds:3600,max:30},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},pr_number:{type:"number",description:"Pull request number."},body:{type:"string",description:"Comment body in Markdown."}},required:["repo_full_name","pr_number","body"]}},{name:"gh_pr_merge",title:"Merge a pull request",description:"Merge a pull request in an allowlisted GitHub repository. This action is irreversible once completed.",category:"github",risk_level:"irreversible_external",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"repo_full_name",rate_limit:{window_seconds:3600,max:5},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},pr_number:{type:"number",description:"Pull request number."},commit_title:{type:"string",description:"Custom commit title for squash merge."},commit_message:{type:"string",description:"Custom commit message for squash merge."},merge_method:{type:"string",description:"Merge method: merge, squash, rebase. Default squash."}},required:["repo_full_name","pr_number"]}},{name:"gh_actions_dispatch",title:"Run a GitHub workflow",description:"Trigger a workflow dispatch event in an allowlisted GitHub repository.",category:"github",risk_level:"high",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"repo_full_name",rate_limit:{window_seconds:3600,max:10},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},workflow_id:{type:"string",description:"Workflow filename or ID (e.g. deploy.yml)."},ref:{type:"string",description:"Branch or tag to run the workflow on."},inputs:{type:"object",description:"Optional workflow dispatch inputs."}},required:["repo_full_name","workflow_id","ref"]}},{name:"gh_release_create",title:"Publish a release",description:"Create a release in an allowlisted GitHub repository.",category:"github",risk_level:"high",required_env:["GITHUB_TOKEN"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"repo_full_name",rate_limit:{window_seconds:3600,max:5},input_schema:{type:"object",properties:{repo_full_name:{type:"string",description:"Repository in owner/repo format."},tag_name:{type:"string",description:"Git tag for the release."},target_commitish:{type:"string",description:"Commit SHA or branch to tag."},name:{type:"string",description:"Release title."},body:{type:"string",description:"Release notes in Markdown."},draft:{type:"boolean",description:"Create as a draft release."},prerelease:{type:"boolean",description:"Mark as a pre-release."}},required:["repo_full_name","tag_name"]}},{name:"flight_search",title:"Search flights",description:"Search flight offers and return curated price + itinerary data. Uses Amadeus when AMADEUS_CLIENT_ID and AMADEUS_CLIENT_SECRET are configured, otherwise falls back to a free, key-less Google Flights backend lookup.",category:"travel",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{origin:{type:"string",description:'Origin airport IATA code, e.g. "JFK".'},destination:{type:"string",description:'Destination airport IATA code, e.g. "LHR".'},departure_date:{type:"string",description:"Departure date YYYY-MM-DD."},return_date:{type:"string",description:"Optional return date YYYY-MM-DD for round-trip search."},adults:{type:"number",description:"Adult passengers 1-9. Default 1."},children:{type:"number",description:"Child passengers 0-8."},travel_class:{type:"string",description:"ECONOMY | PREMIUM_ECONOMY | BUSINESS | FIRST."},currency:{type:"string",description:"3-letter ISO currency code. Default USD."},non_stop:{type:"boolean",description:"Only return non-stop itineraries."},max_results:{type:"number",description:"Max offers 1-25. Default 5."}},required:["origin","destination","departure_date"]}},{name:"flight_status",title:"Check flight status",description:"Look up live or scheduled flight status via Aviationstack. Returns departure, arrival, delay, and live position.",category:"travel",risk_level:"low",required_env:["AVIATIONSTACK_API_KEY"],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{flight_iata:{type:"string",description:'Flight IATA code, e.g. "BA283".'},flight_icao:{type:"string",description:"Flight ICAO code."},airline_iata:{type:"string",description:'Filter by airline IATA, e.g. "BA".'},dep_iata:{type:"string",description:"Departure airport IATA."},arr_iata:{type:"string",description:"Arrival airport IATA."},flight_date:{type:"string",description:"Flight date YYYY-MM-DD."},limit:{type:"number",description:"Max results 1-100. Default 5."}}}},{name:"hotel_search",title:"Search hotels",description:"List hotels at a TripAdvisor location via Xotelo. No API key required. Returns hotel_keys you can pass to hotel_rates.",category:"travel",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{location_key:{type:"string",description:'TripAdvisor geo location key, e.g. "g60763" for New York City.'},offset:{type:"number",description:"Pagination offset. Default 0."},limit:{type:"number",description:"Results 1-30. Default 10."},sort:{type:"string",description:"popularity | price | rating."},currency:{type:"string",description:"3-letter ISO currency. Default USD."},hotel_class:{type:"string",description:'Filter by star class, e.g. "4,5".'}},required:["location_key"]}},{name:"hotel_rates",title:"Check hotel rates",description:"Get real-time hotel rates from Booking.com, Expedia, Hotels.com, Agoda, etc. via Xotelo. No API key required.",category:"travel",risk_level:"low",required_env:[],enabled_default:!0,allowlist_required:!1,allowlist_default_allow:!0,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{hotel_key:{type:"string",description:'TripAdvisor hotel key, e.g. "g60763-d224867". Obtain from hotel_search.'},chk_in:{type:"string",description:"Check-in date YYYY-MM-DD."},chk_out:{type:"string",description:"Check-out date YYYY-MM-DD (must be after chk_in)."},currency:{type:"string",description:"3-letter ISO currency. Default USD."},rooms:{type:"number",description:"Rooms 1-9. Default 1."},adults:{type:"number",description:"Adults 1-9. Default 2."}},required:["hotel_key","chk_in","chk_out"]}},{name:"gmail_messages_list",title:"List Gmail messages",description:"Read message metadata from the operator Gmail inbox.",category:"email",risk_level:"low",approval_mode:"auto",required_env:["GOOGLE_REFRESH_TOKEN"],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{max_results:{type:"number"},q:{type:"string"}}}},{name:"gmail_message_read",title:"Read a Gmail message",description:"Read one Gmail message for summarization or drafting.",category:"email",risk_level:"low",approval_mode:"auto",required_env:["GOOGLE_REFRESH_TOKEN"],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{message_id:{type:"string"}},required:["message_id"]}},{name:"gmail_thread_read",title:"Read a Gmail thread",description:"Read a Gmail thread for context.",category:"email",risk_level:"low",approval_mode:"auto",required_env:["GOOGLE_REFRESH_TOKEN"],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{thread_id:{type:"string"}},required:["thread_id"]}},{name:"calendar_events_list",title:"List calendar events",description:"Read upcoming Google Calendar events.",category:"calendar",risk_level:"low",approval_mode:"auto",required_env:["GOOGLE_REFRESH_TOKEN"],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{calendar_id:{type:"string"},time_min:{type:"string"},time_max:{type:"string"},max_results:{type:"number"}}}},{name:"calendar_event_read",title:"Read a calendar event",description:"Read one Google Calendar event.",category:"calendar",risk_level:"low",approval_mode:"auto",required_env:["GOOGLE_REFRESH_TOKEN"],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{event_id:{type:"string"},calendar_id:{type:"string"}},required:["event_id"]}},{name:"transcribe_audio",title:"Transcribe audio",description:"Transcribe a Disk audio file and save the transcript as a Disk artifact. Provider: openai (whisper, default), elevenlabs (Scribe), or local.",category:"local_machine",risk_level:"medium",approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:10},input_schema:{type:"object",properties:{file_id:{type:"string"},use_local:{type:"boolean"},provider:{type:"string",description:'Transcription provider: openai | elevenlabs | local. Defaults to TRANSCRIBE_DEFAULT_PROVIDER or "openai".'},language:{type:"string"}},required:["file_id"]}},{name:"voice_speak",title:"Speak text aloud",description:"Synthesize a short text reply to audio via OpenAI TTS (default) or ElevenLabs. Returns base64 audio; optionally saves to Disk.",category:"voice",risk_level:"low",approval_mode:"auto",required_env:[["OPENAI_API_KEY","ELEVENLABS_API_KEY"]],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:60},input_schema:{type:"object",properties:{text:{type:"string",description:"Text to synthesize. Up to 4000 chars."},provider:{type:"string",description:"Provider: openai (default) or elevenlabs."},voice:{type:"string",description:"Provider-specific voice id. OpenAI: alloy|echo|fable|onyx|nova|shimmer. ElevenLabs: voice id."},model:{type:"string"},format:{type:"string",description:"mp3 (default) or wav."},save_to_disk:{type:"boolean"},project_id:{type:"string"}},required:["text"]}},{name:"printing_press_install",title:"Install Printing Press sub-package",description:"Install the printing-press sub-package required to generate scoped CLIs. Always approval-gated.",category:"cli_generator",risk_level:"irreversible_external",approval_required:!0,approval_mode:"approval_required",enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:3600,max:5},input_schema:{type:"object",properties:{},required:[]}},{name:"printing_press_generate",title:"Generate a scoped CLI",description:"Generate a new scoped CLI from a starter pack, GitHub repo, or local source.",category:"cli_generator",risk_level:"irreversible_external",approval_required:!0,approval_mode:"approval_required",enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:3600,max:20},input_schema:{type:"object",properties:{slug:{type:"string",description:"Lowercase kebab-case CLI slug."},source:{type:"string",description:"starter-pack | github | local | spec"},source_url:{type:"string",description:"Required when source is not starter-pack."}},required:["slug"]}},{name:"printing_press_run",title:"Run an installed CLI",description:"Execute a previously-installed printing-press CLI with bounded args.",category:"cli_generator",risk_level:"high",approval_mode:"approval_required",enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"printing_press_cli",allowlist_default_allow:!1,rate_limit:{window_seconds:60,max:30},input_schema:{type:"object",properties:{slug:{type:"string",description:"CLI slug to run."},args:{type:"array",items:{type:"string"},description:"Bounded arg list (no shell metacharacters)."},printing_press_cli:{type:"string",description:"Slug used by the allowlist gate. Must equal `slug`."}},required:["slug"]}},{name:"create_workflow_definition",title:"Create workflow definition",description:'Create a new process workflow from a JSON spec. The spec is validated against lib/process/spec-validator.js. The new definition is published immediately at status="published" — cases can be started from it. Risk-gated by approval.',category:"workflow",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:20},input_schema:{type:"object",properties:{spec:{type:"object",description:"Full workflow spec JSON. Must include schema_version, slug, name, version, stages[]. First stage must be intake_form. See ai-docs/process-engine.md and the validator at lib/process/spec-validator.js for the full schema."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["spec"]}},{name:"update_workflow_definition",title:"Update workflow definition",description:"Update an existing process workflow at a given slug. Spec is re-validated. version must be bumped if the stage list changed structurally. In-flight cases keep their old definition_id; new cases use the new version.",category:"workflow",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:20},input_schema:{type:"object",properties:{slug:{type:"string",description:"Slug of the existing workflow to update."},spec:{type:"object",description:"Full workflow spec JSON. slug is forced to match the path slug."},approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:["slug","spec"]}},{name:"self_update",title:"Update madarX OS",description:"Update the madarX OS install to the latest published version (npm i -g madarx@latest). Irreversible-external: an agent calling this ALWAYS requires owner approval — it can never silently replace the running binary. A restart is required after a successful update.",category:"system",risk_level:"irreversible_external",required_env:[],enabled_default:!1,allowlist_required:!1,rate_limit:{window_seconds:86400,max:4},input_schema:{type:"object",properties:{approval_id:{type:"string",description:"Approval request ID for one-shot execution."}},required:[]}},{name:"printing_press_query",title:"Query an installed CLI SQLite mirror",description:"Run a single read-only SELECT against a CLI local SQLite mirror, if it exposes one.",category:"cli_generator",risk_level:"low",approval_mode:"auto",enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"printing_press_cli",allowlist_default_allow:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{slug:{type:"string",description:"CLI slug whose SQLite mirror to query."},sql:{type:"string",description:"Single SELECT statement. Multi-statement SQL is refused."},printing_press_cli:{type:"string",description:"Slug used by the allowlist gate. Must equal the slug."}},required:["slug","sql"]}},{name:"mines_project_create",title:"Create mine project",description:"Create a new mine project workspace and register it in the Mines module.",category:"mines",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:30},input_schema:{type:"object",properties:{name:{type:"string"},slug:{type:"string",description:'Lowercase kebab-case, e.g. "batamote"'},asset_stage:{type:"string",enum:["exploration","development","production","care_and_maintenance","unknown"]},commodity:{type:"string"},deposit_type:{type:"string"},approval_id:{type:"string"}},required:["name","slug"]}},{name:"mines_project_read",title:"Read mine project summary",description:"Read a mine project record including data completeness and document counts by category.",category:"mines",risk_level:"low",approval_mode:"auto",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{project_id:{type:"string"}},required:["project_id"]}},{name:"mines_catalog_import",title:"Import portfolio catalog",description:"Load a master project catalog XLSX into Portfolio and PortfolioEntry records.",category:"mines",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:10},input_schema:{type:"object",properties:{file_id:{type:"string",description:"Disk file ID of the XLSX catalog."},portfolio_name:{type:"string"},sheet_name:{type:"string",description:"Optional sheet override."},approval_id:{type:"string"}},required:["file_id","portfolio_name"]}},{name:"mines_data_import",title:"Bulk import mine data directory",description:"Walk a directory tree, auto-classify files by folder taxonomy, and enqueue each file for ingestion. Incremental and resumable.",category:"mines",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:5},input_schema:{type:"object",properties:{project_id:{type:"string"},directory_path:{type:"string"},resume:{type:"boolean",description:"Skip files already past queued status."},approval_id:{type:"string"}},required:["project_id","directory_path"]}},{name:"mines_document_extract",title:"Extract and embed document",description:"Parse a source document (PDF/DOCX/PPTX), OCR if scanned, chunk text, and embed chunks. Spanish-first.",category:"mines",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:20},input_schema:{type:"object",properties:{source_document_id:{type:"string"},force_ocr:{type:"boolean"},approval_id:{type:"string"}},required:["source_document_id"]}},{name:"mines_spatial_index",title:"Index spatial assets",description:"Read GIS/CAD file metadata (kind, CRS, bounding box) without rendering geometry.",category:"mines",risk_level:"low",approval_mode:"auto",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{project_id:{type:"string"},source_document_id:{type:"string",description:"Index a single already-catalogued file."}},required:["project_id"]}},{name:"mines_extract_facts",title:"Extract structured facts from documents (LLM)",description:"Read a project document's indexed chunks and extract structured, provenance-cited geology/economics facts into mines_extracted_facts. Every fact is validated to cite a real chunk + verbatim quote; uncited facts are rejected. Never declares a mineral resource the source did not. Feeds mines_report_generate and mines_valuation_run.",category:"mines",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:20},input_schema:{type:"object",properties:{project_id:{type:"string"},source_document_id:{type:"string",description:"Document to extract from. Defaults to the project's most-chunked document (its technical report)."},max_chunks:{type:"number",description:"Max chunks fed to the model. Default 48."},char_budget:{type:"number",description:"Max source characters per call. Default 32000."},approval_id:{type:"string"}},required:["project_id"]}},{name:"mines_assumption_validate",title:"Validate valuation assumptions",description:"Check completeness of data required for T1 or T2 valuation and return a gap list.",category:"mines",risk_level:"low",approval_mode:"auto",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{project_id:{type:"string"},target_tier:{type:"string",enum:["t1_in_situ","t2_dcf","auto"]}},required:["project_id"]}},{name:"mines_valuation_run",title:"Run tiered mine valuation",description:"Compute base/downside/upside valuation. Selects T1 (in-situ) or T2 (DCF) based on asset stage and data completeness. States tier and rationale.",category:"mines",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:10},input_schema:{type:"object",properties:{project_id:{type:"string"},commodity_prices_json:{type:"string",description:'JSON price override e.g. {"Au":2300,"Cu":4.2}. Defaults to latest mines_market_snapshots.'},in_situ_factor_override:{type:"number"},force_tier:{type:"string",enum:["t1_in_situ","t2_dcf"]},approval_id:{type:"string"}},required:["project_id"]}},{name:"mines_sensitivity_run",title:"Run valuation sensitivity analysis",description:"Compute sensitivity of valuation to key drivers (grade, price, recovery, in_situ_factor, discount_rate).",category:"mines",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:10},input_schema:{type:"object",properties:{scenario_id:{type:"string"},drivers:{type:"array",items:{type:"string"}},steps:{type:"number",description:"Steps per driver. Default 5."},approval_id:{type:"string"}},required:["scenario_id"]}},{name:"mines_market_snapshot",title:"Fetch commodity market data",description:"Retrieve current commodity prices from an approved market data provider.",category:"mines",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:["MINES_MARKET_API_KEY"],enabled_default:!1,allowlist_required:!0,allowlist_scope_key:"market_provider_host",allowlist_default_allow:!1,rate_limit:{window_seconds:60,max:60},input_schema:{type:"object",properties:{commodities:{type:"array",items:{type:"string"}},market_provider_host:{type:"string",description:'e.g. "metals-api.com". Must be in allowlist.'},approval_id:{type:"string"}},required:["market_provider_host"]}},{name:"mines_report_generate",title:"Generate mine project report",description:"Generate a cited, structured report artifact. External email send always requires separate irreversible_external approval.",category:"mines",risk_level:"high",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,rate_limit:{window_seconds:3600,max:5},input_schema:{type:"object",properties:{project_id:{type:"string"},report_kind:{type:"string",enum:["interpretation_memo","due_diligence_memo","data_quality_report","investor_presentation","pfs_readiness_report","valuation_report","due_diligence_questions","project_package","portfolio_screen"]},scenario_id:{type:"string",description:"Required for valuation_report."},space_id:{type:"string",description:"Optional dashboard space to publish into. Defaults to the project’s configured default space; the artifact is pinned there so it appears as a window on the dashboard board."},language:{type:"string",enum:["en","es"],description:'Default "en".'},narrative:{type:"object",description:"LLM-authored prose slots (all optional, each falls back to data-driven copy). For investor_presentation: hero_headline, hero_subhead (strings); opportunity (array of paragraph strings); findings_lead, upside_lead, risk_lead, the_ask (strings). For pfs_readiness_report: verdict, gap_intro, work_program, recommendation (strings). Numbers/figures are never taken from here — they always come from cited DB rows.",properties:{hero_headline:{type:"string"},hero_subhead:{type:"string"},opportunity:{type:"array",items:{type:"string"}},findings_lead:{type:"string"},upside_lead:{type:"string"},risk_lead:{type:"string"},the_ask:{type:"string"},verdict:{type:"string"},gap_intro:{type:"string"},work_program:{type:"string"},recommendation:{type:"string"}}},send_email:{type:"boolean"},recipient_email:{type:"string"},approval_id:{type:"string"}},required:["project_id","report_kind"]}},{name:"create_skill",title:"Author skill",description:"Author a declarative skill (SKILL.md + marketplace row) any agent can invoke. Instructions only — no code executes. Owner/admin authority required.",category:"authoring",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{spec:{type:"object",description:"{ slug, title, description?, markdown, invocation?, trigger_examples?[], category? }"},approval_id:{type:"string"}},required:["spec"]}},{name:"update_skill",title:"Update skill",description:"Update an existing authored skill by slug. Owner/admin authority required.",category:"authoring",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{slug:{type:"string"},spec:{type:"object"},approval_id:{type:"string"}},required:["slug","spec"]}},{name:"create_composite_tool",title:"Author composite tool",description:"Author a composite tool: a declarative recipe chaining EXISTING primitive tools + LLM steps. Inherits the MAX risk of its steps; every gate re-fires per sub-step. Owner/admin authority required.",category:"authoring",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{spec:{type:"object",description:'{ slug, title, description?, input_schema?, steps:[{kind:"tool_call"|"llm_synthesis"|"artifact_write", id, ...}] }'},approval_id:{type:"string"}},required:["spec"]}},{name:"update_composite_tool",title:"Update composite tool",description:"Update an existing composite tool by slug. Owner/admin authority required.",category:"authoring",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{slug:{type:"string"},spec:{type:"object"},approval_id:{type:"string"}},required:["slug","spec"]}},{name:"create_connector",title:"Author API connector",description:"Author a declarative REST API connector (Option D). Each endpoint becomes a callable <slug>.<endpoint> tool backed by the generic http_api_call executor. Manifest is inert data: https-only, secret-by-reference auth, host allowlist, per-endpoint risk ceiling. Owner/admin authority required. The owner supplies the API key once.",category:"authoring",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{manifest:{type:"object",description:"{ slug, base_url(https), allowed_hosts[], auth:{type,secret_ref|username_ref/password_ref,header?,prefix?,query_param?}, default_headers?, endpoints:{ name:{method,path,risk?,input_schema?} } }"},approval_id:{type:"string"}},required:["manifest"]}},{name:"update_connector",title:"Update API connector",description:"Update an existing API connector by slug. Owner/admin authority required.",category:"authoring",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{slug:{type:"string"},manifest:{type:"object"},approval_id:{type:"string"}},required:["slug","manifest"]}},{name:"propose_tool",title:"Propose new tool (code-gen)",description:"Option B escape hatch for non-REST integrations: generate an adapter scaffold + registry snippet + tests into a staging dir. The proposal is INERT — it is never callable until a human reviews, merges, and restarts. Writes files only; executes nothing.",category:"authoring",risk_level:"medium",approval_required:!0,approval_mode:"approval_required",required_env:[],enabled_default:!0,allowlist_required:!1,input_schema:{type:"object",properties:{slug:{type:"string",description:"snake_case tool name"},summary:{type:"string"},risk:{type:"string",enum:["low","medium","high","irreversible_external"]},approval_id:{type:"string"}},required:["slug"]}}],am={web_search:o.tE,web_fetch:o.dV,web_extract:o.IY,email_send:p.x,email_status_lookup:p.f,supabase_list_projects:q.NO,supabase_rest_select:q.TP,supabase_rest_insert:q.c3,supabase_rest_upsert:q.mD,supabase_rest_update:q.sX,supabase_rest_delete:q.oc,supabase_rpc:q.wm,supabase_sql:q.l8,vercel_list_projects:r.Q$,vercel_list_deployments:r.I6,vercel_create_deployment:r.vV,gh_repo_read:s.Sj,gh_repo_list:s.AU,gh_issue_list:s.jj,gh_issue_create:s.vj,gh_issue_comment:s.iP,gh_pr_list:s.gn,gh_pr_create:s.Ud,gh_pr_comment:s.J,gh_pr_merge:s.wt,gh_actions_dispatch:s.zI,gh_release_create:s.Bb,file_read:t.dd,directory_list:t.sv,file_search:t.X,file_write:t.sq,file_patch:t.vO,terminal_run:u.y,process_start:v.gy,process_poll:v.p3,process_kill:v.MU,flight_search:w.R5,flight_status:w.zP,hotel_search:w.FE,hotel_rates:w.Y$,gmail_messages_list:x.r_,gmail_message_read:x.cS,gmail_thread_read:x.vg,calendar_events_list:y.u,calendar_event_read:y.r,transcribe_audio:z.b,browser_harness_run:A.K,skill_bridge_run:B.eE,browser_open:D.D6,browser_act:D.Hz,browser_extract:D.aU,browser_screenshot:D.Jz,browser_navigate:C.M,browser_extract_structured:C.B,voice_speak:E.o,printing_press_install:F.gE,printing_press_generate:F.ID,printing_press_run:F.Cw,printing_press_query:F.VC,create_workflow_definition:G.h,update_workflow_definition:G.m,self_update:H.m,create_skill:I.S,update_skill:I.f,create_composite_tool:J.y$,update_composite_tool:J.le,create_connector:K.U$,update_connector:K.zc,propose_tool:L.B,http_api_call:M.p,composite_tool_run:N.n,mines_project_create:Q.m,mines_project_read:Q.I,mines_catalog_import:R.b,mines_data_import:S.I,mines_document_extract:T.f,mines_extract_facts:Z.$,mines_spatial_index:U.d,mines_assumption_validate:V.w,mines_valuation_run:W.R,mines_sensitivity_run:W.h,mines_market_snapshot:X.V,mines_report_generate:Y.Q},an={file_write:t.Z6,file_patch:t.mr,terminal_run:u.x,process_start:v.H7,process_kill:v.L7,browser_harness_run:A.r,skill_bridge_run:B.zE},ao=new Set;function _(a){try{if((0,j.r6)(a))return!0}catch{}return!!process.env[a]&&(ao.has(a)||(ao.add(a),console.warn(`[secrets] ${a} is being read from process.env as a fallback. Migrate it to the vault with: node scripts/migrate-env-to-secrets.mjs`)),!0)}function aa(a=[]){return a.filter(a=>Array.isArray(a)?!a.some(a=>_(a)):!_(a)).map(a=>Array.isArray(a)?a.join(" or "):a)}let ap=[{marker:"tool.repair.flight_search_enable_v1",tool_name:"flight_search",summary:"One-shot: enable flight_search on installs where the Amadeus→Google fallback shipped after the row was created."}];function ab(a,b){try{let c=JSON.parse(a||"[]");return Array.isArray(c)?c:b}catch{return b}}function ac(){let a=new Set,b=new Map;for(let c of al)a.add(c.name),b.set(c.name,c.risk_level||"medium");return{names:a,riskByName:b}}function ad({agent_id:a,tool_name:b,status:c,summary:d,meta:e={}}){a&&(0,f.Lf)().prepare(`
|
|
1041
1051
|
INSERT INTO audit_logs (id, at, type, summary, status, meta)
|
|
1042
1052
|
VALUES (?, ?, ?, ?, ?, ?)
|
|
1043
|
-
`).run((0,f.Si)("audit"),(0,f.kF)(),`agent.tool.${c}`,d,c,JSON.stringify({agent_id:a,tool_name:b,...e}))}function
|
|
1053
|
+
`).run((0,f.Si)("audit"),(0,f.kF)(),`agent.tool.${c}`,d,c,JSON.stringify({agent_id:a,tool_name:b,...e}))}function ae(a,b){if("irreversible_external"===a.risk_level)return!0;if("terminal_run"===a.name||"process_start"===a.name){let a=String(b?.command||"");if(!a)return!1;let c=Array.isArray(b?.args)?b.args.map(String):[];return"irreversible_external"===(0,i.IB)(a,c).risk}return!1}function af(a={}){let b={...a};return"string"==typeof b.content&&b.content.length>500&&(b.content=`[${b.content.length} chars]`),"string"==typeof b.new_string&&b.new_string.length>500&&(b.new_string=`[${b.new_string.length} chars]`),"approval_id"in b&&delete b.approval_id,b}let aq={create_workflow_definition:a=>({slug:a?.spec?.slug||null}),update_workflow_definition:a=>({slug:a?.slug||a?.spec?.slug||null,version:a?.spec?.version||null})};function ag(a,b={}){let c=aq[a],d=c?c(b):(()=>{let a={...b};return delete a.approval_id,a})();return(0,e.createHash)("sha256").update(`${a}|${function a(b){if(null===b||"object"!=typeof b)return JSON.stringify(b);if(Array.isArray(b))return`[${b.map(b=>a(b)).join(",")}]`;let c=Object.keys(b).sort();return`{${c.map(c=>`${JSON.stringify(c)}:${a(b[c])}`).join(",")}}`}(d)}`).digest("hex")}function ah({tool_name:a,status:b,summary:c,meta:d={}}){(0,f.Lf)().prepare(`
|
|
1044
1054
|
INSERT INTO audit_logs (id, at, type, summary, status, meta)
|
|
1045
1055
|
VALUES (?, ?, ?, ?, ?, ?)
|
|
1046
|
-
`).run((0,f.Si)("audit"),(0,f.kF)(),`main_agent.tool.${b}`,c,b,JSON.stringify({tool_name:a,...d}))}async function
|
|
1056
|
+
`).run((0,f.Si)("audit"),(0,f.kF)(),`main_agent.tool.${b}`,c,b,JSON.stringify({tool_name:a,...d}))}async function ai(a,b={},c={}){let d=(!function(){let a=(0,f.Lf)(),b=(0,f.kF)();for(let c of al){let d=a.prepare("SELECT name, enabled, required_env FROM tool_installations WHERE name=?").get(c.name),e={name:c.name,title:c.title,description:c.description,category:c.category,enabled:+!!c.enabled_default,risk_level:c.risk_level,required_env:JSON.stringify(c.required_env||[])};if(!d){a.prepare(`
|
|
1047
1057
|
INSERT INTO tool_installations
|
|
1048
1058
|
(name, title, description, category, enabled, risk_level, required_env, created_at, updated_at)
|
|
1049
1059
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
1050
|
-
`).run(e.name,e.title,e.description,e.category,e.enabled,e.risk_level,e.required_env,b,b);continue}let g=
|
|
1060
|
+
`).run(e.name,e.title,e.description,e.category,e.enabled,e.risk_level,e.required_env,b,b);continue}let g=ab(d.required_env,[]),h=c.required_env||[],i=d.enabled,j=!1;g.length>0&&0===h.length&&0===Number(d.enabled)&&!0===c.enabled_default&&(i=1,j=!0),a.prepare(`
|
|
1051
1061
|
UPDATE tool_installations
|
|
1052
1062
|
SET title=?, description=?, category=?, risk_level=?, required_env=?, enabled=?, updated_at=?
|
|
1053
1063
|
WHERE name=?
|
|
1054
1064
|
`).run(e.title,e.description,e.category,e.risk_level,e.required_env,i,b,e.name),j&&a.prepare(`
|
|
1055
1065
|
INSERT INTO audit_logs (id, at, type, summary, status, meta)
|
|
1056
1066
|
VALUES (?, ?, ?, ?, ?, ?)
|
|
1057
|
-
`).run((0,f.Si)("audit"),b,"tool.auto_enabled_after_creds_removed",`Auto-enabled ${c.name} after credential requirements were removed.`,"success",JSON.stringify({tool_name:c.name,previous_required_env:g,new_required_env:h}))}let c=(0,f.Lf)(),d=(0,f.kF)();for(let a of
|
|
1067
|
+
`).run((0,f.Si)("audit"),b,"tool.auto_enabled_after_creds_removed",`Auto-enabled ${c.name} after credential requirements were removed.`,"success",JSON.stringify({tool_name:c.name,previous_required_env:g,new_required_env:h}))}let c=(0,f.Lf)(),d=(0,f.kF)();for(let a of ap){if(c.prepare("SELECT id FROM audit_logs WHERE type=? LIMIT 1").get(a.marker))continue;let b=al.find(b=>b.name===a.tool_name);if(!b||0!==(b.required_env||[]).length||!0!==b.enabled_default)continue;let e=c.prepare("SELECT name, enabled FROM tool_installations WHERE name=?").get(a.tool_name);if(e){if(0!==Number(e.enabled)){c.prepare(`
|
|
1058
1068
|
INSERT INTO audit_logs (id, at, type, summary, status, meta)
|
|
1059
1069
|
VALUES (?, ?, ?, ?, ?, ?)
|
|
1060
1070
|
`).run((0,f.Si)("audit"),d,a.marker,`${a.summary} (no-op: already enabled)`,"success",JSON.stringify({tool_name:a.tool_name,action:"noop"}));continue}c.prepare("UPDATE tool_installations SET enabled=1, updated_at=? WHERE name=?").run(d,a.tool_name),c.prepare(`
|
|
1061
1071
|
INSERT INTO audit_logs (id, at, type, summary, status, meta)
|
|
1062
1072
|
VALUES (?, ?, ?, ?, ?, ?)
|
|
1063
|
-
`).run((0,f.Si)("audit"),d,a.marker,a.summary,"success",JSON.stringify({tool_name:a.tool_name,action:"enabled"}))}}}(),[...(0,f.Lf)().prepare("SELECT * FROM tool_installations ORDER BY category ASC, name ASC").all().map(a=>{let b=ak.find(b=>b.name===a.name),c=aa(a.required_env,b?.required_env||[]),d=_(c);return{kind:"tool",name:a.name,title:a.title,description:a.description,category:a.category,enabled:!!a.enabled,available:0===d.length,missing_env:d,required_env:function(a=[]){return a.flatMap(a=>Array.isArray(a)?a:[a])}(c),risk_level:a.risk_level,approval_required:!!b?.approval_required,approval_mode:b?.approval_mode||(b?.approval_required?"approval_required":"auto"),allowlist_required:!!b?.allowlist_required,allowlist_scope_key:b?.allowlist_scope_key??null,allowlist_default_allow:!!b?.allowlist_default_allow,connector:function(a){var b=a;let c=ak.filter(a=>a.category===b);if(!c.length)return null;let d=[...new Set(c.flatMap(a=>_(a.required_env||[])))];return{type:b,status:d.length?"missing_env":"ready",missing_env:d}}(a.category),input_schema:b?.input_schema||{type:"object",properties:{}}}}),...function(){let a=[],b=[];try{a=(0,N.n_)()}catch{a=[]}try{b=(0,O.R$)()}catch{b=[]}return[...a,...b].map(a=>({kind:"tool",connector:null,...a}))}()]).find(b=>b.name===a);if(!d)throw Error(`Unknown tool: ${a}`);if(!d.enabled)throw Error(`Tool disabled: ${a}`);if(!d.available)throw Error(`Tool unavailable; missing environment: ${d.missing_env.join(", ")}`);let e=am[a];e&&e(b);{let b=c?.acting_on_behalf_of_user_id||c?.user_id||null,d=new Set(["system","whatsapp-service"]);if(b&&!d.has(b)){let d="personal-org";try{let a=(0,f.Lf)(),b=c.agent_id?a.prepare("SELECT project_id FROM agents WHERE id = ?").get(c.agent_id):null;if(b?.project_id){let c=a.prepare("SELECT org_id FROM projects WHERE id = ?").get(b.project_id);c?.org_id&&(d=c.org_id)}}catch{}try{await (0,m.aS)({user_id:b,org_id:d},d)}catch(e){if(e&&(403===e.status||"membership_revoked"===e.error)){if(c?.heartbeat_task_id)try{(0,f.Lf)().prepare("UPDATE heartbeat_tasks SET status = 'approval_required', updated_at = ? WHERE id = ?").run((0,f.kF)(),c.heartbeat_task_id)}catch(a){console.error("[registry] Gate 0: failed to pause heartbeat task:",a.message)}try{(0,n.pQ)({user_id:b,org_id:d,action:"auth.membership.revoked_detected",status:"denied",summary:`Tool ${a} blocked — membership revoked for user ${b}`,action_target_type:"tool",action_target_id:a,meta:{tool_name:a,agent_id:c.agent_id||null,org_id:d}})}catch{}return{ok:!1,status:"approval_required",approval_request_id:null,reason:"membership_revoked"}}throw e}}}let j=!1,o=null;if(!c.agent_id&&ad(d,b)){let c=`main_agent_tool_irreversible:${a}`,d=af(a,b);if(!(0,g.v)(b.approval_id,{action_type:c,matches:a=>a?.input_signature===d})){let e=(0,g.D6)({action_type:c,risk:"irreversible_external",summary:`Allow the main agent to run irreversible external tool ${a}`,payload:{tool_name:a,input:ae(b),input_signature:d,...function(a,b={}){return"supabase_sql"===a?{warning:"This call uses the service-role key and BYPASSES Row-Level Security. Only approve if you have reviewed the exact SQL.",query:String(b.query||"")}:{}}(a,b)},requested_by:"main_agent"});return ag({tool_name:a,status:"irreversible_external_approval_required",summary:`Main agent irreversible-external approval required for ${a}`,meta:{approval_request_id:e.id}}),{ok:!1,status:"approval_required",approval_request_id:e.id,reason:`Tool ${a} is irreversible and always requires owner approval`}}j=!0,o=b.approval_id||null,ag({tool_name:a,status:"irreversible_external_approved",summary:`Main agent irreversible-external approval consumed for ${a}`})}if(!c.agent_id&&!j&&!c.owner_trusted&&function(a,b){if(a.approval_required)return!0;if("terminal_run"===a.name||"process_start"===a.name){let a=String(b?.command||"");if(!a)return!1;let c=Array.isArray(b?.args)?b.args.map(String):[];return(0,i.IB)(a,c).approval_required}return!1}(d,b)){let c=function(){let a=(0,h.zj)("tool_approval_global_mode",ai);return aj.has(a)?a:ai}();if("auto"===c)j=!0,ag({tool_name:a,status:"auto_approved",summary:`Main agent trust mode auto-approved ${a}`});else{let c=`main_agent_tool:${a}`,e=af(a,b);if(!(0,g.v)(b.approval_id,{action_type:c,matches:a=>a?.input_signature===e})){let f=(0,g.D6)({action_type:c,risk:d.risk_level||"medium",summary:`Allow the main agent to run ${a}`,payload:{tool_name:a,input:ae(b),input_signature:e},requested_by:"main_agent"});return ag({tool_name:a,status:"approval_required",summary:`Main agent approval required for ${a}`,meta:{approval_request_id:f.id}}),{ok:!1,status:"approval_required",approval_request_id:f.id,reason:`Main agent tool ${a} requires owner approval`}}j=!0,o=b.approval_id||null,ag({tool_name:a,status:"approved",summary:`Main agent approval consumed for ${a}`})}}let p=function(a,b){var c;if(!a)return{ok:!0,mode:"legacy"};let d=(c=b.name,a&&c&&(0,f.Lf)().prepare("SELECT * FROM agent_tool_permissions WHERE agent_id = ? AND tool_name = ?").get(a,c)||null);if(!d)throw ac({agent_id:a,tool_name:b.name,status:"denied",summary:`Denied ${b.name}: missing agent permission`}),Error(`Agent ${a} is not permitted to use ${b.name}`);if("disabled"===d.mode)throw ac({agent_id:a,tool_name:b.name,status:"denied",summary:`Denied ${b.name}: permission disabled`}),Error(`Tool disabled for agent ${a}: ${b.name}`);return{ok:!0,mode:d.mode}}(c.agent_id,d),q=ad(d,b)&&("browser_harness_run"===a||!!d.source);if(c.agent_id&&q&&!(0,g.v)(b.approval_id,{action_type:`agent_tool_irreversible:${a}`})){let d=(0,g.D6)({action_type:`agent_tool_irreversible:${a}`,risk:"irreversible_external",summary:`Allow ${c.agent_id} to run irreversible external tool ${a}`,payload:{agent_id:c.agent_id,tool_name:a,input:ae(b)},requested_by:c.agent_id});return ac({agent_id:c.agent_id,tool_name:a,status:"irreversible_external_approval_required",summary:`Irreversible-external approval required for ${a}`,meta:{approval_request_id:d.id}}),{ok:!1,status:"approval_required",approval_request_id:d.id,reason:`Tool ${a} is irreversible and always requires owner approval`}}if(c.agent_id&&"approval_required"===p.mode&&!(0,g.v)(b.approval_id,{action_type:`agent_tool:${a}`})){let e=(0,g.D6)({action_type:`agent_tool:${a}`,risk:d.risk_level||"medium",summary:`Allow ${c.agent_id} to run ${a}`,payload:{agent_id:c.agent_id,tool_name:a,input:ae(b)},requested_by:c.agent_id});return ac({agent_id:c.agent_id,tool_name:a,status:"approval_required",summary:`Approval required for ${a}`,meta:{approval_request_id:e.id}}),{ok:!1,status:"approval_required",approval_request_id:e.id,reason:`Agent tool permission requires approval for ${a}`}}if(d.allowlist_required&&d.allowlist_scope_key){let e;if("recipient_domain"===d.allowlist_scope_key){let a=String(b?.to||""),c=a.lastIndexOf("@");e=c>=0?a.slice(c+1).toLowerCase():a.toLowerCase()}else e=String(b?.[d.allowlist_scope_key]??"");let f=!!d.allowlist_default_allow,g=(0,k.Bs)(a,{scope_key:d.allowlist_scope_key,scope_value:e},{default_allow:f});if(!g.ok){let b=c.agent_id?ac:ag,f=c.agent_id?{agent_id:c.agent_id,tool_name:a,status:"allowlist_violation",summary:`Allowlist violation for ${a}: ${d.allowlist_scope_key}=${e}`,meta:{scope_key:d.allowlist_scope_key,scope_value:e}}:{tool_name:a,status:"allowlist_violation",summary:`Allowlist violation for ${a}: ${d.allowlist_scope_key}=${e}`,meta:{scope_key:d.allowlist_scope_key,scope_value:e}};return b(f),{ok:!1,status:"allowlist_violation",missing_entry:g.missing_entry}}}let r=ak.find(b=>b.name===a),s=(0,l.ab)(a,c.agent_id,r);if(!s.ok){let b="rate_limited",d=`Rate limit exceeded for ${a}: ${s.current_count}/${s.max} in window`;return c.agent_id?ac({agent_id:c.agent_id,tool_name:a,status:b,summary:d,meta:{current_count:s.current_count,max:s.max,retry_after_seconds:s.retry_after_seconds}}):ag({tool_name:a,status:b,summary:d,meta:{current_count:s.current_count,max:s.max,retry_after_seconds:s.retry_after_seconds}}),{ok:!1,status:"rate_limited",retry_after_seconds:s.retry_after_seconds,current_count:s.current_count,max:s.max}}let t=al[a],u=b;if(t||d.source?.kind!=="connector"?t||d.source?.kind!=="composite"||(t=al.composite_tool_run,u={...b,__composite_slug:d.source.composite_slug}):(t=al.http_api_call,u={...b,__connector_slug:d.source.connector_slug,__endpoint:d.source.endpoint}),!t)throw Error(`No adapter registered for tool: ${a}`);let v=await t(u,{owner_trusted:j||!!c.owner_trusted,agent_id:c.agent_id,project_id:c.project_id,org_id:c.org_id,actor_role:c.actor_role||c.role,engine:c.engine,acting_on_behalf_of_user_id:c.acting_on_behalf_of_user_id||c.user_id||null}),w=v?.status==="error"||v?.ok===!1,x=new Set(["spec_invalid","spec_required","slug_required","slug_in_use","version_bump_required","not_found","insufficient_role"]);w&&x.has(v?.error)&&o&&(0,g.t6)(o),w||(0,l.Cu)(a,c.agent_id,r);let y=w?{error:v?.error,errors:v?.errors,message:v?.message}:{};return c.agent_id?ac({agent_id:c.agent_id,tool_name:a,status:v?.status||"complete",summary:`Ran ${a}`,meta:y}):ag({tool_name:a,status:v?.status||"complete",summary:`Main agent ran ${a}`,meta:y}),v}ak.length,d()}catch(a){d(a)}})},68691:(a,b,c)=>{"use strict";c.d(b,{Z:()=>k});let d=[{name:"La Caridad",status:"Producing",dist:"~25 km SE",tonnes:"2,100 Mt",cu:"0.21% Cu",note:"9,737 Mlb contained Cu"},{name:"Cananea / Buenavista",status:"Producing",dist:"Same belt",tonnes:"2,413 Mt",cu:"0.44% Cu",note:"one of the largest Cu mines on earth"},{name:"La Colorada breccia",status:"Historic",dist:"Same belt",tonnes:"7 Mt",cu:"6.0% Cu",note:"high-grade breccia analogue"}];function e(a){return String(a??"").replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function f(a,b=0){return null!=a&&Number.isFinite(Number(a))?new Intl.NumberFormat("en-US",{maximumFractionDigits:b}).format(Number(a)):"—"}function g(a){if(null==a||!Number.isFinite(Number(a)))return"—";let b=Number(a);return b>=1e9?`$${(b/1e9).toFixed(2)}B`:b>=1e6?`$${Math.round(b/1e6)}M`:b>=1e3?`$${Math.round(b/1e3)}k`:`$${Math.round(b)}`}function h(a){try{return JSON.parse(a)||{}}catch{return{}}}function i(a,b){let c=b.scen[0]?.r?.in_situ_value_usd,d=b.scen[b.scen.length-1]?.r?.in_situ_value_usd;return{hero_headline:"District-scale copper optionality, next to two world-class mines.",hero_subhead:`${a.name} sits in the Cananea–La Caridad porphyry belt of Sonora, Mexico — one of the most productive copper districts on earth. Four drill-confirmed targets, one untested high-priority blanket, and no resource yet declared: the value today is exploration optionality.`,opportunity:[`The case for ${a.name} is location and evidence. It lies in the same belt — and within ~25 km — of La Caridad and Cananea, two of the largest copper mines in the world. The same geology that built them runs through this ground.`,`Teck drilled it. Their 2011–2012 program returned copper across multiple targets and walked away mid-story, leaving the highest-priority target (a chalcocite blanket at El Choclo NW) untested. That is the optionality a partner is buying.`,`No mineral resource has been declared, and we do not pretend one exists. What follows is the evidence on the ground and a clearly-labelled conceptual scenario — not a valuation opinion.`],findings_lead:"The asset is not a concept on a map. There is drilled copper, surface geochemistry, and a geological model anchored to producing neighbours.",upside_lead:"Four defined targets, each a distinct shot on goal. El Choclo NW — a leached-capping blanket target — was proposed for drilling but never tested before Teck withdrew.",risk_lead:"We lead with the risk because credibility is the point. This is exploration: no declared resource, grade continuity at depth unproven. The mitigation is a focused, sequenced work program.",the_ask:`${a.name}'s operator (Grupo Factor) is seeking an incoming partner under NDA. The near-term path: re-interpret the geophysics, vector with clay-alteration (SWIR) core analysis, then drill the untested El Choclo NW blanket — and, if it confirms, define a maiden resource.`,value_range_label:null!=c&&null!=d?`${g(c)} – ${g(d)}`:"—"}}function j(a){return`<span class="kick"><svg class="kick-mark" width="22" height="8" viewBox="0 0 22 8" aria-hidden="true"><path d="M0 4h14" stroke="currentColor" stroke-width="1.4"/><circle cx="19" cy="4" r="2.4" fill="currentColor"/></svg>${e(a)}</span>`}function k(a,b,c={}){let l=function(a,b){let c=b.id,d=(b,...c)=>a.prepare(b).all(...c),e=(b,...c)=>a.prepare(b).get(...c),f=d("SELECT fact_type, value_text, page_or_location FROM mines_extracted_facts WHERE project_id = ?",c),g=new Map;for(let a of f)g.has(a.fact_type)||g.set(a.fact_type,a);let i=d("SELECT scenario, assumptions_json, result_json FROM mines_valuation_scenarios WHERE project_id = ? AND scenario LIKE 'operator_%'",c).map(a=>({key:a.scenario.replace("operator_",""),a:h(a.assumptions_json),r:h(a.result_json)})),j=["low","base","high"];i.sort((a,b)=>j.indexOf(a.key)-j.indexOf(b.key));let k=d(`SELECT sample_id, width_m, cu_pct, ag_ppm, other_grades_json
|
|
1073
|
+
`).run((0,f.Si)("audit"),d,a.marker,a.summary,"success",JSON.stringify({tool_name:a.tool_name,action:"enabled"}))}}}(),[...(0,f.Lf)().prepare("SELECT * FROM tool_installations ORDER BY category ASC, name ASC").all().map(a=>{let b=al.find(b=>b.name===a.name),c=ab(a.required_env,b?.required_env||[]),d=aa(c);return{kind:"tool",name:a.name,title:a.title,description:a.description,category:a.category,enabled:!!a.enabled,available:0===d.length,missing_env:d,required_env:function(a=[]){return a.flatMap(a=>Array.isArray(a)?a:[a])}(c),risk_level:a.risk_level,approval_required:!!b?.approval_required,approval_mode:b?.approval_mode||(b?.approval_required?"approval_required":"auto"),allowlist_required:!!b?.allowlist_required,allowlist_scope_key:b?.allowlist_scope_key??null,allowlist_default_allow:!!b?.allowlist_default_allow,connector:function(a){var b=a;let c=al.filter(a=>a.category===b);if(!c.length)return null;let d=[...new Set(c.flatMap(a=>aa(a.required_env||[])))];return{type:b,status:d.length?"missing_env":"ready",missing_env:d}}(a.category),input_schema:b?.input_schema||{type:"object",properties:{}}}}),...function(){let a=[],b=[];try{a=(0,O.n_)()}catch{a=[]}try{b=(0,P.R$)()}catch{b=[]}return[...a,...b].map(a=>({kind:"tool",connector:null,...a}))}()]).find(b=>b.name===a);if(!d)throw Error(`Unknown tool: ${a}`);if(!d.enabled)throw Error(`Tool disabled: ${a}`);if(!d.available)throw Error(`Tool unavailable; missing environment: ${d.missing_env.join(", ")}`);let e=an[a];e&&e(b);{let b=c?.acting_on_behalf_of_user_id||c?.user_id||null,d=new Set(["system","whatsapp-service"]);if(b&&!d.has(b)){let d="personal-org";try{let a=(0,f.Lf)(),b=c.agent_id?a.prepare("SELECT project_id FROM agents WHERE id = ?").get(c.agent_id):null;if(b?.project_id){let c=a.prepare("SELECT org_id FROM projects WHERE id = ?").get(b.project_id);c?.org_id&&(d=c.org_id)}}catch{}try{await (0,m.aS)({user_id:b,org_id:d},d)}catch(e){if(e&&(403===e.status||"membership_revoked"===e.error)){if(c?.heartbeat_task_id)try{(0,f.Lf)().prepare("UPDATE heartbeat_tasks SET status = 'approval_required', updated_at = ? WHERE id = ?").run((0,f.kF)(),c.heartbeat_task_id)}catch(a){console.error("[registry] Gate 0: failed to pause heartbeat task:",a.message)}try{(0,n.pQ)({user_id:b,org_id:d,action:"auth.membership.revoked_detected",status:"denied",summary:`Tool ${a} blocked — membership revoked for user ${b}`,action_target_type:"tool",action_target_id:a,meta:{tool_name:a,agent_id:c.agent_id||null,org_id:d}})}catch{}return{ok:!1,status:"approval_required",approval_request_id:null,reason:"membership_revoked"}}throw e}}}let j=!1,o=null;if(!c.agent_id&&ae(d,b)){let c=`main_agent_tool_irreversible:${a}`,d=ag(a,b);if(!(0,g.v)(b.approval_id,{action_type:c,matches:a=>a?.input_signature===d})){let e=(0,g.D6)({action_type:c,risk:"irreversible_external",summary:`Allow the main agent to run irreversible external tool ${a}`,payload:{tool_name:a,input:af(b),input_signature:d,...function(a,b={}){return"supabase_sql"===a?{warning:"This call uses the service-role key and BYPASSES Row-Level Security. Only approve if you have reviewed the exact SQL.",query:String(b.query||"")}:{}}(a,b)},requested_by:"main_agent"});return ah({tool_name:a,status:"irreversible_external_approval_required",summary:`Main agent irreversible-external approval required for ${a}`,meta:{approval_request_id:e.id}}),{ok:!1,status:"approval_required",approval_request_id:e.id,reason:`Tool ${a} is irreversible and always requires owner approval`}}j=!0,o=b.approval_id||null,ah({tool_name:a,status:"irreversible_external_approved",summary:`Main agent irreversible-external approval consumed for ${a}`})}if(!c.agent_id&&!j&&!c.owner_trusted&&function(a,b){if(a.approval_required)return!0;if("terminal_run"===a.name||"process_start"===a.name){let a=String(b?.command||"");if(!a)return!1;let c=Array.isArray(b?.args)?b.args.map(String):[];return(0,i.IB)(a,c).approval_required}return!1}(d,b)){let c=function(){let a=(0,h.zj)("tool_approval_global_mode",aj);return ak.has(a)?a:aj}();if("auto"===c)j=!0,ah({tool_name:a,status:"auto_approved",summary:`Main agent trust mode auto-approved ${a}`});else{let c=`main_agent_tool:${a}`,e=ag(a,b);if(!(0,g.v)(b.approval_id,{action_type:c,matches:a=>a?.input_signature===e})){let f=(0,g.D6)({action_type:c,risk:d.risk_level||"medium",summary:`Allow the main agent to run ${a}`,payload:{tool_name:a,input:af(b),input_signature:e},requested_by:"main_agent"});return ah({tool_name:a,status:"approval_required",summary:`Main agent approval required for ${a}`,meta:{approval_request_id:f.id}}),{ok:!1,status:"approval_required",approval_request_id:f.id,reason:`Main agent tool ${a} requires owner approval`}}j=!0,o=b.approval_id||null,ah({tool_name:a,status:"approved",summary:`Main agent approval consumed for ${a}`})}}let p=function(a,b){var c;if(!a)return{ok:!0,mode:"legacy"};let d=(c=b.name,a&&c&&(0,f.Lf)().prepare("SELECT * FROM agent_tool_permissions WHERE agent_id = ? AND tool_name = ?").get(a,c)||null);if(!d)throw ad({agent_id:a,tool_name:b.name,status:"denied",summary:`Denied ${b.name}: missing agent permission`}),Error(`Agent ${a} is not permitted to use ${b.name}`);if("disabled"===d.mode)throw ad({agent_id:a,tool_name:b.name,status:"denied",summary:`Denied ${b.name}: permission disabled`}),Error(`Tool disabled for agent ${a}: ${b.name}`);return{ok:!0,mode:d.mode}}(c.agent_id,d),q=ae(d,b)&&("browser_harness_run"===a||"skill_bridge_run"===a||!!d.source);if(c.agent_id&&q&&!(0,g.v)(b.approval_id,{action_type:`agent_tool_irreversible:${a}`})){let d=(0,g.D6)({action_type:`agent_tool_irreversible:${a}`,risk:"irreversible_external",summary:`Allow ${c.agent_id} to run irreversible external tool ${a}`,payload:{agent_id:c.agent_id,tool_name:a,input:af(b)},requested_by:c.agent_id});return ad({agent_id:c.agent_id,tool_name:a,status:"irreversible_external_approval_required",summary:`Irreversible-external approval required for ${a}`,meta:{approval_request_id:d.id}}),{ok:!1,status:"approval_required",approval_request_id:d.id,reason:`Tool ${a} is irreversible and always requires owner approval`}}if(c.agent_id&&"approval_required"===p.mode&&!(0,g.v)(b.approval_id,{action_type:`agent_tool:${a}`})){let e=(0,g.D6)({action_type:`agent_tool:${a}`,risk:d.risk_level||"medium",summary:`Allow ${c.agent_id} to run ${a}`,payload:{agent_id:c.agent_id,tool_name:a,input:af(b)},requested_by:c.agent_id});return ad({agent_id:c.agent_id,tool_name:a,status:"approval_required",summary:`Approval required for ${a}`,meta:{approval_request_id:e.id}}),{ok:!1,status:"approval_required",approval_request_id:e.id,reason:`Agent tool permission requires approval for ${a}`}}if(d.allowlist_required&&d.allowlist_scope_key){let e;if("recipient_domain"===d.allowlist_scope_key){let a=String(b?.to||""),c=a.lastIndexOf("@");e=c>=0?a.slice(c+1).toLowerCase():a.toLowerCase()}else e=String(b?.[d.allowlist_scope_key]??"");let f=!!d.allowlist_default_allow,g=(0,k.Bs)(a,{scope_key:d.allowlist_scope_key,scope_value:e},{default_allow:f});if(!g.ok){let b=c.agent_id?ad:ah,f=c.agent_id?{agent_id:c.agent_id,tool_name:a,status:"allowlist_violation",summary:`Allowlist violation for ${a}: ${d.allowlist_scope_key}=${e}`,meta:{scope_key:d.allowlist_scope_key,scope_value:e}}:{tool_name:a,status:"allowlist_violation",summary:`Allowlist violation for ${a}: ${d.allowlist_scope_key}=${e}`,meta:{scope_key:d.allowlist_scope_key,scope_value:e}};return b(f),{ok:!1,status:"allowlist_violation",missing_entry:g.missing_entry}}}let r=al.find(b=>b.name===a),s=(0,l.ab)(a,c.agent_id,r);if(!s.ok){let b="rate_limited",d=`Rate limit exceeded for ${a}: ${s.current_count}/${s.max} in window`;return c.agent_id?ad({agent_id:c.agent_id,tool_name:a,status:b,summary:d,meta:{current_count:s.current_count,max:s.max,retry_after_seconds:s.retry_after_seconds}}):ah({tool_name:a,status:b,summary:d,meta:{current_count:s.current_count,max:s.max,retry_after_seconds:s.retry_after_seconds}}),{ok:!1,status:"rate_limited",retry_after_seconds:s.retry_after_seconds,current_count:s.current_count,max:s.max}}let t=am[a],u=b;if(t||d.source?.kind!=="connector"?t||d.source?.kind!=="composite"||(t=am.composite_tool_run,u={...b,__composite_slug:d.source.composite_slug}):(t=am.http_api_call,u={...b,__connector_slug:d.source.connector_slug,__endpoint:d.source.endpoint}),!t)throw Error(`No adapter registered for tool: ${a}`);let v=await t(u,{owner_trusted:j||!!c.owner_trusted,agent_id:c.agent_id,project_id:c.project_id,org_id:c.org_id,actor_role:c.actor_role||c.role,engine:c.engine,acting_on_behalf_of_user_id:c.acting_on_behalf_of_user_id||c.user_id||null}),w=v?.status==="error"||v?.ok===!1,x=new Set(["spec_invalid","spec_required","slug_required","slug_in_use","version_bump_required","not_found","insufficient_role"]);w&&x.has(v?.error)&&o&&(0,g.t6)(o),w||(0,l.Cu)(a,c.agent_id,r);let y=w?{error:v?.error,errors:v?.errors,message:v?.message}:{};return c.agent_id?ad({agent_id:c.agent_id,tool_name:a,status:v?.status||"complete",summary:`Ran ${a}`,meta:y}):ah({tool_name:a,status:v?.status||"complete",summary:`Main agent ran ${a}`,meta:y}),v}al.length,d()}catch(a){d(a)}})},68691:(a,b,c)=>{"use strict";c.d(b,{Z:()=>k});let d=[{name:"La Caridad",status:"Producing",dist:"~25 km SE",tonnes:"2,100 Mt",cu:"0.21% Cu",note:"9,737 Mlb contained Cu"},{name:"Cananea / Buenavista",status:"Producing",dist:"Same belt",tonnes:"2,413 Mt",cu:"0.44% Cu",note:"one of the largest Cu mines on earth"},{name:"La Colorada breccia",status:"Historic",dist:"Same belt",tonnes:"7 Mt",cu:"6.0% Cu",note:"high-grade breccia analogue"}];function e(a){return String(a??"").replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function f(a,b=0){return null!=a&&Number.isFinite(Number(a))?new Intl.NumberFormat("en-US",{maximumFractionDigits:b}).format(Number(a)):"—"}function g(a){if(null==a||!Number.isFinite(Number(a)))return"—";let b=Number(a);return b>=1e9?`$${(b/1e9).toFixed(2)}B`:b>=1e6?`$${Math.round(b/1e6)}M`:b>=1e3?`$${Math.round(b/1e3)}k`:`$${Math.round(b)}`}function h(a){try{return JSON.parse(a)||{}}catch{return{}}}function i(a,b){let c=b.scen[0]?.r?.in_situ_value_usd,d=b.scen[b.scen.length-1]?.r?.in_situ_value_usd;return{hero_headline:"District-scale copper optionality, next to two world-class mines.",hero_subhead:`${a.name} sits in the Cananea–La Caridad porphyry belt of Sonora, Mexico — one of the most productive copper districts on earth. Four drill-confirmed targets, one untested high-priority blanket, and no resource yet declared: the value today is exploration optionality.`,opportunity:[`The case for ${a.name} is location and evidence. It lies in the same belt — and within ~25 km — of La Caridad and Cananea, two of the largest copper mines in the world. The same geology that built them runs through this ground.`,`Teck drilled it. Their 2011–2012 program returned copper across multiple targets and walked away mid-story, leaving the highest-priority target (a chalcocite blanket at El Choclo NW) untested. That is the optionality a partner is buying.`,`No mineral resource has been declared, and we do not pretend one exists. What follows is the evidence on the ground and a clearly-labelled conceptual scenario — not a valuation opinion.`],findings_lead:"The asset is not a concept on a map. There is drilled copper, surface geochemistry, and a geological model anchored to producing neighbours.",upside_lead:"Four defined targets, each a distinct shot on goal. El Choclo NW — a leached-capping blanket target — was proposed for drilling but never tested before Teck withdrew.",risk_lead:"We lead with the risk because credibility is the point. This is exploration: no declared resource, grade continuity at depth unproven. The mitigation is a focused, sequenced work program.",the_ask:`${a.name}'s operator (Grupo Factor) is seeking an incoming partner under NDA. The near-term path: re-interpret the geophysics, vector with clay-alteration (SWIR) core analysis, then drill the untested El Choclo NW blanket — and, if it confirms, define a maiden resource.`,value_range_label:null!=c&&null!=d?`${g(c)} – ${g(d)}`:"—"}}function j(a){return`<span class="kick"><svg class="kick-mark" width="22" height="8" viewBox="0 0 22 8" aria-hidden="true"><path d="M0 4h14" stroke="currentColor" stroke-width="1.4"/><circle cx="19" cy="4" r="2.4" fill="currentColor"/></svg>${e(a)}</span>`}function k(a,b,c={}){let l=function(a,b){let c=b.id,d=(b,...c)=>a.prepare(b).all(...c),e=(b,...c)=>a.prepare(b).get(...c),f=d("SELECT fact_type, value_text, page_or_location FROM mines_extracted_facts WHERE project_id = ?",c),g=new Map;for(let a of f)g.has(a.fact_type)||g.set(a.fact_type,a);let i=d("SELECT scenario, assumptions_json, result_json FROM mines_valuation_scenarios WHERE project_id = ? AND scenario LIKE 'operator_%'",c).map(a=>({key:a.scenario.replace("operator_",""),a:h(a.assumptions_json),r:h(a.result_json)})),j=["low","base","high"];i.sort((a,b)=>j.indexOf(a.key)-j.indexOf(b.key));let k=d(`SELECT sample_id, width_m, cu_pct, ag_ppm, other_grades_json
|
|
1064
1074
|
FROM mines_assay_samples WHERE project_id = ? AND sample_type = 'drill_core'
|
|
1065
1075
|
ORDER BY (cu_pct * width_m) DESC LIMIT 5`,c),l=e(`SELECT COUNT(*) n, AVG(cu_pct) avg_cu, MAX(cu_pct) max_cu, AVG(ag_ppm) avg_ag
|
|
1066
1076
|
FROM mines_assay_samples WHERE project_id = ? AND sample_type = 'trench_channel'`,c),m=e("SELECT COUNT(*) n, SUM(total_depth_m) m FROM mines_drill_holes WHERE project_id = ? AND extracted_by_agent_id = ?",c,"mines-geo-analyst"),n=f.filter(a=>a.fact_type.startsWith("target_")).map(a=>({name:a.fact_type.replace("target_","").replace(/_/g," "),text:a.value_text})),o=a=>e("SELECT price_usd, source FROM mines_market_snapshots WHERE lower(commodity)=lower(?) ORDER BY fetched_at DESC LIMIT 1",a);return{factBy:g,scen:i,intercepts:k,trench:l,drill:m,targets:n,priceCu:o("Cu"),priceAg:o("Ag"),base:i.find(a=>"base"===a.key)||i[0]||null}}(a,b),m={...i(b,l),...c||{}};m.value_range_label=i(b,l).value_range_label;let n=[function(a,b,c){let d=[a.deposit_type||"Porphyry copper (\xb1Ag)",`${a.asset_stage||"exploration"} stage`,`${a.state_province||"Sonora"}, ${a.country||"Mexico"}`].map(a=>`<span class="chip">${e(a)}</span>`).join("");return`
|
|
@@ -1286,7 +1296,7 @@ ${b.join("\n")}
|
|
|
1286
1296
|
}`}(c)].join("\n"),k="";for(let d=0;d<=2;d+=1){let h,m=0===d?e:`${e}
|
|
1287
1297
|
|
|
1288
1298
|
YOUR PREVIOUS RESPONSE WAS REJECTED: ${k}
|
|
1289
|
-
Return ONLY corrected JSON in a \`\`\`json fence that matches the schema. No other text.`;try{h=await l({engine:a,model:b,systemPrompt:j,userMessage:m,max_tokens:f},i)}catch(a){k=`engine error: ${a?.message||String(a)}`;continue}let n=function(a){let b=String(a||"");if(!b.trim())return null;let c=b.match(/```json\s*([\s\S]*?)```/i)||b.match(/```\s*([\s\S]*?)```/),d=c?c[1]:null;if(!d){let a=b.indexOf("{"),c=b.lastIndexOf("}");a>=0&&c>a&&(d=b.slice(a,c+1))}if(!d)return null;try{let a=JSON.parse(d.trim());return a&&"object"==typeof a?a:null}catch{return null}}(h);if(!n){k="no parseable JSON object found in the response";continue}let{ok:o,errors:p}=(0,g.S)(n,c);if(!o){k=`schema validation failed: ${p.join("; ")}`;continue}return n}throw Error(`authorJson(${h}): ${a} failed to produce valid JSON after 3 attempts. Last error: ${k}`)}async function l({engine:a,model:b,systemPrompt:c,userMessage:d,max_tokens:e},f){return"ollama"===a?f.runOllama({model:b,systemPrompt:c,userMessage:d,maxTokens:e}):"codex"===a?f.runCodex({systemPrompt:c,userMessage:d}):f.runClaudeCode({model:b,systemPrompt:c,userMessage:d})}[e,f]=h.then?(await h)():h,d()}catch(a){d(a)}})},69942:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextURL",{enumerable:!0,get:function(){return k}});let d=c(71136),e=c(7757),f=c(57100),g=c(38526),h=/(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)/;function i(a,b){return new URL(String(a).replace(h,"localhost"),b&&String(b).replace(h,"localhost"))}let j=Symbol("NextURLInternal");class k{constructor(a,b,c){let d,e;"object"==typeof b&&"pathname"in b||"string"==typeof b?(d=b,e=c||{}):e=c||b||{},this[j]={url:i(a,d??e.base),options:e,basePath:""},this.analyze()}analyze(){var a,b,c,e,h;let i=(0,g.getNextPathnameInfo)(this[j].url.pathname,{nextConfig:this[j].options.nextConfig,parseData:!0,i18nProvider:this[j].options.i18nProvider}),k=(0,f.getHostname)(this[j].url,this[j].options.headers);this[j].domainLocale=this[j].options.i18nProvider?this[j].options.i18nProvider.detectDomainLocale(k):(0,d.detectDomainLocale)(null==(b=this[j].options.nextConfig)||null==(a=b.i18n)?void 0:a.domains,k);let l=(null==(c=this[j].domainLocale)?void 0:c.defaultLocale)||(null==(h=this[j].options.nextConfig)||null==(e=h.i18n)?void 0:e.defaultLocale);this[j].url.pathname=i.pathname,this[j].defaultLocale=l,this[j].basePath=i.basePath??"",this[j].buildId=i.buildId,this[j].locale=i.locale??l,this[j].trailingSlash=i.trailingSlash}formatPathname(){return(0,e.formatNextPathnameInfo)({basePath:this[j].basePath,buildId:this[j].buildId,defaultLocale:this[j].options.forceLocale?void 0:this[j].defaultLocale,locale:this[j].locale,pathname:this[j].url.pathname,trailingSlash:this[j].trailingSlash})}formatSearch(){return this[j].url.search}get buildId(){return this[j].buildId}set buildId(a){this[j].buildId=a}get locale(){return this[j].locale??""}set locale(a){var b,c;if(!this[j].locale||!(null==(c=this[j].options.nextConfig)||null==(b=c.i18n)?void 0:b.locales.includes(a)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${a}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[j].locale=a}get defaultLocale(){return this[j].defaultLocale}get domainLocale(){return this[j].domainLocale}get searchParams(){return this[j].url.searchParams}get host(){return this[j].url.host}set host(a){this[j].url.host=a}get hostname(){return this[j].url.hostname}set hostname(a){this[j].url.hostname=a}get port(){return this[j].url.port}set port(a){this[j].url.port=a}get protocol(){return this[j].url.protocol}set protocol(a){this[j].url.protocol=a}get href(){let a=this.formatPathname(),b=this.formatSearch();return`${this.protocol}//${this.host}${a}${b}${this.hash}`}set href(a){this[j].url=i(a),this.analyze()}get origin(){return this[j].url.origin}get pathname(){return this[j].url.pathname}set pathname(a){this[j].url.pathname=a}get hash(){return this[j].url.hash}set hash(a){this[j].url.hash=a}get search(){return this[j].url.search}set search(a){this[j].url.search=a}get password(){return this[j].url.password}set password(a){this[j].url.password=a}get username(){return this[j].url.username}set username(a){this[j].url.username=a}get basePath(){return this[j].basePath}set basePath(a){this[j].basePath=a.startsWith("/")?a:`/${a}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new k(String(this),this[j].options)}}},70761:(a,b,c)=>{"use strict";c.d(b,{yt:()=>av});var d={};c.r(d),c.d(d,{attentionMarkers:()=>as,contentInitial:()=>am,disable:()=>at,document:()=>al,flow:()=>ao,flowInitial:()=>an,insideSpan:()=>ar,string:()=>ap,text:()=>aq});let e={AElig:"\xc6",AMP:"&",Aacute:"\xc1",Abreve:"Ă",Acirc:"\xc2",Acy:"А",Afr:"\uD835\uDD04",Agrave:"\xc0",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"\uD835\uDD38",ApplyFunction:"",Aring:"\xc5",Ascr:"\uD835\uDC9C",Assign:"≔",Atilde:"\xc3",Auml:"\xc4",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"\uD835\uDD05",Bopf:"\uD835\uDD39",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COPY:"\xa9",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedil:"\xc7",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"\xb8",CenterDot:"\xb7",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"\uD835\uDC9E",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"\uD835\uDD07",DiacriticalAcute:"\xb4",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"\uD835\uDD3B",Dot:"\xa8",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"\xa8",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"\uD835\uDC9F",Dstrok:"Đ",ENG:"Ŋ",ETH:"\xd0",Eacute:"\xc9",Ecaron:"Ě",Ecirc:"\xca",Ecy:"Э",Edot:"Ė",Efr:"\uD835\uDD08",Egrave:"\xc8",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"\uD835\uDD3C",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Euml:"\xcb",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"\uD835\uDD09",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"\uD835\uDD3D",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"\uD835\uDD0A",Gg:"⋙",Gopf:"\uD835\uDD3E",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"\uD835\uDCA2",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"\xcd",Icirc:"\xce",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrave:"\xcc",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"",InvisibleTimes:"",Iogon:"Į",Iopf:"\uD835\uDD40",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"\xcf",Jcirc:"Ĵ",Jcy:"Й",Jfr:"\uD835\uDD0D",Jopf:"\uD835\uDD41",Jscr:"\uD835\uDCA5",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"\uD835\uDD0E",Kopf:"\uD835\uDD42",Kscr:"\uD835\uDCA6",LJcy:"Љ",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"\uD835\uDD0F",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"\uD835\uDD43",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"\uD835\uDD10",MinusPlus:"∓",Mopf:"\uD835\uDD44",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"",NegativeThickSpace:"",NegativeThinSpace:"",NegativeVeryThinSpace:"",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"\uD835\uDD11",NoBreak:"",NonBreakingSpace:"\xa0",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"\uD835\uDCA9",Ntilde:"\xd1",Nu:"Ν",OElig:"Œ",Oacute:"\xd3",Ocirc:"\xd4",Ocy:"О",Odblac:"Ő",Ofr:"\uD835\uDD12",Ograve:"\xd2",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"\uD835\uDD46",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"\uD835\uDCAA",Oslash:"\xd8",Otilde:"\xd5",Otimes:"⨷",Ouml:"\xd6",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"\uD835\uDD13",Phi:"Φ",Pi:"Π",PlusMinus:"\xb1",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"\uD835\uDCAB",Psi:"Ψ",QUOT:'"',Qfr:"\uD835\uDD14",Qopf:"ℚ",Qscr:"\uD835\uDCAC",RBarr:"⤐",REG:"\xae",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"\uD835\uDD16",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"\uD835\uDD4A",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"\uD835\uDCAE",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THORN:"\xde",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:" ",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"\uD835\uDD17",Therefore:"∴",Theta:"Θ",ThickSpace:" ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"\uD835\uDD4B",TripleDot:"⃛",Tscr:"\uD835\uDCAF",Tstrok:"Ŧ",Uacute:"\xda",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"\xdb",Ucy:"У",Udblac:"Ű",Ufr:"\uD835\uDD18",Ugrave:"\xd9",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"\uD835\uDD4C",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"\uD835\uDCB0",Utilde:"Ũ",Uuml:"\xdc",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"\uD835\uDD19",Vopf:"\uD835\uDD4D",Vscr:"\uD835\uDCB1",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"\uD835\uDD1A",Wopf:"\uD835\uDD4E",Wscr:"\uD835\uDCB2",Xfr:"\uD835\uDD1B",Xi:"Ξ",Xopf:"\uD835\uDD4F",Xscr:"\uD835\uDCB3",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"\xdd",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"\uD835\uDD1C",Yopf:"\uD835\uDD50",Yscr:"\uD835\uDCB4",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"\uD835\uDCB5",aacute:"\xe1",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acirc:"\xe2",acute:"\xb4",acy:"а",aelig:"\xe6",af:"",afr:"\uD835\uDD1E",agrave:"\xe0",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"\xc5",angzarr:"⍼",aogon:"ą",aopf:"\uD835\uDD52",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",aring:"\xe5",ascr:"\uD835\uDCB6",ast:"*",asymp:"≈",asympeq:"≍",atilde:"\xe3",auml:"\xe4",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"\uD835\uDD1F",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"\uD835\uDD53",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvbar:"\xa6",bscr:"\uD835\uDCB7",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedil:"\xe7",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedil:"\xb8",cemptyv:"⦲",cent:"\xa2",centerdot:"\xb7",cfr:"\uD835\uDD20",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"\xae",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"\uD835\uDD54",coprod:"∐",copy:"\xa9",copysr:"℗",crarr:"↵",cross:"✗",cscr:"\uD835\uDCB8",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"\xa4",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",deg:"\xb0",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"\uD835\uDD21",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"\xa8",digamma:"ϝ",disin:"⋲",div:"\xf7",divide:"\xf7",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"\uD835\uDD55",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"\uD835\uDCB9",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacute:"\xe9",easter:"⩮",ecaron:"ě",ecir:"≖",ecirc:"\xea",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"\uD835\uDD22",eg:"⪚",egrave:"\xe8",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"\uD835\uDD56",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",eth:"\xf0",euml:"\xeb",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"\uD835\uDD23",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"\uD835\uDD57",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"\xbd",frac13:"⅓",frac14:"\xbc",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"\xbe",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"\uD835\uDCBB",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"\uD835\uDD24",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"\uD835\uDD58",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"\xbd",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"\uD835\uDD25",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"\uD835\uDD59",horbar:"―",hscr:"\uD835\uDCBD",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacute:"\xed",ic:"",icirc:"\xee",icy:"и",iecy:"е",iexcl:"\xa1",iff:"⇔",ifr:"\uD835\uDD26",igrave:"\xec",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"\uD835\uDD5A",iota:"ι",iprod:"⨼",iquest:"\xbf",iscr:"\uD835\uDCBE",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"",itilde:"ĩ",iukcy:"і",iuml:"\xef",jcirc:"ĵ",jcy:"й",jfr:"\uD835\uDD27",jmath:"ȷ",jopf:"\uD835\uDD5B",jscr:"\uD835\uDCBF",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"\uD835\uDD28",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"\uD835\uDD5C",kscr:"\uD835\uDCC0",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laquo:"\xab",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"\uD835\uDD29",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"\uD835\uDD5D",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"",lrtri:"⊿",lsaquo:"‹",lscr:"\uD835\uDCC1",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"\xaf",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"\uD835\uDD2A",mho:"℧",micro:"\xb5",mid:"∣",midast:"*",midcir:"⫰",middot:"\xb7",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"\uD835\uDD5E",mp:"∓",mscr:"\uD835\uDCC2",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:"\xa0",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"\uD835\uDD2B",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"\uD835\uDD5F",not:"\xac",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"\uD835\uDCC3",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"\xf1",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacute:"\xf3",oast:"⊛",ocir:"⊚",ocirc:"\xf4",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"\uD835\uDD2C",ogon:"˛",ograve:"\xf2",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"\uD835\uDD60",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"\xaa",ordm:"\xba",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslash:"\xf8",osol:"⊘",otilde:"\xf5",otimes:"⊗",otimesas:"⨶",ouml:"\xf6",ovbar:"⌽",par:"∥",para:"\xb6",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"\uD835\uDD2D",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusmn:"\xb1",plussim:"⨦",plustwo:"⨧",pm:"\xb1",pointint:"⨕",popf:"\uD835\uDD61",pound:"\xa3",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"\uD835\uDCC5",psi:"ψ",puncsp:" ",qfr:"\uD835\uDD2E",qint:"⨌",qopf:"\uD835\uDD62",qprime:"⁗",qscr:"\uD835\uDCC6",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"\xbb",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"\xae",rfisht:"⥽",rfloor:"⌋",rfr:"\uD835\uDD2F",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"\uD835\uDD63",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"\uD835\uDCC7",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sect:"\xa7",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"\uD835\uDD30",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",shy:"\xad",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"\uD835\uDD64",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"\uD835\uDCC8",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"\xaf",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",sup:"⊃",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"\xdf",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"\uD835\uDD31",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thorn:"\xfe",tilde:"˜",times:"\xd7",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"\uD835\uDD65",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"\uD835\uDCC9",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacute:"\xfa",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucirc:"\xfb",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"\uD835\uDD32",ugrave:"\xf9",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uml:"\xa8",uogon:"ų",uopf:"\uD835\uDD66",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"\uD835\uDCCA",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"\xfc",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"\uD835\uDD33",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"\uD835\uDD67",vprop:"∝",vrtri:"⊳",vscr:"\uD835\uDCCB",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"\uD835\uDD34",wopf:"\uD835\uDD68",wp:"℘",wr:"≀",wreath:"≀",wscr:"\uD835\uDCCC",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"\uD835\uDD35",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"\uD835\uDD69",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"\uD835\uDCCD",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"\xfd",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"\xa5",yfr:"\uD835\uDD36",yicy:"ї",yopf:"\uD835\uDD6A",yscr:"\uD835\uDCCE",yucy:"ю",yuml:"\xff",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"\uD835\uDD37",zhcy:"ж",zigrarr:"⇝",zopf:"\uD835\uDD6B",zscr:"\uD835\uDCCF",zwj:"",zwnj:""},f={}.hasOwnProperty;function g(a){return!!f.call(e,a)&&e[a]}var h=c(87301),i=c(74467),j=c(60951),k=c(56534),l=c(13633);let m={}.hasOwnProperty,n=/^(https?|ircs?|mailto|xmpp)$/i,o=/^https?$/i;var p=c(40623),q=c(8512);let r={tokenize:function(a){let b,c=a.attempt(this.parser.constructs.contentInitial,function(b){return null===b?void a.consume(b):(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),(0,p.N)(a,c,"linePrefix"))},function(c){return a.enter("paragraph"),function c(d){let e=a.enter("chunkText",{contentType:"text",previous:b});return b&&(b.next=e),b=e,function b(d){if(null===d){a.exit("chunkText"),a.exit("paragraph"),a.consume(d);return}return(0,q.HP)(d)?(a.consume(d),a.exit("chunkText"),c):(a.consume(d),b)}(d)}(c)});return c}},s={tokenize:function(a){let b,c,d,e=this,f=[],g=0;return i;function i(b){if(g<f.length){let c=f[g];return e.containerState=c[1],a.attempt(c[0].continuation,j,k)(b)}return k(b)}function j(a){if(g++,e.containerState._closeFlow){let c;e.containerState._closeFlow=void 0,b&&u();let d=e.events.length,f=d;for(;f--;)if("exit"===e.events[f][0]&&"chunkFlow"===e.events[f][1].type){c=e.events[f][1].end;break}s(g);let i=d;for(;i<e.events.length;)e.events[i][1].end={...c},i++;return(0,h.m)(e.events,f+1,0,e.events.slice(d)),e.events.length=i,k(a)}return i(a)}function k(c){if(g===f.length){if(!b)return n(c);if(b.currentConstruct&&b.currentConstruct.concrete)return p(c);e.interrupt=!!(b.currentConstruct&&!b._gfmTableDynamicInterruptHack)}return e.containerState={},a.check(t,l,m)(c)}function l(a){return b&&u(),s(g),n(a)}function m(a){return e.parser.lazy[e.now().line]=g!==f.length,d=e.now().offset,p(a)}function n(b){return e.containerState={},a.attempt(t,o,p)(b)}function o(a){return g++,f.push([e.currentConstruct,e.containerState]),n(a)}function p(d){if(null===d){b&&u(),s(0),a.consume(d);return}return b=b||e.parser.flow(e.now()),a.enter("chunkFlow",{_tokenizer:b,contentType:"flow",previous:c}),function b(c){if(null===c){r(a.exit("chunkFlow"),!0),s(0),a.consume(c);return}return(0,q.HP)(c)?(a.consume(c),r(a.exit("chunkFlow")),g=0,e.interrupt=void 0,i):(a.consume(c),b)}(d)}function r(a,f){let i=e.sliceStream(a);if(f&&i.push(null),a.previous=c,c&&(c.next=a),c=a,b.defineSkip(a.start),b.write(i),e.parser.lazy[a.start.line]){let a,c,f=b.events.length;for(;f--;)if(b.events[f][1].start.offset<d&&(!b.events[f][1].end||b.events[f][1].end.offset>d))return;let i=e.events.length,j=i;for(;j--;)if("exit"===e.events[j][0]&&"chunkFlow"===e.events[j][1].type){if(a){c=e.events[j][1].end;break}a=!0}for(s(g),f=i;f<e.events.length;)e.events[f][1].end={...c},f++;(0,h.m)(e.events,j+1,0,e.events.slice(i)),e.events.length=f}}function s(b){let c=f.length;for(;c-- >b;){let b=f[c];e.containerState=b[1],b[0].exit.call(e,a)}f.length=b}function u(){b.write([null]),c=void 0,b=void 0,e.containerState._closeFlow=void 0}}},t={tokenize:function(a,b,c){return(0,p.N)(a,a.attempt(this.parser.constructs.document,b,c),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};var u=c(15675);class v{constructor(a){this.left=a?[...a]:[],this.right=[]}get(a){if(a<0||a>=this.left.length+this.right.length)throw RangeError("Cannot access index `"+a+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return a<this.left.length?this.left[a]:this.right[this.right.length-a+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(a,b){let c=null==b?1/0:b;return c<this.left.length?this.left.slice(a,c):a>this.left.length?this.right.slice(this.right.length-c+this.left.length,this.right.length-a+this.left.length).reverse():this.left.slice(a).concat(this.right.slice(this.right.length-c+this.left.length).reverse())}splice(a,b,c){this.setCursor(Math.trunc(a));let d=this.right.splice(this.right.length-(b||0),1/0);return c&&w(this.left,c),d.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(a){this.setCursor(1/0),this.left.push(a)}pushMany(a){this.setCursor(1/0),w(this.left,a)}unshift(a){this.setCursor(0),this.right.push(a)}unshiftMany(a){this.setCursor(0),w(this.right,a.reverse())}setCursor(a){if(a!==this.left.length&&(!(a>this.left.length)||0!==this.right.length)&&(!(a<0)||0!==this.left.length))if(a<this.left.length){let b=this.left.splice(a,1/0);w(this.right,b.reverse())}else{let b=this.right.splice(this.left.length+this.right.length-a,1/0);w(this.left,b.reverse())}}}function w(a,b){let c=0;if(b.length<1e4)a.push(...b);else for(;c<b.length;)a.push(...b.slice(c,c+1e4)),c+=1e4}function x(a){let b,c,d,e,f,g,i,j={},k=-1,l=new v(a);for(;++k<l.length;){for(;k in j;)k=j[k];if(b=l.get(k),k&&"chunkFlow"===b[1].type&&"listItemPrefix"===l.get(k-1)[1].type&&((d=0)<(g=b[1]._tokenizer.events).length&&"lineEndingBlank"===g[d][1].type&&(d+=2),d<g.length&&"content"===g[d][1].type))for(;++d<g.length&&"content"!==g[d][1].type;)"chunkText"===g[d][1].type&&(g[d][1]._isInFirstContentOfListItem=!0,d++);if("enter"===b[0])b[1].contentType&&(Object.assign(j,function(a,b){let c,d,e=a.get(b)[1],f=a.get(b)[2],g=b-1,h=[],i=e._tokenizer;!i&&(i=f.parser[e.contentType](e.start),e._contentTypeTextTrailing&&(i._contentTypeTextTrailing=!0));let j=i.events,k=[],l={},m=-1,n=e,o=0,p=0,q=[0];for(;n;){for(;a.get(++g)[1]!==n;);h.push(g),!n._tokenizer&&(c=f.sliceStream(n),n.next||c.push(null),d&&i.defineSkip(n.start),n._isInFirstContentOfListItem&&(i._gfmTasklistFirstContentOfListItem=!0),i.write(c),n._isInFirstContentOfListItem&&(i._gfmTasklistFirstContentOfListItem=void 0)),d=n,n=n.next}for(n=e;++m<j.length;)"exit"===j[m][0]&&"enter"===j[m-1][0]&&j[m][1].type===j[m-1][1].type&&j[m][1].start.line!==j[m][1].end.line&&(p=m+1,q.push(p),n._tokenizer=void 0,n.previous=void 0,n=n.next);for(i.events=[],n?(n._tokenizer=void 0,n.previous=void 0):q.pop(),m=q.length;m--;){let b=j.slice(q[m],q[m+1]),c=h.pop();k.push([c,c+b.length-1]),a.splice(c,2,b)}for(k.reverse(),m=-1;++m<k.length;)l[o+k[m][0]]=o+k[m][1],o+=k[m][1]-k[m][0]-1;return l}(l,k)),k=j[k],i=!0);else if(b[1]._container){for(d=k,c=void 0;d--;)if("lineEnding"===(e=l.get(d))[1].type||"lineEndingBlank"===e[1].type)"enter"===e[0]&&(c&&(l.get(c)[1].type="lineEndingBlank"),e[1].type="lineEnding",c=d);else if("linePrefix"===e[1].type||"listItemIndent"===e[1].type);else break;c&&(b[1].end={...l.get(c)[1].start},(f=l.slice(c,k)).unshift(b),l.splice(c,k-c+1,f))}}return(0,h.m)(a,0,1/0,l.slice(0)),!i}let y={resolve:function(a){return x(a),a},tokenize:function(a,b){let c;return function(b){return a.enter("content"),c=a.enter("chunkContent",{contentType:"content"}),d(b)};function d(b){return null===b?e(b):(0,q.HP)(b)?a.check(z,f,e)(b):(a.consume(b),d)}function e(c){return a.exit("chunkContent"),a.exit("content"),b(c)}function f(b){return a.consume(b),a.exit("chunkContent"),c.next=a.enter("chunkContent",{contentType:"content",previous:c}),c=c.next,d}}},z={partial:!0,tokenize:function(a,b,c){let d=this;return function(b){return a.exit("chunkContent"),a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),(0,p.N)(a,e,"linePrefix")};function e(e){if(null===e||(0,q.HP)(e))return c(e);let f=d.events[d.events.length-1];return!d.parser.constructs.disable.null.includes("codeIndented")&&f&&"linePrefix"===f[1].type&&f[2].sliceSerialize(f[1],!0).length>=4?b(e):a.interrupt(d.parser.constructs.flow,c,b)(e)}}},A={tokenize:function(a){let b=this,c=a.attempt(u.B,function(d){return null===d?void a.consume(d):(a.enter("lineEndingBlank"),a.consume(d),a.exit("lineEndingBlank"),b.currentConstruct=void 0,c)},a.attempt(this.parser.constructs.flowInitial,d,(0,p.N)(a,a.attempt(this.parser.constructs.flow,d,a.attempt(y,d)),"linePrefix")));return c;function d(d){return null===d?void a.consume(d):(a.enter("lineEnding"),a.consume(d),a.exit("lineEnding"),b.currentConstruct=void 0,c)}}},B={resolveAll:F()},C=E("string"),D=E("text");function E(a){return{resolveAll:F("text"===a?G:void 0),tokenize:function(b){let c=this,d=this.parser.constructs[a],e=b.attempt(d,f,g);return f;function f(a){return i(a)?e(a):g(a)}function g(a){return null===a?void b.consume(a):(b.enter("data"),b.consume(a),h)}function h(a){return i(a)?(b.exit("data"),e(a)):(b.consume(a),h)}function i(a){if(null===a)return!0;let b=d[a],e=-1;if(b)for(;++e<b.length;){let a=b[e];if(!a.previous||a.previous.call(c,c.previous))return!0}return!1}}}}function F(a){return function(b,c){let d,e=-1;for(;++e<=b.length;)void 0===d?b[e]&&"data"===b[e][1].type&&(d=e,e++):b[e]&&"data"===b[e][1].type||(e!==d+2&&(b[d][1].end=b[e-1][1].end,b.splice(d+2,e-d-2),e=d+2),d=void 0);return a?a(b,c):b}}function G(a,b){let c=0;for(;++c<=a.length;)if((c===a.length||"lineEnding"===a[c][1].type)&&"data"===a[c-1][1].type){let d,e=a[c-1][1],f=b.sliceStream(e),g=f.length,h=-1,i=0;for(;g--;){let a=f[g];if("string"==typeof a){for(h=a.length;32===a.charCodeAt(h-1);)i++,h--;if(h)break;h=-1}else if(-2===a)d=!0,i++;else if(-1===a);else{g++;break}}if(b._contentTypeTextTrailing&&c===a.length&&(i=0),i){let f={type:c===a.length||d||i<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:g?h:e.start._bufferIndex+h,_index:e.start._index+g,line:e.end.line,column:e.end.column-i,offset:e.end.offset-i},end:{...e.end}};e.end={...f.start},e.start.offset===e.end.offset?Object.assign(e,f):(a.splice(c,0,["enter",f,b],["exit",f,b]),c+=2)}c++}return a}let H={name:"thematicBreak",tokenize:function(a,b,c){let d,e=0;return function(f){var g;return a.enter("thematicBreak"),d=g=f,function f(g){return g===d?(a.enter("thematicBreakSequence"),function b(c){return c===d?(a.consume(c),e++,b):(a.exit("thematicBreakSequence"),(0,q.On)(c)?(0,p.N)(a,f,"whitespace")(c):f(c))}(g)):e>=3&&(null===g||(0,q.HP)(g))?(a.exit("thematicBreak"),b(g)):c(g)}(g)}}},I={continuation:{tokenize:function(a,b,c){let d=this;return d.containerState._closeFlow=void 0,a.check(u.B,function(c){return d.containerState.furtherBlankLines=d.containerState.furtherBlankLines||d.containerState.initialBlankLine,(0,p.N)(a,b,"listItemIndent",d.containerState.size+1)(c)},function(c){return d.containerState.furtherBlankLines||!(0,q.On)(c)?(d.containerState.furtherBlankLines=void 0,d.containerState.initialBlankLine=void 0,e(c)):(d.containerState.furtherBlankLines=void 0,d.containerState.initialBlankLine=void 0,a.attempt(K,b,e)(c))});function e(e){return d.containerState._closeFlow=!0,d.interrupt=void 0,(0,p.N)(a,a.attempt(I,b,c),"linePrefix",d.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(e)}}},exit:function(a){a.exit(this.containerState.type)},name:"list",tokenize:function(a,b,c){let d=this,e=d.events[d.events.length-1],f=e&&"linePrefix"===e[1].type?e[2].sliceSerialize(e[1],!0).length:0,g=0;return function(b){let e=d.containerState.type||(42===b||43===b||45===b?"listUnordered":"listOrdered");if("listUnordered"===e?!d.containerState.marker||b===d.containerState.marker:(0,q.BM)(b)){if(d.containerState.type||(d.containerState.type=e,a.enter(e,{_container:!0})),"listUnordered"===e)return a.enter("listItemPrefix"),42===b||45===b?a.check(H,c,h)(b):h(b);if(!d.interrupt||49===b)return a.enter("listItemPrefix"),a.enter("listItemValue"),function b(e){return(0,q.BM)(e)&&++g<10?(a.consume(e),b):(!d.interrupt||g<2)&&(d.containerState.marker?e===d.containerState.marker:41===e||46===e)?(a.exit("listItemValue"),h(e)):c(e)}(b)}return c(b)};function h(b){return a.enter("listItemMarker"),a.consume(b),a.exit("listItemMarker"),d.containerState.marker=d.containerState.marker||b,a.check(u.B,d.interrupt?c:i,a.attempt(J,k,j))}function i(a){return d.containerState.initialBlankLine=!0,f++,k(a)}function j(b){return(0,q.On)(b)?(a.enter("listItemPrefixWhitespace"),a.consume(b),a.exit("listItemPrefixWhitespace"),k):c(b)}function k(c){return d.containerState.size=f+d.sliceSerialize(a.exit("listItemPrefix"),!0).length,b(c)}}},J={partial:!0,tokenize:function(a,b,c){let d=this;return(0,p.N)(a,function(a){let e=d.events[d.events.length-1];return!(0,q.On)(a)&&e&&"listItemPrefixWhitespace"===e[1].type?b(a):c(a)},"listItemPrefixWhitespace",d.parser.constructs.disable.null.includes("codeIndented")?void 0:5)}},K={partial:!0,tokenize:function(a,b,c){let d=this;return(0,p.N)(a,function(a){let e=d.events[d.events.length-1];return e&&"listItemIndent"===e[1].type&&e[2].sliceSerialize(e[1],!0).length===d.containerState.size?b(a):c(a)},"listItemIndent",d.containerState.size+1)}},L={continuation:{tokenize:function(a,b,c){let d=this;return function(b){return(0,q.On)(b)?(0,p.N)(a,e,"linePrefix",d.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(b):e(b)};function e(d){return a.attempt(L,b,c)(d)}}},exit:function(a){a.exit("blockQuote")},name:"blockQuote",tokenize:function(a,b,c){let d=this;return function(b){if(62===b){let c=d.containerState;return c.open||(a.enter("blockQuote",{_container:!0}),c.open=!0),a.enter("blockQuotePrefix"),a.enter("blockQuoteMarker"),a.consume(b),a.exit("blockQuoteMarker"),e}return c(b)};function e(c){return(0,q.On)(c)?(a.enter("blockQuotePrefixWhitespace"),a.consume(c),a.exit("blockQuotePrefixWhitespace"),a.exit("blockQuotePrefix"),b):(a.exit("blockQuotePrefix"),b(c))}}};function M(a,b,c,d,e,f,g,h,i){let j=i||1/0,k=0;return function(b){return 60===b?(a.enter(d),a.enter(e),a.enter(f),a.consume(b),a.exit(f),l):null===b||32===b||41===b||(0,q.JQ)(b)?c(b):(a.enter(d),a.enter(g),a.enter(h),a.enter("chunkString",{contentType:"string"}),o(b))};function l(c){return 62===c?(a.enter(f),a.consume(c),a.exit(f),a.exit(e),a.exit(d),b):(a.enter(h),a.enter("chunkString",{contentType:"string"}),m(c))}function m(b){return 62===b?(a.exit("chunkString"),a.exit(h),l(b)):null===b||60===b||(0,q.HP)(b)?c(b):(a.consume(b),92===b?n:m)}function n(b){return 60===b||62===b||92===b?(a.consume(b),m):m(b)}function o(e){return!k&&(null===e||41===e||(0,q.Ee)(e))?(a.exit("chunkString"),a.exit(h),a.exit(g),a.exit(d),b(e)):k<j&&40===e?(a.consume(e),k++,o):41===e?(a.consume(e),k--,o):null===e||32===e||40===e||(0,q.JQ)(e)?c(e):(a.consume(e),92===e?p:o)}function p(b){return 40===b||41===b||92===b?(a.consume(b),o):o(b)}}function N(a,b,c,d,e,f){let g,h=this,i=0;return function(b){return a.enter(d),a.enter(e),a.consume(b),a.exit(e),a.enter(f),j};function j(l){return i>999||null===l||91===l||93===l&&!g||94===l&&!i&&"_hiddenFootnoteSupport"in h.parser.constructs?c(l):93===l?(a.exit(f),a.enter(e),a.consume(l),a.exit(e),a.exit(d),b):(0,q.HP)(l)?(a.enter("lineEnding"),a.consume(l),a.exit("lineEnding"),j):(a.enter("chunkString",{contentType:"string"}),k(l))}function k(b){return null===b||91===b||93===b||(0,q.HP)(b)||i++>999?(a.exit("chunkString"),j(b)):(a.consume(b),g||(g=!(0,q.On)(b)),92===b?l:k)}function l(b){return 91===b||92===b||93===b?(a.consume(b),i++,k):k(b)}}function O(a,b,c,d,e,f){let g;return function(b){return 34===b||39===b||40===b?(a.enter(d),a.enter(e),a.consume(b),a.exit(e),g=40===b?41:b,h):c(b)};function h(c){return c===g?(a.enter(e),a.consume(c),a.exit(e),a.exit(d),b):(a.enter(f),i(c))}function i(b){return b===g?(a.exit(f),h(g)):null===b?c(b):(0,q.HP)(b)?(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),(0,p.N)(a,i,"linePrefix")):(a.enter("chunkString",{contentType:"string"}),j(b))}function j(b){return b===g||null===b||(0,q.HP)(b)?(a.exit("chunkString"),i(b)):(a.consume(b),92===b?k:j)}function k(b){return b===g||92===b?(a.consume(b),j):j(b)}}function P(a,b){let c;return function d(e){return(0,q.HP)(e)?(a.enter("lineEnding"),a.consume(e),a.exit("lineEnding"),c=!0,d):(0,q.On)(e)?(0,p.N)(a,d,c?"linePrefix":"lineSuffix")(e):b(e)}}let Q={partial:!0,tokenize:function(a,b,c){return function(b){return(0,q.Ee)(b)?P(a,d)(b):c(b)};function d(b){return O(a,e,c,"definitionTitle","definitionTitleMarker","definitionTitleString")(b)}function e(b){return(0,q.On)(b)?(0,p.N)(a,f,"whitespace")(b):f(b)}function f(a){return null===a||(0,q.HP)(a)?b(a):c(a)}}},R={name:"codeIndented",tokenize:function(a,b,c){let d=this;return function(b){return a.enter("codeIndented"),(0,p.N)(a,e,"linePrefix",5)(b)};function e(b){let e=d.events[d.events.length-1];return e&&"linePrefix"===e[1].type&&e[2].sliceSerialize(e[1],!0).length>=4?function b(c){return null===c?f(c):(0,q.HP)(c)?a.attempt(S,b,f)(c):(a.enter("codeFlowValue"),function c(d){return null===d||(0,q.HP)(d)?(a.exit("codeFlowValue"),b(d)):(a.consume(d),c)}(c))}(b):c(b)}function f(c){return a.exit("codeIndented"),b(c)}}},S={partial:!0,tokenize:function(a,b,c){let d=this;return e;function e(b){return d.parser.lazy[d.now().line]?c(b):(0,q.HP)(b)?(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),e):(0,p.N)(a,f,"linePrefix",5)(b)}function f(a){let f=d.events[d.events.length-1];return f&&"linePrefix"===f[1].type&&f[2].sliceSerialize(f[1],!0).length>=4?b(a):(0,q.HP)(a)?e(a):c(a)}}},T={name:"setextUnderline",resolveTo:function(a,b){let c,d,e,f=a.length;for(;f--;)if("enter"===a[f][0]){if("content"===a[f][1].type){c=f;break}"paragraph"===a[f][1].type&&(d=f)}else"content"===a[f][1].type&&a.splice(f,1),e||"definition"!==a[f][1].type||(e=f);let g={type:"setextHeading",start:{...a[c][1].start},end:{...a[a.length-1][1].end}};return a[d][1].type="setextHeadingText",e?(a.splice(d,0,["enter",g,b]),a.splice(e+1,0,["exit",a[c][1],b]),a[c][1].end={...a[e][1].end}):a[c][1]=g,a.push(["exit",g,b]),a},tokenize:function(a,b,c){let d,e=this;return function(b){var g;let h,i=e.events.length;for(;i--;)if("lineEnding"!==e.events[i][1].type&&"linePrefix"!==e.events[i][1].type&&"content"!==e.events[i][1].type){h="paragraph"===e.events[i][1].type;break}return!e.parser.lazy[e.now().line]&&(e.interrupt||h)?(a.enter("setextHeadingLine"),d=b,g=b,a.enter("setextHeadingLineSequence"),function b(c){return c===d?(a.consume(c),b):(a.exit("setextHeadingLineSequence"),(0,q.On)(c)?(0,p.N)(a,f,"lineSuffix")(c):f(c))}(g)):c(b)};function f(d){return null===d||(0,q.HP)(d)?(a.exit("setextHeadingLine"),b(d)):c(d)}}},U=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],V=["pre","script","style","textarea"],W={partial:!0,tokenize:function(a,b,c){return function(d){return a.enter("lineEnding"),a.consume(d),a.exit("lineEnding"),a.attempt(u.B,b,c)}}},X={partial:!0,tokenize:function(a,b,c){let d=this;return function(b){return(0,q.HP)(b)?(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),e):c(b)};function e(a){return d.parser.lazy[d.now().line]?c(a):b(a)}}},Y={partial:!0,tokenize:function(a,b,c){let d=this;return function(b){return null===b?c(b):(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),e)};function e(a){return d.parser.lazy[d.now().line]?c(a):b(a)}}},Z={concrete:!0,name:"codeFenced",tokenize:function(a,b,c){let d,e=this,f={partial:!0,tokenize:function(a,b,c){let f=0;return function(b){return a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),g};function g(b){return a.enter("codeFencedFence"),(0,q.On)(b)?(0,p.N)(a,i,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(b):i(b)}function i(b){return b===d?(a.enter("codeFencedFenceSequence"),function b(e){return e===d?(f++,a.consume(e),b):f>=h?(a.exit("codeFencedFenceSequence"),(0,q.On)(e)?(0,p.N)(a,j,"whitespace")(e):j(e)):c(e)}(b)):c(b)}function j(d){return null===d||(0,q.HP)(d)?(a.exit("codeFencedFence"),b(d)):c(d)}}},g=0,h=0;return function(b){var f=b;let j=e.events[e.events.length-1];return g=j&&"linePrefix"===j[1].type?j[2].sliceSerialize(j[1],!0).length:0,d=f,a.enter("codeFenced"),a.enter("codeFencedFence"),a.enter("codeFencedFenceSequence"),function b(e){return e===d?(h++,a.consume(e),b):h<3?c(e):(a.exit("codeFencedFenceSequence"),(0,q.On)(e)?(0,p.N)(a,i,"whitespace")(e):i(e))}(f)};function i(f){return null===f||(0,q.HP)(f)?(a.exit("codeFencedFence"),e.interrupt?b(f):a.check(Y,k,o)(f)):(a.enter("codeFencedFenceInfo"),a.enter("chunkString",{contentType:"string"}),function b(e){return null===e||(0,q.HP)(e)?(a.exit("chunkString"),a.exit("codeFencedFenceInfo"),i(e)):(0,q.On)(e)?(a.exit("chunkString"),a.exit("codeFencedFenceInfo"),(0,p.N)(a,j,"whitespace")(e)):96===e&&e===d?c(e):(a.consume(e),b)}(f))}function j(b){return null===b||(0,q.HP)(b)?i(b):(a.enter("codeFencedFenceMeta"),a.enter("chunkString",{contentType:"string"}),function b(e){return null===e||(0,q.HP)(e)?(a.exit("chunkString"),a.exit("codeFencedFenceMeta"),i(e)):96===e&&e===d?c(e):(a.consume(e),b)}(b))}function k(b){return a.attempt(f,o,l)(b)}function l(b){return a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),m}function m(b){return g>0&&(0,q.On)(b)?(0,p.N)(a,n,"linePrefix",g+1)(b):n(b)}function n(b){return null===b||(0,q.HP)(b)?a.check(Y,k,o)(b):(a.enter("codeFlowValue"),function b(c){return null===c||(0,q.HP)(c)?(a.exit("codeFlowValue"),n(c)):(a.consume(c),b)}(b))}function o(c){return a.exit("codeFenced"),b(c)}}},$={name:"characterReference",tokenize:function(a,b,c){let d,e,f=this,h=0;return function(b){return a.enter("characterReference"),a.enter("characterReferenceMarker"),a.consume(b),a.exit("characterReferenceMarker"),i};function i(b){return 35===b?(a.enter("characterReferenceMarkerNumeric"),a.consume(b),a.exit("characterReferenceMarkerNumeric"),j):(a.enter("characterReferenceValue"),d=31,e=q.lV,k(b))}function j(b){return 88===b||120===b?(a.enter("characterReferenceMarkerHexadecimal"),a.consume(b),a.exit("characterReferenceMarkerHexadecimal"),a.enter("characterReferenceValue"),d=6,e=q.ok,k):(a.enter("characterReferenceValue"),d=7,e=q.BM,k(b))}function k(i){if(59===i&&h){let d=a.exit("characterReferenceValue");return e!==q.lV||g(f.sliceSerialize(d))?(a.enter("characterReferenceMarker"),a.consume(i),a.exit("characterReferenceMarker"),a.exit("characterReference"),b):c(i)}return e(i)&&h++<d?(a.consume(i),k):c(i)}}},_={name:"characterEscape",tokenize:function(a,b,c){return function(b){return a.enter("characterEscape"),a.enter("escapeMarker"),a.consume(b),a.exit("escapeMarker"),d};function d(d){return(0,q.ol)(d)?(a.enter("characterEscapeValue"),a.consume(d),a.exit("characterEscapeValue"),a.exit("characterEscape"),b):c(d)}}},aa={name:"lineEnding",tokenize:function(a,b){return function(c){return a.enter("lineEnding"),a.consume(c),a.exit("lineEnding"),(0,p.N)(a,b,"linePrefix")}}};var ab=c(48467);let ac={name:"labelEnd",resolveAll:function(a){let b=-1,c=[];for(;++b<a.length;){let d=a[b][1];if(c.push(a[b]),"labelImage"===d.type||"labelLink"===d.type||"labelEnd"===d.type){let a="labelImage"===d.type?4:2;d.type="data",b+=a}}return a.length!==c.length&&(0,h.m)(a,0,a.length,c),a},resolveTo:function(a,b){let c,d,e,f,g=a.length,i=0;for(;g--;)if(c=a[g][1],d){if("link"===c.type||"labelLink"===c.type&&c._inactive)break;"enter"===a[g][0]&&"labelLink"===c.type&&(c._inactive=!0)}else if(e){if("enter"===a[g][0]&&("labelImage"===c.type||"labelLink"===c.type)&&!c._balanced&&(d=g,"labelLink"!==c.type)){i=2;break}}else"labelEnd"===c.type&&(e=g);let j={type:"labelLink"===a[d][1].type?"link":"image",start:{...a[d][1].start},end:{...a[a.length-1][1].end}},k={type:"label",start:{...a[d][1].start},end:{...a[e][1].end}},l={type:"labelText",start:{...a[d+i+2][1].end},end:{...a[e-2][1].start}};return f=[["enter",j,b],["enter",k,b]],f=(0,h.V)(f,a.slice(d+1,d+i+3)),f=(0,h.V)(f,[["enter",l,b]]),f=(0,h.V)(f,(0,ab.W)(b.parser.constructs.insideSpan.null,a.slice(d+i+4,e-3),b)),f=(0,h.V)(f,[["exit",l,b],a[e-2],a[e-1],["exit",k,b]]),f=(0,h.V)(f,a.slice(e+1)),f=(0,h.V)(f,[["exit",j,b]]),(0,h.m)(a,d,a.length,f),a},tokenize:function(a,b,c){let d,e,f=this,g=f.events.length;for(;g--;)if(("labelImage"===f.events[g][1].type||"labelLink"===f.events[g][1].type)&&!f.events[g][1]._balanced){d=f.events[g][1];break}return function(b){return d?d._inactive?l(b):(e=f.parser.defined.includes((0,k.B)(f.sliceSerialize({start:d.end,end:f.now()}))),a.enter("labelEnd"),a.enter("labelMarker"),a.consume(b),a.exit("labelMarker"),a.exit("labelEnd"),h):c(b)};function h(b){return 40===b?a.attempt(ad,j,e?j:l)(b):91===b?a.attempt(ae,j,e?i:l)(b):e?j(b):l(b)}function i(b){return a.attempt(af,j,l)(b)}function j(a){return b(a)}function l(a){return d._balanced=!0,c(a)}}},ad={tokenize:function(a,b,c){return function(b){return a.enter("resource"),a.enter("resourceMarker"),a.consume(b),a.exit("resourceMarker"),d};function d(b){return(0,q.Ee)(b)?P(a,e)(b):e(b)}function e(b){return 41===b?j(b):M(a,f,g,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(b)}function f(b){return(0,q.Ee)(b)?P(a,h)(b):j(b)}function g(a){return c(a)}function h(b){return 34===b||39===b||40===b?O(a,i,c,"resourceTitle","resourceTitleMarker","resourceTitleString")(b):j(b)}function i(b){return(0,q.Ee)(b)?P(a,j)(b):j(b)}function j(d){return 41===d?(a.enter("resourceMarker"),a.consume(d),a.exit("resourceMarker"),a.exit("resource"),b):c(d)}}},ae={tokenize:function(a,b,c){let d=this;return function(b){return N.call(d,a,e,f,"reference","referenceMarker","referenceString")(b)};function e(a){return d.parser.defined.includes((0,k.B)(d.sliceSerialize(d.events[d.events.length-1][1]).slice(1,-1)))?b(a):c(a)}function f(a){return c(a)}}},af={tokenize:function(a,b,c){return function(b){return a.enter("reference"),a.enter("referenceMarker"),a.consume(b),a.exit("referenceMarker"),d};function d(d){return 93===d?(a.enter("referenceMarker"),a.consume(d),a.exit("referenceMarker"),a.exit("reference"),b):c(d)}}},ag={name:"labelStartImage",resolveAll:ac.resolveAll,tokenize:function(a,b,c){let d=this;return function(b){return a.enter("labelImage"),a.enter("labelImageMarker"),a.consume(b),a.exit("labelImageMarker"),e};function e(b){return 91===b?(a.enter("labelMarker"),a.consume(b),a.exit("labelMarker"),a.exit("labelImage"),f):c(b)}function f(a){return 94===a&&"_hiddenFootnoteSupport"in d.parser.constructs?c(a):b(a)}}};var ah=c(81929);let ai={name:"attention",resolveAll:function(a,b){let c,d,e,f,g,i,j,k,l=-1;for(;++l<a.length;)if("enter"===a[l][0]&&"attentionSequence"===a[l][1].type&&a[l][1]._close){for(c=l;c--;)if("exit"===a[c][0]&&"attentionSequence"===a[c][1].type&&a[c][1]._open&&b.sliceSerialize(a[c][1]).charCodeAt(0)===b.sliceSerialize(a[l][1]).charCodeAt(0)){if((a[c][1]._close||a[l][1]._open)&&(a[l][1].end.offset-a[l][1].start.offset)%3&&!((a[c][1].end.offset-a[c][1].start.offset+a[l][1].end.offset-a[l][1].start.offset)%3))continue;i=a[c][1].end.offset-a[c][1].start.offset>1&&a[l][1].end.offset-a[l][1].start.offset>1?2:1;let m={...a[c][1].end},n={...a[l][1].start};aj(m,-i),aj(n,i),f={type:i>1?"strongSequence":"emphasisSequence",start:m,end:{...a[c][1].end}},g={type:i>1?"strongSequence":"emphasisSequence",start:{...a[l][1].start},end:n},e={type:i>1?"strongText":"emphasisText",start:{...a[c][1].end},end:{...a[l][1].start}},d={type:i>1?"strong":"emphasis",start:{...f.start},end:{...g.end}},a[c][1].end={...f.start},a[l][1].start={...g.end},j=[],a[c][1].end.offset-a[c][1].start.offset&&(j=(0,h.V)(j,[["enter",a[c][1],b],["exit",a[c][1],b]])),j=(0,h.V)(j,[["enter",d,b],["enter",f,b],["exit",f,b],["enter",e,b]]),j=(0,h.V)(j,(0,ab.W)(b.parser.constructs.insideSpan.null,a.slice(c+1,l),b)),j=(0,h.V)(j,[["exit",e,b],["enter",g,b],["exit",g,b],["exit",d,b]]),a[l][1].end.offset-a[l][1].start.offset?(k=2,j=(0,h.V)(j,[["enter",a[l][1],b],["exit",a[l][1],b]])):k=0,(0,h.m)(a,c-1,l-c+3,j),l=c+j.length-k-2;break}}for(l=-1;++l<a.length;)"attentionSequence"===a[l][1].type&&(a[l][1].type="data");return a},tokenize:function(a,b){let c,d=this.parser.constructs.attentionMarkers.null,e=this.previous,f=(0,ah.S)(e);return function(g){return c=g,a.enter("attentionSequence"),function g(h){if(h===c)return a.consume(h),g;let i=a.exit("attentionSequence"),j=(0,ah.S)(h),k=!j||2===j&&f||d.includes(h),l=!f||2===f&&j||d.includes(e);return i._open=!!(42===c?k:k&&(f||!l)),i._close=!!(42===c?l:l&&(j||!k)),b(h)}(g)}}};function aj(a,b){a.column+=b,a.offset+=b,a._bufferIndex+=b}let ak={name:"labelStartLink",resolveAll:ac.resolveAll,tokenize:function(a,b,c){let d=this;return function(b){return a.enter("labelLink"),a.enter("labelMarker"),a.consume(b),a.exit("labelMarker"),a.exit("labelLink"),e};function e(a){return 94===a&&"_hiddenFootnoteSupport"in d.parser.constructs?c(a):b(a)}}},al={42:I,43:I,45:I,48:I,49:I,50:I,51:I,52:I,53:I,54:I,55:I,56:I,57:I,62:L},am={91:{name:"definition",tokenize:function(a,b,c){let d,e=this;return function(b){var d;return a.enter("definition"),d=b,N.call(e,a,f,c,"definitionLabel","definitionLabelMarker","definitionLabelString")(d)};function f(b){return(d=(0,k.B)(e.sliceSerialize(e.events[e.events.length-1][1]).slice(1,-1)),58===b)?(a.enter("definitionMarker"),a.consume(b),a.exit("definitionMarker"),g):c(b)}function g(b){return(0,q.Ee)(b)?P(a,h)(b):h(b)}function h(b){return M(a,i,c,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(b)}function i(b){return a.attempt(Q,j,j)(b)}function j(b){return(0,q.On)(b)?(0,p.N)(a,l,"whitespace")(b):l(b)}function l(f){return null===f||(0,q.HP)(f)?(a.exit("definition"),e.parser.defined.push(d),b(f)):c(f)}}}},an={[-2]:R,[-1]:R,32:R},ao={35:{name:"headingAtx",resolve:function(a,b){let c,d,e=a.length-2,f=3;return"whitespace"===a[3][1].type&&(f+=2),e-2>f&&"whitespace"===a[e][1].type&&(e-=2),"atxHeadingSequence"===a[e][1].type&&(f===e-1||e-4>f&&"whitespace"===a[e-2][1].type)&&(e-=f+1===e?2:4),e>f&&(c={type:"atxHeadingText",start:a[f][1].start,end:a[e][1].end},d={type:"chunkText",start:a[f][1].start,end:a[e][1].end,contentType:"text"},(0,h.m)(a,f,e-f+1,[["enter",c,b],["enter",d,b],["exit",d,b],["exit",c,b]])),a},tokenize:function(a,b,c){let d=0;return function(e){var f;return a.enter("atxHeading"),f=e,a.enter("atxHeadingSequence"),function e(f){return 35===f&&d++<6?(a.consume(f),e):null===f||(0,q.Ee)(f)?(a.exit("atxHeadingSequence"),function c(d){return 35===d?(a.enter("atxHeadingSequence"),function b(d){return 35===d?(a.consume(d),b):(a.exit("atxHeadingSequence"),c(d))}(d)):null===d||(0,q.HP)(d)?(a.exit("atxHeading"),b(d)):(0,q.On)(d)?(0,p.N)(a,c,"whitespace")(d):(a.enter("atxHeadingText"),function b(d){return null===d||35===d||(0,q.Ee)(d)?(a.exit("atxHeadingText"),c(d)):(a.consume(d),b)}(d))}(f)):c(f)}(f)}}},42:H,45:[T,H],60:{concrete:!0,name:"htmlFlow",resolveTo:function(a){let b=a.length;for(;b--&&("enter"!==a[b][0]||"htmlFlow"!==a[b][1].type););return b>1&&"linePrefix"===a[b-2][1].type&&(a[b][1].start=a[b-2][1].start,a[b+1][1].start=a[b-2][1].start,a.splice(b-2,2)),a},tokenize:function(a,b,c){let d,e,f,g,h,i=this;return function(b){var c;return c=b,a.enter("htmlFlow"),a.enter("htmlFlowData"),a.consume(c),j};function j(g){return 33===g?(a.consume(g),k):47===g?(a.consume(g),e=!0,n):63===g?(a.consume(g),d=3,i.interrupt?b:H):(0,q.CW)(g)?(a.consume(g),f=String.fromCharCode(g),o):c(g)}function k(e){return 45===e?(a.consume(e),d=2,l):91===e?(a.consume(e),d=5,g=0,m):(0,q.CW)(e)?(a.consume(e),d=4,i.interrupt?b:H):c(e)}function l(d){return 45===d?(a.consume(d),i.interrupt?b:H):c(d)}function m(d){let e="CDATA[";return d===e.charCodeAt(g++)?(a.consume(d),g===e.length)?i.interrupt?b:z:m:c(d)}function n(b){return(0,q.CW)(b)?(a.consume(b),f=String.fromCharCode(b),o):c(b)}function o(g){if(null===g||47===g||62===g||(0,q.Ee)(g)){let h=47===g,j=f.toLowerCase();return!h&&!e&&V.includes(j)?(d=1,i.interrupt?b(g):z(g)):U.includes(f.toLowerCase())?(d=6,h)?(a.consume(g),p):i.interrupt?b(g):z(g):(d=7,i.interrupt&&!i.parser.lazy[i.now().line]?c(g):e?function b(c){return(0,q.On)(c)?(a.consume(c),b):x(c)}(g):r(g))}return 45===g||(0,q.lV)(g)?(a.consume(g),f+=String.fromCharCode(g),o):c(g)}function p(d){return 62===d?(a.consume(d),i.interrupt?b:z):c(d)}function r(b){return 47===b?(a.consume(b),x):58===b||95===b||(0,q.CW)(b)?(a.consume(b),s):(0,q.On)(b)?(a.consume(b),r):x(b)}function s(b){return 45===b||46===b||58===b||95===b||(0,q.lV)(b)?(a.consume(b),s):t(b)}function t(b){return 61===b?(a.consume(b),u):(0,q.On)(b)?(a.consume(b),t):r(b)}function u(b){return null===b||60===b||61===b||62===b||96===b?c(b):34===b||39===b?(a.consume(b),h=b,v):(0,q.On)(b)?(a.consume(b),u):function b(c){return null===c||34===c||39===c||47===c||60===c||61===c||62===c||96===c||(0,q.Ee)(c)?t(c):(a.consume(c),b)}(b)}function v(b){return b===h?(a.consume(b),h=null,w):null===b||(0,q.HP)(b)?c(b):(a.consume(b),v)}function w(a){return 47===a||62===a||(0,q.On)(a)?r(a):c(a)}function x(b){return 62===b?(a.consume(b),y):c(b)}function y(b){return null===b||(0,q.HP)(b)?z(b):(0,q.On)(b)?(a.consume(b),y):c(b)}function z(b){return 45===b&&2===d?(a.consume(b),D):60===b&&1===d?(a.consume(b),E):62===b&&4===d?(a.consume(b),I):63===b&&3===d?(a.consume(b),H):93===b&&5===d?(a.consume(b),G):(0,q.HP)(b)&&(6===d||7===d)?(a.exit("htmlFlowData"),a.check(W,J,A)(b)):null===b||(0,q.HP)(b)?(a.exit("htmlFlowData"),A(b)):(a.consume(b),z)}function A(b){return a.check(X,B,J)(b)}function B(b){return a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),C}function C(b){return null===b||(0,q.HP)(b)?A(b):(a.enter("htmlFlowData"),z(b))}function D(b){return 45===b?(a.consume(b),H):z(b)}function E(b){return 47===b?(a.consume(b),f="",F):z(b)}function F(b){if(62===b){let c=f.toLowerCase();return V.includes(c)?(a.consume(b),I):z(b)}return(0,q.CW)(b)&&f.length<8?(a.consume(b),f+=String.fromCharCode(b),F):z(b)}function G(b){return 93===b?(a.consume(b),H):z(b)}function H(b){return 62===b?(a.consume(b),I):45===b&&2===d?(a.consume(b),H):z(b)}function I(b){return null===b||(0,q.HP)(b)?(a.exit("htmlFlowData"),J(b)):(a.consume(b),I)}function J(c){return a.exit("htmlFlow"),b(c)}}},61:T,95:H,96:Z,126:Z},ap={38:$,92:_},aq={[-5]:aa,[-4]:aa,[-3]:aa,33:ag,38:$,42:ai,60:[{name:"autolink",tokenize:function(a,b,c){let d=0;return function(b){return a.enter("autolink"),a.enter("autolinkMarker"),a.consume(b),a.exit("autolinkMarker"),a.enter("autolinkProtocol"),e};function e(b){return(0,q.CW)(b)?(a.consume(b),f):64===b?c(b):h(b)}function f(b){return 43===b||45===b||46===b||(0,q.lV)(b)?(d=1,function b(c){return 58===c?(a.consume(c),d=0,g):(43===c||45===c||46===c||(0,q.lV)(c))&&d++<32?(a.consume(c),b):(d=0,h(c))}(b)):h(b)}function g(d){return 62===d?(a.exit("autolinkProtocol"),a.enter("autolinkMarker"),a.consume(d),a.exit("autolinkMarker"),a.exit("autolink"),b):null===d||32===d||60===d||(0,q.JQ)(d)?c(d):(a.consume(d),g)}function h(b){return 64===b?(a.consume(b),i):(0,q.cx)(b)?(a.consume(b),h):c(b)}function i(e){return(0,q.lV)(e)?function e(f){return 46===f?(a.consume(f),d=0,i):62===f?(a.exit("autolinkProtocol").type="autolinkEmail",a.enter("autolinkMarker"),a.consume(f),a.exit("autolinkMarker"),a.exit("autolink"),b):function b(f){if((45===f||(0,q.lV)(f))&&d++<63){let c=45===f?b:e;return a.consume(f),c}return c(f)}(f)}(e):c(e)}}},{name:"htmlText",tokenize:function(a,b,c){let d,e,f,g=this;return function(b){return a.enter("htmlText"),a.enter("htmlTextData"),a.consume(b),h};function h(b){return 33===b?(a.consume(b),i):47===b?(a.consume(b),w):63===b?(a.consume(b),u):(0,q.CW)(b)?(a.consume(b),y):c(b)}function i(b){return 45===b?(a.consume(b),j):91===b?(a.consume(b),e=0,n):(0,q.CW)(b)?(a.consume(b),t):c(b)}function j(b){return 45===b?(a.consume(b),m):c(b)}function k(b){return null===b?c(b):45===b?(a.consume(b),l):(0,q.HP)(b)?(f=k,G(b)):(a.consume(b),k)}function l(b){return 45===b?(a.consume(b),m):k(b)}function m(a){return 62===a?F(a):45===a?l(a):k(a)}function n(b){let d="CDATA[";return b===d.charCodeAt(e++)?(a.consume(b),e===d.length?o:n):c(b)}function o(b){return null===b?c(b):93===b?(a.consume(b),r):(0,q.HP)(b)?(f=o,G(b)):(a.consume(b),o)}function r(b){return 93===b?(a.consume(b),s):o(b)}function s(b){return 62===b?F(b):93===b?(a.consume(b),s):o(b)}function t(b){return null===b||62===b?F(b):(0,q.HP)(b)?(f=t,G(b)):(a.consume(b),t)}function u(b){return null===b?c(b):63===b?(a.consume(b),v):(0,q.HP)(b)?(f=u,G(b)):(a.consume(b),u)}function v(a){return 62===a?F(a):u(a)}function w(b){return(0,q.CW)(b)?(a.consume(b),x):c(b)}function x(b){return 45===b||(0,q.lV)(b)?(a.consume(b),x):function b(c){return(0,q.HP)(c)?(f=b,G(c)):(0,q.On)(c)?(a.consume(c),b):F(c)}(b)}function y(b){return 45===b||(0,q.lV)(b)?(a.consume(b),y):47===b||62===b||(0,q.Ee)(b)?z(b):c(b)}function z(b){return 47===b?(a.consume(b),F):58===b||95===b||(0,q.CW)(b)?(a.consume(b),A):(0,q.HP)(b)?(f=z,G(b)):(0,q.On)(b)?(a.consume(b),z):F(b)}function A(b){return 45===b||46===b||58===b||95===b||(0,q.lV)(b)?(a.consume(b),A):function b(c){return 61===c?(a.consume(c),B):(0,q.HP)(c)?(f=b,G(c)):(0,q.On)(c)?(a.consume(c),b):z(c)}(b)}function B(b){return null===b||60===b||61===b||62===b||96===b?c(b):34===b||39===b?(a.consume(b),d=b,C):(0,q.HP)(b)?(f=B,G(b)):(0,q.On)(b)?(a.consume(b),B):(a.consume(b),D)}function C(b){return b===d?(a.consume(b),d=void 0,E):null===b?c(b):(0,q.HP)(b)?(f=C,G(b)):(a.consume(b),C)}function D(b){return null===b||34===b||39===b||60===b||61===b||96===b?c(b):47===b||62===b||(0,q.Ee)(b)?z(b):(a.consume(b),D)}function E(a){return 47===a||62===a||(0,q.Ee)(a)?z(a):c(a)}function F(d){return 62===d?(a.consume(d),a.exit("htmlTextData"),a.exit("htmlText"),b):c(d)}function G(b){return a.exit("htmlTextData"),a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),H}function H(b){return(0,q.On)(b)?(0,p.N)(a,I,"linePrefix",g.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(b):I(b)}function I(b){return a.enter("htmlTextData"),f(b)}}}],91:ak,92:[{name:"hardBreakEscape",tokenize:function(a,b,c){return function(b){return a.enter("hardBreakEscape"),a.consume(b),d};function d(d){return(0,q.HP)(d)?(a.exit("hardBreakEscape"),b(d)):c(d)}}},_],93:ac,95:ai,96:{name:"codeText",previous:function(a){return 96!==a||"characterEscape"===this.events[this.events.length-1][1].type},resolve:function(a){let b,c,d=a.length-4,e=3;if(("lineEnding"===a[3][1].type||"space"===a[e][1].type)&&("lineEnding"===a[d][1].type||"space"===a[d][1].type)){for(b=e;++b<d;)if("codeTextData"===a[b][1].type){a[e][1].type="codeTextPadding",a[d][1].type="codeTextPadding",e+=2,d-=2;break}}for(b=e-1,d++;++b<=d;)void 0===c?b!==d&&"lineEnding"!==a[b][1].type&&(c=b):(b===d||"lineEnding"===a[b][1].type)&&(a[c][1].type="codeTextData",b!==c+2&&(a[c][1].end=a[b-1][1].end,a.splice(c+2,b-c-2),d-=b-c-2,b=c+2),c=void 0);return a},tokenize:function(a,b,c){let d,e,f=0;return function(b){return a.enter("codeText"),a.enter("codeTextSequence"),function b(c){return 96===c?(a.consume(c),f++,b):(a.exit("codeTextSequence"),g(c))}(b)};function g(i){return null===i?c(i):32===i?(a.enter("space"),a.consume(i),a.exit("space"),g):96===i?(e=a.enter("codeTextSequence"),d=0,function c(g){return 96===g?(a.consume(g),d++,c):d===f?(a.exit("codeTextSequence"),a.exit("codeText"),b(g)):(e.type="codeTextData",h(g))}(i)):(0,q.HP)(i)?(a.enter("lineEnding"),a.consume(i),a.exit("lineEnding"),g):(a.enter("codeTextData"),h(i))}function h(b){return null===b||32===b||96===b||(0,q.HP)(b)?(a.exit("codeTextData"),g(b)):(a.consume(b),h)}}}},ar={null:[ai,B]},as={null:[42,95]},at={null:[]},au=/[\0\t\n\r]/g;function av(a,b,c){let e,f,p,t;return"string"!=typeof b&&(c=b,b=void 0),(function(a){let b=a||{},c=!0,d={},e=[[]],f=[],p=[],q=(0,i.v)([{enter:{blockQuote:function(){p.push(!1),z(),w("<blockquote>")},codeFenced:function(){z(),w("<pre><code"),r.fencesCount=0},codeFencedFenceInfo:u,codeFencedFenceMeta:u,codeIndented:function(){z(),w("<pre><code>")},codeText:function(){r.inCodeText=!0,w("<code>")},content:function(){r.slurpAllLineEndings=!0},definition:function(){u(),f.push({})},definitionDestinationString:function(){u(),r.ignoreEncode=!0},definitionLabelString:u,definitionTitleString:u,emphasis:function(){w("<em>")},htmlFlow:function(){z(),I()},htmlText:I,image:function(){f.push({image:!0}),c=void 0},label:u,link:function(){f.push({})},listItemMarker:function(){r.expectFirstItem?w(">"):C(),z(),w("<li>"),r.expectFirstItem=void 0,r.lastWasTag=void 0},listItemValue:function(a){if(r.expectFirstItem){let b=Number.parseInt(this.sliceSerialize(a),10);1!==b&&w(' start="'+A(String(b))+'"')}},listOrdered:function(a){p.push(!a._loose),z(),w("<ol"),r.expectFirstItem=!0},listUnordered:function(a){p.push(!a._loose),z(),w("<ul"),r.expectFirstItem=!0},paragraph:function(){p[p.length-1]||(z(),w("<p>")),r.slurpAllLineEndings=void 0},reference:u,resource:function(){u(),f[f.length-1].destination=""},resourceDestinationString:function(){u(),r.ignoreEncode=!0},resourceTitleString:u,setextHeading:function(){u(),r.slurpAllLineEndings=void 0},strong:function(){w("<strong>")}},exit:{atxHeading:function(){w("</h"+r.headingRank+">"),r.headingRank=void 0},atxHeadingSequence:function(a){!r.headingRank&&(r.headingRank=this.sliceSerialize(a).length,z(),w("<h"+r.headingRank+">"))},autolinkEmail:function(a){let b=this.sliceSerialize(a);w('<a href="'+(0,l.Q)("mailto:"+b)+'">'),x(A(b)),w("</a>")},autolinkProtocol:function(a){let c=this.sliceSerialize(a);w('<a href="'+(0,l.Q)(c,b.allowDangerousProtocol?void 0:n)+'">'),x(A(c)),w("</a>")},blockQuote:function(){p.pop(),z(),w("</blockquote>"),r.slurpAllLineEndings=void 0},characterEscapeValue:F,characterReferenceMarkerHexadecimal:J,characterReferenceMarkerNumeric:J,characterReferenceValue:function(a){let b=this.sliceSerialize(a);x(A(r.characterReferenceType?function(a,b){let c=Number.parseInt(a,b);return c<9||11===c||c>13&&c<32||c>126&&c<160||c>55295&&c<57344||c>64975&&c<65008||(65535&c)==65535||(65535&c)==65534||c>1114111?"�":String.fromCodePoint(c)}(b,"characterReferenceMarkerNumeric"===r.characterReferenceType?10:16):g(b))),r.characterReferenceType=void 0},codeFenced:D,codeFencedFence:function(){let a=r.fencesCount||0;a||(w(">"),r.slurpOneLineEnding=!0),r.fencesCount=a+1},codeFencedFenceInfo:function(){w(' class="language-'+v()+'"')},codeFencedFenceMeta:B,codeFlowValue:function(a){x(A(this.sliceSerialize(a))),r.flowCodeSeenData=!0},codeIndented:D,codeText:function(){r.inCodeText=void 0,w("</code>")},codeTextData:F,data:F,definition:function(){let a=f[f.length-1],b=(0,k.B)(a.labelId);v(),m.call(d,b)||(d[b]=f[f.length-1]),f.pop()},definitionDestinationString:function(){f[f.length-1].destination=v(),r.ignoreEncode=void 0},definitionLabelString:function(a){v(),f[f.length-1].labelId=this.sliceSerialize(a)},definitionTitleString:function(){f[f.length-1].title=v()},emphasis:function(){w("</em>")},hardBreakEscape:G,hardBreakTrailing:G,htmlFlow:H,htmlFlowData:F,htmlText:H,htmlTextData:F,image:E,label:function(){f[f.length-1].label=v()},labelText:function(a){f[f.length-1].labelId=this.sliceSerialize(a)},lineEnding:function(a){if(!r.slurpAllLineEndings){if(r.slurpOneLineEnding)return void(r.slurpOneLineEnding=void 0);if(r.inCodeText)return void x(" ");x(A(this.sliceSerialize(a)))}},link:E,listOrdered:function(){C(),p.pop(),y(),w("</ol>")},listUnordered:function(){C(),p.pop(),y(),w("</ul>")},paragraph:function(){if(p[p.length-1])r.slurpAllLineEndings=!0;else w("</p>")},reference:B,referenceString:function(a){f[f.length-1].referenceId=this.sliceSerialize(a)},resource:B,resourceDestinationString:function(){f[f.length-1].destination=v(),r.ignoreEncode=void 0},resourceTitleString:function(){f[f.length-1].title=v()},setextHeading:function(){let a=v();z(),w("<h"+r.headingRank+">"),x(a),w("</h"+r.headingRank+">"),r.slurpAllLineEndings=void 0,r.headingRank=void 0},setextHeadingLineSequence:function(a){r.headingRank=61===this.sliceSerialize(a).charCodeAt(0)?1:2},setextHeadingText:function(){r.slurpAllLineEndings=!0},strong:function(){w("</strong>")},thematicBreak:function(){z(),w("<hr />")}}},...b.htmlExtensions||[]]),r={definitions:d,tightStack:p},s={buffer:u,encode:A,getData:function(a){return r[a]},lineEndingIfNeeded:z,options:b,raw:x,resume:v,setData:function(a,b){r[a]=b},tag:w},t=b.defaultLineEnding;return function(a){let b=-1,c=0,d=[],f=[],g=[];for(;++b<a.length;)t||"lineEnding"!==a[b][1].type&&"lineEndingBlank"!==a[b][1].type||(t=a[b][2].sliceSerialize(a[b][1])),("listOrdered"===a[b][1].type||"listUnordered"===a[b][1].type)&&("enter"===a[b][0]?d.push(b):function(a){let b,c=a.length,d=0,e=0,f=!1;for(;++d<c;){let c=a[d];if(c[1]._container)b=void 0,"enter"===c[0]?e++:e--;else switch(c[1].type){case"listItemPrefix":"exit"===c[0]&&(b=!0);break;case"linePrefix":break;case"lineEndingBlank":"enter"!==c[0]||e||(b?b=void 0:f=!0);break;default:b=void 0}}a[0][1]._loose=f}(a.slice(d.pop(),b))),"definition"===a[b][1].type&&("enter"===a[b][0]?(g=(0,h.V)(g,a.slice(c,b)),c=b):(f=(0,h.V)(f,a.slice(c,b+1)),c=b+1));f=(0,h.V)(f,g),f=(0,h.V)(f,a.slice(c)),b=-1;let i=f;for(q.enter.null&&q.enter.null.call(s);++b<a.length;){let a=q[i[b][0]],c=i[b][1].type,d=a[c];m.call(a,c)&&d&&d.call({sliceSerialize:i[b][2].sliceSerialize,...s},i[b][1])}return q.exit.null&&q.exit.null.call(s),e[0].join("")};function u(){e.push([])}function v(){return e.pop().join("")}function w(a){c&&(r.lastWasTag=!0,e[e.length-1].push(a))}function x(a){r.lastWasTag=void 0,e[e.length-1].push(a)}function y(){x(t||"\n")}function z(){let a=e[e.length-1],b=a[a.length-1],c=b?b.charCodeAt(b.length-1):null;10!==c&&13!==c&&null!==c&&y()}function A(a){return r.ignoreEncode?a:(0,j.l)(a)}function B(){v()}function C(){r.lastWasTag&&!r.slurpAllLineEndings&&z(),w("</li>"),r.slurpAllLineEndings=void 0}function D(){let a=r.fencesCount;void 0!==a&&a<2&&r.tightStack.length>0&&!r.lastWasTag&&y(),r.flowCodeSeenData&&z(),w("</code></pre>"),void 0!==a&&a<2&&z(),r.flowCodeSeenData=void 0,r.fencesCount=void 0,r.slurpOneLineEnding=void 0}function E(){let a=f.length-1,e=f[a],g=e.referenceId||e.labelId,h=void 0===e.destination?d[(0,k.B)(g)]:e;for(c=!0;a--;)if(f[a].image){c=void 0;break}e.image?(w('<img src="'+(0,l.Q)(h.destination,b.allowDangerousProtocol?void 0:o)+'" alt="'),x(e.label),w('"')):w('<a href="'+(0,l.Q)(h.destination,b.allowDangerousProtocol?void 0:n)+'"'),w(h.title?' title="'+h.title+'"':""),e.image?w(" />"):(w(">"),x(e.label),w("</a>")),f.pop()}function F(a){x(A(this.sliceSerialize(a)))}function G(){w("<br />")}function H(){r.ignoreEncode=void 0}function I(){b.allowDangerousHtml&&(r.ignoreEncode=!0)}function J(a){r.characterReferenceType=a.type}})(c)(function(a){for(;!x(a););return a}((function(a){let b={constructs:(0,i.y)([d,...(a||{}).extensions||[]]),content:c(r),defined:[],document:c(s),flow:c(A),lazy:{},string:c(C),text:c(D)};return b;function c(a){return function(c){return function(a,b,c){let d={_bufferIndex:-1,_index:0,line:c&&c.line||1,column:c&&c.column||1,offset:c&&c.offset||0},e={},f=[],g=[],i=[],j={attempt:p(function(a,b){r(a,b.from)}),check:p(o),consume:function(a){(0,q.HP)(a)?(d.line++,d.column=1,d.offset+=-3===a?2:1,s()):-1!==a&&(d.column++,d.offset++),d._bufferIndex<0?d._index++:(d._bufferIndex++,d._bufferIndex===g[d._index].length&&(d._bufferIndex=-1,d._index++)),k.previous=a},enter:function(a,b){let c=b||{};return c.type=a,c.start=n(),k.events.push(["enter",c,k]),i.push(c),c},exit:function(a){let b=i.pop();return b.end=n(),k.events.push(["exit",b,k]),b},interrupt:p(o,{interrupt:!0})},k={code:null,containerState:{},defineSkip:function(a){e[a.line]=a.column,s()},events:[],now:n,parser:a,previous:null,sliceSerialize:function(a,b){return function(a,b){let c,d=-1,e=[];for(;++d<a.length;){let f,g=a[d];if("string"==typeof g)f=g;else switch(g){case -5:f="\r";break;case -4:f="\n";break;case -3:f="\r\n";break;case -2:f=b?" ":" ";break;case -1:if(!b&&c)continue;f=" ";break;default:f=String.fromCharCode(g)}c=-2===g,e.push(f)}return e.join("")}(m(a),b)},sliceStream:m,write:function(a){return(g=(0,h.V)(g,a),function(){let a;for(;d._index<g.length;){let c=g[d._index];if("string"==typeof c)for(a=d._index,d._bufferIndex<0&&(d._bufferIndex=0);d._index===a&&d._bufferIndex<c.length;){var b;b=c.charCodeAt(d._bufferIndex),l=l(b)}else l=l(c)}}(),null!==g[g.length-1])?[]:(r(b,0),k.events=(0,ab.W)(f,k.events,k),k.events)}},l=b.tokenize.call(k,j);return b.resolveAll&&f.push(b),k;function m(a){return function(a,b){let c,d=b.start._index,e=b.start._bufferIndex,f=b.end._index,g=b.end._bufferIndex;if(d===f)c=[a[d].slice(e,g)];else{if(c=a.slice(d,f),e>-1){let a=c[0];"string"==typeof a?c[0]=a.slice(e):c.shift()}g>0&&c.push(a[f].slice(0,g))}return c}(g,a)}function n(){let{_bufferIndex:a,_index:b,line:c,column:e,offset:f}=d;return{_bufferIndex:a,_index:b,line:c,column:e,offset:f}}function o(a,b){b.restore()}function p(a,b){return function(c,e,f){var g;let h,l,m,o;return Array.isArray(c)?p(c):"tokenize"in c?p([c]):(g=c,function(a){let b=null!==a&&g[a],c=null!==a&&g.null;return p([...Array.isArray(b)?b:b?[b]:[],...Array.isArray(c)?c:c?[c]:[]])(a)});function p(a){return(h=a,l=0,0===a.length)?f:q(a[l])}function q(a){return function(c){return(o=function(){let a=n(),b=k.previous,c=k.currentConstruct,e=k.events.length,f=Array.from(i);return{from:e,restore:function(){d=a,k.previous=b,k.currentConstruct=c,k.events.length=e,i=f,s()}}}(),m=a,a.partial||(k.currentConstruct=a),a.name&&k.parser.constructs.disable.null.includes(a.name))?t(c):a.tokenize.call(b?Object.assign(Object.create(k),b):k,j,r,t)(c)}}function r(b){return a(m,o),e}function t(a){return(o.restore(),++l<h.length)?q(h[l]):f}}}function r(a,b){a.resolveAll&&!f.includes(a)&&f.push(a),a.resolve&&(0,h.m)(k.events,b,k.events.length-b,a.resolve(k.events.slice(b),k)),a.resolveTo&&(k.events=a.resolveTo(k.events,k))}function s(){d.line in e&&d.column<2&&(d.column=e[d.line],d.offset+=e[d.line]-1)}}(b,a,c)}}})(c).document().write((f=1,p="",t=!0,function(a,b,c){let d,g,h,i,j,k=[];for(a=p+("string"==typeof a?a.toString():new TextDecoder(b||void 0).decode(a)),h=0,p="",t&&(65279===a.charCodeAt(0)&&h++,t=void 0);h<a.length;){if(au.lastIndex=h,i=(d=au.exec(a))&&void 0!==d.index?d.index:a.length,j=a.charCodeAt(i),!d){p=a.slice(h);break}if(10===j&&h===i&&e)k.push(-3),e=void 0;else switch(e&&(k.push(-5),e=void 0),h<i&&(k.push(a.slice(h,i)),f+=i-h),j){case 0:k.push(65533),f++;break;case 9:for(g=4*Math.ceil(f/4),k.push(-2);f++<g;)k.push(-1);break;case 10:k.push(-4),f=1;break;default:e=!0,f=1}h=i+1}return c&&(e&&k.push(-5),p&&k.push(p),k.push(null)),k})(a,b,!0))))}},71086:(a,b,c)=>{"use strict";function d({slug:a,title:b,description:c,category:d="integration",provider:e,scopes:f,prefix:g,extraCredentials:h=[],unlocks:i,healthEndpoint:j,risk:k,tags:l}){let m=`${g}_ACCESS_TOKEN`;return{slug:a,title:b,description:c,category:d,author:"madarx",source_kind:"builtin",source_url:null,version:null,risk_summary:k,tags:l,manifest:{service_key:a,setup_kind:"oauth2",benefit:`Sign in with ${b} to unlock ${i.length} tool${1===i.length?"":"s"}. No code, no .env editing.`,credentials:[{name:`${g}_CLIENT_ID`,label:`${b} client ID`,type:"text",required:!0,help_text:`Create an app on the ${b} developer console and paste its client ID.`},{name:`${g}_CLIENT_SECRET`,label:`${b} client secret`,type:"password",required:!0,help_text:"Stored encrypted in the local vault — never echoed back."},...h],oauth:{provider:e,scopes:f,pkce:"google"===e||"tiktok"===e,redirect_path:`/api/connections/${a}/oauth/callback`,client_id_ref:`${g}_CLIENT_ID`,client_secret_ref:`${g}_CLIENT_SECRET`,access_token_ref:m,refresh_token_ref:`${g}_REFRESH_TOKEN`},health_check:{endpoint:j,method:"GET",expect_status:200,auth:{in:"header",name:"Authorization",prefix:"Bearer ",credential:m}},verify_endpoint:`/api/connections/${a}/verify`,verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:i,engines:[],logo_glyph:a}}}c.d(b,{R2:()=>q,fP:()=>o});let e=[{slug:"anthropic",title:"Anthropic",description:"Power any agent running on the Anthropic engine (Claude Opus, Sonnet, Haiku). Your key is encrypted on this Mac and never leaves the vault.",category:"engine",author:"madarx",source_kind:"builtin",source_url:"https://console.anthropic.com/settings/keys",version:null,risk_summary:"API key only — no destructive scope.",tags:["engine","anthropic","claude"],manifest:{service_key:"anthropic",setup_kind:"api_key",benefit:"Unlock the Anthropic engine for sub-agents and the main agent. Required for /api/orchestrator/command on default mode.",credentials:[{name:"ANTHROPIC_API_KEY",label:"API key",type:"password",placeholder:"sk-ant-…",help_url:"https://console.anthropic.com/settings/keys",help_text:"Generate a key in the Anthropic console.",required:!0}],verify_endpoint:"/api/connections/anthropic/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:[],engines:["anthropic"],logo_glyph:"anthropic"}},{slug:"openai",title:"OpenAI",description:"Use OpenAI models for agents that prefer GPT. Stored encrypted; never echoed back.",category:"engine",author:"madarx",source_kind:"builtin",source_url:"https://platform.openai.com/api-keys",version:null,risk_summary:"API key only.",tags:["engine","openai","gpt"],manifest:{service_key:"openai",setup_kind:"api_key",benefit:"Unlock OpenAI models for agents and transcription.",credentials:[{name:"OPENAI_API_KEY",label:"API key",type:"password",placeholder:"sk-…",help_url:"https://platform.openai.com/api-keys",help_text:"Create a key in the OpenAI dashboard.",required:!0}],verify_endpoint:"/api/connections/openai/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:[],engines:["openai"],logo_glyph:"openai"}},{slug:"kimi",title:"Kimi (Moonshot)",description:"Connect Moonshot AI — Kimi models for long-context Chinese + English reasoning. Stored encrypted.",category:"engine",author:"madarx",source_kind:"builtin",source_url:"https://platform.moonshot.ai/console/api-keys",version:null,risk_summary:"API key only.",tags:["engine","kimi","moonshot"],manifest:{service_key:"kimi",setup_kind:"api_key",benefit:"Unlock Kimi (Moonshot) models for the kimi engine.",credentials:[{name:"KIMI_API_KEY",label:"API key",type:"password",placeholder:"sk-…",help_url:"https://platform.moonshot.ai/console/api-keys",help_text:"Create a key in the Moonshot console.",required:!0}],verify_endpoint:"/api/connections/kimi/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:[],engines:["kimi"],logo_glyph:"kimi"}},{slug:"github",title:"GitHub",description:"Unlock 11 GitHub tools: read repos, list PRs, create issues, dispatch workflows, and (with approval) merge PRs. Token is encrypted at rest.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://github.com/settings/tokens",version:null,risk_summary:"Some GitHub tools are irreversible (e.g. gh_pr_merge) and always require approval.",tags:["integration","github","git"],manifest:{service_key:"github",setup_kind:"api_key",benefit:"Unlock 11 GitHub tools across read, issue, and PR workflows.",credentials:[{name:"GITHUB_TOKEN",label:"Personal access token",type:"password",placeholder:"ghp_…",help_url:"https://github.com/settings/tokens",help_text:"Use a fine-grained token. Grant only the scopes you need.",required:!0}],verify_endpoint:"/api/connections/github/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["gh_repo_read","gh_repo_list","gh_issue_list","gh_issue_create","gh_issue_comment","gh_pr_list","gh_pr_create","gh_pr_comment","gh_pr_merge","gh_actions_dispatch","gh_release_create"],engines:[],logo_glyph:"github"}},{slug:"resend",title:"Resend",description:"Send transactional email. A default recipient_domain allowlist is seeded from git config user.email — add more in the marketplace afterwards.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://resend.com/api-keys",version:null,risk_summary:"email_send is irreversible and always requires approval.",tags:["integration","email","resend"],manifest:{service_key:"resend",setup_kind:"api_key",benefit:"Unlock email_send and email_status_lookup for transactional email.",credentials:[{name:"RESEND_API_KEY",label:"API key",type:"password",placeholder:"re_…",help_url:"https://resend.com/api-keys",help_text:"Create a Resend API key.",required:!0},{name:"RESEND_FROM_EMAIL",label:"From email",type:"text",placeholder:"agent@yourdomain.com",help_url:"https://resend.com/domains",help_text:"A verified sender address on a verified Resend domain.",required:!0}],verify_endpoint:"/api/connections/resend/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["email_send","email_status_lookup"],engines:[],logo_glyph:"resend"}},{slug:"supabase",title:"Supabase",description:"Connect a Supabase project. Service role key bypasses RLS — destructive ops (supabase_rest_delete, supabase_sql) are always approval-gated.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://supabase.com/dashboard",version:null,risk_summary:"Service role key bypasses Row-Level Security. Some tools (supabase_sql) always require approval.",tags:["integration","database","supabase"],manifest:{service_key:"supabase",setup_kind:"api_key",benefit:"Unlock 7 Supabase tools: REST select/insert/upsert/update/delete, RPC, and SQL.",credentials:[{name:"SUPABASE_URL",label:"Project URL",type:"text",placeholder:"https://xxxx.supabase.co",help_url:"https://supabase.com/dashboard",help_text:"Project Settings → API → Project URL.",required:!0},{name:"SUPABASE_SERVICE_ROLE_KEY",label:"Service role key",type:"password",placeholder:"eyJ…",help_url:"https://supabase.com/dashboard",help_text:"Project Settings → API → service_role. Treat as a database password.",required:!1},{name:"SUPABASE_ANON_KEY",label:"Anon key",type:"password",placeholder:"eyJ…",help_url:"https://supabase.com/dashboard",help_text:"Project Settings → API → anon. Used for verify when service-role is absent.",required:!1},{name:"SUPABASE_ACCESS_TOKEN",label:"Personal access token",type:"password",placeholder:"sbp_…",help_url:"https://supabase.com/dashboard/account/tokens",help_text:"Required only if you want the agent to list / manage your Supabase projects via the Management API. Distinct from the project keys above.",required:!1}],verify_endpoint:"/api/connections/supabase/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["supabase_list_projects","supabase_rest_select","supabase_rest_insert","supabase_rest_upsert","supabase_rest_update","supabase_rest_delete","supabase_rpc","supabase_sql"],engines:[],logo_glyph:"supabase"}},{slug:"vercel",title:"Vercel",description:"Trigger deployments and read project state. v1 saves the token without a live verify — failures surface on first call.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://vercel.com/account/tokens",version:null,risk_summary:"vercel_create_deployment is high risk and approval-gated.",tags:["integration","vercel","deploy"],manifest:{service_key:"vercel",setup_kind:"api_key",benefit:"Unlock 3 Vercel tools: list projects, list deployments, create deployment.",credentials:[{name:"VERCEL_TOKEN",label:"Access token",type:"password",placeholder:"vercel_…",help_url:"https://vercel.com/account/tokens",help_text:"Create a token scoped to the right team.",required:!0},{name:"VERCEL_TEAM_ID",label:"Team ID (optional)",type:"text",placeholder:"team_…",help_url:"https://vercel.com/teams",help_text:"Only required for team-scoped tokens.",required:!1}],verify_endpoint:"/api/connections/vercel/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["vercel_list_projects","vercel_list_deployments","vercel_create_deployment"],engines:[],logo_glyph:"vercel"}},{slug:"whatsapp",title:"WhatsApp",description:"Text the main agent like you text Hermes. Pairs a dedicated WhatsApp number via Baileys. Operations (allowlist, message log) live at /whatsapp.",category:"channel",author:"madarx",source_kind:"builtin",source_url:null,version:null,risk_summary:"Pair only a dedicated number — Baileys is an unofficial Web client; the paired account can be banned.",tags:["channel","whatsapp","messaging"],manifest:{service_key:"whatsapp",setup_kind:"qr_pair",benefit:"Receive WhatsApp messages and let the main agent reply through your number.",credentials:[],verify_endpoint:"/api/connections/whatsapp/verify",verify_supported:!0,deep_link:"/whatsapp",requires_daemon:"npm run whatsapp:bridge",supports_scopes:["global"],unlocks_tool_slugs:["whatsapp_send"],engines:[],logo_glyph:"whatsapp"}},{slug:"hermes",title:"Hermes Agent",description:"Route long-running orchestrator jobs to the local Hermes binary. Detection probes ../hermes-agent and scripts/hermes-command.py.",category:"engine",author:"madarx",source_kind:"builtin",source_url:null,version:null,risk_summary:"Local subprocess execution — Hermes jobs inherit your local env.",tags:["engine","hermes","local"],manifest:{service_key:"hermes",setup_kind:"binary_detect",benefit:"Unlock the Hermes engine and the start_hermes_job orchestrator tool.",credentials:[{name:"HERMES_AGENT_DIR",label:"Hermes agent directory (optional)",type:"text",placeholder:"/Users/you/Projects/hermes-agent",help_url:null,help_text:"Defaults to ../hermes-agent relative to this repo. Override to point at a different checkout.",required:!1}],verify_endpoint:"/api/connections/hermes/verify",verify_supported:!0,deep_link:null,supports_scopes:["global"],unlocks_tool_slugs:["start_hermes_job","send_to_hermes"],engines:["hermes"],logo_glyph:"hermes"}},d({slug:"meta-ads",title:"Meta Ads",description:"Build and report on Facebook + Instagram ad campaigns. Campaign/budget writes are always approval-gated.",category:"marketing",provider:"meta",prefix:"META",scopes:["ads_management","ads_read","business_management"],unlocks:["meta_ads.insights_read","meta_ads.campaign_create","meta_ads.adset_create","meta_ads.budget_set"],healthEndpoint:"https://graph.facebook.com/v19.0/me",risk:"Campaign create, budget set, and audience create are irreversible and always require approval.",tags:["marketing","ads","meta","oauth"]}),d({slug:"google-ads",title:"Google Ads",description:"Manage Google Ads campaigns and pull GAQL reports. Requires a developer token in addition to OAuth sign-in.",category:"marketing",provider:"google",prefix:"GOOGLE_ADS",scopes:["https://www.googleapis.com/auth/adwords"],extraCredentials:[{name:"GOOGLE_ADS_DEVELOPER_TOKEN",label:"Developer token",type:"password",required:!0,help_text:"Google Ads API access requires a developer token alongside OAuth."}],unlocks:["google_ads.report","google_ads.campaign_create","google_ads.budget_set"],healthEndpoint:"https://googleads.googleapis.com/v17/customers:listAccessibleCustomers",risk:"Campaign create and budget set are irreversible and always require approval.",tags:["marketing","ads","google","oauth"]}),d({slug:"ga4",title:"Google Analytics 4",description:"Read GA4 metrics for marketing reports. Read-only — no external writes.",category:"analytics",provider:"google",prefix:"GA4",scopes:["https://www.googleapis.com/auth/analytics.readonly"],unlocks:["ga4.run_report","ga4.realtime_report"],healthEndpoint:"https://analyticsdata.googleapis.com/v1beta/properties",risk:"Read-only analytics access.",tags:["analytics","ga4","google","oauth"]}),d({slug:"hubspot-crm",title:"HubSpot CRM",description:"Read and (with approval) write contacts, deals, and activity in HubSpot.",category:"sales",provider:"hubspot",prefix:"HUBSPOT",scopes:["crm.objects.contacts.read","crm.objects.deals.read","crm.objects.contacts.write"],unlocks:["hubspot.contacts_read","hubspot.deals_read","hubspot.contact_upsert"],healthEndpoint:"https://api.hubapi.com/crm/v3/objects/contacts",risk:"CRM writes (contact/deal upsert) require approval.",tags:["sales","crm","hubspot","oauth"]})];e.map(a=>a.slug);let f=[{slug:"web-prototype",title:"Open Design — Web Prototype",description:"Generate a complete production-quality web prototype from a brief."},{slug:"saas-landing",title:"Open Design — SaaS Landing",description:"Build a SaaS landing page with hero, features, social proof, pricing."},{slug:"dashboard",title:"Open Design — Dashboard",description:"Information-dense, hierarchy-driven dashboard scaffold."},{slug:"mobile-app",title:"Open Design — Mobile App",description:"Mobile-first product UI scaffold with touch targets and gestures."},{slug:"social-carousel",title:"Open Design — Social Carousel",description:"Editorial social carousel with platform-aware aspect ratios."},{slug:"magazine-poster",title:"Open Design — Magazine Poster",description:"Editorial magazine/poster typography with high contrast."},{slug:"deck-guizang-editorial",title:"Open Design — Editorial Deck",description:"Guizang editorial-style slide deck system."},{slug:"email-marketing",title:"Open Design — Email Marketing",description:"Transactional/marketing email scaffold with bulletproof HTML."},{slug:"design-brief",title:"Open Design — Design Brief",description:"Structured design brief used to seed the rest of the pipeline."},{slug:"design-review",title:"Open Design — Design Review",description:"Designer's eye plan review and visual QA pass."},{slug:"brand-guidelines",title:"Open Design — Brand Guidelines",description:"Distill or author a brand guidelines book."},{slug:"copywriting",title:"Open Design — Copywriting",description:"High-signal product copywriting craft notes and structure."}],g={slug:"open-design",title:"Open Design (nexu-io)",description:"Vendored design corpus from nexu-io/open-design: craft notes, 130+ skills, ~140 design systems, prompt + design templates. Apache-2.0.",category:"design",author:"nexu-io",source_kind:"github",source_url:"https://github.com/nexu-io/open-design",version:null,risk_summary:"Read-only design content. No code executes; no external writes.",tags:["design","craft","systems","templates","open-source","apache-2.0"],manifest:{item_refs:f.map(a=>`skill:open-design-${a.slug}`),published_count:f.length,license:"Apache-2.0",note:"Vendored under workspace/skills/open-design/. Re-vendor with `npm run vendor:open-design`. See NOTICE.md for attribution."}},h=[{slug:"design-shotgun",title:"Design Shotgun",description:"Generate multiple AI design variants for any UI surface, open a comparison board, and iterate from approved options.",category:"design",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Read-only ideation — no external writes.",tags:["design","mockups","exploration"],manifest:{invocation:"/design-shotgun",file_paths:["skills/design-shotgun/SKILL.md"],trigger_examples:["explore designs","show me design variants","visual brainstorm"]}},{slug:"design-review",title:"Design Review",description:"Visual QA pass on live pages: extracts the design system in use, audits hierarchy, typography, color, and spacing, and proposes fixes.",category:"design",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Read-only audit — fixes are proposed, not applied.",tags:["design","review","visual-qa"],manifest:{invocation:"/design-review",file_paths:["skills/design-review/SKILL.md"],trigger_examples:["review the design","visual QA","audit this page"]}},{slug:"qa-only",title:"QA Only",description:"Systematically QA a web app and produce a structured report with health score, screenshots, and repro steps. Never modifies code.",category:"review",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Report-only — no auto-fix.",tags:["qa","testing","report"],manifest:{invocation:"/qa-only",file_paths:["skills/qa-only/SKILL.md"],trigger_examples:["just report bugs","qa report only","test but do not fix"]}},{slug:"cso-audit",title:"CSO Audit",description:"Chief Security Officer mode: infrastructure-first security audit covering secrets archaeology, supply chain, OWASP Top 10, and threat modeling.",category:"security",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Read-only audit; never executes destructive commands.",tags:["security","audit","owasp","threat-model"],manifest:{invocation:"/cso",file_paths:["skills/cso/SKILL.md"],trigger_examples:["security audit","threat model","OWASP review"]}}],i=[{slug:"market-research",title:"Market Research",category:"research",description:"Research any market, company, or topic across the web and deliver a cited, structured brief.",tools:["web_search","web_fetch","file_write"],risk_summary:"Read-only research; writes only the report file.",tags:["research","web","brief"],invocation:"/research",trigger_examples:["research this market","competitive landscape for X","brief me on company Y"]},{slug:"competitor-watch",title:"Competitor Watch",category:"research",description:"Track competitor pricing, features, and news on a schedule and alert you when something changes.",tools:["web_fetch","web_extract","email_send"],risk_summary:"Read-only monitoring; sends a summary email.",tags:["research","monitoring","competitive"],invocation:"/watch",trigger_examples:["watch competitor pricing","alert me when X changes","track this page weekly"]},{slug:"inbox-triage",title:"Inbox Triage",category:"comms",description:"Summarize, prioritize, and draft replies across your inbox so you act on what matters first.",tools:["gmail_messages_list","gmail_thread_read","email_send"],risk_summary:"Drafts replies; sending is approval-gated.",tags:["email","inbox","comms"],invocation:"/inbox",trigger_examples:["triage my inbox","summarize unread email","draft replies"]},{slug:"meeting-scheduler",title:"Meeting Scheduler",category:"comms",description:"Find times, schedule meetings, and send invites from your calendar and email.",tools:["calendar_events_list","calendar_event_read","email_send"],risk_summary:"Proposes times; invites are approval-gated.",tags:["calendar","scheduling","comms"],invocation:"/schedule-meeting",trigger_examples:["schedule a meeting","find a time with X","book a call next week"]},{slug:"document-extract",title:"Document Extraction",category:"documents",description:"Pull structured data and key facts from PDFs, documents, and audio into clean, usable output.",tools:["file_read","transcribe_audio","file_write"],risk_summary:"Read-only extraction; writes only the output file.",tags:["documents","extraction","pdf"],invocation:"/extract",trigger_examples:["extract data from this PDF","pull the numbers from these docs","transcribe this audio"]},{slug:"report-builder",title:"Report Builder",category:"documents",description:"Turn raw data and notes into a polished, formatted report or one-pager ready to share.",tools:["file_read","file_write"],risk_summary:"Generates a document; no external writes.",tags:["documents","reporting","writing"],invocation:"/report",trigger_examples:["build a report from this data","write a one-pager","summarize into a deck outline"]},{slug:"database-query",title:"Database Q&A",category:"data",description:"Ask questions of your database in plain English and get answers, tables, and charts.",tools:["supabase_rest_select","supabase_sql"],risk_summary:"Read-only queries by default; writes are approval-gated.",tags:["data","sql","analytics"],invocation:"/ask-data",trigger_examples:["how many orders last month","query the users table","top customers by revenue"]},{slug:"spreadsheet-analysis",title:"Spreadsheet Analysis",category:"data",description:"Clean, analyze, and summarize spreadsheets and CSVs — pivots, trends, and outliers.",tools:["file_read","file_write"],risk_summary:"Local file analysis; no external writes.",tags:["data","spreadsheet","csv"],invocation:"/analyze-sheet",trigger_examples:["analyze this spreadsheet","summarize this CSV","find trends in this data"]},{slug:"web-automation",title:"Web Automation",category:"web",description:"Fill forms, extract data, and run repetitive flows in a real browser, end to end.",tools:["browser_open","browser_act","browser_extract"],risk_summary:"Browser actions are bounded and audited.",tags:["web","automation","browser"],invocation:"/automate-web",trigger_examples:["automate this form","scrape this site","run this flow for each row"]}],j=[{slug:"paid-campaign-build",title:"Paid Campaign Build",category:"marketing",description:"Structure a paid campaign — objective, audiences, ad sets, creative spec, and budget — ready for approval-gated launch.",tools:["create_artifact","web_search"],risk_summary:"Plans campaigns; every publish/budget set stays approval-gated.",tags:["marketing","ads","campaign"],invocation:"/paid-campaign",trigger_examples:["build a Meta campaign","plan a paid launch","structure ad sets"]},{slug:"ads-reporting",title:"Ads Reporting",category:"marketing",description:"Pull spend, CPA, ROAS, and reach from connected ad accounts into one weekly performance report.",tools:["create_artifact","file_write"],risk_summary:"Read-only reporting; no external writes.",tags:["marketing","ads","reporting"],invocation:"/ads-report",trigger_examples:["weekly ads report","how did campaigns perform","ROAS summary"]},{slug:"content-calendar",title:"Content Calendar",category:"content",description:"Plan a multi-channel content calendar with post drafts, captions, and a scheduled queue.",tools:["create_artifact","file_write"],risk_summary:"Drafts and schedules; every publish stays approval-gated.",tags:["content","social","calendar"],invocation:"/content-calendar",trigger_examples:["plan this month of content","build a content calendar","draft social posts"]},{slug:"lead-research",title:"Lead Research",category:"sales",description:"Build a qualified target list, enrich it, and prep a personalized outreach sequence.",tools:["web_search","web_fetch","create_artifact"],risk_summary:"Research + drafts; sequence enrollment and bulk sends are approval-gated.",tags:["sales","outreach","leads"],invocation:"/lead-research",trigger_examples:["build a target list","find leads for X","prep an outreach sequence"]},{slug:"ticket-reply",title:"Ticket Reply",category:"support",description:"Triage support tickets, draft replies in brand voice, and flag escalations.",tools:["gmail_messages_list","file_write"],risk_summary:"Drafts replies; outbound sends/status changes are approval-gated.",tags:["support","helpdesk","tickets"],invocation:"/ticket-reply",trigger_examples:["triage support tickets","draft ticket replies","escalate this ticket"]},{slug:"runway-model",title:"Runway Model",category:"finance",description:"Turn revenue/expense data into a runway model and P&L summary with scenario sensitivity.",tools:["file_read","create_artifact"],risk_summary:"Advisory analysis; any money movement is approval-gated.",tags:["finance","runway","modeling"],invocation:"/runway",trigger_examples:["model our runway","P&L summary","how many months of cash"]}],k=[{slug:"gstack",title:"gstack",description:'"Senior engineering team in your terminal." 8 power tools + a stack of specialist skills for design, QA, review, security, and shipping. MIT licensed.',category:"engineering",author:"garrytan",source_kind:"builtin",source_url:"https://github.com/garrytan/gstack",version:null,risk_summary:"Mixed-risk bundle: includes read-only review skills and write-capable workflows (e.g. /ship runs git push). Per-item risk surfaces in Phase 2 when install is wired up.",tags:["engineering","skills-pack","mit"],manifest:{item_refs:["skill:design-shotgun","skill:design-review","skill:qa-only","skill:cso-audit"],published_count:4,license:"MIT",note:"Agent personas in this bundle will surface in the Agent Marketplace when it ships."}}];function l(a,b,c){let d=a.prepare("SELECT id FROM marketplace_items WHERE kind=? AND slug=?").get(b,c.slug),e=d?.id||`${b}:${c.slug}`,f=c.manifest?JSON.stringify(c.manifest):null,g=c.tags?JSON.stringify(c.tags):null;if(d)a.prepare(`
|
|
1299
|
+
Return ONLY corrected JSON in a \`\`\`json fence that matches the schema. No other text.`;try{h=await l({engine:a,model:b,systemPrompt:j,userMessage:m,max_tokens:f},i)}catch(a){k=`engine error: ${a?.message||String(a)}`;continue}let n=function(a){let b=String(a||"");if(!b.trim())return null;let c=b.match(/```json\s*([\s\S]*?)```/i)||b.match(/```\s*([\s\S]*?)```/),d=c?c[1]:null;if(!d){let a=b.indexOf("{"),c=b.lastIndexOf("}");a>=0&&c>a&&(d=b.slice(a,c+1))}if(!d)return null;try{let a=JSON.parse(d.trim());return a&&"object"==typeof a?a:null}catch{return null}}(h);if(!n){k="no parseable JSON object found in the response";continue}let{ok:o,errors:p}=(0,g.S)(n,c);if(!o){k=`schema validation failed: ${p.join("; ")}`;continue}return n}throw Error(`authorJson(${h}): ${a} failed to produce valid JSON after 3 attempts. Last error: ${k}`)}async function l({engine:a,model:b,systemPrompt:c,userMessage:d,max_tokens:e},f){return"ollama"===a?f.runOllama({model:b,systemPrompt:c,userMessage:d,maxTokens:e}):"codex"===a?f.runCodex({systemPrompt:c,userMessage:d}):f.runClaudeCode({model:b,systemPrompt:c,userMessage:d})}[e,f]=h.then?(await h)():h,d()}catch(a){d(a)}})},69942:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextURL",{enumerable:!0,get:function(){return k}});let d=c(71136),e=c(7757),f=c(57100),g=c(38526),h=/(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)/;function i(a,b){return new URL(String(a).replace(h,"localhost"),b&&String(b).replace(h,"localhost"))}let j=Symbol("NextURLInternal");class k{constructor(a,b,c){let d,e;"object"==typeof b&&"pathname"in b||"string"==typeof b?(d=b,e=c||{}):e=c||b||{},this[j]={url:i(a,d??e.base),options:e,basePath:""},this.analyze()}analyze(){var a,b,c,e,h;let i=(0,g.getNextPathnameInfo)(this[j].url.pathname,{nextConfig:this[j].options.nextConfig,parseData:!0,i18nProvider:this[j].options.i18nProvider}),k=(0,f.getHostname)(this[j].url,this[j].options.headers);this[j].domainLocale=this[j].options.i18nProvider?this[j].options.i18nProvider.detectDomainLocale(k):(0,d.detectDomainLocale)(null==(b=this[j].options.nextConfig)||null==(a=b.i18n)?void 0:a.domains,k);let l=(null==(c=this[j].domainLocale)?void 0:c.defaultLocale)||(null==(h=this[j].options.nextConfig)||null==(e=h.i18n)?void 0:e.defaultLocale);this[j].url.pathname=i.pathname,this[j].defaultLocale=l,this[j].basePath=i.basePath??"",this[j].buildId=i.buildId,this[j].locale=i.locale??l,this[j].trailingSlash=i.trailingSlash}formatPathname(){return(0,e.formatNextPathnameInfo)({basePath:this[j].basePath,buildId:this[j].buildId,defaultLocale:this[j].options.forceLocale?void 0:this[j].defaultLocale,locale:this[j].locale,pathname:this[j].url.pathname,trailingSlash:this[j].trailingSlash})}formatSearch(){return this[j].url.search}get buildId(){return this[j].buildId}set buildId(a){this[j].buildId=a}get locale(){return this[j].locale??""}set locale(a){var b,c;if(!this[j].locale||!(null==(c=this[j].options.nextConfig)||null==(b=c.i18n)?void 0:b.locales.includes(a)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${a}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[j].locale=a}get defaultLocale(){return this[j].defaultLocale}get domainLocale(){return this[j].domainLocale}get searchParams(){return this[j].url.searchParams}get host(){return this[j].url.host}set host(a){this[j].url.host=a}get hostname(){return this[j].url.hostname}set hostname(a){this[j].url.hostname=a}get port(){return this[j].url.port}set port(a){this[j].url.port=a}get protocol(){return this[j].url.protocol}set protocol(a){this[j].url.protocol=a}get href(){let a=this.formatPathname(),b=this.formatSearch();return`${this.protocol}//${this.host}${a}${b}${this.hash}`}set href(a){this[j].url=i(a),this.analyze()}get origin(){return this[j].url.origin}get pathname(){return this[j].url.pathname}set pathname(a){this[j].url.pathname=a}get hash(){return this[j].url.hash}set hash(a){this[j].url.hash=a}get search(){return this[j].url.search}set search(a){this[j].url.search=a}get password(){return this[j].url.password}set password(a){this[j].url.password=a}get username(){return this[j].url.username}set username(a){this[j].url.username=a}get basePath(){return this[j].basePath}set basePath(a){this[j].basePath=a.startsWith("/")?a:`/${a}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new k(String(this),this[j].options)}}},70761:(a,b,c)=>{"use strict";c.d(b,{yt:()=>av});var d={};c.r(d),c.d(d,{attentionMarkers:()=>as,contentInitial:()=>am,disable:()=>at,document:()=>al,flow:()=>ao,flowInitial:()=>an,insideSpan:()=>ar,string:()=>ap,text:()=>aq});let e={AElig:"\xc6",AMP:"&",Aacute:"\xc1",Abreve:"Ă",Acirc:"\xc2",Acy:"А",Afr:"\uD835\uDD04",Agrave:"\xc0",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"\uD835\uDD38",ApplyFunction:"",Aring:"\xc5",Ascr:"\uD835\uDC9C",Assign:"≔",Atilde:"\xc3",Auml:"\xc4",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"\uD835\uDD05",Bopf:"\uD835\uDD39",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COPY:"\xa9",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedil:"\xc7",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"\xb8",CenterDot:"\xb7",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"\uD835\uDC9E",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"\uD835\uDD07",DiacriticalAcute:"\xb4",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"\uD835\uDD3B",Dot:"\xa8",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"\xa8",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"\uD835\uDC9F",Dstrok:"Đ",ENG:"Ŋ",ETH:"\xd0",Eacute:"\xc9",Ecaron:"Ě",Ecirc:"\xca",Ecy:"Э",Edot:"Ė",Efr:"\uD835\uDD08",Egrave:"\xc8",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"\uD835\uDD3C",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Euml:"\xcb",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"\uD835\uDD09",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"\uD835\uDD3D",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"\uD835\uDD0A",Gg:"⋙",Gopf:"\uD835\uDD3E",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"\uD835\uDCA2",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"\xcd",Icirc:"\xce",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrave:"\xcc",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"",InvisibleTimes:"",Iogon:"Į",Iopf:"\uD835\uDD40",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"\xcf",Jcirc:"Ĵ",Jcy:"Й",Jfr:"\uD835\uDD0D",Jopf:"\uD835\uDD41",Jscr:"\uD835\uDCA5",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"\uD835\uDD0E",Kopf:"\uD835\uDD42",Kscr:"\uD835\uDCA6",LJcy:"Љ",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"\uD835\uDD0F",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"\uD835\uDD43",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"\uD835\uDD10",MinusPlus:"∓",Mopf:"\uD835\uDD44",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"",NegativeThickSpace:"",NegativeThinSpace:"",NegativeVeryThinSpace:"",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"\uD835\uDD11",NoBreak:"",NonBreakingSpace:"\xa0",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"\uD835\uDCA9",Ntilde:"\xd1",Nu:"Ν",OElig:"Œ",Oacute:"\xd3",Ocirc:"\xd4",Ocy:"О",Odblac:"Ő",Ofr:"\uD835\uDD12",Ograve:"\xd2",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"\uD835\uDD46",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"\uD835\uDCAA",Oslash:"\xd8",Otilde:"\xd5",Otimes:"⨷",Ouml:"\xd6",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"\uD835\uDD13",Phi:"Φ",Pi:"Π",PlusMinus:"\xb1",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"\uD835\uDCAB",Psi:"Ψ",QUOT:'"',Qfr:"\uD835\uDD14",Qopf:"ℚ",Qscr:"\uD835\uDCAC",RBarr:"⤐",REG:"\xae",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"\uD835\uDD16",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"\uD835\uDD4A",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"\uD835\uDCAE",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THORN:"\xde",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:" ",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"\uD835\uDD17",Therefore:"∴",Theta:"Θ",ThickSpace:" ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"\uD835\uDD4B",TripleDot:"⃛",Tscr:"\uD835\uDCAF",Tstrok:"Ŧ",Uacute:"\xda",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"\xdb",Ucy:"У",Udblac:"Ű",Ufr:"\uD835\uDD18",Ugrave:"\xd9",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"\uD835\uDD4C",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"\uD835\uDCB0",Utilde:"Ũ",Uuml:"\xdc",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"\uD835\uDD19",Vopf:"\uD835\uDD4D",Vscr:"\uD835\uDCB1",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"\uD835\uDD1A",Wopf:"\uD835\uDD4E",Wscr:"\uD835\uDCB2",Xfr:"\uD835\uDD1B",Xi:"Ξ",Xopf:"\uD835\uDD4F",Xscr:"\uD835\uDCB3",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"\xdd",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"\uD835\uDD1C",Yopf:"\uD835\uDD50",Yscr:"\uD835\uDCB4",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"\uD835\uDCB5",aacute:"\xe1",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acirc:"\xe2",acute:"\xb4",acy:"а",aelig:"\xe6",af:"",afr:"\uD835\uDD1E",agrave:"\xe0",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"\xc5",angzarr:"⍼",aogon:"ą",aopf:"\uD835\uDD52",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",aring:"\xe5",ascr:"\uD835\uDCB6",ast:"*",asymp:"≈",asympeq:"≍",atilde:"\xe3",auml:"\xe4",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"\uD835\uDD1F",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"\uD835\uDD53",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvbar:"\xa6",bscr:"\uD835\uDCB7",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedil:"\xe7",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedil:"\xb8",cemptyv:"⦲",cent:"\xa2",centerdot:"\xb7",cfr:"\uD835\uDD20",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"\xae",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"\uD835\uDD54",coprod:"∐",copy:"\xa9",copysr:"℗",crarr:"↵",cross:"✗",cscr:"\uD835\uDCB8",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"\xa4",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",deg:"\xb0",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"\uD835\uDD21",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"\xa8",digamma:"ϝ",disin:"⋲",div:"\xf7",divide:"\xf7",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"\uD835\uDD55",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"\uD835\uDCB9",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacute:"\xe9",easter:"⩮",ecaron:"ě",ecir:"≖",ecirc:"\xea",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"\uD835\uDD22",eg:"⪚",egrave:"\xe8",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"\uD835\uDD56",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",eth:"\xf0",euml:"\xeb",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"\uD835\uDD23",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"\uD835\uDD57",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"\xbd",frac13:"⅓",frac14:"\xbc",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"\xbe",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"\uD835\uDCBB",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"\uD835\uDD24",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"\uD835\uDD58",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"\xbd",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"\uD835\uDD25",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"\uD835\uDD59",horbar:"―",hscr:"\uD835\uDCBD",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacute:"\xed",ic:"",icirc:"\xee",icy:"и",iecy:"е",iexcl:"\xa1",iff:"⇔",ifr:"\uD835\uDD26",igrave:"\xec",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"\uD835\uDD5A",iota:"ι",iprod:"⨼",iquest:"\xbf",iscr:"\uD835\uDCBE",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"",itilde:"ĩ",iukcy:"і",iuml:"\xef",jcirc:"ĵ",jcy:"й",jfr:"\uD835\uDD27",jmath:"ȷ",jopf:"\uD835\uDD5B",jscr:"\uD835\uDCBF",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"\uD835\uDD28",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"\uD835\uDD5C",kscr:"\uD835\uDCC0",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laquo:"\xab",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"\uD835\uDD29",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"\uD835\uDD5D",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"",lrtri:"⊿",lsaquo:"‹",lscr:"\uD835\uDCC1",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"\xaf",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"\uD835\uDD2A",mho:"℧",micro:"\xb5",mid:"∣",midast:"*",midcir:"⫰",middot:"\xb7",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"\uD835\uDD5E",mp:"∓",mscr:"\uD835\uDCC2",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:"\xa0",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"\uD835\uDD2B",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"\uD835\uDD5F",not:"\xac",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"\uD835\uDCC3",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"\xf1",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacute:"\xf3",oast:"⊛",ocir:"⊚",ocirc:"\xf4",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"\uD835\uDD2C",ogon:"˛",ograve:"\xf2",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"\uD835\uDD60",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"\xaa",ordm:"\xba",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslash:"\xf8",osol:"⊘",otilde:"\xf5",otimes:"⊗",otimesas:"⨶",ouml:"\xf6",ovbar:"⌽",par:"∥",para:"\xb6",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"\uD835\uDD2D",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusmn:"\xb1",plussim:"⨦",plustwo:"⨧",pm:"\xb1",pointint:"⨕",popf:"\uD835\uDD61",pound:"\xa3",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"\uD835\uDCC5",psi:"ψ",puncsp:" ",qfr:"\uD835\uDD2E",qint:"⨌",qopf:"\uD835\uDD62",qprime:"⁗",qscr:"\uD835\uDCC6",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"\xbb",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"\xae",rfisht:"⥽",rfloor:"⌋",rfr:"\uD835\uDD2F",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"\uD835\uDD63",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"\uD835\uDCC7",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sect:"\xa7",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"\uD835\uDD30",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",shy:"\xad",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"\uD835\uDD64",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"\uD835\uDCC8",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"\xaf",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",sup:"⊃",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"\xdf",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"\uD835\uDD31",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thorn:"\xfe",tilde:"˜",times:"\xd7",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"\uD835\uDD65",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"\uD835\uDCC9",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacute:"\xfa",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucirc:"\xfb",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"\uD835\uDD32",ugrave:"\xf9",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uml:"\xa8",uogon:"ų",uopf:"\uD835\uDD66",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"\uD835\uDCCA",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"\xfc",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"\uD835\uDD33",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"\uD835\uDD67",vprop:"∝",vrtri:"⊳",vscr:"\uD835\uDCCB",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"\uD835\uDD34",wopf:"\uD835\uDD68",wp:"℘",wr:"≀",wreath:"≀",wscr:"\uD835\uDCCC",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"\uD835\uDD35",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"\uD835\uDD69",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"\uD835\uDCCD",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"\xfd",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"\xa5",yfr:"\uD835\uDD36",yicy:"ї",yopf:"\uD835\uDD6A",yscr:"\uD835\uDCCE",yucy:"ю",yuml:"\xff",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"\uD835\uDD37",zhcy:"ж",zigrarr:"⇝",zopf:"\uD835\uDD6B",zscr:"\uD835\uDCCF",zwj:"",zwnj:""},f={}.hasOwnProperty;function g(a){return!!f.call(e,a)&&e[a]}var h=c(87301),i=c(74467),j=c(60951),k=c(56534),l=c(13633);let m={}.hasOwnProperty,n=/^(https?|ircs?|mailto|xmpp)$/i,o=/^https?$/i;var p=c(40623),q=c(8512);let r={tokenize:function(a){let b,c=a.attempt(this.parser.constructs.contentInitial,function(b){return null===b?void a.consume(b):(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),(0,p.N)(a,c,"linePrefix"))},function(c){return a.enter("paragraph"),function c(d){let e=a.enter("chunkText",{contentType:"text",previous:b});return b&&(b.next=e),b=e,function b(d){if(null===d){a.exit("chunkText"),a.exit("paragraph"),a.consume(d);return}return(0,q.HP)(d)?(a.consume(d),a.exit("chunkText"),c):(a.consume(d),b)}(d)}(c)});return c}},s={tokenize:function(a){let b,c,d,e=this,f=[],g=0;return i;function i(b){if(g<f.length){let c=f[g];return e.containerState=c[1],a.attempt(c[0].continuation,j,k)(b)}return k(b)}function j(a){if(g++,e.containerState._closeFlow){let c;e.containerState._closeFlow=void 0,b&&u();let d=e.events.length,f=d;for(;f--;)if("exit"===e.events[f][0]&&"chunkFlow"===e.events[f][1].type){c=e.events[f][1].end;break}s(g);let i=d;for(;i<e.events.length;)e.events[i][1].end={...c},i++;return(0,h.m)(e.events,f+1,0,e.events.slice(d)),e.events.length=i,k(a)}return i(a)}function k(c){if(g===f.length){if(!b)return n(c);if(b.currentConstruct&&b.currentConstruct.concrete)return p(c);e.interrupt=!!(b.currentConstruct&&!b._gfmTableDynamicInterruptHack)}return e.containerState={},a.check(t,l,m)(c)}function l(a){return b&&u(),s(g),n(a)}function m(a){return e.parser.lazy[e.now().line]=g!==f.length,d=e.now().offset,p(a)}function n(b){return e.containerState={},a.attempt(t,o,p)(b)}function o(a){return g++,f.push([e.currentConstruct,e.containerState]),n(a)}function p(d){if(null===d){b&&u(),s(0),a.consume(d);return}return b=b||e.parser.flow(e.now()),a.enter("chunkFlow",{_tokenizer:b,contentType:"flow",previous:c}),function b(c){if(null===c){r(a.exit("chunkFlow"),!0),s(0),a.consume(c);return}return(0,q.HP)(c)?(a.consume(c),r(a.exit("chunkFlow")),g=0,e.interrupt=void 0,i):(a.consume(c),b)}(d)}function r(a,f){let i=e.sliceStream(a);if(f&&i.push(null),a.previous=c,c&&(c.next=a),c=a,b.defineSkip(a.start),b.write(i),e.parser.lazy[a.start.line]){let a,c,f=b.events.length;for(;f--;)if(b.events[f][1].start.offset<d&&(!b.events[f][1].end||b.events[f][1].end.offset>d))return;let i=e.events.length,j=i;for(;j--;)if("exit"===e.events[j][0]&&"chunkFlow"===e.events[j][1].type){if(a){c=e.events[j][1].end;break}a=!0}for(s(g),f=i;f<e.events.length;)e.events[f][1].end={...c},f++;(0,h.m)(e.events,j+1,0,e.events.slice(i)),e.events.length=f}}function s(b){let c=f.length;for(;c-- >b;){let b=f[c];e.containerState=b[1],b[0].exit.call(e,a)}f.length=b}function u(){b.write([null]),c=void 0,b=void 0,e.containerState._closeFlow=void 0}}},t={tokenize:function(a,b,c){return(0,p.N)(a,a.attempt(this.parser.constructs.document,b,c),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};var u=c(15675);class v{constructor(a){this.left=a?[...a]:[],this.right=[]}get(a){if(a<0||a>=this.left.length+this.right.length)throw RangeError("Cannot access index `"+a+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return a<this.left.length?this.left[a]:this.right[this.right.length-a+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(a,b){let c=null==b?1/0:b;return c<this.left.length?this.left.slice(a,c):a>this.left.length?this.right.slice(this.right.length-c+this.left.length,this.right.length-a+this.left.length).reverse():this.left.slice(a).concat(this.right.slice(this.right.length-c+this.left.length).reverse())}splice(a,b,c){this.setCursor(Math.trunc(a));let d=this.right.splice(this.right.length-(b||0),1/0);return c&&w(this.left,c),d.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(a){this.setCursor(1/0),this.left.push(a)}pushMany(a){this.setCursor(1/0),w(this.left,a)}unshift(a){this.setCursor(0),this.right.push(a)}unshiftMany(a){this.setCursor(0),w(this.right,a.reverse())}setCursor(a){if(a!==this.left.length&&(!(a>this.left.length)||0!==this.right.length)&&(!(a<0)||0!==this.left.length))if(a<this.left.length){let b=this.left.splice(a,1/0);w(this.right,b.reverse())}else{let b=this.right.splice(this.left.length+this.right.length-a,1/0);w(this.left,b.reverse())}}}function w(a,b){let c=0;if(b.length<1e4)a.push(...b);else for(;c<b.length;)a.push(...b.slice(c,c+1e4)),c+=1e4}function x(a){let b,c,d,e,f,g,i,j={},k=-1,l=new v(a);for(;++k<l.length;){for(;k in j;)k=j[k];if(b=l.get(k),k&&"chunkFlow"===b[1].type&&"listItemPrefix"===l.get(k-1)[1].type&&((d=0)<(g=b[1]._tokenizer.events).length&&"lineEndingBlank"===g[d][1].type&&(d+=2),d<g.length&&"content"===g[d][1].type))for(;++d<g.length&&"content"!==g[d][1].type;)"chunkText"===g[d][1].type&&(g[d][1]._isInFirstContentOfListItem=!0,d++);if("enter"===b[0])b[1].contentType&&(Object.assign(j,function(a,b){let c,d,e=a.get(b)[1],f=a.get(b)[2],g=b-1,h=[],i=e._tokenizer;!i&&(i=f.parser[e.contentType](e.start),e._contentTypeTextTrailing&&(i._contentTypeTextTrailing=!0));let j=i.events,k=[],l={},m=-1,n=e,o=0,p=0,q=[0];for(;n;){for(;a.get(++g)[1]!==n;);h.push(g),!n._tokenizer&&(c=f.sliceStream(n),n.next||c.push(null),d&&i.defineSkip(n.start),n._isInFirstContentOfListItem&&(i._gfmTasklistFirstContentOfListItem=!0),i.write(c),n._isInFirstContentOfListItem&&(i._gfmTasklistFirstContentOfListItem=void 0)),d=n,n=n.next}for(n=e;++m<j.length;)"exit"===j[m][0]&&"enter"===j[m-1][0]&&j[m][1].type===j[m-1][1].type&&j[m][1].start.line!==j[m][1].end.line&&(p=m+1,q.push(p),n._tokenizer=void 0,n.previous=void 0,n=n.next);for(i.events=[],n?(n._tokenizer=void 0,n.previous=void 0):q.pop(),m=q.length;m--;){let b=j.slice(q[m],q[m+1]),c=h.pop();k.push([c,c+b.length-1]),a.splice(c,2,b)}for(k.reverse(),m=-1;++m<k.length;)l[o+k[m][0]]=o+k[m][1],o+=k[m][1]-k[m][0]-1;return l}(l,k)),k=j[k],i=!0);else if(b[1]._container){for(d=k,c=void 0;d--;)if("lineEnding"===(e=l.get(d))[1].type||"lineEndingBlank"===e[1].type)"enter"===e[0]&&(c&&(l.get(c)[1].type="lineEndingBlank"),e[1].type="lineEnding",c=d);else if("linePrefix"===e[1].type||"listItemIndent"===e[1].type);else break;c&&(b[1].end={...l.get(c)[1].start},(f=l.slice(c,k)).unshift(b),l.splice(c,k-c+1,f))}}return(0,h.m)(a,0,1/0,l.slice(0)),!i}let y={resolve:function(a){return x(a),a},tokenize:function(a,b){let c;return function(b){return a.enter("content"),c=a.enter("chunkContent",{contentType:"content"}),d(b)};function d(b){return null===b?e(b):(0,q.HP)(b)?a.check(z,f,e)(b):(a.consume(b),d)}function e(c){return a.exit("chunkContent"),a.exit("content"),b(c)}function f(b){return a.consume(b),a.exit("chunkContent"),c.next=a.enter("chunkContent",{contentType:"content",previous:c}),c=c.next,d}}},z={partial:!0,tokenize:function(a,b,c){let d=this;return function(b){return a.exit("chunkContent"),a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),(0,p.N)(a,e,"linePrefix")};function e(e){if(null===e||(0,q.HP)(e))return c(e);let f=d.events[d.events.length-1];return!d.parser.constructs.disable.null.includes("codeIndented")&&f&&"linePrefix"===f[1].type&&f[2].sliceSerialize(f[1],!0).length>=4?b(e):a.interrupt(d.parser.constructs.flow,c,b)(e)}}},A={tokenize:function(a){let b=this,c=a.attempt(u.B,function(d){return null===d?void a.consume(d):(a.enter("lineEndingBlank"),a.consume(d),a.exit("lineEndingBlank"),b.currentConstruct=void 0,c)},a.attempt(this.parser.constructs.flowInitial,d,(0,p.N)(a,a.attempt(this.parser.constructs.flow,d,a.attempt(y,d)),"linePrefix")));return c;function d(d){return null===d?void a.consume(d):(a.enter("lineEnding"),a.consume(d),a.exit("lineEnding"),b.currentConstruct=void 0,c)}}},B={resolveAll:F()},C=E("string"),D=E("text");function E(a){return{resolveAll:F("text"===a?G:void 0),tokenize:function(b){let c=this,d=this.parser.constructs[a],e=b.attempt(d,f,g);return f;function f(a){return i(a)?e(a):g(a)}function g(a){return null===a?void b.consume(a):(b.enter("data"),b.consume(a),h)}function h(a){return i(a)?(b.exit("data"),e(a)):(b.consume(a),h)}function i(a){if(null===a)return!0;let b=d[a],e=-1;if(b)for(;++e<b.length;){let a=b[e];if(!a.previous||a.previous.call(c,c.previous))return!0}return!1}}}}function F(a){return function(b,c){let d,e=-1;for(;++e<=b.length;)void 0===d?b[e]&&"data"===b[e][1].type&&(d=e,e++):b[e]&&"data"===b[e][1].type||(e!==d+2&&(b[d][1].end=b[e-1][1].end,b.splice(d+2,e-d-2),e=d+2),d=void 0);return a?a(b,c):b}}function G(a,b){let c=0;for(;++c<=a.length;)if((c===a.length||"lineEnding"===a[c][1].type)&&"data"===a[c-1][1].type){let d,e=a[c-1][1],f=b.sliceStream(e),g=f.length,h=-1,i=0;for(;g--;){let a=f[g];if("string"==typeof a){for(h=a.length;32===a.charCodeAt(h-1);)i++,h--;if(h)break;h=-1}else if(-2===a)d=!0,i++;else if(-1===a);else{g++;break}}if(b._contentTypeTextTrailing&&c===a.length&&(i=0),i){let f={type:c===a.length||d||i<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:g?h:e.start._bufferIndex+h,_index:e.start._index+g,line:e.end.line,column:e.end.column-i,offset:e.end.offset-i},end:{...e.end}};e.end={...f.start},e.start.offset===e.end.offset?Object.assign(e,f):(a.splice(c,0,["enter",f,b],["exit",f,b]),c+=2)}c++}return a}let H={name:"thematicBreak",tokenize:function(a,b,c){let d,e=0;return function(f){var g;return a.enter("thematicBreak"),d=g=f,function f(g){return g===d?(a.enter("thematicBreakSequence"),function b(c){return c===d?(a.consume(c),e++,b):(a.exit("thematicBreakSequence"),(0,q.On)(c)?(0,p.N)(a,f,"whitespace")(c):f(c))}(g)):e>=3&&(null===g||(0,q.HP)(g))?(a.exit("thematicBreak"),b(g)):c(g)}(g)}}},I={continuation:{tokenize:function(a,b,c){let d=this;return d.containerState._closeFlow=void 0,a.check(u.B,function(c){return d.containerState.furtherBlankLines=d.containerState.furtherBlankLines||d.containerState.initialBlankLine,(0,p.N)(a,b,"listItemIndent",d.containerState.size+1)(c)},function(c){return d.containerState.furtherBlankLines||!(0,q.On)(c)?(d.containerState.furtherBlankLines=void 0,d.containerState.initialBlankLine=void 0,e(c)):(d.containerState.furtherBlankLines=void 0,d.containerState.initialBlankLine=void 0,a.attempt(K,b,e)(c))});function e(e){return d.containerState._closeFlow=!0,d.interrupt=void 0,(0,p.N)(a,a.attempt(I,b,c),"linePrefix",d.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(e)}}},exit:function(a){a.exit(this.containerState.type)},name:"list",tokenize:function(a,b,c){let d=this,e=d.events[d.events.length-1],f=e&&"linePrefix"===e[1].type?e[2].sliceSerialize(e[1],!0).length:0,g=0;return function(b){let e=d.containerState.type||(42===b||43===b||45===b?"listUnordered":"listOrdered");if("listUnordered"===e?!d.containerState.marker||b===d.containerState.marker:(0,q.BM)(b)){if(d.containerState.type||(d.containerState.type=e,a.enter(e,{_container:!0})),"listUnordered"===e)return a.enter("listItemPrefix"),42===b||45===b?a.check(H,c,h)(b):h(b);if(!d.interrupt||49===b)return a.enter("listItemPrefix"),a.enter("listItemValue"),function b(e){return(0,q.BM)(e)&&++g<10?(a.consume(e),b):(!d.interrupt||g<2)&&(d.containerState.marker?e===d.containerState.marker:41===e||46===e)?(a.exit("listItemValue"),h(e)):c(e)}(b)}return c(b)};function h(b){return a.enter("listItemMarker"),a.consume(b),a.exit("listItemMarker"),d.containerState.marker=d.containerState.marker||b,a.check(u.B,d.interrupt?c:i,a.attempt(J,k,j))}function i(a){return d.containerState.initialBlankLine=!0,f++,k(a)}function j(b){return(0,q.On)(b)?(a.enter("listItemPrefixWhitespace"),a.consume(b),a.exit("listItemPrefixWhitespace"),k):c(b)}function k(c){return d.containerState.size=f+d.sliceSerialize(a.exit("listItemPrefix"),!0).length,b(c)}}},J={partial:!0,tokenize:function(a,b,c){let d=this;return(0,p.N)(a,function(a){let e=d.events[d.events.length-1];return!(0,q.On)(a)&&e&&"listItemPrefixWhitespace"===e[1].type?b(a):c(a)},"listItemPrefixWhitespace",d.parser.constructs.disable.null.includes("codeIndented")?void 0:5)}},K={partial:!0,tokenize:function(a,b,c){let d=this;return(0,p.N)(a,function(a){let e=d.events[d.events.length-1];return e&&"listItemIndent"===e[1].type&&e[2].sliceSerialize(e[1],!0).length===d.containerState.size?b(a):c(a)},"listItemIndent",d.containerState.size+1)}},L={continuation:{tokenize:function(a,b,c){let d=this;return function(b){return(0,q.On)(b)?(0,p.N)(a,e,"linePrefix",d.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(b):e(b)};function e(d){return a.attempt(L,b,c)(d)}}},exit:function(a){a.exit("blockQuote")},name:"blockQuote",tokenize:function(a,b,c){let d=this;return function(b){if(62===b){let c=d.containerState;return c.open||(a.enter("blockQuote",{_container:!0}),c.open=!0),a.enter("blockQuotePrefix"),a.enter("blockQuoteMarker"),a.consume(b),a.exit("blockQuoteMarker"),e}return c(b)};function e(c){return(0,q.On)(c)?(a.enter("blockQuotePrefixWhitespace"),a.consume(c),a.exit("blockQuotePrefixWhitespace"),a.exit("blockQuotePrefix"),b):(a.exit("blockQuotePrefix"),b(c))}}};function M(a,b,c,d,e,f,g,h,i){let j=i||1/0,k=0;return function(b){return 60===b?(a.enter(d),a.enter(e),a.enter(f),a.consume(b),a.exit(f),l):null===b||32===b||41===b||(0,q.JQ)(b)?c(b):(a.enter(d),a.enter(g),a.enter(h),a.enter("chunkString",{contentType:"string"}),o(b))};function l(c){return 62===c?(a.enter(f),a.consume(c),a.exit(f),a.exit(e),a.exit(d),b):(a.enter(h),a.enter("chunkString",{contentType:"string"}),m(c))}function m(b){return 62===b?(a.exit("chunkString"),a.exit(h),l(b)):null===b||60===b||(0,q.HP)(b)?c(b):(a.consume(b),92===b?n:m)}function n(b){return 60===b||62===b||92===b?(a.consume(b),m):m(b)}function o(e){return!k&&(null===e||41===e||(0,q.Ee)(e))?(a.exit("chunkString"),a.exit(h),a.exit(g),a.exit(d),b(e)):k<j&&40===e?(a.consume(e),k++,o):41===e?(a.consume(e),k--,o):null===e||32===e||40===e||(0,q.JQ)(e)?c(e):(a.consume(e),92===e?p:o)}function p(b){return 40===b||41===b||92===b?(a.consume(b),o):o(b)}}function N(a,b,c,d,e,f){let g,h=this,i=0;return function(b){return a.enter(d),a.enter(e),a.consume(b),a.exit(e),a.enter(f),j};function j(l){return i>999||null===l||91===l||93===l&&!g||94===l&&!i&&"_hiddenFootnoteSupport"in h.parser.constructs?c(l):93===l?(a.exit(f),a.enter(e),a.consume(l),a.exit(e),a.exit(d),b):(0,q.HP)(l)?(a.enter("lineEnding"),a.consume(l),a.exit("lineEnding"),j):(a.enter("chunkString",{contentType:"string"}),k(l))}function k(b){return null===b||91===b||93===b||(0,q.HP)(b)||i++>999?(a.exit("chunkString"),j(b)):(a.consume(b),g||(g=!(0,q.On)(b)),92===b?l:k)}function l(b){return 91===b||92===b||93===b?(a.consume(b),i++,k):k(b)}}function O(a,b,c,d,e,f){let g;return function(b){return 34===b||39===b||40===b?(a.enter(d),a.enter(e),a.consume(b),a.exit(e),g=40===b?41:b,h):c(b)};function h(c){return c===g?(a.enter(e),a.consume(c),a.exit(e),a.exit(d),b):(a.enter(f),i(c))}function i(b){return b===g?(a.exit(f),h(g)):null===b?c(b):(0,q.HP)(b)?(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),(0,p.N)(a,i,"linePrefix")):(a.enter("chunkString",{contentType:"string"}),j(b))}function j(b){return b===g||null===b||(0,q.HP)(b)?(a.exit("chunkString"),i(b)):(a.consume(b),92===b?k:j)}function k(b){return b===g||92===b?(a.consume(b),j):j(b)}}function P(a,b){let c;return function d(e){return(0,q.HP)(e)?(a.enter("lineEnding"),a.consume(e),a.exit("lineEnding"),c=!0,d):(0,q.On)(e)?(0,p.N)(a,d,c?"linePrefix":"lineSuffix")(e):b(e)}}let Q={partial:!0,tokenize:function(a,b,c){return function(b){return(0,q.Ee)(b)?P(a,d)(b):c(b)};function d(b){return O(a,e,c,"definitionTitle","definitionTitleMarker","definitionTitleString")(b)}function e(b){return(0,q.On)(b)?(0,p.N)(a,f,"whitespace")(b):f(b)}function f(a){return null===a||(0,q.HP)(a)?b(a):c(a)}}},R={name:"codeIndented",tokenize:function(a,b,c){let d=this;return function(b){return a.enter("codeIndented"),(0,p.N)(a,e,"linePrefix",5)(b)};function e(b){let e=d.events[d.events.length-1];return e&&"linePrefix"===e[1].type&&e[2].sliceSerialize(e[1],!0).length>=4?function b(c){return null===c?f(c):(0,q.HP)(c)?a.attempt(S,b,f)(c):(a.enter("codeFlowValue"),function c(d){return null===d||(0,q.HP)(d)?(a.exit("codeFlowValue"),b(d)):(a.consume(d),c)}(c))}(b):c(b)}function f(c){return a.exit("codeIndented"),b(c)}}},S={partial:!0,tokenize:function(a,b,c){let d=this;return e;function e(b){return d.parser.lazy[d.now().line]?c(b):(0,q.HP)(b)?(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),e):(0,p.N)(a,f,"linePrefix",5)(b)}function f(a){let f=d.events[d.events.length-1];return f&&"linePrefix"===f[1].type&&f[2].sliceSerialize(f[1],!0).length>=4?b(a):(0,q.HP)(a)?e(a):c(a)}}},T={name:"setextUnderline",resolveTo:function(a,b){let c,d,e,f=a.length;for(;f--;)if("enter"===a[f][0]){if("content"===a[f][1].type){c=f;break}"paragraph"===a[f][1].type&&(d=f)}else"content"===a[f][1].type&&a.splice(f,1),e||"definition"!==a[f][1].type||(e=f);let g={type:"setextHeading",start:{...a[c][1].start},end:{...a[a.length-1][1].end}};return a[d][1].type="setextHeadingText",e?(a.splice(d,0,["enter",g,b]),a.splice(e+1,0,["exit",a[c][1],b]),a[c][1].end={...a[e][1].end}):a[c][1]=g,a.push(["exit",g,b]),a},tokenize:function(a,b,c){let d,e=this;return function(b){var g;let h,i=e.events.length;for(;i--;)if("lineEnding"!==e.events[i][1].type&&"linePrefix"!==e.events[i][1].type&&"content"!==e.events[i][1].type){h="paragraph"===e.events[i][1].type;break}return!e.parser.lazy[e.now().line]&&(e.interrupt||h)?(a.enter("setextHeadingLine"),d=b,g=b,a.enter("setextHeadingLineSequence"),function b(c){return c===d?(a.consume(c),b):(a.exit("setextHeadingLineSequence"),(0,q.On)(c)?(0,p.N)(a,f,"lineSuffix")(c):f(c))}(g)):c(b)};function f(d){return null===d||(0,q.HP)(d)?(a.exit("setextHeadingLine"),b(d)):c(d)}}},U=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],V=["pre","script","style","textarea"],W={partial:!0,tokenize:function(a,b,c){return function(d){return a.enter("lineEnding"),a.consume(d),a.exit("lineEnding"),a.attempt(u.B,b,c)}}},X={partial:!0,tokenize:function(a,b,c){let d=this;return function(b){return(0,q.HP)(b)?(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),e):c(b)};function e(a){return d.parser.lazy[d.now().line]?c(a):b(a)}}},Y={partial:!0,tokenize:function(a,b,c){let d=this;return function(b){return null===b?c(b):(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),e)};function e(a){return d.parser.lazy[d.now().line]?c(a):b(a)}}},Z={concrete:!0,name:"codeFenced",tokenize:function(a,b,c){let d,e=this,f={partial:!0,tokenize:function(a,b,c){let f=0;return function(b){return a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),g};function g(b){return a.enter("codeFencedFence"),(0,q.On)(b)?(0,p.N)(a,i,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(b):i(b)}function i(b){return b===d?(a.enter("codeFencedFenceSequence"),function b(e){return e===d?(f++,a.consume(e),b):f>=h?(a.exit("codeFencedFenceSequence"),(0,q.On)(e)?(0,p.N)(a,j,"whitespace")(e):j(e)):c(e)}(b)):c(b)}function j(d){return null===d||(0,q.HP)(d)?(a.exit("codeFencedFence"),b(d)):c(d)}}},g=0,h=0;return function(b){var f=b;let j=e.events[e.events.length-1];return g=j&&"linePrefix"===j[1].type?j[2].sliceSerialize(j[1],!0).length:0,d=f,a.enter("codeFenced"),a.enter("codeFencedFence"),a.enter("codeFencedFenceSequence"),function b(e){return e===d?(h++,a.consume(e),b):h<3?c(e):(a.exit("codeFencedFenceSequence"),(0,q.On)(e)?(0,p.N)(a,i,"whitespace")(e):i(e))}(f)};function i(f){return null===f||(0,q.HP)(f)?(a.exit("codeFencedFence"),e.interrupt?b(f):a.check(Y,k,o)(f)):(a.enter("codeFencedFenceInfo"),a.enter("chunkString",{contentType:"string"}),function b(e){return null===e||(0,q.HP)(e)?(a.exit("chunkString"),a.exit("codeFencedFenceInfo"),i(e)):(0,q.On)(e)?(a.exit("chunkString"),a.exit("codeFencedFenceInfo"),(0,p.N)(a,j,"whitespace")(e)):96===e&&e===d?c(e):(a.consume(e),b)}(f))}function j(b){return null===b||(0,q.HP)(b)?i(b):(a.enter("codeFencedFenceMeta"),a.enter("chunkString",{contentType:"string"}),function b(e){return null===e||(0,q.HP)(e)?(a.exit("chunkString"),a.exit("codeFencedFenceMeta"),i(e)):96===e&&e===d?c(e):(a.consume(e),b)}(b))}function k(b){return a.attempt(f,o,l)(b)}function l(b){return a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),m}function m(b){return g>0&&(0,q.On)(b)?(0,p.N)(a,n,"linePrefix",g+1)(b):n(b)}function n(b){return null===b||(0,q.HP)(b)?a.check(Y,k,o)(b):(a.enter("codeFlowValue"),function b(c){return null===c||(0,q.HP)(c)?(a.exit("codeFlowValue"),n(c)):(a.consume(c),b)}(b))}function o(c){return a.exit("codeFenced"),b(c)}}},$={name:"characterReference",tokenize:function(a,b,c){let d,e,f=this,h=0;return function(b){return a.enter("characterReference"),a.enter("characterReferenceMarker"),a.consume(b),a.exit("characterReferenceMarker"),i};function i(b){return 35===b?(a.enter("characterReferenceMarkerNumeric"),a.consume(b),a.exit("characterReferenceMarkerNumeric"),j):(a.enter("characterReferenceValue"),d=31,e=q.lV,k(b))}function j(b){return 88===b||120===b?(a.enter("characterReferenceMarkerHexadecimal"),a.consume(b),a.exit("characterReferenceMarkerHexadecimal"),a.enter("characterReferenceValue"),d=6,e=q.ok,k):(a.enter("characterReferenceValue"),d=7,e=q.BM,k(b))}function k(i){if(59===i&&h){let d=a.exit("characterReferenceValue");return e!==q.lV||g(f.sliceSerialize(d))?(a.enter("characterReferenceMarker"),a.consume(i),a.exit("characterReferenceMarker"),a.exit("characterReference"),b):c(i)}return e(i)&&h++<d?(a.consume(i),k):c(i)}}},_={name:"characterEscape",tokenize:function(a,b,c){return function(b){return a.enter("characterEscape"),a.enter("escapeMarker"),a.consume(b),a.exit("escapeMarker"),d};function d(d){return(0,q.ol)(d)?(a.enter("characterEscapeValue"),a.consume(d),a.exit("characterEscapeValue"),a.exit("characterEscape"),b):c(d)}}},aa={name:"lineEnding",tokenize:function(a,b){return function(c){return a.enter("lineEnding"),a.consume(c),a.exit("lineEnding"),(0,p.N)(a,b,"linePrefix")}}};var ab=c(48467);let ac={name:"labelEnd",resolveAll:function(a){let b=-1,c=[];for(;++b<a.length;){let d=a[b][1];if(c.push(a[b]),"labelImage"===d.type||"labelLink"===d.type||"labelEnd"===d.type){let a="labelImage"===d.type?4:2;d.type="data",b+=a}}return a.length!==c.length&&(0,h.m)(a,0,a.length,c),a},resolveTo:function(a,b){let c,d,e,f,g=a.length,i=0;for(;g--;)if(c=a[g][1],d){if("link"===c.type||"labelLink"===c.type&&c._inactive)break;"enter"===a[g][0]&&"labelLink"===c.type&&(c._inactive=!0)}else if(e){if("enter"===a[g][0]&&("labelImage"===c.type||"labelLink"===c.type)&&!c._balanced&&(d=g,"labelLink"!==c.type)){i=2;break}}else"labelEnd"===c.type&&(e=g);let j={type:"labelLink"===a[d][1].type?"link":"image",start:{...a[d][1].start},end:{...a[a.length-1][1].end}},k={type:"label",start:{...a[d][1].start},end:{...a[e][1].end}},l={type:"labelText",start:{...a[d+i+2][1].end},end:{...a[e-2][1].start}};return f=[["enter",j,b],["enter",k,b]],f=(0,h.V)(f,a.slice(d+1,d+i+3)),f=(0,h.V)(f,[["enter",l,b]]),f=(0,h.V)(f,(0,ab.W)(b.parser.constructs.insideSpan.null,a.slice(d+i+4,e-3),b)),f=(0,h.V)(f,[["exit",l,b],a[e-2],a[e-1],["exit",k,b]]),f=(0,h.V)(f,a.slice(e+1)),f=(0,h.V)(f,[["exit",j,b]]),(0,h.m)(a,d,a.length,f),a},tokenize:function(a,b,c){let d,e,f=this,g=f.events.length;for(;g--;)if(("labelImage"===f.events[g][1].type||"labelLink"===f.events[g][1].type)&&!f.events[g][1]._balanced){d=f.events[g][1];break}return function(b){return d?d._inactive?l(b):(e=f.parser.defined.includes((0,k.B)(f.sliceSerialize({start:d.end,end:f.now()}))),a.enter("labelEnd"),a.enter("labelMarker"),a.consume(b),a.exit("labelMarker"),a.exit("labelEnd"),h):c(b)};function h(b){return 40===b?a.attempt(ad,j,e?j:l)(b):91===b?a.attempt(ae,j,e?i:l)(b):e?j(b):l(b)}function i(b){return a.attempt(af,j,l)(b)}function j(a){return b(a)}function l(a){return d._balanced=!0,c(a)}}},ad={tokenize:function(a,b,c){return function(b){return a.enter("resource"),a.enter("resourceMarker"),a.consume(b),a.exit("resourceMarker"),d};function d(b){return(0,q.Ee)(b)?P(a,e)(b):e(b)}function e(b){return 41===b?j(b):M(a,f,g,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(b)}function f(b){return(0,q.Ee)(b)?P(a,h)(b):j(b)}function g(a){return c(a)}function h(b){return 34===b||39===b||40===b?O(a,i,c,"resourceTitle","resourceTitleMarker","resourceTitleString")(b):j(b)}function i(b){return(0,q.Ee)(b)?P(a,j)(b):j(b)}function j(d){return 41===d?(a.enter("resourceMarker"),a.consume(d),a.exit("resourceMarker"),a.exit("resource"),b):c(d)}}},ae={tokenize:function(a,b,c){let d=this;return function(b){return N.call(d,a,e,f,"reference","referenceMarker","referenceString")(b)};function e(a){return d.parser.defined.includes((0,k.B)(d.sliceSerialize(d.events[d.events.length-1][1]).slice(1,-1)))?b(a):c(a)}function f(a){return c(a)}}},af={tokenize:function(a,b,c){return function(b){return a.enter("reference"),a.enter("referenceMarker"),a.consume(b),a.exit("referenceMarker"),d};function d(d){return 93===d?(a.enter("referenceMarker"),a.consume(d),a.exit("referenceMarker"),a.exit("reference"),b):c(d)}}},ag={name:"labelStartImage",resolveAll:ac.resolveAll,tokenize:function(a,b,c){let d=this;return function(b){return a.enter("labelImage"),a.enter("labelImageMarker"),a.consume(b),a.exit("labelImageMarker"),e};function e(b){return 91===b?(a.enter("labelMarker"),a.consume(b),a.exit("labelMarker"),a.exit("labelImage"),f):c(b)}function f(a){return 94===a&&"_hiddenFootnoteSupport"in d.parser.constructs?c(a):b(a)}}};var ah=c(81929);let ai={name:"attention",resolveAll:function(a,b){let c,d,e,f,g,i,j,k,l=-1;for(;++l<a.length;)if("enter"===a[l][0]&&"attentionSequence"===a[l][1].type&&a[l][1]._close){for(c=l;c--;)if("exit"===a[c][0]&&"attentionSequence"===a[c][1].type&&a[c][1]._open&&b.sliceSerialize(a[c][1]).charCodeAt(0)===b.sliceSerialize(a[l][1]).charCodeAt(0)){if((a[c][1]._close||a[l][1]._open)&&(a[l][1].end.offset-a[l][1].start.offset)%3&&!((a[c][1].end.offset-a[c][1].start.offset+a[l][1].end.offset-a[l][1].start.offset)%3))continue;i=a[c][1].end.offset-a[c][1].start.offset>1&&a[l][1].end.offset-a[l][1].start.offset>1?2:1;let m={...a[c][1].end},n={...a[l][1].start};aj(m,-i),aj(n,i),f={type:i>1?"strongSequence":"emphasisSequence",start:m,end:{...a[c][1].end}},g={type:i>1?"strongSequence":"emphasisSequence",start:{...a[l][1].start},end:n},e={type:i>1?"strongText":"emphasisText",start:{...a[c][1].end},end:{...a[l][1].start}},d={type:i>1?"strong":"emphasis",start:{...f.start},end:{...g.end}},a[c][1].end={...f.start},a[l][1].start={...g.end},j=[],a[c][1].end.offset-a[c][1].start.offset&&(j=(0,h.V)(j,[["enter",a[c][1],b],["exit",a[c][1],b]])),j=(0,h.V)(j,[["enter",d,b],["enter",f,b],["exit",f,b],["enter",e,b]]),j=(0,h.V)(j,(0,ab.W)(b.parser.constructs.insideSpan.null,a.slice(c+1,l),b)),j=(0,h.V)(j,[["exit",e,b],["enter",g,b],["exit",g,b],["exit",d,b]]),a[l][1].end.offset-a[l][1].start.offset?(k=2,j=(0,h.V)(j,[["enter",a[l][1],b],["exit",a[l][1],b]])):k=0,(0,h.m)(a,c-1,l-c+3,j),l=c+j.length-k-2;break}}for(l=-1;++l<a.length;)"attentionSequence"===a[l][1].type&&(a[l][1].type="data");return a},tokenize:function(a,b){let c,d=this.parser.constructs.attentionMarkers.null,e=this.previous,f=(0,ah.S)(e);return function(g){return c=g,a.enter("attentionSequence"),function g(h){if(h===c)return a.consume(h),g;let i=a.exit("attentionSequence"),j=(0,ah.S)(h),k=!j||2===j&&f||d.includes(h),l=!f||2===f&&j||d.includes(e);return i._open=!!(42===c?k:k&&(f||!l)),i._close=!!(42===c?l:l&&(j||!k)),b(h)}(g)}}};function aj(a,b){a.column+=b,a.offset+=b,a._bufferIndex+=b}let ak={name:"labelStartLink",resolveAll:ac.resolveAll,tokenize:function(a,b,c){let d=this;return function(b){return a.enter("labelLink"),a.enter("labelMarker"),a.consume(b),a.exit("labelMarker"),a.exit("labelLink"),e};function e(a){return 94===a&&"_hiddenFootnoteSupport"in d.parser.constructs?c(a):b(a)}}},al={42:I,43:I,45:I,48:I,49:I,50:I,51:I,52:I,53:I,54:I,55:I,56:I,57:I,62:L},am={91:{name:"definition",tokenize:function(a,b,c){let d,e=this;return function(b){var d;return a.enter("definition"),d=b,N.call(e,a,f,c,"definitionLabel","definitionLabelMarker","definitionLabelString")(d)};function f(b){return(d=(0,k.B)(e.sliceSerialize(e.events[e.events.length-1][1]).slice(1,-1)),58===b)?(a.enter("definitionMarker"),a.consume(b),a.exit("definitionMarker"),g):c(b)}function g(b){return(0,q.Ee)(b)?P(a,h)(b):h(b)}function h(b){return M(a,i,c,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(b)}function i(b){return a.attempt(Q,j,j)(b)}function j(b){return(0,q.On)(b)?(0,p.N)(a,l,"whitespace")(b):l(b)}function l(f){return null===f||(0,q.HP)(f)?(a.exit("definition"),e.parser.defined.push(d),b(f)):c(f)}}}},an={[-2]:R,[-1]:R,32:R},ao={35:{name:"headingAtx",resolve:function(a,b){let c,d,e=a.length-2,f=3;return"whitespace"===a[3][1].type&&(f+=2),e-2>f&&"whitespace"===a[e][1].type&&(e-=2),"atxHeadingSequence"===a[e][1].type&&(f===e-1||e-4>f&&"whitespace"===a[e-2][1].type)&&(e-=f+1===e?2:4),e>f&&(c={type:"atxHeadingText",start:a[f][1].start,end:a[e][1].end},d={type:"chunkText",start:a[f][1].start,end:a[e][1].end,contentType:"text"},(0,h.m)(a,f,e-f+1,[["enter",c,b],["enter",d,b],["exit",d,b],["exit",c,b]])),a},tokenize:function(a,b,c){let d=0;return function(e){var f;return a.enter("atxHeading"),f=e,a.enter("atxHeadingSequence"),function e(f){return 35===f&&d++<6?(a.consume(f),e):null===f||(0,q.Ee)(f)?(a.exit("atxHeadingSequence"),function c(d){return 35===d?(a.enter("atxHeadingSequence"),function b(d){return 35===d?(a.consume(d),b):(a.exit("atxHeadingSequence"),c(d))}(d)):null===d||(0,q.HP)(d)?(a.exit("atxHeading"),b(d)):(0,q.On)(d)?(0,p.N)(a,c,"whitespace")(d):(a.enter("atxHeadingText"),function b(d){return null===d||35===d||(0,q.Ee)(d)?(a.exit("atxHeadingText"),c(d)):(a.consume(d),b)}(d))}(f)):c(f)}(f)}}},42:H,45:[T,H],60:{concrete:!0,name:"htmlFlow",resolveTo:function(a){let b=a.length;for(;b--&&("enter"!==a[b][0]||"htmlFlow"!==a[b][1].type););return b>1&&"linePrefix"===a[b-2][1].type&&(a[b][1].start=a[b-2][1].start,a[b+1][1].start=a[b-2][1].start,a.splice(b-2,2)),a},tokenize:function(a,b,c){let d,e,f,g,h,i=this;return function(b){var c;return c=b,a.enter("htmlFlow"),a.enter("htmlFlowData"),a.consume(c),j};function j(g){return 33===g?(a.consume(g),k):47===g?(a.consume(g),e=!0,n):63===g?(a.consume(g),d=3,i.interrupt?b:H):(0,q.CW)(g)?(a.consume(g),f=String.fromCharCode(g),o):c(g)}function k(e){return 45===e?(a.consume(e),d=2,l):91===e?(a.consume(e),d=5,g=0,m):(0,q.CW)(e)?(a.consume(e),d=4,i.interrupt?b:H):c(e)}function l(d){return 45===d?(a.consume(d),i.interrupt?b:H):c(d)}function m(d){let e="CDATA[";return d===e.charCodeAt(g++)?(a.consume(d),g===e.length)?i.interrupt?b:z:m:c(d)}function n(b){return(0,q.CW)(b)?(a.consume(b),f=String.fromCharCode(b),o):c(b)}function o(g){if(null===g||47===g||62===g||(0,q.Ee)(g)){let h=47===g,j=f.toLowerCase();return!h&&!e&&V.includes(j)?(d=1,i.interrupt?b(g):z(g)):U.includes(f.toLowerCase())?(d=6,h)?(a.consume(g),p):i.interrupt?b(g):z(g):(d=7,i.interrupt&&!i.parser.lazy[i.now().line]?c(g):e?function b(c){return(0,q.On)(c)?(a.consume(c),b):x(c)}(g):r(g))}return 45===g||(0,q.lV)(g)?(a.consume(g),f+=String.fromCharCode(g),o):c(g)}function p(d){return 62===d?(a.consume(d),i.interrupt?b:z):c(d)}function r(b){return 47===b?(a.consume(b),x):58===b||95===b||(0,q.CW)(b)?(a.consume(b),s):(0,q.On)(b)?(a.consume(b),r):x(b)}function s(b){return 45===b||46===b||58===b||95===b||(0,q.lV)(b)?(a.consume(b),s):t(b)}function t(b){return 61===b?(a.consume(b),u):(0,q.On)(b)?(a.consume(b),t):r(b)}function u(b){return null===b||60===b||61===b||62===b||96===b?c(b):34===b||39===b?(a.consume(b),h=b,v):(0,q.On)(b)?(a.consume(b),u):function b(c){return null===c||34===c||39===c||47===c||60===c||61===c||62===c||96===c||(0,q.Ee)(c)?t(c):(a.consume(c),b)}(b)}function v(b){return b===h?(a.consume(b),h=null,w):null===b||(0,q.HP)(b)?c(b):(a.consume(b),v)}function w(a){return 47===a||62===a||(0,q.On)(a)?r(a):c(a)}function x(b){return 62===b?(a.consume(b),y):c(b)}function y(b){return null===b||(0,q.HP)(b)?z(b):(0,q.On)(b)?(a.consume(b),y):c(b)}function z(b){return 45===b&&2===d?(a.consume(b),D):60===b&&1===d?(a.consume(b),E):62===b&&4===d?(a.consume(b),I):63===b&&3===d?(a.consume(b),H):93===b&&5===d?(a.consume(b),G):(0,q.HP)(b)&&(6===d||7===d)?(a.exit("htmlFlowData"),a.check(W,J,A)(b)):null===b||(0,q.HP)(b)?(a.exit("htmlFlowData"),A(b)):(a.consume(b),z)}function A(b){return a.check(X,B,J)(b)}function B(b){return a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),C}function C(b){return null===b||(0,q.HP)(b)?A(b):(a.enter("htmlFlowData"),z(b))}function D(b){return 45===b?(a.consume(b),H):z(b)}function E(b){return 47===b?(a.consume(b),f="",F):z(b)}function F(b){if(62===b){let c=f.toLowerCase();return V.includes(c)?(a.consume(b),I):z(b)}return(0,q.CW)(b)&&f.length<8?(a.consume(b),f+=String.fromCharCode(b),F):z(b)}function G(b){return 93===b?(a.consume(b),H):z(b)}function H(b){return 62===b?(a.consume(b),I):45===b&&2===d?(a.consume(b),H):z(b)}function I(b){return null===b||(0,q.HP)(b)?(a.exit("htmlFlowData"),J(b)):(a.consume(b),I)}function J(c){return a.exit("htmlFlow"),b(c)}}},61:T,95:H,96:Z,126:Z},ap={38:$,92:_},aq={[-5]:aa,[-4]:aa,[-3]:aa,33:ag,38:$,42:ai,60:[{name:"autolink",tokenize:function(a,b,c){let d=0;return function(b){return a.enter("autolink"),a.enter("autolinkMarker"),a.consume(b),a.exit("autolinkMarker"),a.enter("autolinkProtocol"),e};function e(b){return(0,q.CW)(b)?(a.consume(b),f):64===b?c(b):h(b)}function f(b){return 43===b||45===b||46===b||(0,q.lV)(b)?(d=1,function b(c){return 58===c?(a.consume(c),d=0,g):(43===c||45===c||46===c||(0,q.lV)(c))&&d++<32?(a.consume(c),b):(d=0,h(c))}(b)):h(b)}function g(d){return 62===d?(a.exit("autolinkProtocol"),a.enter("autolinkMarker"),a.consume(d),a.exit("autolinkMarker"),a.exit("autolink"),b):null===d||32===d||60===d||(0,q.JQ)(d)?c(d):(a.consume(d),g)}function h(b){return 64===b?(a.consume(b),i):(0,q.cx)(b)?(a.consume(b),h):c(b)}function i(e){return(0,q.lV)(e)?function e(f){return 46===f?(a.consume(f),d=0,i):62===f?(a.exit("autolinkProtocol").type="autolinkEmail",a.enter("autolinkMarker"),a.consume(f),a.exit("autolinkMarker"),a.exit("autolink"),b):function b(f){if((45===f||(0,q.lV)(f))&&d++<63){let c=45===f?b:e;return a.consume(f),c}return c(f)}(f)}(e):c(e)}}},{name:"htmlText",tokenize:function(a,b,c){let d,e,f,g=this;return function(b){return a.enter("htmlText"),a.enter("htmlTextData"),a.consume(b),h};function h(b){return 33===b?(a.consume(b),i):47===b?(a.consume(b),w):63===b?(a.consume(b),u):(0,q.CW)(b)?(a.consume(b),y):c(b)}function i(b){return 45===b?(a.consume(b),j):91===b?(a.consume(b),e=0,n):(0,q.CW)(b)?(a.consume(b),t):c(b)}function j(b){return 45===b?(a.consume(b),m):c(b)}function k(b){return null===b?c(b):45===b?(a.consume(b),l):(0,q.HP)(b)?(f=k,G(b)):(a.consume(b),k)}function l(b){return 45===b?(a.consume(b),m):k(b)}function m(a){return 62===a?F(a):45===a?l(a):k(a)}function n(b){let d="CDATA[";return b===d.charCodeAt(e++)?(a.consume(b),e===d.length?o:n):c(b)}function o(b){return null===b?c(b):93===b?(a.consume(b),r):(0,q.HP)(b)?(f=o,G(b)):(a.consume(b),o)}function r(b){return 93===b?(a.consume(b),s):o(b)}function s(b){return 62===b?F(b):93===b?(a.consume(b),s):o(b)}function t(b){return null===b||62===b?F(b):(0,q.HP)(b)?(f=t,G(b)):(a.consume(b),t)}function u(b){return null===b?c(b):63===b?(a.consume(b),v):(0,q.HP)(b)?(f=u,G(b)):(a.consume(b),u)}function v(a){return 62===a?F(a):u(a)}function w(b){return(0,q.CW)(b)?(a.consume(b),x):c(b)}function x(b){return 45===b||(0,q.lV)(b)?(a.consume(b),x):function b(c){return(0,q.HP)(c)?(f=b,G(c)):(0,q.On)(c)?(a.consume(c),b):F(c)}(b)}function y(b){return 45===b||(0,q.lV)(b)?(a.consume(b),y):47===b||62===b||(0,q.Ee)(b)?z(b):c(b)}function z(b){return 47===b?(a.consume(b),F):58===b||95===b||(0,q.CW)(b)?(a.consume(b),A):(0,q.HP)(b)?(f=z,G(b)):(0,q.On)(b)?(a.consume(b),z):F(b)}function A(b){return 45===b||46===b||58===b||95===b||(0,q.lV)(b)?(a.consume(b),A):function b(c){return 61===c?(a.consume(c),B):(0,q.HP)(c)?(f=b,G(c)):(0,q.On)(c)?(a.consume(c),b):z(c)}(b)}function B(b){return null===b||60===b||61===b||62===b||96===b?c(b):34===b||39===b?(a.consume(b),d=b,C):(0,q.HP)(b)?(f=B,G(b)):(0,q.On)(b)?(a.consume(b),B):(a.consume(b),D)}function C(b){return b===d?(a.consume(b),d=void 0,E):null===b?c(b):(0,q.HP)(b)?(f=C,G(b)):(a.consume(b),C)}function D(b){return null===b||34===b||39===b||60===b||61===b||96===b?c(b):47===b||62===b||(0,q.Ee)(b)?z(b):(a.consume(b),D)}function E(a){return 47===a||62===a||(0,q.Ee)(a)?z(a):c(a)}function F(d){return 62===d?(a.consume(d),a.exit("htmlTextData"),a.exit("htmlText"),b):c(d)}function G(b){return a.exit("htmlTextData"),a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),H}function H(b){return(0,q.On)(b)?(0,p.N)(a,I,"linePrefix",g.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(b):I(b)}function I(b){return a.enter("htmlTextData"),f(b)}}}],91:ak,92:[{name:"hardBreakEscape",tokenize:function(a,b,c){return function(b){return a.enter("hardBreakEscape"),a.consume(b),d};function d(d){return(0,q.HP)(d)?(a.exit("hardBreakEscape"),b(d)):c(d)}}},_],93:ac,95:ai,96:{name:"codeText",previous:function(a){return 96!==a||"characterEscape"===this.events[this.events.length-1][1].type},resolve:function(a){let b,c,d=a.length-4,e=3;if(("lineEnding"===a[3][1].type||"space"===a[e][1].type)&&("lineEnding"===a[d][1].type||"space"===a[d][1].type)){for(b=e;++b<d;)if("codeTextData"===a[b][1].type){a[e][1].type="codeTextPadding",a[d][1].type="codeTextPadding",e+=2,d-=2;break}}for(b=e-1,d++;++b<=d;)void 0===c?b!==d&&"lineEnding"!==a[b][1].type&&(c=b):(b===d||"lineEnding"===a[b][1].type)&&(a[c][1].type="codeTextData",b!==c+2&&(a[c][1].end=a[b-1][1].end,a.splice(c+2,b-c-2),d-=b-c-2,b=c+2),c=void 0);return a},tokenize:function(a,b,c){let d,e,f=0;return function(b){return a.enter("codeText"),a.enter("codeTextSequence"),function b(c){return 96===c?(a.consume(c),f++,b):(a.exit("codeTextSequence"),g(c))}(b)};function g(i){return null===i?c(i):32===i?(a.enter("space"),a.consume(i),a.exit("space"),g):96===i?(e=a.enter("codeTextSequence"),d=0,function c(g){return 96===g?(a.consume(g),d++,c):d===f?(a.exit("codeTextSequence"),a.exit("codeText"),b(g)):(e.type="codeTextData",h(g))}(i)):(0,q.HP)(i)?(a.enter("lineEnding"),a.consume(i),a.exit("lineEnding"),g):(a.enter("codeTextData"),h(i))}function h(b){return null===b||32===b||96===b||(0,q.HP)(b)?(a.exit("codeTextData"),g(b)):(a.consume(b),h)}}}},ar={null:[ai,B]},as={null:[42,95]},at={null:[]},au=/[\0\t\n\r]/g;function av(a,b,c){let e,f,p,t;return"string"!=typeof b&&(c=b,b=void 0),(function(a){let b=a||{},c=!0,d={},e=[[]],f=[],p=[],q=(0,i.v)([{enter:{blockQuote:function(){p.push(!1),z(),w("<blockquote>")},codeFenced:function(){z(),w("<pre><code"),r.fencesCount=0},codeFencedFenceInfo:u,codeFencedFenceMeta:u,codeIndented:function(){z(),w("<pre><code>")},codeText:function(){r.inCodeText=!0,w("<code>")},content:function(){r.slurpAllLineEndings=!0},definition:function(){u(),f.push({})},definitionDestinationString:function(){u(),r.ignoreEncode=!0},definitionLabelString:u,definitionTitleString:u,emphasis:function(){w("<em>")},htmlFlow:function(){z(),I()},htmlText:I,image:function(){f.push({image:!0}),c=void 0},label:u,link:function(){f.push({})},listItemMarker:function(){r.expectFirstItem?w(">"):C(),z(),w("<li>"),r.expectFirstItem=void 0,r.lastWasTag=void 0},listItemValue:function(a){if(r.expectFirstItem){let b=Number.parseInt(this.sliceSerialize(a),10);1!==b&&w(' start="'+A(String(b))+'"')}},listOrdered:function(a){p.push(!a._loose),z(),w("<ol"),r.expectFirstItem=!0},listUnordered:function(a){p.push(!a._loose),z(),w("<ul"),r.expectFirstItem=!0},paragraph:function(){p[p.length-1]||(z(),w("<p>")),r.slurpAllLineEndings=void 0},reference:u,resource:function(){u(),f[f.length-1].destination=""},resourceDestinationString:function(){u(),r.ignoreEncode=!0},resourceTitleString:u,setextHeading:function(){u(),r.slurpAllLineEndings=void 0},strong:function(){w("<strong>")}},exit:{atxHeading:function(){w("</h"+r.headingRank+">"),r.headingRank=void 0},atxHeadingSequence:function(a){!r.headingRank&&(r.headingRank=this.sliceSerialize(a).length,z(),w("<h"+r.headingRank+">"))},autolinkEmail:function(a){let b=this.sliceSerialize(a);w('<a href="'+(0,l.Q)("mailto:"+b)+'">'),x(A(b)),w("</a>")},autolinkProtocol:function(a){let c=this.sliceSerialize(a);w('<a href="'+(0,l.Q)(c,b.allowDangerousProtocol?void 0:n)+'">'),x(A(c)),w("</a>")},blockQuote:function(){p.pop(),z(),w("</blockquote>"),r.slurpAllLineEndings=void 0},characterEscapeValue:F,characterReferenceMarkerHexadecimal:J,characterReferenceMarkerNumeric:J,characterReferenceValue:function(a){let b=this.sliceSerialize(a);x(A(r.characterReferenceType?function(a,b){let c=Number.parseInt(a,b);return c<9||11===c||c>13&&c<32||c>126&&c<160||c>55295&&c<57344||c>64975&&c<65008||(65535&c)==65535||(65535&c)==65534||c>1114111?"�":String.fromCodePoint(c)}(b,"characterReferenceMarkerNumeric"===r.characterReferenceType?10:16):g(b))),r.characterReferenceType=void 0},codeFenced:D,codeFencedFence:function(){let a=r.fencesCount||0;a||(w(">"),r.slurpOneLineEnding=!0),r.fencesCount=a+1},codeFencedFenceInfo:function(){w(' class="language-'+v()+'"')},codeFencedFenceMeta:B,codeFlowValue:function(a){x(A(this.sliceSerialize(a))),r.flowCodeSeenData=!0},codeIndented:D,codeText:function(){r.inCodeText=void 0,w("</code>")},codeTextData:F,data:F,definition:function(){let a=f[f.length-1],b=(0,k.B)(a.labelId);v(),m.call(d,b)||(d[b]=f[f.length-1]),f.pop()},definitionDestinationString:function(){f[f.length-1].destination=v(),r.ignoreEncode=void 0},definitionLabelString:function(a){v(),f[f.length-1].labelId=this.sliceSerialize(a)},definitionTitleString:function(){f[f.length-1].title=v()},emphasis:function(){w("</em>")},hardBreakEscape:G,hardBreakTrailing:G,htmlFlow:H,htmlFlowData:F,htmlText:H,htmlTextData:F,image:E,label:function(){f[f.length-1].label=v()},labelText:function(a){f[f.length-1].labelId=this.sliceSerialize(a)},lineEnding:function(a){if(!r.slurpAllLineEndings){if(r.slurpOneLineEnding)return void(r.slurpOneLineEnding=void 0);if(r.inCodeText)return void x(" ");x(A(this.sliceSerialize(a)))}},link:E,listOrdered:function(){C(),p.pop(),y(),w("</ol>")},listUnordered:function(){C(),p.pop(),y(),w("</ul>")},paragraph:function(){if(p[p.length-1])r.slurpAllLineEndings=!0;else w("</p>")},reference:B,referenceString:function(a){f[f.length-1].referenceId=this.sliceSerialize(a)},resource:B,resourceDestinationString:function(){f[f.length-1].destination=v(),r.ignoreEncode=void 0},resourceTitleString:function(){f[f.length-1].title=v()},setextHeading:function(){let a=v();z(),w("<h"+r.headingRank+">"),x(a),w("</h"+r.headingRank+">"),r.slurpAllLineEndings=void 0,r.headingRank=void 0},setextHeadingLineSequence:function(a){r.headingRank=61===this.sliceSerialize(a).charCodeAt(0)?1:2},setextHeadingText:function(){r.slurpAllLineEndings=!0},strong:function(){w("</strong>")},thematicBreak:function(){z(),w("<hr />")}}},...b.htmlExtensions||[]]),r={definitions:d,tightStack:p},s={buffer:u,encode:A,getData:function(a){return r[a]},lineEndingIfNeeded:z,options:b,raw:x,resume:v,setData:function(a,b){r[a]=b},tag:w},t=b.defaultLineEnding;return function(a){let b=-1,c=0,d=[],f=[],g=[];for(;++b<a.length;)t||"lineEnding"!==a[b][1].type&&"lineEndingBlank"!==a[b][1].type||(t=a[b][2].sliceSerialize(a[b][1])),("listOrdered"===a[b][1].type||"listUnordered"===a[b][1].type)&&("enter"===a[b][0]?d.push(b):function(a){let b,c=a.length,d=0,e=0,f=!1;for(;++d<c;){let c=a[d];if(c[1]._container)b=void 0,"enter"===c[0]?e++:e--;else switch(c[1].type){case"listItemPrefix":"exit"===c[0]&&(b=!0);break;case"linePrefix":break;case"lineEndingBlank":"enter"!==c[0]||e||(b?b=void 0:f=!0);break;default:b=void 0}}a[0][1]._loose=f}(a.slice(d.pop(),b))),"definition"===a[b][1].type&&("enter"===a[b][0]?(g=(0,h.V)(g,a.slice(c,b)),c=b):(f=(0,h.V)(f,a.slice(c,b+1)),c=b+1));f=(0,h.V)(f,g),f=(0,h.V)(f,a.slice(c)),b=-1;let i=f;for(q.enter.null&&q.enter.null.call(s);++b<a.length;){let a=q[i[b][0]],c=i[b][1].type,d=a[c];m.call(a,c)&&d&&d.call({sliceSerialize:i[b][2].sliceSerialize,...s},i[b][1])}return q.exit.null&&q.exit.null.call(s),e[0].join("")};function u(){e.push([])}function v(){return e.pop().join("")}function w(a){c&&(r.lastWasTag=!0,e[e.length-1].push(a))}function x(a){r.lastWasTag=void 0,e[e.length-1].push(a)}function y(){x(t||"\n")}function z(){let a=e[e.length-1],b=a[a.length-1],c=b?b.charCodeAt(b.length-1):null;10!==c&&13!==c&&null!==c&&y()}function A(a){return r.ignoreEncode?a:(0,j.l)(a)}function B(){v()}function C(){r.lastWasTag&&!r.slurpAllLineEndings&&z(),w("</li>"),r.slurpAllLineEndings=void 0}function D(){let a=r.fencesCount;void 0!==a&&a<2&&r.tightStack.length>0&&!r.lastWasTag&&y(),r.flowCodeSeenData&&z(),w("</code></pre>"),void 0!==a&&a<2&&z(),r.flowCodeSeenData=void 0,r.fencesCount=void 0,r.slurpOneLineEnding=void 0}function E(){let a=f.length-1,e=f[a],g=e.referenceId||e.labelId,h=void 0===e.destination?d[(0,k.B)(g)]:e;for(c=!0;a--;)if(f[a].image){c=void 0;break}e.image?(w('<img src="'+(0,l.Q)(h.destination,b.allowDangerousProtocol?void 0:o)+'" alt="'),x(e.label),w('"')):w('<a href="'+(0,l.Q)(h.destination,b.allowDangerousProtocol?void 0:n)+'"'),w(h.title?' title="'+h.title+'"':""),e.image?w(" />"):(w(">"),x(e.label),w("</a>")),f.pop()}function F(a){x(A(this.sliceSerialize(a)))}function G(){w("<br />")}function H(){r.ignoreEncode=void 0}function I(){b.allowDangerousHtml&&(r.ignoreEncode=!0)}function J(a){r.characterReferenceType=a.type}})(c)(function(a){for(;!x(a););return a}((function(a){let b={constructs:(0,i.y)([d,...(a||{}).extensions||[]]),content:c(r),defined:[],document:c(s),flow:c(A),lazy:{},string:c(C),text:c(D)};return b;function c(a){return function(c){return function(a,b,c){let d={_bufferIndex:-1,_index:0,line:c&&c.line||1,column:c&&c.column||1,offset:c&&c.offset||0},e={},f=[],g=[],i=[],j={attempt:p(function(a,b){r(a,b.from)}),check:p(o),consume:function(a){(0,q.HP)(a)?(d.line++,d.column=1,d.offset+=-3===a?2:1,s()):-1!==a&&(d.column++,d.offset++),d._bufferIndex<0?d._index++:(d._bufferIndex++,d._bufferIndex===g[d._index].length&&(d._bufferIndex=-1,d._index++)),k.previous=a},enter:function(a,b){let c=b||{};return c.type=a,c.start=n(),k.events.push(["enter",c,k]),i.push(c),c},exit:function(a){let b=i.pop();return b.end=n(),k.events.push(["exit",b,k]),b},interrupt:p(o,{interrupt:!0})},k={code:null,containerState:{},defineSkip:function(a){e[a.line]=a.column,s()},events:[],now:n,parser:a,previous:null,sliceSerialize:function(a,b){return function(a,b){let c,d=-1,e=[];for(;++d<a.length;){let f,g=a[d];if("string"==typeof g)f=g;else switch(g){case -5:f="\r";break;case -4:f="\n";break;case -3:f="\r\n";break;case -2:f=b?" ":" ";break;case -1:if(!b&&c)continue;f=" ";break;default:f=String.fromCharCode(g)}c=-2===g,e.push(f)}return e.join("")}(m(a),b)},sliceStream:m,write:function(a){return(g=(0,h.V)(g,a),function(){let a;for(;d._index<g.length;){let c=g[d._index];if("string"==typeof c)for(a=d._index,d._bufferIndex<0&&(d._bufferIndex=0);d._index===a&&d._bufferIndex<c.length;){var b;b=c.charCodeAt(d._bufferIndex),l=l(b)}else l=l(c)}}(),null!==g[g.length-1])?[]:(r(b,0),k.events=(0,ab.W)(f,k.events,k),k.events)}},l=b.tokenize.call(k,j);return b.resolveAll&&f.push(b),k;function m(a){return function(a,b){let c,d=b.start._index,e=b.start._bufferIndex,f=b.end._index,g=b.end._bufferIndex;if(d===f)c=[a[d].slice(e,g)];else{if(c=a.slice(d,f),e>-1){let a=c[0];"string"==typeof a?c[0]=a.slice(e):c.shift()}g>0&&c.push(a[f].slice(0,g))}return c}(g,a)}function n(){let{_bufferIndex:a,_index:b,line:c,column:e,offset:f}=d;return{_bufferIndex:a,_index:b,line:c,column:e,offset:f}}function o(a,b){b.restore()}function p(a,b){return function(c,e,f){var g;let h,l,m,o;return Array.isArray(c)?p(c):"tokenize"in c?p([c]):(g=c,function(a){let b=null!==a&&g[a],c=null!==a&&g.null;return p([...Array.isArray(b)?b:b?[b]:[],...Array.isArray(c)?c:c?[c]:[]])(a)});function p(a){return(h=a,l=0,0===a.length)?f:q(a[l])}function q(a){return function(c){return(o=function(){let a=n(),b=k.previous,c=k.currentConstruct,e=k.events.length,f=Array.from(i);return{from:e,restore:function(){d=a,k.previous=b,k.currentConstruct=c,k.events.length=e,i=f,s()}}}(),m=a,a.partial||(k.currentConstruct=a),a.name&&k.parser.constructs.disable.null.includes(a.name))?t(c):a.tokenize.call(b?Object.assign(Object.create(k),b):k,j,r,t)(c)}}function r(b){return a(m,o),e}function t(a){return(o.restore(),++l<h.length)?q(h[l]):f}}}function r(a,b){a.resolveAll&&!f.includes(a)&&f.push(a),a.resolve&&(0,h.m)(k.events,b,k.events.length-b,a.resolve(k.events.slice(b),k)),a.resolveTo&&(k.events=a.resolveTo(k.events,k))}function s(){d.line in e&&d.column<2&&(d.column=e[d.line],d.offset+=e[d.line]-1)}}(b,a,c)}}})(c).document().write((f=1,p="",t=!0,function(a,b,c){let d,g,h,i,j,k=[];for(a=p+("string"==typeof a?a.toString():new TextDecoder(b||void 0).decode(a)),h=0,p="",t&&(65279===a.charCodeAt(0)&&h++,t=void 0);h<a.length;){if(au.lastIndex=h,i=(d=au.exec(a))&&void 0!==d.index?d.index:a.length,j=a.charCodeAt(i),!d){p=a.slice(h);break}if(10===j&&h===i&&e)k.push(-3),e=void 0;else switch(e&&(k.push(-5),e=void 0),h<i&&(k.push(a.slice(h,i)),f+=i-h),j){case 0:k.push(65533),f++;break;case 9:for(g=4*Math.ceil(f/4),k.push(-2);f++<g;)k.push(-1);break;case 10:k.push(-4),f=1;break;default:e=!0,f=1}h=i+1}return c&&(e&&k.push(-5),p&&k.push(p),k.push(null)),k})(a,b,!0))))}},71086:(a,b,c)=>{"use strict";function d({slug:a,title:b,description:c,category:d="integration",provider:e,scopes:f,prefix:g,extraCredentials:h=[],unlocks:i,healthEndpoint:j,risk:k,tags:l}){let m=`${g}_ACCESS_TOKEN`;return{slug:a,title:b,description:c,category:d,author:"madarx",source_kind:"builtin",source_url:null,version:null,risk_summary:k,tags:l,manifest:{service_key:a,setup_kind:"oauth2",benefit:`Sign in with ${b} to unlock ${i.length} tool${1===i.length?"":"s"}. No code, no .env editing.`,credentials:[{name:`${g}_CLIENT_ID`,label:`${b} client ID`,type:"text",required:!0,help_text:`Create an app on the ${b} developer console and paste its client ID.`},{name:`${g}_CLIENT_SECRET`,label:`${b} client secret`,type:"password",required:!0,help_text:"Stored encrypted in the local vault — never echoed back."},...h],oauth:{provider:e,scopes:f,pkce:"google"===e||"tiktok"===e,redirect_path:`/api/connections/${a}/oauth/callback`,client_id_ref:`${g}_CLIENT_ID`,client_secret_ref:`${g}_CLIENT_SECRET`,access_token_ref:m,refresh_token_ref:`${g}_REFRESH_TOKEN`},health_check:{endpoint:j,method:"GET",expect_status:200,auth:{in:"header",name:"Authorization",prefix:"Bearer ",credential:m}},verify_endpoint:`/api/connections/${a}/verify`,verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:i,engines:[],logo_glyph:a}}}c.d(b,{R2:()=>q,fP:()=>o});let e=[{slug:"anthropic",title:"Anthropic",description:"Power any agent running on the Anthropic engine (Claude Opus, Sonnet, Haiku). Your key is encrypted on this Mac and never leaves the vault.",category:"engine",author:"madarx",source_kind:"builtin",source_url:"https://console.anthropic.com/settings/keys",version:null,risk_summary:"API key only — no destructive scope.",tags:["engine","anthropic","claude"],manifest:{service_key:"anthropic",setup_kind:"api_key",benefit:"Unlock the Anthropic engine for sub-agents and the main agent. Required for /api/orchestrator/command on default mode.",credentials:[{name:"ANTHROPIC_API_KEY",label:"API key",type:"password",placeholder:"sk-ant-…",help_url:"https://console.anthropic.com/settings/keys",help_text:"Generate a key in the Anthropic console.",required:!0}],verify_endpoint:"/api/connections/anthropic/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:[],engines:["anthropic"],logo_glyph:"anthropic"}},{slug:"openai",title:"OpenAI",description:"Use OpenAI models for agents that prefer GPT. Stored encrypted; never echoed back.",category:"engine",author:"madarx",source_kind:"builtin",source_url:"https://platform.openai.com/api-keys",version:null,risk_summary:"API key only.",tags:["engine","openai","gpt"],manifest:{service_key:"openai",setup_kind:"api_key",benefit:"Unlock OpenAI models for agents and transcription.",credentials:[{name:"OPENAI_API_KEY",label:"API key",type:"password",placeholder:"sk-…",help_url:"https://platform.openai.com/api-keys",help_text:"Create a key in the OpenAI dashboard.",required:!0}],verify_endpoint:"/api/connections/openai/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:[],engines:["openai"],logo_glyph:"openai"}},{slug:"kimi",title:"Kimi (Moonshot)",description:"Connect Moonshot AI — Kimi models for long-context Chinese + English reasoning. Stored encrypted.",category:"engine",author:"madarx",source_kind:"builtin",source_url:"https://platform.moonshot.ai/console/api-keys",version:null,risk_summary:"API key only.",tags:["engine","kimi","moonshot"],manifest:{service_key:"kimi",setup_kind:"api_key",benefit:"Unlock Kimi (Moonshot) models for the kimi engine.",credentials:[{name:"KIMI_API_KEY",label:"API key",type:"password",placeholder:"sk-…",help_url:"https://platform.moonshot.ai/console/api-keys",help_text:"Create a key in the Moonshot console.",required:!0}],verify_endpoint:"/api/connections/kimi/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:[],engines:["kimi"],logo_glyph:"kimi"}},{slug:"github",title:"GitHub",description:"Unlock 11 GitHub tools: read repos, list PRs, create issues, dispatch workflows, and (with approval) merge PRs. Token is encrypted at rest.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://github.com/settings/tokens",version:null,risk_summary:"Some GitHub tools are irreversible (e.g. gh_pr_merge) and always require approval.",tags:["integration","github","git"],manifest:{service_key:"github",setup_kind:"api_key",benefit:"Unlock 11 GitHub tools across read, issue, and PR workflows.",credentials:[{name:"GITHUB_TOKEN",label:"Personal access token",type:"password",placeholder:"ghp_…",help_url:"https://github.com/settings/tokens",help_text:'To read repos beyond your own, the token must be granted access to them. Fine-grained PAT: under "Repository access" pick the orgs/repos (org owner may need to approve); classic PAT: enable the "repo" scope and, for SSO orgs, click "Authorize" / "Configure SSO" next to the token.',required:!0}],verify_endpoint:"/api/connections/github/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["gh_repo_read","gh_repo_list","gh_issue_list","gh_issue_create","gh_issue_comment","gh_pr_list","gh_pr_create","gh_pr_comment","gh_pr_merge","gh_actions_dispatch","gh_release_create"],engines:[],logo_glyph:"github"}},{slug:"resend",title:"Resend",description:"Send transactional email. A default recipient_domain allowlist is seeded from git config user.email — add more in the marketplace afterwards.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://resend.com/api-keys",version:null,risk_summary:"email_send is irreversible and always requires approval.",tags:["integration","email","resend"],manifest:{service_key:"resend",setup_kind:"api_key",benefit:"Unlock email_send and email_status_lookup for transactional email.",credentials:[{name:"RESEND_API_KEY",label:"API key",type:"password",placeholder:"re_…",help_url:"https://resend.com/api-keys",help_text:"Create a Resend API key.",required:!0},{name:"RESEND_FROM_EMAIL",label:"From email",type:"text",placeholder:"agent@yourdomain.com",help_url:"https://resend.com/domains",help_text:"A verified sender address on a verified Resend domain.",required:!0}],verify_endpoint:"/api/connections/resend/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["email_send","email_status_lookup"],engines:[],logo_glyph:"resend"}},{slug:"supabase",title:"Supabase",description:"Connect a Supabase project. Service role key bypasses RLS — destructive ops (supabase_rest_delete, supabase_sql) are always approval-gated.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://supabase.com/dashboard",version:null,risk_summary:"Service role key bypasses Row-Level Security. Some tools (supabase_sql) always require approval.",tags:["integration","database","supabase"],manifest:{service_key:"supabase",setup_kind:"api_key",benefit:"Unlock 7 Supabase tools: REST select/insert/upsert/update/delete, RPC, and SQL.",credentials:[{name:"SUPABASE_URL",label:"Project URL",type:"text",placeholder:"https://xxxx.supabase.co",help_url:"https://supabase.com/dashboard",help_text:"Project Settings → API → Project URL.",required:!0},{name:"SUPABASE_SERVICE_ROLE_KEY",label:"Service role key",type:"password",placeholder:"eyJ…",help_url:"https://supabase.com/dashboard",help_text:"Project Settings → API → service_role. Treat as a database password.",required:!1},{name:"SUPABASE_ANON_KEY",label:"Anon key",type:"password",placeholder:"eyJ…",help_url:"https://supabase.com/dashboard",help_text:"Project Settings → API → anon. Used for verify when service-role is absent.",required:!1},{name:"SUPABASE_ACCESS_TOKEN",label:"Personal access token",type:"password",placeholder:"sbp_…",help_url:"https://supabase.com/dashboard/account/tokens",help_text:"Required only if you want the agent to list / manage your Supabase projects via the Management API. Distinct from the project keys above.",required:!1}],verify_endpoint:"/api/connections/supabase/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["supabase_list_projects","supabase_rest_select","supabase_rest_insert","supabase_rest_upsert","supabase_rest_update","supabase_rest_delete","supabase_rpc","supabase_sql"],engines:[],logo_glyph:"supabase"}},{slug:"vercel",title:"Vercel",description:"Trigger deployments and read project state. v1 saves the token without a live verify — failures surface on first call.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://vercel.com/account/tokens",version:null,risk_summary:"vercel_create_deployment is high risk and approval-gated.",tags:["integration","vercel","deploy"],manifest:{service_key:"vercel",setup_kind:"api_key",benefit:"Unlock 3 Vercel tools: list projects, list deployments, create deployment.",credentials:[{name:"VERCEL_TOKEN",label:"Access token",type:"password",placeholder:"vercel_…",help_url:"https://vercel.com/account/tokens",help_text:"Create a token scoped to the right team.",required:!0},{name:"VERCEL_TEAM_ID",label:"Team ID (optional)",type:"text",placeholder:"team_…",help_url:"https://vercel.com/teams",help_text:"Only required for team-scoped tokens.",required:!1}],verify_endpoint:"/api/connections/vercel/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["vercel_list_projects","vercel_list_deployments","vercel_create_deployment"],engines:[],logo_glyph:"vercel"}},{slug:"whatsapp",title:"WhatsApp",description:"Text the main agent like you text Hermes. Pairs a dedicated WhatsApp number via Baileys. Operations (allowlist, message log) live at /whatsapp.",category:"channel",author:"madarx",source_kind:"builtin",source_url:null,version:null,risk_summary:"Pair only a dedicated number — Baileys is an unofficial Web client; the paired account can be banned.",tags:["channel","whatsapp","messaging"],manifest:{service_key:"whatsapp",setup_kind:"qr_pair",benefit:"Receive WhatsApp messages and let the main agent reply through your number.",credentials:[],verify_endpoint:"/api/connections/whatsapp/verify",verify_supported:!0,deep_link:"/whatsapp",requires_daemon:"npm run whatsapp:bridge",supports_scopes:["global"],unlocks_tool_slugs:["whatsapp_send"],engines:[],logo_glyph:"whatsapp"}},{slug:"hermes",title:"Hermes Agent",description:"Route long-running orchestrator jobs to the local Hermes binary. Detection probes ../hermes-agent and scripts/hermes-command.py.",category:"engine",author:"madarx",source_kind:"builtin",source_url:null,version:null,risk_summary:"Local subprocess execution — Hermes jobs inherit your local env.",tags:["engine","hermes","local"],manifest:{service_key:"hermes",setup_kind:"binary_detect",benefit:"Unlock the Hermes engine and the start_hermes_job orchestrator tool.",credentials:[{name:"HERMES_AGENT_DIR",label:"Hermes agent directory (optional)",type:"text",placeholder:"/Users/you/Projects/hermes-agent",help_url:null,help_text:"Defaults to ../hermes-agent relative to this repo. Override to point at a different checkout.",required:!1}],verify_endpoint:"/api/connections/hermes/verify",verify_supported:!0,deep_link:null,supports_scopes:["global"],unlocks_tool_slugs:["start_hermes_job","send_to_hermes"],engines:["hermes"],logo_glyph:"hermes"}},d({slug:"meta-ads",title:"Meta Ads",description:"Build and report on Facebook + Instagram ad campaigns. Campaign/budget writes are always approval-gated.",category:"marketing",provider:"meta",prefix:"META",scopes:["ads_management","ads_read","business_management"],unlocks:["meta_ads.insights_read","meta_ads.campaign_create","meta_ads.adset_create","meta_ads.budget_set"],healthEndpoint:"https://graph.facebook.com/v19.0/me",risk:"Campaign create, budget set, and audience create are irreversible and always require approval.",tags:["marketing","ads","meta","oauth"]}),d({slug:"google-ads",title:"Google Ads",description:"Manage Google Ads campaigns and pull GAQL reports. Requires a developer token in addition to OAuth sign-in.",category:"marketing",provider:"google",prefix:"GOOGLE_ADS",scopes:["https://www.googleapis.com/auth/adwords"],extraCredentials:[{name:"GOOGLE_ADS_DEVELOPER_TOKEN",label:"Developer token",type:"password",required:!0,help_text:"Google Ads API access requires a developer token alongside OAuth."}],unlocks:["google_ads.report","google_ads.campaign_create","google_ads.budget_set"],healthEndpoint:"https://googleads.googleapis.com/v17/customers:listAccessibleCustomers",risk:"Campaign create and budget set are irreversible and always require approval.",tags:["marketing","ads","google","oauth"]}),d({slug:"ga4",title:"Google Analytics 4",description:"Read GA4 metrics for marketing reports. Read-only — no external writes.",category:"analytics",provider:"google",prefix:"GA4",scopes:["https://www.googleapis.com/auth/analytics.readonly"],unlocks:["ga4.run_report","ga4.realtime_report"],healthEndpoint:"https://analyticsdata.googleapis.com/v1beta/properties",risk:"Read-only analytics access.",tags:["analytics","ga4","google","oauth"]}),d({slug:"hubspot-crm",title:"HubSpot CRM",description:"Read and (with approval) write contacts, deals, and activity in HubSpot.",category:"sales",provider:"hubspot",prefix:"HUBSPOT",scopes:["crm.objects.contacts.read","crm.objects.deals.read","crm.objects.contacts.write"],unlocks:["hubspot.contacts_read","hubspot.deals_read","hubspot.contact_upsert"],healthEndpoint:"https://api.hubapi.com/crm/v3/objects/contacts",risk:"CRM writes (contact/deal upsert) require approval.",tags:["sales","crm","hubspot","oauth"]})];e.map(a=>a.slug);let f=[{slug:"web-prototype",title:"Open Design — Web Prototype",description:"Generate a complete production-quality web prototype from a brief."},{slug:"saas-landing",title:"Open Design — SaaS Landing",description:"Build a SaaS landing page with hero, features, social proof, pricing."},{slug:"dashboard",title:"Open Design — Dashboard",description:"Information-dense, hierarchy-driven dashboard scaffold."},{slug:"mobile-app",title:"Open Design — Mobile App",description:"Mobile-first product UI scaffold with touch targets and gestures."},{slug:"social-carousel",title:"Open Design — Social Carousel",description:"Editorial social carousel with platform-aware aspect ratios."},{slug:"magazine-poster",title:"Open Design — Magazine Poster",description:"Editorial magazine/poster typography with high contrast."},{slug:"deck-guizang-editorial",title:"Open Design — Editorial Deck",description:"Guizang editorial-style slide deck system."},{slug:"email-marketing",title:"Open Design — Email Marketing",description:"Transactional/marketing email scaffold with bulletproof HTML."},{slug:"design-brief",title:"Open Design — Design Brief",description:"Structured design brief used to seed the rest of the pipeline."},{slug:"design-review",title:"Open Design — Design Review",description:"Designer's eye plan review and visual QA pass."},{slug:"brand-guidelines",title:"Open Design — Brand Guidelines",description:"Distill or author a brand guidelines book."},{slug:"copywriting",title:"Open Design — Copywriting",description:"High-signal product copywriting craft notes and structure."}],g={slug:"open-design",title:"Open Design (nexu-io)",description:"Vendored design corpus from nexu-io/open-design: craft notes, 130+ skills, ~140 design systems, prompt + design templates. Apache-2.0.",category:"design",author:"nexu-io",source_kind:"github",source_url:"https://github.com/nexu-io/open-design",version:null,risk_summary:"Read-only design content. No code executes; no external writes.",tags:["design","craft","systems","templates","open-source","apache-2.0"],manifest:{item_refs:f.map(a=>`skill:open-design-${a.slug}`),published_count:f.length,license:"Apache-2.0",note:"Vendored under workspace/skills/open-design/. Re-vendor with `npm run vendor:open-design`. See NOTICE.md for attribution."}},h=[{slug:"design-shotgun",title:"Design Shotgun",description:"Generate multiple AI design variants for any UI surface, open a comparison board, and iterate from approved options.",category:"design",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Read-only ideation — no external writes.",tags:["design","mockups","exploration"],manifest:{invocation:"/design-shotgun",file_paths:["skills/design-shotgun/SKILL.md"],trigger_examples:["explore designs","show me design variants","visual brainstorm"]}},{slug:"design-review",title:"Design Review",description:"Visual QA pass on live pages: extracts the design system in use, audits hierarchy, typography, color, and spacing, and proposes fixes.",category:"design",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Read-only audit — fixes are proposed, not applied.",tags:["design","review","visual-qa"],manifest:{invocation:"/design-review",file_paths:["skills/design-review/SKILL.md"],trigger_examples:["review the design","visual QA","audit this page"]}},{slug:"qa-only",title:"QA Only",description:"Systematically QA a web app and produce a structured report with health score, screenshots, and repro steps. Never modifies code.",category:"review",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Report-only — no auto-fix.",tags:["qa","testing","report"],manifest:{invocation:"/qa-only",file_paths:["skills/qa-only/SKILL.md"],trigger_examples:["just report bugs","qa report only","test but do not fix"]}},{slug:"cso-audit",title:"CSO Audit",description:"Chief Security Officer mode: infrastructure-first security audit covering secrets archaeology, supply chain, OWASP Top 10, and threat modeling.",category:"security",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Read-only audit; never executes destructive commands.",tags:["security","audit","owasp","threat-model"],manifest:{invocation:"/cso",file_paths:["skills/cso/SKILL.md"],trigger_examples:["security audit","threat model","OWASP review"]}}],i=[{slug:"market-research",title:"Market Research",category:"research",description:"Research any market, company, or topic across the web and deliver a cited, structured brief.",tools:["web_search","web_fetch","file_write"],risk_summary:"Read-only research; writes only the report file.",tags:["research","web","brief"],invocation:"/research",trigger_examples:["research this market","competitive landscape for X","brief me on company Y"]},{slug:"competitor-watch",title:"Competitor Watch",category:"research",description:"Track competitor pricing, features, and news on a schedule and alert you when something changes.",tools:["web_fetch","web_extract","email_send"],risk_summary:"Read-only monitoring; sends a summary email.",tags:["research","monitoring","competitive"],invocation:"/watch",trigger_examples:["watch competitor pricing","alert me when X changes","track this page weekly"]},{slug:"inbox-triage",title:"Inbox Triage",category:"comms",description:"Summarize, prioritize, and draft replies across your inbox so you act on what matters first.",tools:["gmail_messages_list","gmail_thread_read","email_send"],risk_summary:"Drafts replies; sending is approval-gated.",tags:["email","inbox","comms"],invocation:"/inbox",trigger_examples:["triage my inbox","summarize unread email","draft replies"]},{slug:"meeting-scheduler",title:"Meeting Scheduler",category:"comms",description:"Find times, schedule meetings, and send invites from your calendar and email.",tools:["calendar_events_list","calendar_event_read","email_send"],risk_summary:"Proposes times; invites are approval-gated.",tags:["calendar","scheduling","comms"],invocation:"/schedule-meeting",trigger_examples:["schedule a meeting","find a time with X","book a call next week"]},{slug:"document-extract",title:"Document Extraction",category:"documents",description:"Pull structured data and key facts from PDFs, documents, and audio into clean, usable output.",tools:["file_read","transcribe_audio","file_write"],risk_summary:"Read-only extraction; writes only the output file.",tags:["documents","extraction","pdf"],invocation:"/extract",trigger_examples:["extract data from this PDF","pull the numbers from these docs","transcribe this audio"]},{slug:"report-builder",title:"Report Builder",category:"documents",description:"Turn raw data and notes into a polished, formatted report or one-pager ready to share.",tools:["file_read","file_write"],risk_summary:"Generates a document; no external writes.",tags:["documents","reporting","writing"],invocation:"/report",trigger_examples:["build a report from this data","write a one-pager","summarize into a deck outline"]},{slug:"database-query",title:"Database Q&A",category:"data",description:"Ask questions of your database in plain English and get answers, tables, and charts.",tools:["supabase_rest_select","supabase_sql"],risk_summary:"Read-only queries by default; writes are approval-gated.",tags:["data","sql","analytics"],invocation:"/ask-data",trigger_examples:["how many orders last month","query the users table","top customers by revenue"]},{slug:"spreadsheet-analysis",title:"Spreadsheet Analysis",category:"data",description:"Clean, analyze, and summarize spreadsheets and CSVs — pivots, trends, and outliers.",tools:["file_read","file_write"],risk_summary:"Local file analysis; no external writes.",tags:["data","spreadsheet","csv"],invocation:"/analyze-sheet",trigger_examples:["analyze this spreadsheet","summarize this CSV","find trends in this data"]},{slug:"web-automation",title:"Web Automation",category:"web",description:"Fill forms, extract data, and run repetitive flows in a real browser, end to end.",tools:["browser_open","browser_act","browser_extract"],risk_summary:"Browser actions are bounded and audited.",tags:["web","automation","browser"],invocation:"/automate-web",trigger_examples:["automate this form","scrape this site","run this flow for each row"]}],j=[{slug:"paid-campaign-build",title:"Paid Campaign Build",category:"marketing",description:"Structure a paid campaign — objective, audiences, ad sets, creative spec, and budget — ready for approval-gated launch.",tools:["create_artifact","web_search"],risk_summary:"Plans campaigns; every publish/budget set stays approval-gated.",tags:["marketing","ads","campaign"],invocation:"/paid-campaign",trigger_examples:["build a Meta campaign","plan a paid launch","structure ad sets"]},{slug:"ads-reporting",title:"Ads Reporting",category:"marketing",description:"Pull spend, CPA, ROAS, and reach from connected ad accounts into one weekly performance report.",tools:["create_artifact","file_write"],risk_summary:"Read-only reporting; no external writes.",tags:["marketing","ads","reporting"],invocation:"/ads-report",trigger_examples:["weekly ads report","how did campaigns perform","ROAS summary"]},{slug:"content-calendar",title:"Content Calendar",category:"content",description:"Plan a multi-channel content calendar with post drafts, captions, and a scheduled queue.",tools:["create_artifact","file_write"],risk_summary:"Drafts and schedules; every publish stays approval-gated.",tags:["content","social","calendar"],invocation:"/content-calendar",trigger_examples:["plan this month of content","build a content calendar","draft social posts"]},{slug:"lead-research",title:"Lead Research",category:"sales",description:"Build a qualified target list, enrich it, and prep a personalized outreach sequence.",tools:["web_search","web_fetch","create_artifact"],risk_summary:"Research + drafts; sequence enrollment and bulk sends are approval-gated.",tags:["sales","outreach","leads"],invocation:"/lead-research",trigger_examples:["build a target list","find leads for X","prep an outreach sequence"]},{slug:"ticket-reply",title:"Ticket Reply",category:"support",description:"Triage support tickets, draft replies in brand voice, and flag escalations.",tools:["gmail_messages_list","file_write"],risk_summary:"Drafts replies; outbound sends/status changes are approval-gated.",tags:["support","helpdesk","tickets"],invocation:"/ticket-reply",trigger_examples:["triage support tickets","draft ticket replies","escalate this ticket"]},{slug:"runway-model",title:"Runway Model",category:"finance",description:"Turn revenue/expense data into a runway model and P&L summary with scenario sensitivity.",tools:["file_read","create_artifact"],risk_summary:"Advisory analysis; any money movement is approval-gated.",tags:["finance","runway","modeling"],invocation:"/runway",trigger_examples:["model our runway","P&L summary","how many months of cash"]}],k=[{slug:"gstack",title:"gstack",description:'"Senior engineering team in your terminal." 8 power tools + a stack of specialist skills for design, QA, review, security, and shipping. MIT licensed.',category:"engineering",author:"garrytan",source_kind:"builtin",source_url:"https://github.com/garrytan/gstack",version:null,risk_summary:"Mixed-risk bundle: includes read-only review skills and write-capable workflows (e.g. /ship runs git push). Per-item risk surfaces in Phase 2 when install is wired up.",tags:["engineering","skills-pack","mit"],manifest:{item_refs:["skill:design-shotgun","skill:design-review","skill:qa-only","skill:cso-audit"],published_count:4,license:"MIT",note:"Agent personas in this bundle will surface in the Agent Marketplace when it ships."}}];function l(a,b,c){let d=a.prepare("SELECT id FROM marketplace_items WHERE kind=? AND slug=?").get(b,c.slug),e=d?.id||`${b}:${c.slug}`,f=c.manifest?JSON.stringify(c.manifest):null,g=c.tags?JSON.stringify(c.tags):null;if(d)a.prepare(`
|
|
1290
1300
|
UPDATE marketplace_items
|
|
1291
1301
|
SET title=?, description=?, category=?, author=?, source_kind=?,
|
|
1292
1302
|
source_url=?, version=?, manifest_json=?, risk_summary=?, tags=?
|
|
@@ -1411,7 +1421,7 @@ HARD SAFETY RULES (non-negotiable — the package is rejected by the validator o
|
|
|
1411
1421
|
SET title=?, base_url=?, manifest_json=?, status='active', updated_at=?
|
|
1412
1422
|
WHERE slug=?`).run(d.title,d.base_url,l,h,d.slug):f.prepare(`INSERT INTO api_connectors
|
|
1413
1423
|
(slug, title, base_url, manifest_json, status, created_by_user_id, created_by_agent_id, created_at, updated_at)
|
|
1414
|
-
VALUES (?, ?, ?, ?, 'active', ?, ?, ?, ?)`).run(d.slug,d.title,d.base_url,l,b.created_by_user_id||null,b.created_by_agent_id||null,h,h),{slug:d.slug,endpoints:Object.keys(d.endpoints),tool_slugs:Object.keys(d.endpoints).map(a=>`${d.slug}.${a}`),secret_refs:i(d.auth),warnings:c.warnings}}function k(a){return(0,e.Lf)().prepare("SELECT * FROM api_connectors WHERE slug=? AND status='active'").get(a)||null}function l(a){if("string"!=typeof a)return null;let b=a.indexOf(".");if(b<=0)return null;let c=a.slice(0,b),d=a.slice(b+1),e=function(a){let b=k(a);if(!b)return null;try{return JSON.parse(b.manifest_json)}catch{return null}}(c);if(!e)return null;let f=e.endpoints?.[d];return f?{slug:c,endpoint:d,manifest:e,endpointDef:f}:null}function m(){let a;try{a=(0,e.Lf)().prepare("SELECT * FROM api_connectors WHERE status='active' ORDER BY slug ASC").all()}catch{return[]}let b=[];for(let c of a){let a;try{a=JSON.parse(c.manifest_json)}catch{continue}let d=i(a.auth||{}),e=d.filter(a=>!function(a){try{return!!(0,f.r6)(a)}catch{return!1}}(a)),h=0===e.length;for(let[f,i]of Object.entries(a.endpoints||{})){let{approval_required:j,approval_mode:k}=function(a){let b=g.pE.indexOf(a)>=g.pE.indexOf("medium");return{approval_required:b,approval_mode:b?"approval_required":"auto"}}(i.risk);b.push({name:`${c.slug}.${f}`,title:`${a.title||c.slug}: ${f}`,description:i.description||`${i.method} ${a.base_url}${i.path}`,category:"connector",risk_level:i.risk,approval_required:j,approval_mode:k,required_env:d,enabled:!0,available:h,missing_env:e,allowlist_required:!1,allowlist_scope_key:null,allowlist_default_allow:!1,input_schema:i.input_schema||{type:"object",properties:{}},source:{kind:"connector",connector_slug:c.slug,endpoint:f}})}}return b}[e,f]=h.then?(await h)():h,d()}catch(a){d(a)}})},80099:a=>{"use strict";a.exports=require("node:sqlite")},80192:(a,b,c)=>{"use strict";c.d(b,{zP:()=>l});let d=new Set(["intake_form","agent_run","policy_gate","human_approval","package"]),e=new Set(["text","email","number","textarea","select","shareholders"]),f=new Set(["low","medium","high","irreversible_external"]),g=/^[a-z][a-z0-9-]{2,63}$/;function h(a,b,c){a.push(`${b}: ${c}`)}function i(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}let j=new Set(["and","or"]),k=new Set(["eq","neq","lt","lte","gt","gte","in","nin"]);function l(a,b={}){var c;let m,n=[],o=[];try{m=JSON.stringify(a)}catch{return{ok:!1,errors:["spec: not JSON-serialisable"],warnings:[],normalized:null}}if(!m||"undefined"===m)return{ok:!1,errors:["spec: required"],warnings:[],normalized:null};if(Buffer.byteLength(m,"utf8")>65536)return{ok:!1,errors:[`spec: serialized length ${Buffer.byteLength(m,"utf8")} bytes exceeds 65536-byte cap`],warnings:[],normalized:null};if(!i(a))return{ok:!1,errors:["spec: must be an object"],warnings:[],normalized:null};a.slug&&"string"==typeof a.slug?g.test(a.slug)||h(n,"slug",`does not match ${g} (lowercase, starts with letter, 3-64 chars, [a-z0-9-])`):h(n,"slug","required (string)"),a.name&&"string"==typeof a.name||h(n,"name","required (string)");let p=a.schema_version??1;if(null==a.schema_version||Number.isInteger(a.schema_version)||h(n,"schema_version","must be an integer"),null!=a.version&&(!Number.isInteger(a.version)||a.version<1)&&h(n,"version","must be a positive integer"),!Array.isArray(a.stages)||0===a.stages.length)return h(n,"stages","required (non-empty array)"),{ok:!1,errors:n,warnings:o,normalized:null};let q=new Set;a.stages.forEach((a,b)=>{let c=`stages[${b}]`;if(!i(a))return void h(n,c,"must be an object");a.slug&&"string"==typeof a.slug?g.test(a.slug)?q.has(a.slug)?h(n,`${c}.slug`,`duplicate stage slug "${a.slug}"`):q.add(a.slug):h(n,`${c}.slug`,`does not match ${g}`):h(n,`${c}.slug`,"required (string)"),a.name&&"string"==typeof a.name||h(n,`${c}.name`,"required (string)"),a.kind&&d.has(a.kind)||h(n,`${c}.kind`,`unknown kind "${a.kind}" (allowed: ${[...d].join(", ")})`)});let r=a.stages[0];if(r&&r.kind&&"intake_form"!==r.kind&&h(n,"stages[0].kind",`first stage must be "intake_form" (got "${r.kind}")`),a.stages.forEach((a,c)=>{if(!a||!d.has(a.kind))return;let g=`stages[${c}]`;if(!i(a.config))return void h(n,`${g}.config`,"must be an object");switch(a.kind){case"intake_form":!function(a,b,c){let d=a?.config?.form_schema;if(!i(d))return h(b,`${c}.config.form_schema`,"required (must be object)");if(!Array.isArray(d.fields)||0===d.fields.length)return h(b,`${c}.config.form_schema.fields`,"must be a non-empty array");let f=new Set;d.fields.forEach((a,d)=>{let g=`${c}.config.form_schema.fields[${d}]`;if(!i(a))return void h(b,g,"must be an object");a.name&&"string"==typeof a.name||h(b,`${g}.name`,"required (string)"),a.label&&"string"==typeof a.label||h(b,`${g}.label`,"required (string)"),a.type&&e.has(a.type)||h(b,`${g}.type`,`unknown type "${a.type}" (allowed: ${[...e].join(", ")})`),"select"!==a.type||Array.isArray(a.options)&&0!==a.options.length||h(b,`${g}.options`,"select requires a non-empty options[] array"),a.name&&(f.has(a.name)&&h(b,`${g}.name`,`duplicate field name "${a.name}"`),f.add(a.name))})}(a,n,g);break;case"agent_run":let l=a.config||{};if(l.agent_template_slug&&"string"==typeof l.agent_template_slug?b.knownAgentTemplates&&!b.knownAgentTemplates.has(l.agent_template_slug)&&h(n,`${g}.config.agent_template_slug`,`unknown template "${l.agent_template_slug}"`):h(n,`${g}.config.agent_template_slug`,"required (string)"),l.prompt&&"string"==typeof l.prompt?l.prompt.length>8e3&&h(n,`${g}.config.prompt`,`exceeds 8000 chars (got ${l.prompt.length})`):h(n,`${g}.config.prompt`,"required (string)"),null!=l.timeout_ms&&(!Number.isInteger(l.timeout_ms)||l.timeout_ms<1e3||l.timeout_ms>6e5)&&h(n,`${g}.config.timeout_ms`,"must be integer 1000..600000"),null!=l.on_outcome)if(i(l.on_outcome))for(let[a,b]of Object.entries(l.on_outcome)){if("string"!=typeof b){h(n,`${g}.config.on_outcome.${a}`,'value must be a string (stage slug or "fail")');continue}"fail"!==b&&q&&!q.has(b)&&h(n,`${g}.config.on_outcome.${a}`,`references non-existent stage "${b}"`)}else h(n,`${g}.config.on_outcome`,"must be an object");break;case"policy_gate":!function(a,b,c){let d=a.config||{};if(!Array.isArray(d.rules)||0===d.rules.length)return h(b,`${c}.config.rules`,"required (non-empty array)");d.rules.forEach((a,d)=>{let e=`${c}.config.rules[${d}]`;"string"==typeof a?a.trim()||h(b,e,"empty rule expression"):i(a)&&"string"==typeof a.op?function a(b,c,d,e=0){if(e>20)return void h(c,d,"predicate nesting too deep");if(!i(b))return void h(c,d,"predicate must be an object");let f=b.op;j.has(f)?Array.isArray(b.rules)&&0!==b.rules.length?b.rules.forEach((b,f)=>a(b,c,`${d}.rules[${f}]`,e+1)):h(c,`${d}.rules`,`"${f}" requires a non-empty rules[] array`):"not"===f?i(b.rule)?a(b.rule,c,`${d}.rule`,e+1):h(c,`${d}.rule`,'"not" requires a rule object'):k.has(f)?("string"==typeof b.path&&b.path.trim()||h(c,`${d}.path`,"required (non-empty string)"),"value"in b?"in"!==f&&"nin"!==f||Array.isArray(b.value)||h(c,`${d}.value`,`"${f}" requires an array value`):h(c,`${d}.value`,"required")):h(c,`${d}.op`,`unknown predicate op "${f}"`)}(a,b,e):i(a)?a.expr&&"string"==typeof a.expr&&a.expr.trim()||h(b,`${e}.expr`,"required (non-empty string)"):h(b,e,"rule must be a JSON predicate, a string, or { expr, label }")})}(a,n,g);break;case"human_approval":let m=a.config||{};m.action_type&&"string"==typeof m.action_type?m.action_type.startsWith("process.stage.")||h(n,`${g}.config.action_type`,'must start with "process.stage."'):h(n,`${g}.config.action_type`,"required (string)"),m.risk&&f.has(m.risk)||h(n,`${g}.config.risk`,`must be one of ${[...f].join(", ")}`),null!=m.summary_template&&"string"!=typeof m.summary_template&&h(n,`${g}.config.summary_template`,"must be a string");break;case"package":let o=a.config||{};o.title_template&&"string"==typeof o.title_template||h(n,`${g}.config.title_template`,"required (string)"),null!=o.include_stages&&(Array.isArray(o.include_stages)?o.include_stages.forEach((a,b)=>{"string"!=typeof a?h(n,`${g}.config.include_stages[${b}]`,"must be a string"):q.has(a)||h(n,`${g}.config.include_stages[${b}]`,`unknown stage slug "${a}"`)}):h(n,`${g}.config.include_stages`,"must be an array of stage slugs"))}}),a.stages.forEach((a,b)=>{if(!i(a))return;let c=`stages[${b}]`;null==a.on_pass_stage_slug||"fail"===a.on_pass_stage_slug||q.has(a.on_pass_stage_slug)||h(n,`${c}.on_pass_stage_slug`,`references non-existent stage "${a.on_pass_stage_slug}"`),null==a.on_fail_stage_slug||"fail"===a.on_fail_stage_slug||q.has(a.on_fail_stage_slug)||h(n,`${c}.on_fail_stage_slug`,`references non-existent stage "${a.on_fail_stage_slug}"`)}),0===n.length&&function(a){let b=new Map(a.map(a=>[a.slug,a])),c=new Map(a.map(a=>[a.slug,0]));for(let d of a)if(0===c.get(d.slug)&&function a(d){if(!b.has(d))return!1;let e=c.get(d);if(1===e)return!0;if(2===e)return!1;c.set(d,1);let f=b.get(d).on_pass_stage_slug;return!!(f&&"fail"!==f&&a(f))||(c.set(d,2),!1)}(d.slug))return!0;return!1}(a.stages)&&h(n,"stages","routing graph contains a cycle"),0===n.length){let b=new Set;a.stages.forEach(a=>{a.on_pass_stage_slug&&"fail"!==a.on_pass_stage_slug&&b.add(a.on_pass_stage_slug),a.on_fail_stage_slug&&"fail"!==a.on_fail_stage_slug&&b.add(a.on_fail_stage_slug);let c=a?.config?.on_outcome;if(i(c))for(let a of Object.values(c))"string"==typeof a&&"fail"!==a&&b.add(a)}),a.stages.forEach((a,c)=>{0!==c&&(b.has(a.slug)||o.push(`stages[${c}] "${a.slug}": orphan stage (no inbound edges)`))})}return n.length>0?{ok:!1,errors:n,warnings:o,normalized:null}:{ok:!0,errors:[],warnings:o,normalized:{schema_version:p,slug:(c=a).slug,name:c.name,version:c.version||1,description:c.description||null,category:c.category||null,source:c.source||"api",status:c.status||"draft",stages:c.stages.map(a=>({slug:a.slug,name:a.name,kind:a.kind,config:structuredClone(a.config||{}),on_pass_stage_slug:a.on_pass_stage_slug||null,on_fail_stage_slug:a.on_fail_stage_slug||null,required:!1!==a.required}))}}}},80599:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{dc:()=>m,fw:()=>l});var e=c(84104),f=c(73024),g=c(76760),h=c(83498),i=c(684),j=c(99755),k=a([e]);function l(a,b={}){let c=(0,j.nA)(a);if(!c.ok){let a=Error("skill spec invalid");throw a.code="spec_invalid",a.errors=c.errors,a}let{slug:d,title:k,description:m,category:n,invocation:o,markdown:p,trigger_examples:q}=c.normalized,r=`skill:${d}`,s=`skills/${d}/SKILL.md`,t={invocation:o,file_paths:[s],trigger_examples:q,source_markdown:p,created_by_user_id:b.created_by_user_id||null,created_by_agent_id:b.created_by_agent_id||null},u=g.join(h.un,"skills",d,"SKILL.md");if(!(0,i.wn)(u))throw Error(`Refusing to write skill file outside the workspace: ${u}`);f.mkdirSync(g.dirname(u),{recursive:!0}),f.writeFileSync(u,p,"utf8");let v=(0,e.Lf)(),w=(0,e.kF)(),x=b.created_by_agent_id?"tool-smith":"madarx",y=JSON.stringify(t),z=JSON.stringify([n,"skill"]);return v.prepare("SELECT id FROM marketplace_items WHERE kind='skill' AND slug=?").get(d)?v.prepare(`
|
|
1424
|
+
VALUES (?, ?, ?, ?, 'active', ?, ?, ?, ?)`).run(d.slug,d.title,d.base_url,l,b.created_by_user_id||null,b.created_by_agent_id||null,h,h),{slug:d.slug,endpoints:Object.keys(d.endpoints),tool_slugs:Object.keys(d.endpoints).map(a=>`${d.slug}.${a}`),secret_refs:i(d.auth),warnings:c.warnings}}function k(a){return(0,e.Lf)().prepare("SELECT * FROM api_connectors WHERE slug=? AND status='active'").get(a)||null}function l(a){if("string"!=typeof a)return null;let b=a.indexOf(".");if(b<=0)return null;let c=a.slice(0,b),d=a.slice(b+1),e=function(a){let b=k(a);if(!b)return null;try{return JSON.parse(b.manifest_json)}catch{return null}}(c);if(!e)return null;let f=e.endpoints?.[d];return f?{slug:c,endpoint:d,manifest:e,endpointDef:f}:null}function m(){let a;try{a=(0,e.Lf)().prepare("SELECT * FROM api_connectors WHERE status='active' ORDER BY slug ASC").all()}catch{return[]}let b=[];for(let c of a){let a;try{a=JSON.parse(c.manifest_json)}catch{continue}let d=i(a.auth||{}),e=d.filter(a=>!function(a){try{return!!(0,f.r6)(a)}catch{return!1}}(a)),h=0===e.length;for(let[f,i]of Object.entries(a.endpoints||{})){let{approval_required:j,approval_mode:k}=function(a){let b=g.pE.indexOf(a)>=g.pE.indexOf("medium");return{approval_required:b,approval_mode:b?"approval_required":"auto"}}(i.risk);b.push({name:`${c.slug}.${f}`,title:`${a.title||c.slug}: ${f}`,description:i.description||`${i.method} ${a.base_url}${i.path}`,category:"connector",risk_level:i.risk,approval_required:j,approval_mode:k,required_env:d,enabled:!0,available:h,missing_env:e,allowlist_required:!1,allowlist_scope_key:null,allowlist_default_allow:!1,input_schema:i.input_schema||{type:"object",properties:{}},source:{kind:"connector",connector_slug:c.slug,endpoint:f}})}}return b}[e,f]=h.then?(await h)():h,d()}catch(a){d(a)}})},80099:a=>{"use strict";a.exports=require("node:sqlite")},80192:(a,b,c)=>{"use strict";c.d(b,{zP:()=>l});let d=new Set(["intake_form","agent_run","policy_gate","human_approval","package"]),e=new Set(["text","email","number","textarea","select","shareholders"]),f=new Set(["low","medium","high","irreversible_external"]),g=/^[a-z][a-z0-9-]{2,63}$/;function h(a,b,c){a.push(`${b}: ${c}`)}function i(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}let j=new Set(["and","or"]),k=new Set(["eq","neq","lt","lte","gt","gte","in","nin"]);function l(a,b={}){var c;let m,n=[],o=[];try{m=JSON.stringify(a)}catch{return{ok:!1,errors:["spec: not JSON-serialisable"],warnings:[],normalized:null}}if(!m||"undefined"===m)return{ok:!1,errors:["spec: required"],warnings:[],normalized:null};if(Buffer.byteLength(m,"utf8")>65536)return{ok:!1,errors:[`spec: serialized length ${Buffer.byteLength(m,"utf8")} bytes exceeds 65536-byte cap`],warnings:[],normalized:null};if(!i(a))return{ok:!1,errors:["spec: must be an object"],warnings:[],normalized:null};a.slug&&"string"==typeof a.slug?g.test(a.slug)||h(n,"slug",`does not match ${g} (lowercase, starts with letter, 3-64 chars, [a-z0-9-])`):h(n,"slug","required (string)"),a.name&&"string"==typeof a.name||h(n,"name","required (string)");let p=a.schema_version??1;if(null==a.schema_version||Number.isInteger(a.schema_version)||h(n,"schema_version","must be an integer"),null!=a.version&&(!Number.isInteger(a.version)||a.version<1)&&h(n,"version","must be a positive integer"),!Array.isArray(a.stages)||0===a.stages.length)return h(n,"stages","required (non-empty array)"),{ok:!1,errors:n,warnings:o,normalized:null};let q=new Set;a.stages.forEach((a,b)=>{let c=`stages[${b}]`;if(!i(a))return void h(n,c,"must be an object");a.slug&&"string"==typeof a.slug?g.test(a.slug)?q.has(a.slug)?h(n,`${c}.slug`,`duplicate stage slug "${a.slug}"`):q.add(a.slug):h(n,`${c}.slug`,`does not match ${g}`):h(n,`${c}.slug`,"required (string)"),a.name&&"string"==typeof a.name||h(n,`${c}.name`,"required (string)"),a.kind&&d.has(a.kind)||h(n,`${c}.kind`,`unknown kind "${a.kind}" (allowed: ${[...d].join(", ")})`)});let r=a.stages[0];if(r&&r.kind&&"intake_form"!==r.kind&&h(n,"stages[0].kind",`first stage must be "intake_form" (got "${r.kind}")`),a.stages.forEach((a,c)=>{if(!a||!d.has(a.kind))return;let g=`stages[${c}]`;if(!i(a.config))return void h(n,`${g}.config`,"must be an object");switch(a.kind){case"intake_form":!function(a,b,c){let d=a?.config?.form_schema;if(!i(d))return h(b,`${c}.config.form_schema`,"required (must be object)");if(!Array.isArray(d.fields)||0===d.fields.length)return h(b,`${c}.config.form_schema.fields`,"must be a non-empty array");let f=new Set;d.fields.forEach((a,d)=>{let g=`${c}.config.form_schema.fields[${d}]`;if(!i(a))return void h(b,g,"must be an object");a.name&&"string"==typeof a.name||h(b,`${g}.name`,"required (string)"),a.label&&"string"==typeof a.label||h(b,`${g}.label`,"required (string)"),a.type&&e.has(a.type)||h(b,`${g}.type`,`unknown type "${a.type}" (allowed: ${[...e].join(", ")})`),"select"!==a.type||Array.isArray(a.options)&&0!==a.options.length||h(b,`${g}.options`,"select requires a non-empty options[] array"),a.name&&(f.has(a.name)&&h(b,`${g}.name`,`duplicate field name "${a.name}"`),f.add(a.name))})}(a,n,g);break;case"agent_run":let l=a.config||{};if(l.agent_template_slug&&"string"==typeof l.agent_template_slug?b.knownAgentTemplates&&!b.knownAgentTemplates.has(l.agent_template_slug)&&h(n,`${g}.config.agent_template_slug`,`unknown template "${l.agent_template_slug}"`):h(n,`${g}.config.agent_template_slug`,"required (string)"),l.prompt&&"string"==typeof l.prompt?l.prompt.length>8e3&&h(n,`${g}.config.prompt`,`exceeds 8000 chars (got ${l.prompt.length})`):h(n,`${g}.config.prompt`,"required (string)"),null!=l.timeout_ms&&(!Number.isInteger(l.timeout_ms)||l.timeout_ms<1e3||l.timeout_ms>6e5)&&h(n,`${g}.config.timeout_ms`,"must be integer 1000..600000"),null!=l.on_outcome)if(i(l.on_outcome))for(let[a,b]of Object.entries(l.on_outcome)){if("string"!=typeof b){h(n,`${g}.config.on_outcome.${a}`,'value must be a string (stage slug or "fail")');continue}"fail"!==b&&q&&!q.has(b)&&h(n,`${g}.config.on_outcome.${a}`,`references non-existent stage "${b}"`)}else h(n,`${g}.config.on_outcome`,"must be an object");break;case"policy_gate":!function(a,b,c){let d=a.config||{};if(!Array.isArray(d.rules)||0===d.rules.length)return h(b,`${c}.config.rules`,"required (non-empty array)");d.rules.forEach((a,d)=>{let e=`${c}.config.rules[${d}]`;"string"==typeof a?a.trim()||h(b,e,"empty rule expression"):i(a)&&"string"==typeof a.op?function a(b,c,d,e=0){if(e>20)return void h(c,d,"predicate nesting too deep");if(!i(b))return void h(c,d,"predicate must be an object");let f=b.op;j.has(f)?Array.isArray(b.rules)&&0!==b.rules.length?b.rules.forEach((b,f)=>a(b,c,`${d}.rules[${f}]`,e+1)):h(c,`${d}.rules`,`"${f}" requires a non-empty rules[] array`):"not"===f?i(b.rule)?a(b.rule,c,`${d}.rule`,e+1):h(c,`${d}.rule`,'"not" requires a rule object'):k.has(f)?("string"==typeof b.path&&b.path.trim()||h(c,`${d}.path`,"required (non-empty string)"),"value"in b?"in"!==f&&"nin"!==f||Array.isArray(b.value)||h(c,`${d}.value`,`"${f}" requires an array value`):h(c,`${d}.value`,"required")):h(c,`${d}.op`,`unknown predicate op "${f}"`)}(a,b,e):i(a)?a.expr&&"string"==typeof a.expr&&a.expr.trim()||h(b,`${e}.expr`,"required (non-empty string)"):h(b,e,"rule must be a JSON predicate, a string, or { expr, label }")})}(a,n,g);break;case"human_approval":let m=a.config||{};m.action_type&&"string"==typeof m.action_type?m.action_type.startsWith("process.stage.")||h(n,`${g}.config.action_type`,'must start with "process.stage."'):h(n,`${g}.config.action_type`,"required (string)"),m.risk&&f.has(m.risk)||h(n,`${g}.config.risk`,`must be one of ${[...f].join(", ")}`),null!=m.summary_template&&"string"!=typeof m.summary_template&&h(n,`${g}.config.summary_template`,"must be a string");break;case"package":let o=a.config||{};o.title_template&&"string"==typeof o.title_template||h(n,`${g}.config.title_template`,"required (string)"),null!=o.include_stages&&(Array.isArray(o.include_stages)?o.include_stages.forEach((a,b)=>{"string"!=typeof a?h(n,`${g}.config.include_stages[${b}]`,"must be a string"):q.has(a)||h(n,`${g}.config.include_stages[${b}]`,`unknown stage slug "${a}"`)}):h(n,`${g}.config.include_stages`,"must be an array of stage slugs"))}}),a.stages.forEach((a,b)=>{if(!i(a))return;let c=`stages[${b}]`;null==a.on_pass_stage_slug||"fail"===a.on_pass_stage_slug||q.has(a.on_pass_stage_slug)||h(n,`${c}.on_pass_stage_slug`,`references non-existent stage "${a.on_pass_stage_slug}"`),null==a.on_fail_stage_slug||"fail"===a.on_fail_stage_slug||q.has(a.on_fail_stage_slug)||h(n,`${c}.on_fail_stage_slug`,`references non-existent stage "${a.on_fail_stage_slug}"`)}),0===n.length&&function(a){let b=new Map(a.map(a=>[a.slug,a])),c=new Map(a.map(a=>[a.slug,0]));for(let d of a)if(0===c.get(d.slug)&&function a(d){if(!b.has(d))return!1;let e=c.get(d);if(1===e)return!0;if(2===e)return!1;c.set(d,1);let f=b.get(d).on_pass_stage_slug;return!!(f&&"fail"!==f&&a(f))||(c.set(d,2),!1)}(d.slug))return!0;return!1}(a.stages)&&h(n,"stages","routing graph contains a cycle"),0===n.length){let b=new Set;a.stages.forEach(a=>{a.on_pass_stage_slug&&"fail"!==a.on_pass_stage_slug&&b.add(a.on_pass_stage_slug),a.on_fail_stage_slug&&"fail"!==a.on_fail_stage_slug&&b.add(a.on_fail_stage_slug);let c=a?.config?.on_outcome;if(i(c))for(let a of Object.values(c))"string"==typeof a&&"fail"!==a&&b.add(a)}),a.stages.forEach((a,c)=>{0!==c&&(b.has(a.slug)||o.push(`stages[${c}] "${a.slug}": orphan stage (no inbound edges)`))})}return n.length>0?{ok:!1,errors:n,warnings:o,normalized:null}:{ok:!0,errors:[],warnings:o,normalized:{schema_version:p,slug:(c=a).slug,name:c.name,version:c.version||1,description:c.description||null,category:c.category||null,source:c.source||"api",status:c.status||"draft",stages:c.stages.map(a=>({slug:a.slug,name:a.name,kind:a.kind,config:structuredClone(a.config||{}),on_pass_stage_slug:a.on_pass_stage_slug||null,on_fail_stage_slug:a.on_fail_stage_slug||null,required:!1!==a.required}))}}}},80388:(a,b,c)=>{"use strict";c.d(b,{Zf:()=>f,_e:()=>e,s_:()=>g});let d=new Set(["quiet","thinking","full"]);function e(){let a=String(process.env.MADARX_CC_STREAM_VERBOSITY||"thinking").trim().toLowerCase();return d.has(a)?a:"thinking"}function f(a=e()){return"thinking"===a||"full"===a}function g(a=e()){if(!f(a))return 0;let b=Number(process.env.MADARX_THINKING_BUDGET_TOKENS);return Number.isFinite(b)&&b>=0?Math.floor(b):4e3}},80599:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{dc:()=>m,fw:()=>l});var e=c(84104),f=c(73024),g=c(76760),h=c(83498),i=c(684),j=c(99755),k=a([e]);function l(a,b={}){let c=(0,j.nA)(a);if(!c.ok){let a=Error("skill spec invalid");throw a.code="spec_invalid",a.errors=c.errors,a}let{slug:d,title:k,description:m,category:n,invocation:o,markdown:p,trigger_examples:q}=c.normalized,r=`skill:${d}`,s=`skills/${d}/SKILL.md`,t={invocation:o,file_paths:[s],trigger_examples:q,source_markdown:p,created_by_user_id:b.created_by_user_id||null,created_by_agent_id:b.created_by_agent_id||null},u=g.join(h.un,"skills",d,"SKILL.md");if(!(0,i.wn)(u))throw Error(`Refusing to write skill file outside the workspace: ${u}`);f.mkdirSync(g.dirname(u),{recursive:!0}),f.writeFileSync(u,p,"utf8");let v=(0,e.Lf)(),w=(0,e.kF)(),x=b.created_by_agent_id?"tool-smith":"madarx",y=JSON.stringify(t),z=JSON.stringify([n,"skill"]);return v.prepare("SELECT id FROM marketplace_items WHERE kind='skill' AND slug=?").get(d)?v.prepare(`
|
|
1415
1425
|
UPDATE marketplace_items
|
|
1416
1426
|
SET title=?, description=?, category=?, author=?, source_kind=?,
|
|
1417
1427
|
version=?, manifest_json=?, risk_summary=?, tags=?
|
|
@@ -1425,7 +1435,7 @@ HARD SAFETY RULES (non-negotiable — the package is rejected by the validator o
|
|
|
1425
1435
|
INSERT OR IGNORE INTO marketplace_installations (item_id, installed)
|
|
1426
1436
|
VALUES (?, 0)
|
|
1427
1437
|
`).run(r)),{id:r,slug:d,invocation:o,file_path:s}}function m(a){return a&&(0,e.Lf)().prepare("SELECT * FROM marketplace_items WHERE kind='skill' AND slug=? LIMIT 1").get(a)||null}e=(k.then?(await k)():k)[0],d()}catch(a){d(a)}})},80781:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{x:()=>k,y:()=>l});var e=c(31421),f=c(42382),g=c(67354),h=c(684),i=a([f,g]);function j(a){return(0,h.nc)(String(a||"").slice(0,Number(process.env.MADARX_TOOL_OUTPUT_MAX_BYTES||5e4)))}function k(a={}){let b=String(a.command||""),c=Array.isArray(a.args)?a.args.map(String):[],{path:d}=(0,h.hC)(a.cwd||"."),e=(0,h.IB)(b,c);if(e.blocked)throw Error(e.reason);return{command:b,args:c,cwd:d,classified:e}}async function l(a={},b={}){let{command:c,args:d,cwd:h,classified:i}=k(a);if(i.approval_required&&!b.owner_trusted&&!(0,g.v)(a.approval_id,{action_type:"terminal_run",matches:a=>{var b;return a.command===c&&(b=a.args,JSON.stringify(b||[])===JSON.stringify(d||[]))&&a.cwd===h}})){let a=(0,g.D6)({action_type:"terminal_run",risk:i.risk,summary:`Run ${c} ${d.join(" ")}`.trim(),payload:{command:c,args:d,cwd:h,reason:i.reason}});return{ok:!1,status:"approval_required",approval_request_id:a.id,reason:i.reason}}let m=Math.max(1,Math.min(6e5,Number(a.timeout_ms||process.env.MADARX_TERMINAL_TIMEOUT_MS||18e4))),n=Date.now();return await new Promise(a=>{let b="",g="",i=(0,e.spawn)(c,d,{cwd:h,shell:!1,stdio:["ignore","pipe","pipe"]}),k=setTimeout(()=>i.kill("SIGTERM"),m);i.stdout.on("data",a=>{b+=a}),i.stderr.on("data",a=>{g+=a}),i.on("error",e=>{clearTimeout(k),(0,f.appendAudit)({type:"local.terminal_run",summary:`terminal_run failed: ${c}`,status:"failed",meta:{command:c,args:d,cwd:h,error:e.message}}),a({ok:!1,tool:"terminal_run",status:"failed",command:c,args:d,cwd:h,error:e.message,stdout:j(b),stderr:j(g)})}),i.on("close",(e,i)=>{clearTimeout(k);let l=i?"timeout":0===e?"complete":"failed";(0,f.appendAudit)({type:"local.terminal_run",summary:`terminal_run ${l}: ${c}`,status:l,meta:{command:c,args:d,cwd:h,exit_code:e,signal:i,duration_ms:Date.now()-n,stdout_preview:j(b),stderr_preview:j(g)}}),a({ok:0===e&&!i,tool:"terminal_run",status:l,command:c,args:d,cwd:h,exit_code:e,signal:i,stdout:j(b),stderr:j(g),duration_ms:Date.now()-n})})})}[f,g]=i.then?(await i)():i,d()}catch(a){d(a)}})},81626:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isDynamicRoute",{enumerable:!0,get:function(){return g}});let d=c(78697),e=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,f=/\/\[[^/]+\](?=\/|$)/;function g(a,b){return(void 0===b&&(b=!0),(0,d.isInterceptionRouteAppPath)(a)&&(a=(0,d.extractInterceptionRouteInformation)(a).interceptedRoute),b)?f.test(a):e.test(a)}},81909:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Pq:()=>o,r6:()=>n});var e=c(77598),f=c(84104),g=c(7346),h=a([f]);f=(h.then?(await h)():h)[0];let p="aes-256-gcm",q=new Map;function i(){return(0,g.K2)({db:(0,f.Lf)(),allowGenerate:!0})}function j(a={}){return a.scope?String(a.scope):a.agent_id?`agent:${a.agent_id}`:a.project_id?`project:${a.project_id}`:"global"}function k(a,b={}){return b.project_id?String(b.project_id):String(a).startsWith("project:")?String(a).slice(8):null}function l(a,b,c){return`${a}::${b}::${c||""}`}function m(a,b,c){return(0,f.Lf)().prepare("SELECT * FROM secrets WHERE name = ? AND scope = ? AND COALESCE(project_id, '') = COALESCE(?, '') AND status = 'active' LIMIT 1").get(a,b,c||null)}function n(a,b={}){let c=[];b.agent_id&&c.push([`agent:${b.agent_id}`,null]),b.project_id&&c.push([`project:${b.project_id}`,String(b.project_id)]);let d=j(b);c.push([d,k(d,b)]),c.push(["global",null]);let g=new Set;for(let[b,d]of c){let c=l(a,b,d);if(g.has(c))continue;if(g.add(c),q.has(c))return q.get(c);let h=m(a,b,d);if(h)return function(a,b){let c;try{c=function(a,b,c,d){let f=(0,e.createDecipheriv)(p,d,b);return f.setAuthTag(c),Buffer.concat([f.update(a),f.final()]).toString("utf8")}(Buffer.from(a.value_encrypted),Buffer.from(a.iv),Buffer.from(a.auth_tag),i())}catch(b){throw console.warn(`[secrets] decrypt failed for ${a.name} (scope=${a.scope}, id=${a.id}): ${b?.message||b}. The active MADARX_MASTER_KEY does not match the key that encrypted this row. Either restore the original key or re-store this secret with the current key.`),b}return(0,f.Lf)().prepare("UPDATE secrets SET last_used_at = ? WHERE id = ?").run((0,f.kF)(),a.id),q.set(b,c),c}(h,c)}return Object.prototype.hasOwnProperty.call(process.env,a)?process.env[a]:null}function o(a,b,c={}){if(!a||"string"!=typeof a)throw Error("name is required");if(null==b)throw Error("value is required");let d=j(c),g=k(d,c),h=(0,f.Lf)(),n=(0,f.kF)(),r=m(a,d,g);r&&h.prepare("UPDATE secrets SET status = ?, rotated_at = ? WHERE id = ?").run("rotated",n,r.id),q.delete(l(a,d,g));let{iv:s,encrypted:t,authTag:u}=function(a,b){let c=(0,e.randomBytes)(12),d=(0,e.createCipheriv)(p,b,c),f=Buffer.concat([d.update(String(a),"utf8"),d.final()]);return{iv:c,encrypted:f,authTag:d.getAuthTag()}}(b,i());h.prepare(`INSERT INTO secrets (id, name, scope, value_encrypted, iv, auth_tag, status, source, metadata_json, project_id, created_at)
|
|
1428
|
-
VALUES (?, ?, ?, ?, ?, ?, 'active', ?, ?, ?, ?)`).run((0,f.Si)("sec"),a,d,t,s,u,c.source||"manual",c.metadata?JSON.stringify(c.metadata):null,g,n),q.set(l(a,d,g),String(b))}d()}catch(a){d(a)}})},81929:(a,b,c)=>{"use strict";c.d(b,{S:()=>e});var d=c(8512);function e(a){return null===a||(0,d.Ee)(a)||(0,d.Ny)(a)?1:(0,d.es)(a)?2:void 0}},82120:(a,b,c)=>{"use strict";c.d(b,{default:()=>m});var d=c(21124),e=c(38301),f=c(23312),g=c(43815),h=c(85708);let i=(0,h.createServerReference)("404cce7150d2acc5ee19356fa3efb446f4ccd47781",h.callServer,void 0,h.findSourceMapURL,"updateProjectAction");var j=c(54151);let k=[{value:"#c2452a",name:"Mars Red"},{value:"#a83a22",name:"Deep Red"},{value:"#7c2b19",name:"Dark Red"},{value:"#111318",name:"Charcoal"},{value:"#3f3a30",name:"Warm Black"},{value:"#68707b",name:"Slate"},{value:"#cdb78a",name:"Warm Sand"},{value:"#1f6c9f",name:"Skill Blue"}];function l(){let{pending:a}=(0,f.useFormStatus)();return(0,d.jsx)("button",{type:"submit",className:"admin-button",disabled:a,"aria-busy":a?"true":void 0,children:a?"Saving…":"Save changes"})}function m({projectId:a,projectName:b,projectColor:c,projectDescription:f,projectFolderPath:h}){let[m,n]=e.useState(!1),[o,p]=e.useState("keep"),[q,r]=e.useState(h||""),s=e.useRef(null);return e.useEffect(()=>{m&&(p("keep"),r(h||""))},[m,h]),e.useEffect(()=>{"custom"===o&&s.current?.focus()},[o]),(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",className:"admin-button secondary project-edit",onClick:()=>n(!0),"aria-label":`Edit ${b}`,children:"Edit"}),(0,d.jsx)(g.A,{open:m,onClose:()=>n(!1),eyebrow:"Edit project",title:`Edit ${b}`,children:(0,d.jsxs)("form",{className:"agents-modal-form",action:i,children:[(0,d.jsx)("input",{type:"hidden",name:"project_id",value:a}),(0,d.jsx)("section",{className:"agents-modal-section",children:(0,d.jsxs)("label",{className:"agents-modal-field wide",children:[(0,d.jsx)("span",{children:"Name"}),(0,d.jsx)("input",{name:"name",type:"text",defaultValue:b,autoComplete:"off",required:!0})]})}),(0,d.jsxs)("section",{className:"agents-modal-section",children:[(0,d.jsxs)("div",{className:"agents-modal-section-head",children:[(0,d.jsx)("span",{children:"Folder location"}),(0,d.jsx)("small",{children:"Where project files live on disk. Move only if you've already moved the folder yourself."})]}),(0,d.jsxs)("div",{className:"agents-modal-radio-group",children:[(0,d.jsxs)("label",{className:`agents-modal-radio ${"keep"===o?"on":""}`,children:[(0,d.jsx)("input",{type:"radio",name:"folder_mode",value:"keep",checked:"keep"===o,onChange:()=>p("keep")}),(0,d.jsxs)("span",{className:"agents-modal-radio-body",children:[(0,d.jsx)("b",{children:"Keep current"}),(0,d.jsx)("code",{title:h||"",children:function(a,b=48){if(!a||a.length<=b)return a;let c=a.slice(0,Math.floor(b/2)-1),d=a.slice(a.length-Math.floor(b/2)+2);return`${c}…${d}`}(h)||"(not set)"})]})]}),(0,d.jsxs)("label",{className:`agents-modal-radio ${"custom"===o?"on":""}`,children:[(0,d.jsx)("input",{type:"radio",name:"folder_mode",value:"custom",checked:"custom"===o,onChange:()=>p("custom")}),(0,d.jsxs)("span",{className:"agents-modal-radio-body",children:[(0,d.jsx)("b",{children:"Change to…"}),(0,d.jsx)("small",{children:"Absolute path. Must already exist or be writable."})]})]})]}),"custom"===o?(0,d.jsx)(j.A,{inputRef:s,value:q,onChange:r}):(0,d.jsx)("input",{type:"hidden",name:"folder_path",value:""})]}),(0,d.jsxs)("section",{className:"agents-modal-section",children:[(0,d.jsxs)("div",{className:"agents-modal-section-head",children:[(0,d.jsx)("span",{children:"Color"}),(0,d.jsx)("small",{children:"Tile color across the app."})]}),(0,d.jsxs)("fieldset",{className:"agents-modal-swatches",children:[(0,d.jsx)("legend",{className:"visually-hidden",children:"Project color"}),k.map(a=>(0,d.jsxs)("label",{className:"agents-modal-swatch",style:{"--swatch":a.value},children:[(0,d.jsx)("input",{type:"radio",name:"color",value:a.value,defaultChecked:a.value===(c||"#c2452a")}),(0,d.jsx)("span",{className:"agents-modal-swatch-ring","aria-hidden":"true"}),(0,d.jsx)("span",{className:"visually-hidden",children:a.name})]},a.value))]})]}),(0,d.jsxs)("section",{className:"agents-modal-section",children:[(0,d.jsxs)("div",{className:"agents-modal-section-head",children:[(0,d.jsx)("span",{children:"Description"}),(0,d.jsx)("small",{children:"Used as context for agents working in this project."})]}),(0,d.jsx)("label",{className:"agents-modal-field wide",children:(0,d.jsx)("textarea",{name:"description",rows:3,defaultValue:f||"",placeholder:"What is this project for? Goals, audience, voice, constraints."})})]}),(0,d.jsxs)("footer",{className:"agents-modal-foot",children:[(0,d.jsx)("button",{type:"button",className:"admin-button secondary",onClick:()=>n(!1),children:"Cancel"}),(0,d.jsx)(l,{})]})]})})]})}},83183:(a,b,c)=>{"use strict";a.exports=c(49754).vendored["react-rsc"].ReactServerDOMWebpackServer},83237:a=>{"use strict";a.exports=import("playwright")},83498:(a,b,c)=>{"use strict";c.d(b,{Dl:()=>i,Jh:()=>v,QG:()=>j,bo:()=>p,c_:()=>t,nJ:()=>n,ny:()=>x,un:()=>o,wn:()=>k,yQ:()=>r,z9:()=>w});var d=c(76760),e=c(73024),f=c(48161),g=c(73136);let h=d.dirname((0,g.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/paths.js")),i=d.resolve(h,".."),j=process.env.MADARX_PKG_ROOT?d.resolve(process.env.MADARX_PKG_ROOT):i;function k(...a){for(let b of a)try{if(b&&e.statSync(b).isDirectory())return b}catch{}return process.cwd()}let l=!1;function m(a,b,c){if(process.env[a])return d.resolve(process.env[a]);if(process.env[b]){let a=d.resolve(process.env[b]);return!function(a,b){if(l||b.startsWith(f.tmpdir()))return;l=!0;let c=a.replace("VILLA515_","MADARX_");console.warn(`[paths] ${a} is deprecated — rename it to ${c}. The old name still works for now but will be removed in a future release.`)}(b,a),a}let e=process.env.MADARX_HOME?d.resolve(process.env.MADARX_HOME):null;return e?d.join(e,c):d.join(i,c)}let n=m("MADARX_DATA_DIR","VILLA515_DATA_DIR","data"),o=m("MADARX_WORKSPACE","VILLA515_WORKSPACE","workspace"),p=d.join(o,"agents"),q=d.join(o,"reports"),r=d.join(o,"artifacts"),s=d.join(o,"brand"),t=d.join(n,"madarx.sqlite"),u=d.join(n,"whatsapp");function v(){for(let a of[n,o,p,q,r,s])e.mkdirSync(a,{recursive:!0})}function w(a){return d.relative(i,a)}function x(a){if(!a)return null;if(d.isAbsolute(a))return a;let b=d.resolve(i,a);if(e.existsSync(b))return b;let c=a.replace(/\\/g,"/");for(let a of[o,n]){let b=`${d.basename(a)}/`,f=c.lastIndexOf(b);if(-1!==f){let g=d.join(a,c.slice(f+b.length));if(e.existsSync(g))return g}}return b}d.join(u,"session"),d.join(i,"scripts","whatsapp-bridge")},84104:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Lf:()=>n,Si:()=>p,kF:()=>o});var e=c(80099),f=c(73024),g=c(76760),h=c(48161),i=c(77598),j=c(83498),k=c(95411),l=c(26200),m=a([l]);l=(m.then?(await m)():m)[0];let q=null,r=null;function n(){if(q&&r===j.c_)return q;if(q){try{q.close()}catch{}q=null}(0,j.Jh)();let a=new e.DatabaseSync(j.c_);for(let b of(a.exec("PRAGMA journal_mode=WAL;"),a.exec("PRAGMA busy_timeout=5000;"),a.exec("PRAGMA foreign_keys=ON;"),a.exec(k.x),["ALTER TABLE artifacts ADD COLUMN title TEXT","ALTER TABLE artifacts ADD COLUMN content TEXT","ALTER TABLE artifacts ADD COLUMN source_md TEXT","ALTER TABLE agents ADD COLUMN system_prompt TEXT","ALTER TABLE agents ADD COLUMN memory TEXT","ALTER TABLE agents ADD COLUMN model TEXT","ALTER TABLE runs ADD COLUMN output TEXT","ALTER TABLE hermes_jobs ADD COLUMN cwd TEXT","ALTER TABLE hermes_jobs ADD COLUMN timeout_ms INTEGER","ALTER TABLE connectors ADD COLUMN type TEXT","ALTER TABLE connectors ADD COLUMN capabilities TEXT","ALTER TABLE connectors ADD COLUMN metadata TEXT","ALTER TABLE schedules ADD COLUMN last_queued_at TEXT","ALTER TABLE schedules ADD COLUMN last_queued_window TEXT","ALTER TABLE heartbeat_tasks ADD COLUMN approval_request_id TEXT","ALTER TABLE agents ADD COLUMN reports_to TEXT","ALTER TABLE agents ADD COLUMN role TEXT","ALTER TABLE agents ADD COLUMN title TEXT","ALTER TABLE agents ADD COLUMN status_reason TEXT","ALTER TABLE agents ADD COLUMN autonomy_mode TEXT","ALTER TABLE agents ADD COLUMN budget_monthly_cents INTEGER DEFAULT 0","ALTER TABLE agents ADD COLUMN spent_monthly_cents INTEGER DEFAULT 0","ALTER TABLE agents ADD COLUMN permissions_json TEXT","ALTER TABLE agents ADD COLUMN metadata_json TEXT","ALTER TABLE agents ADD COLUMN project_id TEXT","ALTER TABLE agents ADD COLUMN template_slug TEXT","ALTER TABLE secrets ADD COLUMN project_id TEXT","ALTER TABLE audit_logs ADD COLUMN project_id TEXT","ALTER TABLE audit_logs ADD COLUMN correlation_id TEXT","ALTER TABLE tool_egress ADD COLUMN project_id TEXT","ALTER TABLE activity_log ADD COLUMN project_id TEXT","ALTER TABLE artifacts ADD COLUMN project_id TEXT","ALTER TABLE heartbeat_tasks ADD COLUMN project_id TEXT","ALTER TABLE transcripts ADD COLUMN engine TEXT","ALTER TABLE transcripts ADD COLUMN language TEXT","ALTER TABLE transcripts ADD COLUMN duration_seconds REAL","ALTER TABLE approval_requests ADD COLUMN project_id TEXT","ALTER TABLE projects ADD COLUMN folder_path TEXT","ALTER TABLE tasks ADD COLUMN due_at TEXT","ALTER TABLE tasks ADD COLUMN tags_json TEXT","ALTER TABLE tasks ADD COLUMN estimate_minutes INTEGER","ALTER TABLE tasks ADD COLUMN watchers_json TEXT","ALTER TABLE tasks ADD COLUMN recurrence TEXT","ALTER TABLE tasks ADD COLUMN acceptance_criteria TEXT","ALTER TABLE tasks ADD COLUMN recurred_from_task_id TEXT","ALTER TABLE artifacts ADD COLUMN task_id TEXT","ALTER TABLE artifacts ADD COLUMN is_protected INTEGER NOT NULL DEFAULT 0","ALTER TABLE projects ADD COLUMN org_id TEXT","ALTER TABLE artifacts ADD COLUMN owner_user_id TEXT","ALTER TABLE artifacts ADD COLUMN sharing_scope TEXT NOT NULL DEFAULT 'private'","ALTER TABLE artifacts ADD COLUMN encrypted INTEGER NOT NULL DEFAULT 0","ALTER TABLE artifacts ADD COLUMN encryption_key_id TEXT","ALTER TABLE audit_logs ADD COLUMN user_id TEXT","ALTER TABLE audit_logs ADD COLUMN org_id TEXT","ALTER TABLE audit_logs ADD COLUMN ip TEXT","ALTER TABLE audit_logs ADD COLUMN user_agent TEXT","ALTER TABLE audit_logs ADD COLUMN action_target_id TEXT","ALTER TABLE audit_logs ADD COLUMN action_target_type TEXT","ALTER TABLE activity_log ADD COLUMN user_id TEXT","ALTER TABLE activity_log ADD COLUMN org_id TEXT","ALTER TABLE activity_log ADD COLUMN ip TEXT","ALTER TABLE heartbeat_tasks ADD COLUMN acting_on_behalf_of_user_id TEXT","ALTER TABLE schedules ADD COLUMN created_by_user_id TEXT","ALTER TABLE schedules ADD COLUMN catchup_policy TEXT DEFAULT 'fire_all'","ALTER TABLE artifacts ADD COLUMN folder_id TEXT","ALTER TABLE artifacts ADD COLUMN space_id TEXT","ALTER TABLE agents ADD COLUMN default_space_id TEXT","ALTER TABLE artifacts ADD COLUMN heartbeat_task_id TEXT","ALTER TABLE artifacts ADD COLUMN dedupe_key TEXT","ALTER TABLE artifact_share_links ADD COLUMN token TEXT","ALTER TABLE artifacts ADD COLUMN pinned_to_space_at TEXT","ALTER TABLE process_definitions ADD COLUMN source_spec_json TEXT","ALTER TABLE process_definitions ADD COLUMN schema_version INTEGER NOT NULL DEFAULT 1","ALTER TABLE process_definitions ADD COLUMN created_by_user_id TEXT","ALTER TABLE process_definitions ADD COLUMN created_by_agent_id TEXT","ALTER TABLE tool_allowlists ADD COLUMN org_id TEXT","ALTER TABLE tool_allowlists ADD COLUMN created_by_user_id TEXT","ALTER TABLE agents ADD COLUMN expected_output TEXT","ALTER TABLE mines_projects ADD COLUMN default_space_id TEXT"]))try{a.exec(b)}catch(a){if(!/duplicate column name/i.test(String(a?.message||a)))throw a}return a.exec("CREATE INDEX IF NOT EXISTS idx_agents_reports_to ON agents(reports_to);"),a.exec("CREATE INDEX IF NOT EXISTS idx_tasks_due_at ON tasks(due_at);"),a.exec("DROP INDEX IF EXISTS idx_secrets_one_active;"),a.exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_secrets_one_active ON secrets(name, scope, COALESCE(project_id, '')) WHERE status = 'active';"),a.exec("CREATE INDEX IF NOT EXISTS idx_audit_project_at ON audit_logs(project_id, at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_egress_project_at ON tool_egress(project_id, at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_activity_project ON activity_log(project_id, created_at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_project ON artifacts(project_id, created_at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_task ON artifacts(task_id, created_at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_folder ON artifacts(project_id, folder_id);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_space ON artifacts(space_id);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_heartbeat_task ON artifacts(heartbeat_task_id);\nCREATE INDEX IF NOT EXISTS idx_artifacts_dedupe_key ON artifacts(dedupe_key);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_is_protected ON artifacts(is_protected, project_id);"),a.exec("CREATE INDEX IF NOT EXISTS idx_projects_org ON projects(org_id);"),a.exec("CREATE INDEX IF NOT EXISTS idx_audit_user ON audit_logs(user_id, at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_audit_org ON audit_logs(org_id, at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_audit_target ON audit_logs(action_target_type, action_target_id, at DESC);"),a.exec("CREATE TRIGGER IF NOT EXISTS audit_logs_no_update\nBEFORE UPDATE ON audit_logs\nBEGIN\n SELECT RAISE(ABORT, 'audit_logs rows are immutable');\nEND;"),a.exec("CREATE TRIGGER IF NOT EXISTS audit_logs_no_delete\nBEFORE DELETE ON audit_logs\nBEGIN\n SELECT RAISE(ABORT, 'audit_logs rows cannot be deleted');\nEND;"),!function(){try{if(!a.prepare("PRAGMA index_list('secrets')").all().some(b=>"u"===b.origin&&b.name.startsWith("sqlite_autoindex_secrets_")&&3===a.prepare(`PRAGMA index_info('${b.name}')`).all().length))return;a.exec("BEGIN"),a.exec("CREATE TABLE secrets_new (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n scope TEXT NOT NULL DEFAULT 'global',\n value_encrypted BLOB NOT NULL,\n iv BLOB NOT NULL,\n auth_tag BLOB NOT NULL,\n status TEXT NOT NULL DEFAULT 'active',\n source TEXT,\n metadata_json TEXT,\n last_used_at TEXT,\n created_at TEXT NOT NULL,\n rotated_at TEXT\n)"),a.exec("INSERT INTO secrets_new\n SELECT id, name, scope, value_encrypted, iv, auth_tag, status,\n source, metadata_json, last_used_at, created_at, rotated_at\n FROM secrets\n WHERE status = 'active'"),a.exec("DROP TABLE secrets"),a.exec("ALTER TABLE secrets_new RENAME TO secrets"),a.exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_secrets_one_active\n ON secrets(name, scope) WHERE status = 'active'"),a.exec("CREATE INDEX IF NOT EXISTS idx_secrets_name_status\n ON secrets(name, status)"),a.exec("COMMIT")}catch(b){try{a.exec("ROLLBACK")}catch{}throw b}}(),a.exec(k.t),q=a,r=j.c_,(0,l.ef)(a),function(){if("1"===process.env.MADARX_DISABLE_INPROC_DAEMON||process.env.MADARX_DATA_DIR||process.env.VILLA515_DATA_DIR)return;let a=Number(process.env.CRON_DAEMON_INTERVAL_MS||3e4),b=Number(process.env.HEARTBEAT_WORKER_INTERVAL_MS||5e3),d=process.env.MADARX_INPROC_HOST||"127.0.0.1",e=process.env.PORT||process.env.MADARX_PORT||"8787",k=`http://${d}:${e}`,l=Number(process.env.MADARX_INPROC_POKE_TIMEOUT_MS||5e3);async function m(a){let{getInprocToken:b,INPROC_TOKEN_HEADER:d}=await c.e(671).then(c.bind(c,671)),e=new AbortController,f=setTimeout(()=>e.abort(),l);try{let c=await fetch(`${k}${a}`,{method:"POST",headers:{"content-type":"application/json",[d]:b()},body:"{}",signal:e.signal});if(!c.ok)throw Error(`route ${a} returned ${c.status}`);return await c.json()}finally{clearTimeout(f)}}function n({name:a,flag:b,intervalMs:c,route:d,tag:e}){if(globalThis[b])return;let k=()=>{if(globalThis[b])return!0;let k=function(a,b){let c=function(a){let b=i.createHash("sha1").update(j.nJ).digest("hex").slice(0,12);return g.join(h.tmpdir(),`madarx-daemon-${b}-${a}.lock`)}(a),d=Math.max(3*b,15e3),e=()=>{let a=f.openSync(c,"wx");try{f.writeSync(a,JSON.stringify({pid:process.pid,at:Date.now()}))}finally{f.closeSync(a)}};try{return e(),c}catch(a){if("EEXIST"!==a.code)return null}let k=!1;try{k=Date.now()-f.statSync(c).mtimeMs<d}catch{}if(k)return null;try{return f.rmSync(c,{force:!0}),e(),c}catch{return null}}(a,c);if(!k)return!1;globalThis[b]=!0,process.once("exit",()=>{try{f.rmSync(k,{force:!0})}catch{}});let l=0,n=Math.max(6,Math.ceil(3e4/c)),o=setInterval(async()=>{try{let a=new Date;f.utimesSync(k,a,a)}catch{}try{await m(d),l=0}catch(a){if(l++,console.warn(`[${e}:inproc] tick error:`,a?.message||a),l>=n){console.warn(`[${e}:inproc] ${l} consecutive failures — server gone, stopping loop`),clearInterval(o),globalThis[b]=!1;try{f.rmSync(k,{force:!0})}catch{}}}},c);return"function"==typeof o.unref&&o.unref(),!0};if(k())return;let l=Math.max(3*c,15e3),n=setTimeout(k,l+Math.floor(1e3*Math.random()));"function"==typeof n.unref&&n.unref()}n({name:"cron",flag:"__madarxCronStarted",intervalMs:a,route:"/api/cron/tick",tag:"cron"}),n({name:"heartbeat",flag:"__madarxHeartbeatStarted",intervalMs:b,route:"/api/heartbeat/worker",tag:"heartbeat"})}(),a}function o(){return new Date().toISOString()}function p(a="id"){return`${a}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}d()}catch(a){d(a)}})},84125:(a,b)=>{"use strict";let c;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"cloneResponse",{enumerable:!0,get:function(){return e}});let d=()=>{};function e(a){if(!a.body)return[a,a];let[b,d]=a.body.tee(),e=new Response(b,{status:a.status,statusText:a.statusText,headers:a.headers});Object.defineProperty(e,"url",{value:a.url,configurable:!0,enumerable:!0,writable:!1}),c&&e.body&&c.register(e,new WeakRef(e.body));let f=new Response(d,{status:a.status,statusText:a.statusText,headers:a.headers});return Object.defineProperty(f,"url",{value:a.url,configurable:!0,enumerable:!0,writable:!1}),[e,f]}globalThis.FinalizationRegistry&&(c=new FinalizationRegistry(a=>{let b=a.deref();b&&!b.locked&&b.cancel("Response object has been garbage collected").then(d)}))},84939:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Hy:()=>h,n_:()=>k,t2:()=>j,uu:()=>i});var e=c(84104),f=c(17830),g=a([e]);function h(a,b={},c={}){let d=(0,f.ho)(a,{knownToolNames:c.knownToolNames,toolRiskByName:c.toolRiskByName});if(!d.ok){let a=Error("composite spec invalid");throw a.code="spec_invalid",a.errors=d.errors,a}let g=d.normalized,i=(0,e.Lf)(),j=(0,e.kF)(),k=i.prepare("SELECT slug FROM composite_tools WHERE slug = ?").get(g.slug),l=JSON.stringify(g),m=JSON.stringify(g.input_schema||{type:"object",properties:{}});return k?i.prepare(`UPDATE composite_tools
|
|
1438
|
+
VALUES (?, ?, ?, ?, ?, ?, 'active', ?, ?, ?, ?)`).run((0,f.Si)("sec"),a,d,t,s,u,c.source||"manual",c.metadata?JSON.stringify(c.metadata):null,g,n),q.set(l(a,d,g),String(b))}d()}catch(a){d(a)}})},81929:(a,b,c)=>{"use strict";c.d(b,{S:()=>e});var d=c(8512);function e(a){return null===a||(0,d.Ee)(a)||(0,d.Ny)(a)?1:(0,d.es)(a)?2:void 0}},83183:(a,b,c)=>{"use strict";a.exports=c(49754).vendored["react-rsc"].ReactServerDOMWebpackServer},83237:a=>{"use strict";a.exports=import("playwright")},83498:(a,b,c)=>{"use strict";c.d(b,{Dl:()=>i,Jh:()=>v,QG:()=>j,bo:()=>p,c_:()=>t,nJ:()=>n,ny:()=>x,un:()=>o,wn:()=>k,yQ:()=>r,z9:()=>w});var d=c(76760),e=c(73024),f=c(48161),g=c(73136);let h=d.dirname((0,g.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/paths.js")),i=d.resolve(h,".."),j=process.env.MADARX_PKG_ROOT?d.resolve(process.env.MADARX_PKG_ROOT):i;function k(...a){for(let b of a)try{if(b&&e.statSync(b).isDirectory())return b}catch{}return process.cwd()}let l=!1;function m(a,b,c){if(process.env[a])return d.resolve(process.env[a]);if(process.env[b]){let a=d.resolve(process.env[b]);return!function(a,b){if(l||b.startsWith(f.tmpdir()))return;l=!0;let c=a.replace("VILLA515_","MADARX_");console.warn(`[paths] ${a} is deprecated — rename it to ${c}. The old name still works for now but will be removed in a future release.`)}(b,a),a}let e=process.env.MADARX_HOME?d.resolve(process.env.MADARX_HOME):null;return e?d.join(e,c):d.join(i,c)}let n=m("MADARX_DATA_DIR","VILLA515_DATA_DIR","data"),o=m("MADARX_WORKSPACE","VILLA515_WORKSPACE","workspace"),p=d.join(o,"agents"),q=d.join(o,"reports"),r=d.join(o,"artifacts"),s=d.join(o,"brand"),t=d.join(n,"madarx.sqlite"),u=d.join(n,"whatsapp");function v(){for(let a of[n,o,p,q,r,s])e.mkdirSync(a,{recursive:!0})}function w(a){return d.relative(i,a)}function x(a){if(!a)return null;if(d.isAbsolute(a))return a;let b=d.resolve(i,a);if(e.existsSync(b))return b;let c=a.replace(/\\/g,"/");for(let a of[o,n]){let b=`${d.basename(a)}/`,f=c.lastIndexOf(b);if(-1!==f){let g=d.join(a,c.slice(f+b.length));if(e.existsSync(g))return g}}return b}d.join(u,"session"),d.join(i,"scripts","whatsapp-bridge")},83796:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{D6:()=>r,Hz:()=>s,Jz:()=>u,aU:()=>t});var e=c(76760),f=c(73024),g=c(83498),h=c(684),i=c(89145),j=a([i]);i=(j.then?(await j)():j)[0];let v=e.join(g.nJ,"browser-profile"),w=e.join(g.nJ,"browser-screenshots"),x=null,y=null,z=null;function k(a){let b=Number(a);return!Number.isFinite(b)||b<=0?3e4:Math.min(12e4,Math.max(1e3,Math.floor(b)))}function l(a){return(0,h.nc)(String(a??"").slice(0,2e4))}async function m(a){let b=function(){let a=String(process.env.MADARX_BROWSER_HEADED||"").trim().toLowerCase();return"1"===a||"true"===a||"yes"===a||"on"===a}(),c={headless:!b,args:["--no-sandbox","--disable-dev-shm-usage"]};if(b)try{return await a.launchPersistentContext(v,{...c,channel:"chrome"})}catch{}return await a.launchPersistentContext(v,c)}function n(){z&&clearTimeout(z),z=setTimeout(()=>{o().catch(()=>{})},9e4),"function"==typeof z.unref&&z.unref()}async function o(){z&&(clearTimeout(z),z=null);let a=x;if(x=null,y=null,a)try{await a.close()}catch{}}async function p(){let a;if(x&&y&&!y.isClosed())return n(),y;try{({chromium:a}=await Promise.resolve().then(c.bind(c,83237)))}catch{throw Error("Playwright is not installed. Run: npm install playwright && npx playwright install chromium")}f.mkdirSync(v,{recursive:!0});try{x=await m(a)}catch(a){throw x=null,Error(`Failed to launch Chromium (${a?.message||a}). Provision it with: npx playwright install chromium`)}return x.setDefaultTimeout(3e4),y=x.pages()[0]||await x.newPage(),n(),y}async function q(a){let b="";try{b=await a.title()}catch{}return{url:a.url(),title:b}}async function r(a={}){let b=(0,i.vC)(a.url).href,c=k(a.timeout_ms);try{let d=await p();if(await d.goto(b,{waitUntil:"domcontentloaded",timeout:c}),a.wait_for)try{await d.waitForSelector(String(a.wait_for),{timeout:c})}catch{}let{url:e,title:f}=await q(d),g=await d.evaluate(()=>document.body?.innerText||"");return{ok:!0,tool:"browser_open",status:"complete",url:e,title:f,text:l(g)}}catch(a){return{ok:!1,tool:"browser_open",status:"failed",url:b,error:String(a?.message||a)}}}let A=new Set(["click","fill","type","select","press","scroll","wait"]);async function s(a={}){let b,c=String(a.action||"").toLowerCase();if(!A.has(c))return{ok:!1,tool:"browser_act",status:"error",error:`unknown action: ${c||"(none)"}`};let d=k(a.timeout_ms);try{b=await p()}catch(a){return{ok:!1,tool:"browser_act",status:"failed",error:String(a?.message||a)}}try{if("scroll"===c)await b.evaluate(()=>window.scrollBy(0,window.innerHeight));else if("wait"===c)a.selector?await b.waitForSelector(String(a.selector),{timeout:d}):await b.waitForTimeout(Math.min(d,1e4));else{let e=String(a.selector||"");if(!e)return{ok:!1,tool:"browser_act",status:"error",error:"selector is required"};let f=b.locator(e).first();"click"===c?await f.click({timeout:d}):"fill"===c?await f.fill(String(a.text??""),{timeout:d}):"type"===c?await f.pressSequentially(String(a.text??""),{timeout:d}):"select"===c?await f.selectOption(String(a.value??a.text??""),{timeout:d}):"press"===c&&await f.press(String(a.key||"Enter"),{timeout:d})}let{url:e,title:f}=await q(b);return{ok:!0,tool:"browser_act",status:"complete",action:c,url:e,title:f}}catch(a){return{ok:!1,tool:"browser_act",status:"failed",action:c,error:String(a?.message||a)}}}async function t(a={}){let b,c=String(a.mode||"text").toLowerCase(),d=a.selector?String(a.selector):null;try{b=await p()}catch(a){return{ok:!1,tool:"browser_extract",status:"failed",error:String(a?.message||a)}}try{let a="";a="html"===c?d?await b.locator(d).first().innerHTML().catch(()=>"")||"":await b.content():"json-ld"===c?(await b.evaluate(()=>Array.from(document.querySelectorAll('script[type="application/ld+json"]')).map(a=>a.textContent||""))).join("\n"):d?await b.locator(d).first().innerText().catch(()=>"")||"":await b.evaluate(()=>document.body?.innerText||"");let{url:e,title:f}=await q(b);return{ok:!0,tool:"browser_extract",status:"complete",mode:c,url:e,title:f,content:l(a)}}catch(a){return{ok:!1,tool:"browser_extract",status:"failed",error:String(a?.message||a)}}}async function u(a={}){let b;try{b=await p()}catch(a){return{ok:!1,tool:"browser_screenshot",status:"failed",error:String(a?.message||a)}}try{f.mkdirSync(w,{recursive:!0});let c=`shot-${Date.now()}.png`.replace(/[^a-zA-Z0-9_.-]/g,"-"),d=e.join(w,c),g={path:d,fullPage:!!a.full_page};a.selector?await b.locator(String(a.selector)).first().screenshot({path:d}):await b.screenshot(g);let{url:h,title:i}=await q(b);return{ok:!0,tool:"browser_screenshot",status:"complete",url:h,title:i,path:d}}catch(a){return{ok:!1,tool:"browser_screenshot",status:"failed",error:String(a?.message||a)}}}d()}catch(a){d(a)}})},84104:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Lf:()=>n,Si:()=>p,kF:()=>o});var e=c(80099),f=c(73024),g=c(76760),h=c(48161),i=c(77598),j=c(83498),k=c(95411),l=c(26200),m=a([l]);l=(m.then?(await m)():m)[0];let q=null,r=null;function n(){if(q&&r===j.c_)return q;if(q){try{q.close()}catch{}q=null}(0,j.Jh)();let a=new e.DatabaseSync(j.c_);for(let b of(a.exec("PRAGMA journal_mode=WAL;"),a.exec("PRAGMA busy_timeout=5000;"),a.exec("PRAGMA foreign_keys=ON;"),a.exec(k.x),["ALTER TABLE artifacts ADD COLUMN title TEXT","ALTER TABLE artifacts ADD COLUMN content TEXT","ALTER TABLE artifacts ADD COLUMN source_md TEXT","ALTER TABLE agents ADD COLUMN system_prompt TEXT","ALTER TABLE agents ADD COLUMN memory TEXT","ALTER TABLE agents ADD COLUMN model TEXT","ALTER TABLE runs ADD COLUMN output TEXT","ALTER TABLE hermes_jobs ADD COLUMN cwd TEXT","ALTER TABLE hermes_jobs ADD COLUMN timeout_ms INTEGER","ALTER TABLE connectors ADD COLUMN type TEXT","ALTER TABLE connectors ADD COLUMN capabilities TEXT","ALTER TABLE connectors ADD COLUMN metadata TEXT","ALTER TABLE schedules ADD COLUMN last_queued_at TEXT","ALTER TABLE schedules ADD COLUMN last_queued_window TEXT","ALTER TABLE heartbeat_tasks ADD COLUMN approval_request_id TEXT","ALTER TABLE agents ADD COLUMN reports_to TEXT","ALTER TABLE agents ADD COLUMN role TEXT","ALTER TABLE agents ADD COLUMN title TEXT","ALTER TABLE agents ADD COLUMN status_reason TEXT","ALTER TABLE agents ADD COLUMN autonomy_mode TEXT","ALTER TABLE agents ADD COLUMN budget_monthly_cents INTEGER DEFAULT 0","ALTER TABLE agents ADD COLUMN spent_monthly_cents INTEGER DEFAULT 0","ALTER TABLE agents ADD COLUMN permissions_json TEXT","ALTER TABLE agents ADD COLUMN metadata_json TEXT","ALTER TABLE agents ADD COLUMN project_id TEXT","ALTER TABLE agents ADD COLUMN template_slug TEXT","ALTER TABLE secrets ADD COLUMN project_id TEXT","ALTER TABLE audit_logs ADD COLUMN project_id TEXT","ALTER TABLE audit_logs ADD COLUMN correlation_id TEXT","ALTER TABLE tool_egress ADD COLUMN project_id TEXT","ALTER TABLE activity_log ADD COLUMN project_id TEXT","ALTER TABLE artifacts ADD COLUMN project_id TEXT","ALTER TABLE heartbeat_tasks ADD COLUMN project_id TEXT","ALTER TABLE transcripts ADD COLUMN engine TEXT","ALTER TABLE transcripts ADD COLUMN language TEXT","ALTER TABLE transcripts ADD COLUMN duration_seconds REAL","ALTER TABLE approval_requests ADD COLUMN project_id TEXT","ALTER TABLE projects ADD COLUMN folder_path TEXT","ALTER TABLE tasks ADD COLUMN due_at TEXT","ALTER TABLE tasks ADD COLUMN tags_json TEXT","ALTER TABLE tasks ADD COLUMN estimate_minutes INTEGER","ALTER TABLE tasks ADD COLUMN watchers_json TEXT","ALTER TABLE tasks ADD COLUMN recurrence TEXT","ALTER TABLE tasks ADD COLUMN acceptance_criteria TEXT","ALTER TABLE tasks ADD COLUMN recurred_from_task_id TEXT","ALTER TABLE artifacts ADD COLUMN task_id TEXT","ALTER TABLE artifacts ADD COLUMN is_protected INTEGER NOT NULL DEFAULT 0","ALTER TABLE projects ADD COLUMN org_id TEXT","ALTER TABLE artifacts ADD COLUMN owner_user_id TEXT","ALTER TABLE artifacts ADD COLUMN sharing_scope TEXT NOT NULL DEFAULT 'private'","ALTER TABLE artifacts ADD COLUMN encrypted INTEGER NOT NULL DEFAULT 0","ALTER TABLE artifacts ADD COLUMN encryption_key_id TEXT","ALTER TABLE audit_logs ADD COLUMN user_id TEXT","ALTER TABLE audit_logs ADD COLUMN org_id TEXT","ALTER TABLE audit_logs ADD COLUMN ip TEXT","ALTER TABLE audit_logs ADD COLUMN user_agent TEXT","ALTER TABLE audit_logs ADD COLUMN action_target_id TEXT","ALTER TABLE audit_logs ADD COLUMN action_target_type TEXT","ALTER TABLE activity_log ADD COLUMN user_id TEXT","ALTER TABLE activity_log ADD COLUMN org_id TEXT","ALTER TABLE activity_log ADD COLUMN ip TEXT","ALTER TABLE heartbeat_tasks ADD COLUMN acting_on_behalf_of_user_id TEXT","ALTER TABLE schedules ADD COLUMN created_by_user_id TEXT","ALTER TABLE schedules ADD COLUMN catchup_policy TEXT DEFAULT 'fire_all'","ALTER TABLE artifacts ADD COLUMN folder_id TEXT","ALTER TABLE artifacts ADD COLUMN space_id TEXT","ALTER TABLE agents ADD COLUMN default_space_id TEXT","ALTER TABLE artifacts ADD COLUMN heartbeat_task_id TEXT","ALTER TABLE artifacts ADD COLUMN dedupe_key TEXT","ALTER TABLE artifact_share_links ADD COLUMN token TEXT","ALTER TABLE artifacts ADD COLUMN pinned_to_space_at TEXT","ALTER TABLE process_definitions ADD COLUMN source_spec_json TEXT","ALTER TABLE process_definitions ADD COLUMN schema_version INTEGER NOT NULL DEFAULT 1","ALTER TABLE process_definitions ADD COLUMN created_by_user_id TEXT","ALTER TABLE process_definitions ADD COLUMN created_by_agent_id TEXT","ALTER TABLE tool_allowlists ADD COLUMN org_id TEXT","ALTER TABLE tool_allowlists ADD COLUMN created_by_user_id TEXT","ALTER TABLE agents ADD COLUMN expected_output TEXT","ALTER TABLE mines_projects ADD COLUMN default_space_id TEXT","ALTER TABLE chat_sessions ADD COLUMN active_turn_id TEXT","ALTER TABLE chat_sessions ADD COLUMN active_turn_started_at TEXT"]))try{a.exec(b)}catch(a){if(!/duplicate column name/i.test(String(a?.message||a)))throw a}return a.exec("CREATE INDEX IF NOT EXISTS idx_agents_reports_to ON agents(reports_to);"),a.exec("CREATE INDEX IF NOT EXISTS idx_tasks_due_at ON tasks(due_at);"),a.exec("DROP INDEX IF EXISTS idx_secrets_one_active;"),a.exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_secrets_one_active ON secrets(name, scope, COALESCE(project_id, '')) WHERE status = 'active';"),a.exec("CREATE INDEX IF NOT EXISTS idx_audit_project_at ON audit_logs(project_id, at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_egress_project_at ON tool_egress(project_id, at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_activity_project ON activity_log(project_id, created_at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_project ON artifacts(project_id, created_at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_task ON artifacts(task_id, created_at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_folder ON artifacts(project_id, folder_id);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_space ON artifacts(space_id);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_heartbeat_task ON artifacts(heartbeat_task_id);\nCREATE INDEX IF NOT EXISTS idx_artifacts_dedupe_key ON artifacts(dedupe_key);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_is_protected ON artifacts(is_protected, project_id);"),a.exec("CREATE INDEX IF NOT EXISTS idx_projects_org ON projects(org_id);"),a.exec("CREATE INDEX IF NOT EXISTS idx_audit_user ON audit_logs(user_id, at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_audit_org ON audit_logs(org_id, at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_audit_target ON audit_logs(action_target_type, action_target_id, at DESC);"),a.exec("CREATE TRIGGER IF NOT EXISTS audit_logs_no_update\nBEFORE UPDATE ON audit_logs\nBEGIN\n SELECT RAISE(ABORT, 'audit_logs rows are immutable');\nEND;"),a.exec("CREATE TRIGGER IF NOT EXISTS audit_logs_no_delete\nBEFORE DELETE ON audit_logs\nBEGIN\n SELECT RAISE(ABORT, 'audit_logs rows cannot be deleted');\nEND;"),!function(){try{if(!a.prepare("PRAGMA index_list('secrets')").all().some(b=>"u"===b.origin&&b.name.startsWith("sqlite_autoindex_secrets_")&&3===a.prepare(`PRAGMA index_info('${b.name}')`).all().length))return;a.exec("BEGIN"),a.exec("CREATE TABLE secrets_new (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n scope TEXT NOT NULL DEFAULT 'global',\n value_encrypted BLOB NOT NULL,\n iv BLOB NOT NULL,\n auth_tag BLOB NOT NULL,\n status TEXT NOT NULL DEFAULT 'active',\n source TEXT,\n metadata_json TEXT,\n last_used_at TEXT,\n created_at TEXT NOT NULL,\n rotated_at TEXT\n)"),a.exec("INSERT INTO secrets_new\n SELECT id, name, scope, value_encrypted, iv, auth_tag, status,\n source, metadata_json, last_used_at, created_at, rotated_at\n FROM secrets\n WHERE status = 'active'"),a.exec("DROP TABLE secrets"),a.exec("ALTER TABLE secrets_new RENAME TO secrets"),a.exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_secrets_one_active\n ON secrets(name, scope) WHERE status = 'active'"),a.exec("CREATE INDEX IF NOT EXISTS idx_secrets_name_status\n ON secrets(name, status)"),a.exec("COMMIT")}catch(b){try{a.exec("ROLLBACK")}catch{}throw b}}(),a.exec(k.t),q=a,r=j.c_,(0,l.ef)(a),function(){if("1"===process.env.MADARX_DISABLE_INPROC_DAEMON||process.env.MADARX_DATA_DIR||process.env.VILLA515_DATA_DIR)return;let a=Number(process.env.CRON_DAEMON_INTERVAL_MS||3e4),b=Number(process.env.HEARTBEAT_WORKER_INTERVAL_MS||5e3),d=process.env.MADARX_INPROC_HOST||"127.0.0.1",e=process.env.PORT||process.env.MADARX_PORT||"8787",k=`http://${d}:${e}`,l=Number(process.env.MADARX_INPROC_POKE_TIMEOUT_MS||5e3);async function m(a){let{getInprocToken:b,INPROC_TOKEN_HEADER:d}=await c.e(671).then(c.bind(c,671)),e=new AbortController,f=setTimeout(()=>e.abort(),l);try{let c=await fetch(`${k}${a}`,{method:"POST",headers:{"content-type":"application/json",[d]:b()},body:"{}",signal:e.signal});if(!c.ok)throw Error(`route ${a} returned ${c.status}`);return await c.json()}finally{clearTimeout(f)}}function n({name:a,flag:b,intervalMs:c,route:d,tag:e}){if(globalThis[b])return;let k=()=>{if(globalThis[b])return!0;let k=function(a,b){let c=function(a){let b=i.createHash("sha1").update(j.nJ).digest("hex").slice(0,12);return g.join(h.tmpdir(),`madarx-daemon-${b}-${a}.lock`)}(a),d=Math.max(3*b,15e3),e=()=>{let a=f.openSync(c,"wx");try{f.writeSync(a,JSON.stringify({pid:process.pid,at:Date.now()}))}finally{f.closeSync(a)}};try{return e(),c}catch(a){if("EEXIST"!==a.code)return null}let k=!1;try{k=Date.now()-f.statSync(c).mtimeMs<d}catch{}if(k)return null;try{return f.rmSync(c,{force:!0}),e(),c}catch{return null}}(a,c);if(!k)return!1;globalThis[b]=!0,process.once("exit",()=>{try{f.rmSync(k,{force:!0})}catch{}});let l=0,n=Math.max(6,Math.ceil(3e4/c)),o=setInterval(async()=>{try{let a=new Date;f.utimesSync(k,a,a)}catch{}try{await m(d),l=0}catch(a){if(l++,console.warn(`[${e}:inproc] tick error:`,a?.message||a),l>=n){console.warn(`[${e}:inproc] ${l} consecutive failures — server gone, stopping loop`),clearInterval(o),globalThis[b]=!1;try{f.rmSync(k,{force:!0})}catch{}}}},c);return"function"==typeof o.unref&&o.unref(),!0};if(k())return;let l=Math.max(3*c,15e3),n=setTimeout(k,l+Math.floor(1e3*Math.random()));"function"==typeof n.unref&&n.unref()}n({name:"cron",flag:"__madarxCronStarted",intervalMs:a,route:"/api/cron/tick",tag:"cron"}),n({name:"heartbeat",flag:"__madarxHeartbeatStarted",intervalMs:b,route:"/api/heartbeat/worker",tag:"heartbeat"})}(),a}function o(){return new Date().toISOString()}function p(a="id"){return`${a}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}d()}catch(a){d(a)}})},84125:(a,b)=>{"use strict";let c;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"cloneResponse",{enumerable:!0,get:function(){return e}});let d=()=>{};function e(a){if(!a.body)return[a,a];let[b,d]=a.body.tee(),e=new Response(b,{status:a.status,statusText:a.statusText,headers:a.headers});Object.defineProperty(e,"url",{value:a.url,configurable:!0,enumerable:!0,writable:!1}),c&&e.body&&c.register(e,new WeakRef(e.body));let f=new Response(d,{status:a.status,statusText:a.statusText,headers:a.headers});return Object.defineProperty(f,"url",{value:a.url,configurable:!0,enumerable:!0,writable:!1}),[e,f]}globalThis.FinalizationRegistry&&(c=new FinalizationRegistry(a=>{let b=a.deref();b&&!b.locked&&b.cancel("Response object has been garbage collected").then(d)}))},84939:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Hy:()=>h,n_:()=>k,t2:()=>j,uu:()=>i});var e=c(84104),f=c(17830),g=a([e]);function h(a,b={},c={}){let d=(0,f.ho)(a,{knownToolNames:c.knownToolNames,toolRiskByName:c.toolRiskByName});if(!d.ok){let a=Error("composite spec invalid");throw a.code="spec_invalid",a.errors=d.errors,a}let g=d.normalized,i=(0,e.Lf)(),j=(0,e.kF)(),k=i.prepare("SELECT slug FROM composite_tools WHERE slug = ?").get(g.slug),l=JSON.stringify(g),m=JSON.stringify(g.input_schema||{type:"object",properties:{}});return k?i.prepare(`UPDATE composite_tools
|
|
1429
1439
|
SET title=?, description=?, spec_json=?, risk_level=?, input_schema_json=?, status='active', updated_at=?
|
|
1430
1440
|
WHERE slug=?`).run(g.title,g.description,l,g.risk_level,m,j,g.slug):i.prepare(`INSERT INTO composite_tools
|
|
1431
1441
|
(slug, title, description, spec_json, risk_level, input_schema_json, status,
|
|
@@ -1468,7 +1478,7 @@ Extract the structured facts now by calling emit_mining_facts. Standard fact typ
|
|
|
1468
1478
|
source_document_id, source_chunk_id, source_quote, page_or_location,
|
|
1469
1479
|
extracted_by_agent_id, created_at, updated_at)
|
|
1470
1480
|
VALUES (?, ?, ?, ?, NULL, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
1471
|
-
`);d.prepare("BEGIN").run();try{let a=(0,e.kF)();for(let b of D)F.run(c,b.fact_type),G.run((0,e.Si)("mef"),c,b.fact_type,b.value_text,b.confidence,b.source_document_id,b.source_chunk_id,b.source_quote,b.page_or_location,E,a,a);d.prepare("COMMIT").run()}catch(a){try{d.prepare("ROLLBACK").run()}catch{}return{status:"error",error:"persist_failed",reason:a?.message||String(a)}}try{(0,h.pQ)({user_id:b.acting_on_behalf_of_user_id||b.user_id||"system",org_id:b.org_id||"personal-org",action:"mines.facts.extracted",status:"success",summary:`LLM-extracted ${D.length} cited facts for ${f.name} from ${i.file_name} (${B.length} rejected)`,action_target_id:c,action_target_type:"mines_project",meta:{project_id:c,document_id:i.id,model:z,facts_written:D.length,facts_rejected:B.length,chunks_considered:q.length,chunks_in_window:t.length,fact_types:D.map(a=>a.fact_type)}})}catch{}return{status:"ok",document_id:i.id,document_name:i.file_name,model:z,chunks_considered:q.length,chunks_in_window:t.length,facts_proposed:y.length,facts_written:D.length,facts_rejected:B.length,fact_types:D.map(a=>a.fact_type),rejected:B.slice(0,20)}}d()}catch(a){d(a)}})},86702:(a,b,c)=>{"use strict";c.d(b,{Hb:()=>j,NV:()=>i,Ny:()=>f,_d:()=>k,eh:()=>g,uB:()=>h});let d=["backlog","todo","in_progress","in_review","blocked","done","cancelled"],e=["low","medium","high","urgent"],f=["task.created","task.updated","task.assigned","task.reassigned","task.status_changed","task.comment_added","task.blocked","task.unblocked","task.completed","task.cancelled","task.child_created"],g=["activity.logged","task.updated","task.comment.added","task.assigned","task.reassigned","agent.status","agent.run.queued","agent.run.status","agent.run.event","agent.run.log"];function h(a){return"done"===a||"cancelled"===a}function i(a,b="todo"){return d.includes(a)?a:b}function j(a,b="medium"){return e.includes(a)?a:b}function k(a,b="activity.logged"){return g.includes(a)?a:b}},86893:(a,b,c)=>{"use strict";c.d(b,{hI:()=>g,iN:()=>f,pp:()=>i,qs:()=>h});var d=c(75338),e=c(35271);function f({kicker:a="madarX OS v1.0",title:b,description:c,actions:f,hideProjectSwitcher:g,children:h}){return(0,d.jsxs)("main",{className:"admin-shell",children:[(0,d.jsxs)("header",{className:"admin-header",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"admin-kicker",children:a}),(0,d.jsx)("h1",{children:b}),c?(0,d.jsx)("p",{children:c}):null]}),(0,d.jsxs)("div",{className:"admin-header-actions",children:[g?null:(0,d.jsx)(e.default,{}),f]})]}),h]})}function g({label:a,value:b,tone:c}){return(0,d.jsxs)("div",{className:`admin-stat ${c||""}`,children:[(0,d.jsx)("b",{children:b}),(0,d.jsx)("span",{children:a})]})}function h({children:a,tone:b="neutral"}){return(0,d.jsx)("span",{className:`admin-pill ${b}`,children:a})}function i({title:a,children:b}){return(0,d.jsxs)("div",{className:"admin-empty",children:[(0,d.jsx)("b",{children:a}),(0,d.jsx)("p",{children:b})]})}},87301:(a,b,c)=>{"use strict";function d(a,b,c,d){let e,f=a.length,g=0;if(b=b<0?-b>f?0:f+b:b>f?f:b,c=c>0?c:0,d.length<1e4)(e=Array.from(d)).unshift(b,c),a.splice(...e);else for(c&&a.splice(b,c);g<d.length;)(e=d.slice(g,g+1e4)).unshift(b,0),a.splice(...e),g+=1e4,b+=1e4}function e(a,b){return a.length>0?(d(a,a.length,0,b),a):b}c.d(b,{V:()=>e,m:()=>d})},87345:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(15570).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},88002:(a,b,c)=>{"use strict";function d(a){throw Object.defineProperty(Error("cacheLife() is only available with the experimental.useCache config."),"__NEXT_ERROR_CODE",{value:"E627",enumerable:!1,configurable:!0})}Object.defineProperty(b,"F",{enumerable:!0,get:function(){return d}}),c(29294),c(63033)},89145:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{IY:()=>B,dV:()=>A,tE:()=>x,vC:()=>y});var e=c(77030),f=c(81909),g=c(16343),h=a([f,g]);function i(a){return String(process.env[a]||"").trim()}function j(a){try{let b=(0,f.r6)(a);if(b)return String(b).trim()}catch{}return i(a)}function k(a={}){let b=String(a.query||a.q||"").trim();if(!b)throw Error("query is required");return b}function l(a={}){return Math.min(Math.max(Number(a.count||5),1),10)}function m({title:a,url:b,snippet:c,source:d,rank:e=0,metadata:f={}}){return{rank:e+1,title:String(a||""),url:String(b||""),snippet:String(c||""),source:d,metadata:f}}async function n(a,b={},c=fetch){let d=await c(a,b);if(!d.ok){let a=d.statusText||String(d.status);try{let b=await d.text();b&&(a=`${a}: ${b.slice(0,200)}`)}catch{}throw Error(`Request failed: ${d.status} ${a}`.trim())}return d.json()}function o(a={},b=0){return m({rank:b,title:a.title,url:a.url,snippet:a.description||a.snippet,source:"brave",metadata:{age:a.age||null,family_friendly:a.family_friendly??null}})}function p(){let a={Accept:"application/json","Content-Type":"application/json"},b=j("FIRECRAWL_API_KEY");return b&&(a.Authorization=`Bearer ${b}`),a}function q(){return(j("FIRECRAWL_API_URL")||"https://api.firecrawl.dev").replace(/\/+$/g,"")}async function r(a={},b=fetch){let c=k(a),d=l(a),e=await n(`${q()}/v1/search`,{method:"POST",headers:p(),body:JSON.stringify({query:c,limit:d})},b);return{query:c,source:"firecrawl",results:(function(a={}){return Array.isArray(a.data)?a.data:Array.isArray(a.results)?a.results:Array.isArray(a.web)?a.web:Array.isArray(a.web?.results)?a.web.results:[]})(e).slice(0,d).map((a,b)=>m({rank:b,title:a.title,url:a.url||a.link,snippet:a.description||a.snippet||a.content||a.markdown,source:"firecrawl",metadata:a.metadata||{}})).filter(a=>a.url)}}async function s(a={},b=fetch){let c=k(a),d=l(a),e=j("SEARXNG_URL");if(!e)throw Error("SEARXNG_URL not configured");let f=new URL("/search",e.replace(/\/+$/g,""));f.searchParams.set("q",c),f.searchParams.set("format","json"),(a.search_lang||a.language)&&f.searchParams.set("language",String(a.search_lang||a.language));let g=await n(f,{headers:{Accept:"application/json"}},b);return{query:c,source:"searxng",results:(g.results||[]).slice(0,d).map((a,b)=>m({rank:b,title:a.title,url:a.url,snippet:a.content||a.snippet,source:"searxng",metadata:a.metadata||{}})).filter(a=>a.url)}}async function t(a={},b=fetch){let c=j("BRAVE_SEARCH_API_KEY");if(!c)throw Error("BRAVE_SEARCH_API_KEY not configured");let d=k(a),e=l(a),f=new URL("https://api.search.brave.com/res/v1/web/search");f.searchParams.set("q",d),f.searchParams.set("count",String(e)),a.country&&f.searchParams.set("country",String(a.country)),a.search_lang&&f.searchParams.set("search_lang",String(a.search_lang));let g=await n(f,{headers:{Accept:"application/json","X-Subscription-Token":c}},b),h=(g.web?.results||[]).slice(0,e).map(o);return{query:d,source:"brave",results:h}}function u(a=""){return String(a).replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'")}function v(a=""){return u(String(a).replace(/<[^>]+>/g," ")).replace(/\s+/g," ").trim()}async function w(a={},b=fetch){let c=k(a),d=l(a),e=new URL("https://lite.duckduckgo.com/lite/");e.searchParams.set("q",c);let f=await b(e,{headers:{Accept:"text/html,application/xhtml+xml;q=0.9,*/*;q=0.2","User-Agent":"MadarxOS/1.0 (+local research tool)"}});if(!f.ok)throw Error(`DuckDuckGo Lite search failed: ${f.status}`);let g=await f.text();return{query:c,source:"fetch",results:function(a="",b=5){let c=[...String(a).matchAll(/<a\b[^>]*href=["'][^"']+["'][^>]*>[\s\S]*?<\/a>/gi)],d=[...String(a).matchAll(/<td\b[^>]*class=["'][^"']*result-snippet[^"']*["'][^>]*>([\s\S]*?)<\/td>/gi)].map(a=>v(a[1])),e=[];for(let a of c){let c=a[0].match(/<a\b[^>]*>/i)?.[0]||"",f=v(a[0]),g=function(a=""){try{let b=new URL(a,"https://lite.duckduckgo.com"),c=b.searchParams.get("uddg");if(c)return c;if(["http:","https:"].includes(b.protocol))return b.toString()}catch{}return a}(function(a,b){let c=a.match(RegExp(`${b}\\s*=\\s*["']([^"']+)["']`,"i"));return c?u(c[1]):""}(c,"href"));if(f&&/^https?:\/\//i.test(g)&&(e.push(m({rank:e.length,title:f,url:g,snippet:d[e.length]||"",source:"duckduckgo_lite",metadata:{}})),e.length>=b))break}return e}(g,d)}}async function x(a={},b={}){let c=b.agent_id??null,d=function(){let a=i("MADARX_WEB_PROVIDER").toLowerCase();if(a){if(["firecrawl","searxng","brave","fetch"].includes(a))return a;throw Error(`Unsupported MADARX_WEB_PROVIDER: ${a}`)}return j("FIRECRAWL_API_URL")||j("FIRECRAWL_API_KEY")?"firecrawl":j("SEARXNG_URL")?"searxng":j("BRAVE_SEARCH_API_KEY")?"brave":"fetch"}();return"firecrawl"===d?r(a,(0,g.N)("web_search",c)):"searxng"===d?s(a,(0,g.N)("web_search",c)):"brave"===d?t(a,(0,g.N)("web_search",c)):w(a,(0,g.N)("web_search",c))}function y(a){let b;try{b=new URL(String(a||""))}catch{throw Error("url must be a valid URL")}if(!["http:","https:"].includes(b.protocol))throw Error("Only http and https URLs are supported");let c=b.hostname.replace(/^\[|\]$/g,"").toLowerCase();if(!c)throw Error("URL host is required");if("localhost"===c||c.endsWith(".localhost")||c.endsWith(".local"))throw Error("Local/private network URLs are blocked");let d=e.isIP(c);if(4===d&&function(a){let b=a.split(".").map(Number);if(4!==b.length||b.some(a=>!Number.isInteger(a)||a<0||a>255))return!1;let[c,d]=b;return 10===c||127===c||169===c&&254===d||172===c&&d>=16&&d<=31||192===c&&168===d||0===c}(c)||6===d&&function(a){let b=a.toLowerCase();return"::1"===b||b.startsWith("fc")||b.startsWith("fd")||b.startsWith("fe80:")||"::"===b||b.startsWith("0:")}(c))throw Error("Local/private network URLs are blocked");return b}function z(a){return String(a||"").replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi," ").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi," ").replace(/<noscript\b[^>]*>[\s\S]*?<\/noscript>/gi," ").replace(/<!--[\s\S]*?-->/g," ").replace(/<\/(p|div|section|article|header|footer|main|li|h[1-6]|tr)>/gi,"\n").replace(/<[^>]+>/g," ").replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/[ \t]+\n/g,"\n").replace(/\n{3,}/g,"\n\n").replace(/[ \t]{2,}/g," ").trim()}async function A(a={},b={}){let c=b.agent_id??null,d=(0,g.N)("web_fetch",c),e=y(a.url),f=Math.min(Math.max(Number(a.max_bytes||512e3),1024),512e3),h=await d(e,{headers:{Accept:"text/html,text/plain,application/xhtml+xml,application/json;q=0.8,*/*;q=0.2","User-Agent":"MadarxOS/1.0 (+local research tool)"},redirect:"follow"});if(!h.ok)throw Error(`Fetch failed: ${h.status}`);let i=Number(h.headers.get("content-length")||0);if(i&&i>f)throw Error(`Response too large: ${i} bytes`);let j=h.body?.getReader();if(!j){let a=await h.text();if(Buffer.byteLength(a,"utf8")>f)throw Error("Response too large");return{url:e.toString(),status:h.status,content_type:h.headers.get("content-type")||"",text:z(a)}}let k=[],l=0;for(;;){let{value:a,done:b}=await j.read();if(b)break;if((l+=a.byteLength)>f)throw Error("Response too large");k.push(a)}let m=Buffer.concat(k).toString("utf8"),n=h.headers.get("content-type")||"";return{url:h.url||e.toString(),status:h.status,content_type:n,text:z(m).slice(0,Math.min(f,12e4)),source:{url:h.url||e.toString(),fetched_at:new Date().toISOString()}}}async function B(a={},b={}){let c=b.agent_id??null,d=y(a.url);if(!j("FIRECRAWL_API_URL")&&!j("FIRECRAWL_API_KEY"))return A(a,b);let e=await n(`${q()}/v1/scrape`,{method:"POST",headers:p(),body:JSON.stringify({url:d.toString(),formats:["markdown"]})},(0,g.N)("web_extract",c)),f=e.data||e,h=String(f.markdown||f.content||f.text||"");return{url:d.toString(),status:200,content_type:"text/markdown",text:h.slice(0,12e4),metadata:f.metadata||{},source:{provider:"firecrawl",url:d.toString(),fetched_at:new Date().toISOString()}}}[f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},89998:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{AC:()=>g,jO:()=>h});var e=c(99332),f=a([e]);function g(a){let b=(globalThis.__madarxLiveEventBus||(globalThis.__madarxLiveEventBus={subscribers:new Set,nextId:1,publishedIds:new Set}),globalThis.__madarxLiveEventBus.publishedIds||(globalThis.__madarxLiveEventBus.publishedIds=new Set),globalThis.__madarxLiveEventBus),c={ts:a?.ts||Date.now(),id:a?.id||`evt-${b.nextId++}-${Math.random().toString(36).slice(2,8)}`,...a};(0,e.fI)(c);var d=c.id;if(d&&(b.publishedIds.add(d),b.publishedIds.size>1e3)){let a=b.publishedIds.values().next().value;b.publishedIds.delete(a)}for(let a of b.subscribers)try{a(c)}catch{}return c}e=(f.then?(await f)():f)[0];let i=new Set(["agents","runs","artifacts","heartbeat","approvals","connectors","schedules","sessions","local_actions","local_processes","hermes_jobs","projects","disk","acl","share_links","processes"]);function h(a,b){a&&i.has(a)&&(globalThis.__madarxSuppressStateEmits||g({type:`state.${a}.changed`,slice:a,...b&&"object"==typeof b?{meta:b}:{}}))}d()}catch(a){d(a)}})},90151:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{Postpone:function(){return A},PreludeState:function(){return V},abortAndThrowOnSynchronousRequestDataAccess:function(){return x},abortOnSynchronousPlatformIOAccess:function(){return v},accessedDynamicData:function(){return I},annotateDynamicAccess:function(){return N},consumeDynamicAccess:function(){return J},createDynamicTrackingState:function(){return o},createDynamicValidationState:function(){return p},createHangingInputAbortSignal:function(){return M},createRenderInBrowserAbortSignal:function(){return L},delayUntilRuntimeStage:function(){return Y},formatDynamicAPIAccesses:function(){return K},getFirstDynamicReason:function(){return q},isDynamicPostpone:function(){return D},isPrerenderInterruptedError:function(){return H},logDisallowedDynamicError:function(){return W},markCurrentScopeAsDynamic:function(){return r},postponeWithTracking:function(){return B},throwIfDisallowedDynamic:function(){return X},throwToInterruptStaticGeneration:function(){return s},trackAllowedDynamicAccess:function(){return U},trackDynamicDataInDynamicRender:function(){return t},trackSynchronousPlatformIOAccessInDev:function(){return w},trackSynchronousRequestDataAccessInDev:function(){return z},useDynamicRouteParams:function(){return O},warnOnSyncDynamicError:function(){return y}});let d=function(a){return a&&a.__esModule?a:{default:a}}(c(46204)),e=c(52577),f=c(35119),g=c(63033),h=c(29294),i=c(85384),j=c(18633),k=c(86331),l=c(52318),m=c(58871),n="function"==typeof d.default.unstable_postpone;function o(a){return{isDebugDynamicAccesses:a,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function p(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function q(a){var b;return null==(b=a.dynamicAccesses[0])?void 0:b.expression}function r(a,b,c){if(b)switch(b.type){case"cache":case"unstable-cache":case"private-cache":return}if(!a.forceDynamic&&!a.forceStatic){if(a.dynamicShouldError)throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${c}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(b)switch(b.type){case"prerender-ppr":return B(a.route,c,b.dynamicTracking);case"prerender-legacy":b.revalidate=0;let d=Object.defineProperty(new e.DynamicServerError(`Route ${a.route} couldn't be rendered statically because it used ${c}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw a.dynamicUsageDescription=c,a.dynamicUsageStack=d.stack,d}}}function s(a,b,c){let d=Object.defineProperty(new e.DynamicServerError(`Route ${b.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.revalidate=0,b.dynamicUsageDescription=a,b.dynamicUsageStack=d.stack,d}function t(a){switch(a.type){case"cache":case"unstable-cache":case"private-cache":return}}function u(a,b,c){let d=G(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`);c.controller.abort(d);let e=c.dynamicTracking;e&&e.dynamicAccesses.push({stack:e.isDebugDynamicAccesses?Error().stack:void 0,expression:b})}function v(a,b,c,d){let e=d.dynamicTracking;u(a,b,d),e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}function w(a){a.prerenderPhase=!1}function x(a,b,c,d){if(!1===d.controller.signal.aborted){u(a,b,d);let e=d.dynamicTracking;e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}throw G(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`)}function y(a){a.syncDynamicErrorWithStack&&console.error(a.syncDynamicErrorWithStack)}let z=w;function A({reason:a,route:b}){let c=g.workUnitAsyncStorage.getStore();B(b,a,c&&"prerender-ppr"===c.type?c.dynamicTracking:null)}function B(a,b,c){(function(){if(!n)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:b}),d.default.unstable_postpone(C(a,b))}function C(a,b){return`Route ${a} needs to bail out of prerendering at this point because it used ${b}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function D(a){return"object"==typeof a&&null!==a&&"string"==typeof a.message&&E(a.message)}function E(a){return a.includes("needs to bail out of prerendering at this point because it used")&&a.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===E(C("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let F="NEXT_PRERENDER_INTERRUPTED";function G(a){let b=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return b.digest=F,b}function H(a){return"object"==typeof a&&null!==a&&a.digest===F&&"name"in a&&"message"in a&&a instanceof Error}function I(a){return a.length>0}function J(a,b){return a.dynamicAccesses.push(...b.dynamicAccesses),a.dynamicAccesses}function K(a){return a.filter(a=>"string"==typeof a.stack&&a.stack.length>0).map(({expression:a,stack:b})=>(b=b.split("\n").slice(4).filter(a=>!(a.includes("node_modules/next/")||a.includes(" (<anonymous>)")||a.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${a}:
|
|
1481
|
+
`);d.prepare("BEGIN").run();try{let a=(0,e.kF)();for(let b of D)F.run(c,b.fact_type),G.run((0,e.Si)("mef"),c,b.fact_type,b.value_text,b.confidence,b.source_document_id,b.source_chunk_id,b.source_quote,b.page_or_location,E,a,a);d.prepare("COMMIT").run()}catch(a){try{d.prepare("ROLLBACK").run()}catch{}return{status:"error",error:"persist_failed",reason:a?.message||String(a)}}try{(0,h.pQ)({user_id:b.acting_on_behalf_of_user_id||b.user_id||"system",org_id:b.org_id||"personal-org",action:"mines.facts.extracted",status:"success",summary:`LLM-extracted ${D.length} cited facts for ${f.name} from ${i.file_name} (${B.length} rejected)`,action_target_id:c,action_target_type:"mines_project",meta:{project_id:c,document_id:i.id,model:z,facts_written:D.length,facts_rejected:B.length,chunks_considered:q.length,chunks_in_window:t.length,fact_types:D.map(a=>a.fact_type)}})}catch{}return{status:"ok",document_id:i.id,document_name:i.file_name,model:z,chunks_considered:q.length,chunks_in_window:t.length,facts_proposed:y.length,facts_written:D.length,facts_rejected:B.length,fact_types:D.map(a=>a.fact_type),rejected:B.slice(0,20)}}d()}catch(a){d(a)}})},86702:(a,b,c)=>{"use strict";c.d(b,{Hb:()=>j,NV:()=>i,Ny:()=>f,_d:()=>k,eh:()=>g,uB:()=>h});let d=["backlog","todo","in_progress","in_review","blocked","done","cancelled"],e=["low","medium","high","urgent"],f=["task.created","task.updated","task.assigned","task.reassigned","task.status_changed","task.comment_added","task.blocked","task.unblocked","task.completed","task.cancelled","task.child_created"],g=["activity.logged","task.updated","task.comment.added","task.assigned","task.reassigned","agent.status","agent.run.queued","agent.run.status","agent.run.event","agent.run.log","chat_turn"];function h(a){return"done"===a||"cancelled"===a}function i(a,b="todo"){return d.includes(a)?a:b}function j(a,b="medium"){return e.includes(a)?a:b}function k(a,b="activity.logged"){return g.includes(a)?a:b}},86893:(a,b,c)=>{"use strict";c.d(b,{hI:()=>g,iN:()=>f,pp:()=>i,qs:()=>h});var d=c(75338),e=c(35271);function f({kicker:a="madarX OS v1.0",title:b,description:c,actions:f,hideProjectSwitcher:g,children:h}){return(0,d.jsxs)("main",{className:"admin-shell",children:[(0,d.jsxs)("header",{className:"admin-header",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"admin-kicker",children:a}),(0,d.jsx)("h1",{children:b}),c?(0,d.jsx)("p",{children:c}):null]}),(0,d.jsxs)("div",{className:"admin-header-actions",children:[g?null:(0,d.jsx)(e.default,{}),f]})]}),h]})}function g({label:a,value:b,tone:c}){return(0,d.jsxs)("div",{className:`admin-stat ${c||""}`,children:[(0,d.jsx)("b",{children:b}),(0,d.jsx)("span",{children:a})]})}function h({children:a,tone:b="neutral"}){return(0,d.jsx)("span",{className:`admin-pill ${b}`,children:a})}function i({title:a,children:b}){return(0,d.jsxs)("div",{className:"admin-empty",children:[(0,d.jsx)("b",{children:a}),(0,d.jsx)("p",{children:b})]})}},87301:(a,b,c)=>{"use strict";function d(a,b,c,d){let e,f=a.length,g=0;if(b=b<0?-b>f?0:f+b:b>f?f:b,c=c>0?c:0,d.length<1e4)(e=Array.from(d)).unshift(b,c),a.splice(...e);else for(c&&a.splice(b,c);g<d.length;)(e=d.slice(g,g+1e4)).unshift(b,0),a.splice(...e),g+=1e4,b+=1e4}function e(a,b){return a.length>0?(d(a,a.length,0,b),a):b}c.d(b,{V:()=>e,m:()=>d})},87345:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(15570).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},88002:(a,b,c)=>{"use strict";function d(a){throw Object.defineProperty(Error("cacheLife() is only available with the experimental.useCache config."),"__NEXT_ERROR_CODE",{value:"E627",enumerable:!1,configurable:!0})}Object.defineProperty(b,"F",{enumerable:!0,get:function(){return d}}),c(29294),c(63033)},89145:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{IY:()=>B,dV:()=>A,tE:()=>x,vC:()=>y});var e=c(77030),f=c(81909),g=c(16343),h=a([f,g]);function i(a){return String(process.env[a]||"").trim()}function j(a){try{let b=(0,f.r6)(a);if(b)return String(b).trim()}catch{}return i(a)}function k(a={}){let b=String(a.query||a.q||"").trim();if(!b)throw Error("query is required");return b}function l(a={}){return Math.min(Math.max(Number(a.count||5),1),10)}function m({title:a,url:b,snippet:c,source:d,rank:e=0,metadata:f={}}){return{rank:e+1,title:String(a||""),url:String(b||""),snippet:String(c||""),source:d,metadata:f}}async function n(a,b={},c=fetch){let d=await c(a,b);if(!d.ok){let a=d.statusText||String(d.status);try{let b=await d.text();b&&(a=`${a}: ${b.slice(0,200)}`)}catch{}throw Error(`Request failed: ${d.status} ${a}`.trim())}return d.json()}function o(a={},b=0){return m({rank:b,title:a.title,url:a.url,snippet:a.description||a.snippet,source:"brave",metadata:{age:a.age||null,family_friendly:a.family_friendly??null}})}function p(){let a={Accept:"application/json","Content-Type":"application/json"},b=j("FIRECRAWL_API_KEY");return b&&(a.Authorization=`Bearer ${b}`),a}function q(){return(j("FIRECRAWL_API_URL")||"https://api.firecrawl.dev").replace(/\/+$/g,"")}async function r(a={},b=fetch){let c=k(a),d=l(a),e=await n(`${q()}/v1/search`,{method:"POST",headers:p(),body:JSON.stringify({query:c,limit:d})},b);return{query:c,source:"firecrawl",results:(function(a={}){return Array.isArray(a.data)?a.data:Array.isArray(a.results)?a.results:Array.isArray(a.web)?a.web:Array.isArray(a.web?.results)?a.web.results:[]})(e).slice(0,d).map((a,b)=>m({rank:b,title:a.title,url:a.url||a.link,snippet:a.description||a.snippet||a.content||a.markdown,source:"firecrawl",metadata:a.metadata||{}})).filter(a=>a.url)}}async function s(a={},b=fetch){let c=k(a),d=l(a),e=j("SEARXNG_URL");if(!e)throw Error("SEARXNG_URL not configured");let f=new URL("/search",e.replace(/\/+$/g,""));f.searchParams.set("q",c),f.searchParams.set("format","json"),(a.search_lang||a.language)&&f.searchParams.set("language",String(a.search_lang||a.language));let g=await n(f,{headers:{Accept:"application/json"}},b);return{query:c,source:"searxng",results:(g.results||[]).slice(0,d).map((a,b)=>m({rank:b,title:a.title,url:a.url,snippet:a.content||a.snippet,source:"searxng",metadata:a.metadata||{}})).filter(a=>a.url)}}async function t(a={},b=fetch){let c=j("BRAVE_SEARCH_API_KEY");if(!c)throw Error("BRAVE_SEARCH_API_KEY not configured");let d=k(a),e=l(a),f=new URL("https://api.search.brave.com/res/v1/web/search");f.searchParams.set("q",d),f.searchParams.set("count",String(e)),a.country&&f.searchParams.set("country",String(a.country)),a.search_lang&&f.searchParams.set("search_lang",String(a.search_lang));let g=await n(f,{headers:{Accept:"application/json","X-Subscription-Token":c}},b),h=(g.web?.results||[]).slice(0,e).map(o);return{query:d,source:"brave",results:h}}function u(a=""){return String(a).replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'")}function v(a=""){return u(String(a).replace(/<[^>]+>/g," ")).replace(/\s+/g," ").trim()}async function w(a={},b=fetch){let c=k(a),d=l(a),e=new URL("https://lite.duckduckgo.com/lite/");e.searchParams.set("q",c);let f=await b(e,{headers:{Accept:"text/html,application/xhtml+xml;q=0.9,*/*;q=0.2","User-Agent":"MadarxOS/1.0 (+local research tool)"}});if(!f.ok)throw Error(`DuckDuckGo Lite search failed: ${f.status}`);let g=await f.text();return{query:c,source:"fetch",results:function(a="",b=5){let c=[...String(a).matchAll(/<a\b[^>]*href=["'][^"']+["'][^>]*>[\s\S]*?<\/a>/gi)],d=[...String(a).matchAll(/<td\b[^>]*class=["'][^"']*result-snippet[^"']*["'][^>]*>([\s\S]*?)<\/td>/gi)].map(a=>v(a[1])),e=[];for(let a of c){let c=a[0].match(/<a\b[^>]*>/i)?.[0]||"",f=v(a[0]),g=function(a=""){try{let b=new URL(a,"https://lite.duckduckgo.com"),c=b.searchParams.get("uddg");if(c)return c;if(["http:","https:"].includes(b.protocol))return b.toString()}catch{}return a}(function(a,b){let c=a.match(RegExp(`${b}\\s*=\\s*["']([^"']+)["']`,"i"));return c?u(c[1]):""}(c,"href"));if(f&&/^https?:\/\//i.test(g)&&(e.push(m({rank:e.length,title:f,url:g,snippet:d[e.length]||"",source:"duckduckgo_lite",metadata:{}})),e.length>=b))break}return e}(g,d)}}async function x(a={},b={}){let c=b.agent_id??null,d=function(){let a=i("MADARX_WEB_PROVIDER").toLowerCase();if(a){if(["firecrawl","searxng","brave","fetch"].includes(a))return a;throw Error(`Unsupported MADARX_WEB_PROVIDER: ${a}`)}return j("FIRECRAWL_API_URL")||j("FIRECRAWL_API_KEY")?"firecrawl":j("SEARXNG_URL")?"searxng":j("BRAVE_SEARCH_API_KEY")?"brave":"fetch"}();return"firecrawl"===d?r(a,(0,g.N)("web_search",c)):"searxng"===d?s(a,(0,g.N)("web_search",c)):"brave"===d?t(a,(0,g.N)("web_search",c)):w(a,(0,g.N)("web_search",c))}function y(a){let b;try{b=new URL(String(a||""))}catch{throw Error("url must be a valid URL")}if(!["http:","https:"].includes(b.protocol))throw Error("Only http and https URLs are supported");let c=b.hostname.replace(/^\[|\]$/g,"").toLowerCase();if(!c)throw Error("URL host is required");if("localhost"===c||c.endsWith(".localhost")||c.endsWith(".local"))throw Error("Local/private network URLs are blocked");let d=e.isIP(c);if(4===d&&function(a){let b=a.split(".").map(Number);if(4!==b.length||b.some(a=>!Number.isInteger(a)||a<0||a>255))return!1;let[c,d]=b;return 10===c||127===c||169===c&&254===d||172===c&&d>=16&&d<=31||192===c&&168===d||0===c}(c)||6===d&&function(a){let b=a.toLowerCase();return"::1"===b||b.startsWith("fc")||b.startsWith("fd")||b.startsWith("fe80:")||"::"===b||b.startsWith("0:")}(c))throw Error("Local/private network URLs are blocked");return b}function z(a){return String(a||"").replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi," ").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi," ").replace(/<noscript\b[^>]*>[\s\S]*?<\/noscript>/gi," ").replace(/<!--[\s\S]*?-->/g," ").replace(/<\/(p|div|section|article|header|footer|main|li|h[1-6]|tr)>/gi,"\n").replace(/<[^>]+>/g," ").replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/[ \t]+\n/g,"\n").replace(/\n{3,}/g,"\n\n").replace(/[ \t]{2,}/g," ").trim()}async function A(a={},b={}){let c=b.agent_id??null,d=(0,g.N)("web_fetch",c),e=y(a.url),f=Math.min(Math.max(Number(a.max_bytes||512e3),1024),512e3),h=await d(e,{headers:{Accept:"text/html,text/plain,application/xhtml+xml,application/json;q=0.8,*/*;q=0.2","User-Agent":"MadarxOS/1.0 (+local research tool)"},redirect:"follow"});if(!h.ok)throw Error(`Fetch failed: ${h.status}`);let i=Number(h.headers.get("content-length")||0);if(i&&i>f)throw Error(`Response too large: ${i} bytes`);let j=h.body?.getReader();if(!j){let a=await h.text();if(Buffer.byteLength(a,"utf8")>f)throw Error("Response too large");return{url:e.toString(),status:h.status,content_type:h.headers.get("content-type")||"",text:z(a)}}let k=[],l=0;for(;;){let{value:a,done:b}=await j.read();if(b)break;if((l+=a.byteLength)>f)throw Error("Response too large");k.push(a)}let m=Buffer.concat(k).toString("utf8"),n=h.headers.get("content-type")||"";return{url:h.url||e.toString(),status:h.status,content_type:n,text:z(m).slice(0,Math.min(f,12e4)),source:{url:h.url||e.toString(),fetched_at:new Date().toISOString()}}}async function B(a={},b={}){let c=b.agent_id??null,d=y(a.url);if(!j("FIRECRAWL_API_URL")&&!j("FIRECRAWL_API_KEY"))return A(a,b);let e=await n(`${q()}/v1/scrape`,{method:"POST",headers:p(),body:JSON.stringify({url:d.toString(),formats:["markdown"]})},(0,g.N)("web_extract",c)),f=e.data||e,h=String(f.markdown||f.content||f.text||"");return{url:d.toString(),status:200,content_type:"text/markdown",text:h.slice(0,12e4),metadata:f.metadata||{},source:{provider:"firecrawl",url:d.toString(),fetched_at:new Date().toISOString()}}}[f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},89998:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{AC:()=>g,jO:()=>h});var e=c(99332),f=a([e]);function g(a){let b=(globalThis.__madarxLiveEventBus||(globalThis.__madarxLiveEventBus={subscribers:new Set,nextId:1,publishedIds:new Set}),globalThis.__madarxLiveEventBus.publishedIds||(globalThis.__madarxLiveEventBus.publishedIds=new Set),globalThis.__madarxLiveEventBus),c={ts:a?.ts||Date.now(),id:a?.id||`evt-${b.nextId++}-${Math.random().toString(36).slice(2,8)}`,...a};(0,e.fI)(c);var d=c.id;if(d&&(b.publishedIds.add(d),b.publishedIds.size>1e3)){let a=b.publishedIds.values().next().value;b.publishedIds.delete(a)}for(let a of b.subscribers)try{a(c)}catch{}return c}e=(f.then?(await f)():f)[0];let i=new Set(["agents","runs","artifacts","heartbeat","approvals","connectors","schedules","sessions","local_actions","local_processes","hermes_jobs","projects","disk","acl","share_links","processes"]);function h(a,b){a&&i.has(a)&&(globalThis.__madarxSuppressStateEmits||g({type:`state.${a}.changed`,slice:a,...b&&"object"==typeof b?{meta:b}:{}}))}d()}catch(a){d(a)}})},90151:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{Postpone:function(){return A},PreludeState:function(){return V},abortAndThrowOnSynchronousRequestDataAccess:function(){return x},abortOnSynchronousPlatformIOAccess:function(){return v},accessedDynamicData:function(){return I},annotateDynamicAccess:function(){return N},consumeDynamicAccess:function(){return J},createDynamicTrackingState:function(){return o},createDynamicValidationState:function(){return p},createHangingInputAbortSignal:function(){return M},createRenderInBrowserAbortSignal:function(){return L},delayUntilRuntimeStage:function(){return Y},formatDynamicAPIAccesses:function(){return K},getFirstDynamicReason:function(){return q},isDynamicPostpone:function(){return D},isPrerenderInterruptedError:function(){return H},logDisallowedDynamicError:function(){return W},markCurrentScopeAsDynamic:function(){return r},postponeWithTracking:function(){return B},throwIfDisallowedDynamic:function(){return X},throwToInterruptStaticGeneration:function(){return s},trackAllowedDynamicAccess:function(){return U},trackDynamicDataInDynamicRender:function(){return t},trackSynchronousPlatformIOAccessInDev:function(){return w},trackSynchronousRequestDataAccessInDev:function(){return z},useDynamicRouteParams:function(){return O},warnOnSyncDynamicError:function(){return y}});let d=function(a){return a&&a.__esModule?a:{default:a}}(c(46204)),e=c(52577),f=c(35119),g=c(63033),h=c(29294),i=c(85384),j=c(18633),k=c(86331),l=c(52318),m=c(58871),n="function"==typeof d.default.unstable_postpone;function o(a){return{isDebugDynamicAccesses:a,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function p(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function q(a){var b;return null==(b=a.dynamicAccesses[0])?void 0:b.expression}function r(a,b,c){if(b)switch(b.type){case"cache":case"unstable-cache":case"private-cache":return}if(!a.forceDynamic&&!a.forceStatic){if(a.dynamicShouldError)throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${c}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(b)switch(b.type){case"prerender-ppr":return B(a.route,c,b.dynamicTracking);case"prerender-legacy":b.revalidate=0;let d=Object.defineProperty(new e.DynamicServerError(`Route ${a.route} couldn't be rendered statically because it used ${c}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw a.dynamicUsageDescription=c,a.dynamicUsageStack=d.stack,d}}}function s(a,b,c){let d=Object.defineProperty(new e.DynamicServerError(`Route ${b.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.revalidate=0,b.dynamicUsageDescription=a,b.dynamicUsageStack=d.stack,d}function t(a){switch(a.type){case"cache":case"unstable-cache":case"private-cache":return}}function u(a,b,c){let d=G(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`);c.controller.abort(d);let e=c.dynamicTracking;e&&e.dynamicAccesses.push({stack:e.isDebugDynamicAccesses?Error().stack:void 0,expression:b})}function v(a,b,c,d){let e=d.dynamicTracking;u(a,b,d),e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}function w(a){a.prerenderPhase=!1}function x(a,b,c,d){if(!1===d.controller.signal.aborted){u(a,b,d);let e=d.dynamicTracking;e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}throw G(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`)}function y(a){a.syncDynamicErrorWithStack&&console.error(a.syncDynamicErrorWithStack)}let z=w;function A({reason:a,route:b}){let c=g.workUnitAsyncStorage.getStore();B(b,a,c&&"prerender-ppr"===c.type?c.dynamicTracking:null)}function B(a,b,c){(function(){if(!n)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:b}),d.default.unstable_postpone(C(a,b))}function C(a,b){return`Route ${a} needs to bail out of prerendering at this point because it used ${b}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function D(a){return"object"==typeof a&&null!==a&&"string"==typeof a.message&&E(a.message)}function E(a){return a.includes("needs to bail out of prerendering at this point because it used")&&a.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===E(C("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let F="NEXT_PRERENDER_INTERRUPTED";function G(a){let b=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return b.digest=F,b}function H(a){return"object"==typeof a&&null!==a&&a.digest===F&&"name"in a&&"message"in a&&a instanceof Error}function I(a){return a.length>0}function J(a,b){return a.dynamicAccesses.push(...b.dynamicAccesses),a.dynamicAccesses}function K(a){return a.filter(a=>"string"==typeof a.stack&&a.stack.length>0).map(({expression:a,stack:b})=>(b=b.split("\n").slice(4).filter(a=>!(a.includes("node_modules/next/")||a.includes(" (<anonymous>)")||a.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${a}:
|
|
1472
1482
|
${b}`))}function L(){let a=new AbortController;return a.abort(Object.defineProperty(new l.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),a.signal}function M(a){switch(a.type){case"prerender":case"prerender-runtime":let b=new AbortController;if(a.cacheSignal)a.cacheSignal.inputReady().then(()=>{b.abort()});else{let c=(0,g.getRuntimeStagePromise)(a);c?c.then(()=>(0,k.scheduleOnNextTick)(()=>b.abort())):(0,k.scheduleOnNextTick)(()=>b.abort())}return b.signal;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":return}}function N(a,b){let c=b.dynamicTracking;c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:a})}function O(a){let b=h.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b&&c)switch(c.type){case"prerender-client":case"prerender":{let e=c.fallbackRouteParams;e&&e.size>0&&d.default.use((0,i.makeHangingPromise)(c.renderSignal,b.route,a));break}case"prerender-ppr":{let d=c.fallbackRouteParams;if(d&&d.size>0)return B(b.route,a,c.dynamicTracking);break}case"prerender-runtime":throw Object.defineProperty(new m.InvariantError(`\`${a}\` was called during a runtime prerender. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new m.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0})}}let P=/\n\s+at Suspense \(<anonymous>\)/,Q=RegExp(`\\n\\s+at Suspense \\(<anonymous>\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(<anonymous>\\))[\\s\\S])*?\\n\\s+at ${j.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),R=RegExp(`\\n\\s+at ${j.METADATA_BOUNDARY_NAME}[\\n\\s]`),S=RegExp(`\\n\\s+at ${j.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),T=RegExp(`\\n\\s+at ${j.OUTLET_BOUNDARY_NAME}[\\n\\s]`);function U(a,b,c,d){if(!T.test(b)){if(R.test(b)){c.hasDynamicMetadata=!0;return}if(S.test(b)){c.hasDynamicViewport=!0;return}if(Q.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}else if(P.test(b)){c.hasAllowedDynamic=!0;return}else{if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=function(a,b){let c=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return c.stack=c.name+": "+a+b,c}(`Route "${a.route}": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a "use cache" above it. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense`,b);return void c.dynamicErrors.push(e)}}}var V=function(a){return a[a.Full=0]="Full",a[a.Empty=1]="Empty",a[a.Errored=2]="Errored",a}({});function W(a,b){console.error(b),a.dev||(a.hasReadableErrorStacks?console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${a.route}" in your browser to investigate the error.`):console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:
|
|
1473
1483
|
- Start the app in development mode by running \`next dev\`, then open "${a.route}" in your browser to investigate the error.
|
|
1474
1484
|
- Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`))}function X(a,b,c,d){if(0!==b){if(c.hasSuspenseAboveBody)return;if(d.syncDynamicErrorWithStack)throw W(a,d.syncDynamicErrorWithStack),new f.StaticGenBailoutError;let e=c.dynamicErrors;if(e.length>0){for(let b=0;b<e.length;b++)W(a,e[b]);throw new f.StaticGenBailoutError}if(c.hasDynamicViewport)throw console.error(`Route "${a.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),new f.StaticGenBailoutError;if(1===b)throw console.error(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`),new f.StaticGenBailoutError}else if(!1===c.hasAllowedDynamic&&c.hasDynamicMetadata)throw console.error(`Route "${a.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),new f.StaticGenBailoutError}function Y(a,b){return a.runtimeStagePromise?a.runtimeStagePromise.then(()=>b):b}},90386:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(65751).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},90475:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{NEXT_REQUEST_META:function(){return c},addRequestMeta:function(){return f},getRequestMeta:function(){return d},removeRequestMeta:function(){return g},setRequestMeta:function(){return e}});let c=Symbol.for("NextInternalRequestMeta");function d(a,b){let d=a[c]||{};return"string"==typeof b?d[b]:d}function e(a,b){return a[c]=b,b}function f(a,b,c){let f=d(a);return f[b]=c,e(a,f)}function g(a,b){let c=d(a);return delete c[b],e(a,c)}},90626:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isNextRouterError",{enumerable:!0,get:function(){return f}});let d=c(15570),e=c(44338);function f(a){return(0,e.isRedirectError)(a)||(0,d.isHTTPAccessFallbackError)(a)}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},90914:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{fromResponseCacheEntry:function(){return h},routeKindToIncrementalCacheKind:function(){return j},toResponseCacheEntry:function(){return i}});let d=c(94062),e=function(a){return a&&a.__esModule?a:{default:a}}(c(32198)),f=c(26082),g=c(73443);async function h(a){var b,c;return{...a,value:(null==(b=a.value)?void 0:b.kind)===d.CachedRouteKind.PAGES?{kind:d.CachedRouteKind.PAGES,html:await a.value.html.toUnchunkedString(!0),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===d.CachedRouteKind.APP_PAGE?{kind:d.CachedRouteKind.APP_PAGE,html:await a.value.html.toUnchunkedString(!0),postponed:a.value.postponed,rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,segmentData:a.value.segmentData}:a.value}}async function i(a){var b,c;return a?{isMiss:a.isMiss,isStale:a.isStale,cacheControl:a.cacheControl,value:(null==(b=a.value)?void 0:b.kind)===d.CachedRouteKind.PAGES?{kind:d.CachedRouteKind.PAGES,html:e.default.fromStatic(a.value.html,g.HTML_CONTENT_TYPE_HEADER),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===d.CachedRouteKind.APP_PAGE?{kind:d.CachedRouteKind.APP_PAGE,html:e.default.fromStatic(a.value.html,g.HTML_CONTENT_TYPE_HEADER),rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,postponed:a.value.postponed,segmentData:a.value.segmentData}:a.value}:null}function j(a){switch(a){case f.RouteKind.PAGES:return d.IncrementalCacheKind.PAGES;case f.RouteKind.APP_PAGE:return d.IncrementalCacheKind.APP_PAGE;case f.RouteKind.IMAGE:return d.IncrementalCacheKind.IMAGE;case f.RouteKind.APP_ROUTE:return d.IncrementalCacheKind.APP_ROUTE;case f.RouteKind.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${a}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return a}}},91209:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{PageSignatureError:function(){return c},RemovedPageError:function(){return d},RemovedUAError:function(){return e}});class c extends Error{constructor({page:a}){super(`The middleware "${a}" accepts an async API directly with the form:
|
|
@@ -2000,7 +2010,12 @@ CREATE TABLE IF NOT EXISTS chat_sessions (
|
|
|
2000
2010
|
total_output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
2001
2011
|
total_cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
|
2002
2012
|
total_cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
|
2003
|
-
last_context_tokens INTEGER NOT NULL DEFAULT 0
|
|
2013
|
+
last_context_tokens INTEGER NOT NULL DEFAULT 0,
|
|
2014
|
+
-- Live-turn continuity: set while an orchestrator turn is streaming for this
|
|
2015
|
+
-- session, cleared when it finishes. active_turn_started_at gates a TTL so a
|
|
2016
|
+
-- crashed turn self-heals to "idle" instead of pinning the flag forever.
|
|
2017
|
+
active_turn_id TEXT,
|
|
2018
|
+
active_turn_started_at TEXT
|
|
2004
2019
|
);
|
|
2005
2020
|
|
|
2006
2021
|
CREATE TABLE IF NOT EXISTS whatsapp_messages (
|
|
@@ -3160,11 +3175,11 @@ SELECT
|
|
|
3160
3175
|
ELSE CAST((julianday(decided_at) - julianday(created_at)) * 86400 AS INTEGER)
|
|
3161
3176
|
END AS latency_seconds
|
|
3162
3177
|
FROM approval_requests;
|
|
3163
|
-
`},95818:()=>{},96084:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{o:()=>g});var e=c(10021),f=a([e]);async function g(a={},b={}){let c=String(a.text||"").trim();if(!c)throw Error("text is required");let d=await (0,e.D4)({text:c,provider:a.provider,voice:a.voice,model:a.model,format:a.format,save_to_disk:!!a.save_to_disk,project_id:a.project_id,agent_id:b.agent_id??null});return{ok:!0,status:"complete",provider:d.provider,voice:d.voice,model:d.model,mime_type:d.mime_type,extension:d.extension,audio_base64:d.audio_buffer.toString("base64"),duration_estimate_ms:d.duration_estimate_ms,disk_file_id:d.disk_file?.id||null}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},96307:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$k:()=>
|
|
3178
|
+
`},95818:()=>{},96084:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{o:()=>g});var e=c(10021),f=a([e]);async function g(a={},b={}){let c=String(a.text||"").trim();if(!c)throw Error("text is required");let d=await (0,e.D4)({text:c,provider:a.provider,voice:a.voice,model:a.model,format:a.format,save_to_disk:!!a.save_to_disk,project_id:a.project_id,agent_id:b.agent_id??null});return{ok:!0,status:"complete",provider:d.provider,voice:d.voice,model:d.model,mime_type:d.mime_type,extension:d.extension,audio_base64:d.audio_buffer.toString("base64"),duration_estimate_ms:d.duration_estimate_ms,disk_file_id:d.disk_file?.id||null}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},96307:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{let v;c.d(b,{$k:()=>n,Iu:()=>u,M2:()=>t,Qp:()=>o,bD:()=>s});var e=c(76760),f=c(73024),g=c(48161),h=c(31421),i=c(73136),j=c(99752),k=c(89998);c(83498);var l=c(80388),m=a([j,k]);[j,k]=m.then?(await m)():m,e.resolve(e.dirname((0,i.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/agent-engines.js")),"..");let w=process.env.OLLAMA_BASE_URL||"http://127.0.0.1:11434",x=[{id:"anthropic",label:"Anthropic API",description:"Server-native Claude Messages API brain with madarX governed tool_use.",default_model:"claude-sonnet-4-6",mode:"api"},{id:"claude-code",label:"Claude Code CLI",description:"Local Claude Code runner for developer/repo agents using the authenticated CLI.",default_model:"sonnet",mode:"local-cli"},{id:"ollama",label:"Ollama Local LLM",description:"Local or Ollama-hosted models through the Ollama chat API.",default_model:process.env.OLLAMA_MODEL||"",mode:"local-llm"},{id:"hermes",label:"Hermes",description:"Hermes as a meta-agent/router. Available through governed Hermes job tools.",default_model:"",mode:"orchestrator"},{id:"codex",label:"Codex CLI",description:"Local Codex CLI coding runner. Available through approval-gated terminal/tool workflows.",default_model:"",mode:"local-cli"}];function n(a){let b=String(a||"").trim().toLowerCase();return b?["anthropic","anthropic-api","claude-api","api"].includes(b)?"anthropic":["claude-code","claude code","claude_cli","claude-cli"].includes(b)?"claude-code":b.includes("hermes")&&b.includes("claude code")?"anthropic":["ollama","local","local-llm","local llm"].includes(b)?"ollama":["hermes","hermes-agent"].includes(b)?"hermes":["codex","codex-cli","openai-codex"].includes(b)?"codex":b:"claude-code"}function o(a){let b=n(a);return x.find(a=>a.id===b)?.default_model||""}let y=new Map;function p(a){return y.get(a)||function(a){if(y.has(a))return y.get(a);for(let b of[process.env[`MADARX_${a.toUpperCase()}_BIN`],e.join(g.homedir(),".local","bin",a),`/opt/homebrew/bin/${a}`,`/usr/local/bin/${a}`,e.join(g.homedir(),".npm-global","bin",a)].filter(Boolean))try{return f.accessSync(b,f.constants.X_OK),y.set(a,b),b}catch{}return null}(a)||a}async function q(){return!process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE&&("1"===process.env.MADARX_CC_FORCE_PARTIAL||"0"!==process.env.MADARX_CC_FORCE_PARTIAL&&(void 0!==v?v:v=await new Promise(a=>{try{let b=(0,h.spawn)(p("claude"),["--help"],{shell:!1}),c="";b.stdout.on("data",a=>{c+=a.toString()}),b.stderr.on("data",a=>{c+=a.toString()}),b.on("error",()=>a(!1)),b.on("close",()=>a(c.includes("include-partial-messages")))}catch{a(!1)}})))}function r(a,b,{cwd:c=process.cwd(),timeoutMs:d=12e4,closeStdin:e=!1,onChunk:f,env:g}={}){return new Promise((i,j)=>{let k=(0,h.spawn)(a,b,{shell:!1,cwd:c,env:g??{...process.env}});e&&k.stdin.end();let l="",m="",n=setTimeout(()=>{k.kill("SIGTERM"),j(Error(`${a} timed out after ${d}ms`))},d);k.stdout.on("data",a=>{let b=a.toString();l+=b,f?.(b)}),k.stderr.on("data",a=>{m+=a.toString()}),k.on("error",a=>{clearTimeout(n),j(a)}),k.on("close",b=>{if(clearTimeout(n),0===b||1===b&&l.trim())return void i(l.trim());j(Error(`${a} exited ${b}: ${m.trim()||l.trim()}`))})})}async function s({model:a,systemPrompt:b,userMessage:c,maxTokens:d=2048,onChunk:e,onThinking:f}={}){if(process.env.MADARX_MOCK_OLLAMA_RESPONSE)return process.env.MADARX_MOCK_OLLAMA_RESPONSE;let g=!!(e||f),h=g&&(0,l.Zf)()&&"1"===process.env.MADARX_OLLAMA_THINK,i={model:a||process.env.OLLAMA_MODEL,stream:g,options:{num_predict:d},messages:[{role:"system",content:b},{role:"user",content:c}]};h&&(i.think=!0);let j=await fetch(`${w}/api/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!j.ok)throw Error(`Ollama chat failed: HTTP ${j.status}`);if(!g){let a=await j.json(),b=a.message?.content||a.response||"";if(!b.trim())throw Error("Ollama returned no text");return b.trim()}let k="",m="",n=j.body.getReader(),o=new TextDecoder,p="";for(;;){let a,{done:b,value:c}=await n.read();if(b)break;for(p+=o.decode(c,{stream:!0});(a=p.indexOf("\n"))>=0;){let b,c=p.slice(0,a).trim();if(p=p.slice(a+1),!c)continue;try{b=JSON.parse(c)}catch{continue}let d=b.message?.content||b.response||"",g=b.message?.thinking||"";d&&(k+=d,e?.(d,k)),g&&(m+=g,f?.(m,g))}}if(!k.trim())throw Error("Ollama returned no text");return k.trim()}async function t({model:a,systemPrompt:b,userMessage:c,maxTurns:d,allowedTools:e=[],timeoutMs:f,onChunk:g,onAssistantText:h,onThinking:i,onStatus:j,onToolStart:m,onToolResult:n,cwd:o,addDirs:s=[],agentId:u,agentName:v,verbosity:w}={}){if(process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE)return process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE;let x=`${b}
|
|
3164
3179
|
|
|
3165
|
-
${c}`,
|
|
3180
|
+
${c}`,y=Number(d||process.env.CLAUDE_CODE_MAX_TURNS||30),z=w||(0,l._e)(),A=(0,l.Zf)(z),B=A&&await q(),C=["-p",x,"--max-turns",String(y),"--output-format","stream-json","--verbose","--permission-mode","bypassPermissions","--setting-sources","project,local,user"];for(let a of(B&&C.push("--include-partial-messages"),s))a&&C.push("--add-dir",a);e.length&&C.push("--allowedTools",e.join(",")),a&&"claude-code"!==a&&C.splice(2,0,"--model",a);let D=function(){let a={...process.env};return"1"===process.env.MADARX_CLI_USE_API_KEY||(delete a.ANTHROPIC_API_KEY,delete a.ANTHROPIC_AUTH_TOKEN),a}();if(A){let a=(0,l.s_)(z);a>0&&(D.MAX_THINKING_TOKENS=String(Math.max(1024,a)))}let E=[],F=[],G="",H="",I="",J="",K=function({agentId:a,agentName:b,partial:c=!1,onText:d,onTextDelta:e,onThinkingDelta:f,onToolStart:g,onToolResult:h,onResult:i,onStatus:j}){let l="",m=new Map,n=new Map;return function(o){let p;for(l+=o;(p=l.indexOf("\n"))>=0;){let o,q=l.slice(0,p).trim();if(l=l.slice(p+1),!q||"{"!==q[0])continue;try{o=JSON.parse(q)}catch{continue}if(!o||"object"!=typeof o)continue;if("stream_event"===o.type&&o.event&&"object"==typeof o.event){let a=o.event;if("content_block_delta"===a.type&&a.delta){let b=a.delta;"text_delta"===b.type&&"string"==typeof b.text?e?.(b.text):"thinking_delta"===b.type&&"string"==typeof b.thinking&&f?.(b.thinking)}else"content_block_start"===a.type&&a.content_block?.type==="thinking"?j?.("thinking"):"message_start"===a.type&&j?.("generating");continue}if("result"===o.type){"string"==typeof o.result&&o.result.trim()&&i?.(o.result.trim());continue}let r=o.message?.content;if(Array.isArray(r)){if("assistant"===o.type){let e=r.some(a=>a?.type==="tool_use");if(!c)for(let a of r)a?.type==="thinking"&&"string"==typeof a.thinking&&a.thinking&&f?.(a.thinking);let h=r.filter(a=>a?.type==="text"&&"string"==typeof a.text).map(a=>a.text).join("");for(let c of(h&&d?.(h,{isFinal:!e}),r))c?.type==="tool_use"&&(c.id&&(m.set(c.id,c.name||"tool"),n.set(c.id,Date.now())),g?.({id:c.id,name:c.name||"tool",input:c.input}),a&&(0,k.AC)({type:"agent_tool_start",agent_id:a,agent_name:b||a,tool:c.name||"tool",input_summary:function(a,b){if(!b||"object"!=typeof b)return"";if("Bash"===a)return String(b.command||"").slice(0,120);if("WebSearch"===a)return String(b.query||"").slice(0,120);if("WebFetch"===a)return String(b.url||"").slice(0,120);if("Read"===a||"Glob"===a||"Grep"===a||"LS"===a)return String(b.file_path||b.pattern||b.path||"").slice(0,120);if("Write"===a||"Edit"===a||"MultiEdit"===a)return String(b.file_path||"").slice(0,120);if("TodoWrite"===a)return Array.isArray(b.todos)?`${b.todos.length} todos`:"";try{return JSON.stringify(b).slice(0,120)}catch{return""}}(c.name,c.input)}))}else if("user"===o.type){for(let c of r)if(c?.type==="tool_result"){let d=m.get(c.tool_use_id)||"tool",e=n.get(c.tool_use_id),f=e?Date.now()-e:null,{preview:g,chars:i,lines:j}=function(a){let b=a?.content,c="";return"string"==typeof b?c=b:Array.isArray(b)&&(c=b.map(a=>"string"==typeof a?a:a?.type==="text"&&"string"==typeof a.text?a.text:"").join("")),{preview:(c=String(c||"")).slice(0,200),chars:c.length,lines:c?c.split("\n").length:0}}(c);h?.({tool_use_id:c.tool_use_id,name:d,isError:!!c.is_error,durationMs:f,preview:g,chars:i,lines:j}),a&&(0,k.AC)({type:"agent_tool_result",agent_id:a,agent_name:b||a,tool:d,status:c.is_error?"error":"done",isError:!!c.is_error,duration_ms:f}),m.delete(c.tool_use_id),n.delete(c.tool_use_id)}}}}}}({agentId:u,agentName:v,partial:B,onText:(a,b={})=>{E.push(a),b.isFinal?F.push(a):G=a,B||h?.(E.join("").trim())},onTextDelta:a=>{I+=a,h?.(I.trim())},onThinkingDelta:a=>{J+=a,i?.(J.trim(),a)},onStatus:a=>{j?.(a)},onResult:a=>{H=a},onToolStart:m,onToolResult:n});await r(p("claude"),C,{cwd:o,timeoutMs:f??Number(process.env.CLAUDE_CODE_TICK_TIMEOUT_MS||6e5),closeStdin:!0,env:D,onChunk:a=>{K(a),g?.(a)}});let L=F.join("").trim()||G.trim()||E.join("").trim()||H.trim();if(!L)throw Error("Claude Code returned no assistant text");return L}async function u({systemPrompt:a,userMessage:b,onChunk:c}){if(process.env.MADARX_MOCK_CODEX_RESPONSE)return process.env.MADARX_MOCK_CODEX_RESPONSE;let d=a?`${a}
|
|
3166
3181
|
|
|
3167
|
-
${b}`:b;return p(o("codex"),["exec",d],{timeoutMs:Number(process.env.CODEX_TICK_TIMEOUT_MS||18e4),closeStdin:!0,onChunk:c})}d()}catch(a){d(a)}})},96615:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{zc:()=>j});var e=c(84104),f=c(60079),g=c(47344),h=c(77886),i=a([e]);e=(i.then?(await i)():i)[0];let k={"vendor-onboarding":f,"contract-review":g,"support-escalation":h},l=[{slug:"vendor-onboarding",title:"Vendor Onboarding",category:"procurement",tags:["workflow","procurement","starter"],risk_summary:"Intake → automated risk review → buyer sign-off → onboarding pack. All write actions are gated by human_approval."},{slug:"contract-review",title:"Contract Review",category:"legal",tags:["workflow","legal","starter"],risk_summary:"Intake → automated clause review → counsel approval (high-risk gate) → review report. Drafts only; no signature step."},{slug:"support-escalation",title:"Support Escalation",category:"support",tags:["workflow","support","starter"],risk_summary:"Intake → automated triage → supervisor sign-off → resolution pack. Customer-visible copy never sent without human approval."}].map(a=>{let b=k[a.slug];return{...a,description:b.description,author:"madarx",source_kind:"builtin",source_url:null,version:"1.0",spec:b}});function j(a){try{for(let b of l)!function(a,b){let c=`workflow:${b.slug}`,d=JSON.stringify({summary:b.description,source_spec_json:b.spec}),f=JSON.stringify(b.tags||[]),g=a.prepare("SELECT id FROM marketplace_items WHERE kind='workflow' AND slug=?").get(b.slug),h=[b.title,b.description,b.category,b.author,b.source_kind,b.source_url,b.version,d,b.risk_summary,f];if(g)return a.prepare("UPDATE marketplace_items SET title=?, description=?, category=?, author=?, source_kind=?, source_url=?, version=?, manifest_json=?, risk_summary=?, tags=? WHERE id=?").run(...h,c);a.prepare("INSERT INTO marketplace_items (id, kind, slug, title, description, category, author, source_kind, source_url, version, manifest_json, risk_summary, tags, created_at) VALUES (?, 'workflow', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)").run(c,b.slug,...h,(0,e.kF)()),a.prepare("INSERT OR IGNORE INTO marketplace_installations (item_id, installed) VALUES (?, 0)").run(c)}(a,b)}catch(a){console.warn("[marketplace-workflows] seed failed:",a?.message||a)}}l.map(a=>a.slug),d()}catch(a){d(a)}})},96648:(a,b,c)=>{"use strict";c.d(b,{X:()=>e});let d=Object.create(null);for(let a of["00_historic","01_arcgis_data","02_assay_labs","03_cad_files","04_official_database","05_drill_campaign","06_exploration_geos","07_geophysics","08_backup_bd","09_petrography","10_presentations","11_general_pictures","12_safety","13_reports","14_inegi_data","15_sgm_data","16_claims_properties","17_minesight","18_exported_maps","19_survey","20_geotechnical","21_general_files","22_qa_qc","uncategorized"]){let b=a.match(/^(\d{2})_/);b&&(d[b[1]]=a)}function e(a){let b=String(a||"").split(/[/\\]/).filter(Boolean),c=null;for(let a of b){let b=a.match(/^(\d{2})[-_ ]/i);if(!b)continue;let e=b[1];Object.prototype.hasOwnProperty.call(d,e)&&(c=d[e])}return c??"uncategorized"}},96822:(a,b,c)=>{"use strict";Object.defineProperty(b,"e",{enumerable:!0,get:function(){return k}});let d=c(73443),e=c(43709),f=c(29294),g=c(63033),h=c(56557),i=0;async function j(a,b,c,e,f,g,i){await b.set(c,{kind:h.CachedRouteKind.FETCH,data:{headers:{},body:JSON.stringify(a),status:200,url:""},revalidate:"number"!=typeof f?d.CACHE_ONE_YEAR:f},{fetchCache:!0,tags:e,fetchIdx:g,fetchUrl:i})}function k(a,b,c={}){if(0===c.revalidate)throw Object.defineProperty(Error(`Invariant revalidate: 0 can not be passed to unstable_cache(), must be "false" or "> 0" ${a.toString()}`),"__NEXT_ERROR_CODE",{value:"E57",enumerable:!1,configurable:!0});let d=c.tags?(0,e.validateTags)(c.tags,`unstable_cache ${a.toString()}`):[];(0,e.validateRevalidate)(c.revalidate,`unstable_cache ${a.name||a.toString()}`);let l=`${a.toString()}-${Array.isArray(b)&&b.join(",")}`;return async(...b)=>{let e=f.workAsyncStorage.getStore(),k=g.workUnitAsyncStorage.getStore(),m=(null==e?void 0:e.incrementalCache)||globalThis.__incrementalCache;if(!m)throw Object.defineProperty(Error(`Invariant: incrementalCache missing in unstable_cache ${a.toString()}`),"__NEXT_ERROR_CODE",{value:"E469",enumerable:!1,configurable:!0});let n=k?(0,g.getCacheSignal)(k):null;n&&n.beginRead();try{let f=e&&k?function(a,b){switch(b.type){case"request":let c=b.url.pathname,d=new URLSearchParams(b.url.search),e=[...d.keys()].sort((a,b)=>a.localeCompare(b)).map(a=>`${a}=${d.get(a)}`).join("&");return`${c}${e.length?"?":""}${e}`;case"prerender":case"prerender-client":case"prerender-runtime":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return a.route;default:return b}}(e,k):"",n=`${l}-${JSON.stringify(b)}`,o=await m.generateCacheKey(n),p=`unstable_cache ${f} ${a.name?` ${a.name}`:o}`,q=(e?e.nextFetchId:i)??1,r=null==k?void 0:k.implicitTags,s={type:"unstable-cache",phase:"render",implicitTags:r,draftMode:k&&e&&(0,g.getDraftModeProviderForCacheScope)(e,k)};if(e){e.nextFetchId=q+1;let f=!1;if(k)switch(k.type){case"cache":case"private-cache":case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-legacy":"number"==typeof c.revalidate&&(k.revalidate<c.revalidate||(k.revalidate=c.revalidate));let i=k.tags;if(null===i)k.tags=d.slice();else for(let a of d)i.includes(a)||i.push(a);break;case"unstable-cache":f=!0}if(!f&&"force-no-store"!==e.fetchCache&&!e.isOnDemandRevalidate&&!m.isOnDemandRevalidate&&!e.isDraftMode){let f=await m.get(o,{kind:h.IncrementalCacheKind.FETCH,revalidate:c.revalidate,tags:d,softTags:null==r?void 0:r.tags,fetchIdx:q,fetchUrl:p});if(f&&f.value)if(f.value.kind!==h.CachedRouteKind.FETCH)console.error(`Invariant invalid cacheEntry returned for ${n}`);else{let h=void 0!==f.value.data.body?JSON.parse(f.value.data.body):void 0;if(f.isStale){if(e.pendingRevalidates||(e.pendingRevalidates={}),!e.pendingRevalidates[n]){let f=g.workUnitAsyncStorage.run(s,a,...b).then(async a=>(await j(a,m,o,d,c.revalidate,q,p),a)).catch(a=>(console.error(`revalidating cache with key: ${n}`,a),h));e.isRevalidate&&f.catch(()=>{}),e.pendingRevalidates[n]=f}if(e.isRevalidate)return e.pendingRevalidates[n]}return h}}let l=await g.workUnitAsyncStorage.run(s,a,...b);return e.isDraftMode||(e.pendingRevalidates||(e.pendingRevalidates={}),e.pendingRevalidates[n]=j(l,m,o,d,c.revalidate,q,p)),l}{if(i+=1,!m.isOnDemandRevalidate){let a=await m.get(o,{kind:h.IncrementalCacheKind.FETCH,revalidate:c.revalidate,tags:d,fetchIdx:q,fetchUrl:p,softTags:null==r?void 0:r.tags});if(a&&a.value){if(a.value.kind!==h.CachedRouteKind.FETCH)console.error(`Invariant invalid cacheEntry returned for ${n}`);else if(!a.isStale)return void 0!==a.value.data.body?JSON.parse(a.value.data.body):void 0}}let e=await g.workUnitAsyncStorage.run(s,a,...b);return await j(e,m,o,d,c.revalidate,q,p),e}}finally{n&&n.endRead()}}}},96865:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{NextRequestAdapter:function(){return l},ResponseAborted:function(){return i},ResponseAbortedName:function(){return h},createAbortController:function(){return j},signalFromNodeResponse:function(){return k}});let d=c(90475),e=c(66568),f=c(47390),g=c(97610),h="ResponseAborted";class i extends Error{constructor(...a){super(...a),this.name=h}}function j(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new i)}),b}function k(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new i);let{signal:d}=j(a);return d}class l{static fromBaseNextRequest(a,b){if((0,g.isNodeNextRequest)(a))return l.fromNodeNextRequest(a,b);throw Object.defineProperty(Error("Invariant: Unsupported NextRequest type"),"__NEXT_ERROR_CODE",{value:"E345",enumerable:!1,configurable:!0})}static fromNodeNextRequest(a,b){let c,g=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(g=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,d.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new f.NextRequest(c,{method:a.method,headers:(0,e.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:g}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new f.NextRequest(a.url,{method:a.method,headers:(0,e.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},97357:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isPostpone",{enumerable:!0,get:function(){return d}});let c=Symbol.for("react.postpone");function d(a){return"object"==typeof a&&null!==a&&a.$$typeof===c}},97610:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{isNodeNextRequest:function(){return e},isNodeNextResponse:function(){return f},isWebNextRequest:function(){return c},isWebNextResponse:function(){return d}});let c=a=>!1,d=a=>!1,e=a=>!0,f=a=>!0},97857:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{isAbortError:function(){return i},pipeToNodeResponse:function(){return j}});let d=c(96865),e=c(42474),f=c(36821),g=c(45441),h=c(12690);function i(a){return(null==a?void 0:a.name)==="AbortError"||(null==a?void 0:a.name)===d.ResponseAbortedName}async function j(a,b,c){try{let{errored:i,destroyed:j}=b;if(i||j)return;let k=(0,d.createAbortController)(b),l=function(a,b){let c=!1,d=new e.DetachedPromise;function i(){d.resolve()}a.on("drain",i),a.once("close",()=>{a.off("drain",i),d.resolve()});let j=new e.DetachedPromise;return a.once("finish",()=>{j.resolve()}),new WritableStream({write:async b=>{if(!c){if(c=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let a=(0,h.getClientComponentLoaderMetrics)();a&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:a.clientComponentLoadStart,end:a.clientComponentLoadStart+a.clientComponentLoadTimes})}a.flushHeaders(),(0,f.getTracer)().trace(g.NextNodeServerSpan.startResponse,{spanName:"start response"},()=>void 0)}try{let c=a.write(b);"flush"in a&&"function"==typeof a.flush&&a.flush(),c||(await d.promise,d=new e.DetachedPromise)}catch(b){throw a.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:b}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:b=>{a.writableFinished||a.destroy(b)},close:async()=>{if(b&&await b,!a.writableFinished)return a.end(),j.promise}})}(b,c);await a.pipeTo(l,{signal:k.signal})}catch(a){if(i(a))return;throw Object.defineProperty(Error("failed to pipe response",{cause:a}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}},98450:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{I:()=>n,m:()=>m});var e=c(73024),f=c(76760),g=c(84104),h=c(79336),i=c(38985),j=c(37937),k=c(83498),l=a([g,h,i,j]);async function m(a,b={}){let c,{name:d,slug:l,asset_stage:n="exploration",commodity:o=null,deposit_type:p=null,portfolio_entry_id:q=null,description:r=null}=a||{};if(!d||!String(d).trim())return{status:"error",error:"name_required"};let s=(0,g.Lf)(),t=(0,g.kF)(),u=(0,h.DJ)(l||d);if(s.prepare("SELECT id FROM mines_projects WHERE slug = ? LIMIT 1").get(u))return{status:"error",error:"slug_in_use",slug:u};if(q){let a=s.prepare("SELECT id, project_id FROM mines_portfolio_entries WHERE id = ? LIMIT 1").get(q);if(!a)return{status:"error",error:"entry_not_found",portfolio_entry_id:q};if(a.project_id)return{status:"error",error:"entry_already_linked",portfolio_entry_id:q}}try{c=(0,h.gA)({name:String(d).trim(),slug:u,description:r||"Mine project: "+String(d).trim(),color:"#2A5C45"})}catch(a){if(a?.code==="PROJECT_SLUG_EXISTS")return{status:"error",error:"slug_in_use",slug:u};throw a}let v=c.id,w=c.slug,x=(0,g.Si)("mp"),y=q||null;s.prepare("BEGIN").run();try{if(s.prepare(`
|
|
3182
|
+
${b}`:b;return r(p("codex"),["exec",d],{timeoutMs:Number(process.env.CODEX_TICK_TIMEOUT_MS||18e4),closeStdin:!0,onChunk:c})}d()}catch(a){d(a)}})},96615:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{zc:()=>j});var e=c(84104),f=c(60079),g=c(47344),h=c(77886),i=a([e]);e=(i.then?(await i)():i)[0];let k={"vendor-onboarding":f,"contract-review":g,"support-escalation":h},l=[{slug:"vendor-onboarding",title:"Vendor Onboarding",category:"procurement",tags:["workflow","procurement","starter"],risk_summary:"Intake → automated risk review → buyer sign-off → onboarding pack. All write actions are gated by human_approval."},{slug:"contract-review",title:"Contract Review",category:"legal",tags:["workflow","legal","starter"],risk_summary:"Intake → automated clause review → counsel approval (high-risk gate) → review report. Drafts only; no signature step."},{slug:"support-escalation",title:"Support Escalation",category:"support",tags:["workflow","support","starter"],risk_summary:"Intake → automated triage → supervisor sign-off → resolution pack. Customer-visible copy never sent without human approval."}].map(a=>{let b=k[a.slug];return{...a,description:b.description,author:"madarx",source_kind:"builtin",source_url:null,version:"1.0",spec:b}});function j(a){try{for(let b of l)!function(a,b){let c=`workflow:${b.slug}`,d=JSON.stringify({summary:b.description,source_spec_json:b.spec}),f=JSON.stringify(b.tags||[]),g=a.prepare("SELECT id FROM marketplace_items WHERE kind='workflow' AND slug=?").get(b.slug),h=[b.title,b.description,b.category,b.author,b.source_kind,b.source_url,b.version,d,b.risk_summary,f];if(g)return a.prepare("UPDATE marketplace_items SET title=?, description=?, category=?, author=?, source_kind=?, source_url=?, version=?, manifest_json=?, risk_summary=?, tags=? WHERE id=?").run(...h,c);a.prepare("INSERT INTO marketplace_items (id, kind, slug, title, description, category, author, source_kind, source_url, version, manifest_json, risk_summary, tags, created_at) VALUES (?, 'workflow', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)").run(c,b.slug,...h,(0,e.kF)()),a.prepare("INSERT OR IGNORE INTO marketplace_installations (item_id, installed) VALUES (?, 0)").run(c)}(a,b)}catch(a){console.warn("[marketplace-workflows] seed failed:",a?.message||a)}}l.map(a=>a.slug),d()}catch(a){d(a)}})},96648:(a,b,c)=>{"use strict";c.d(b,{X:()=>e});let d=Object.create(null);for(let a of["00_historic","01_arcgis_data","02_assay_labs","03_cad_files","04_official_database","05_drill_campaign","06_exploration_geos","07_geophysics","08_backup_bd","09_petrography","10_presentations","11_general_pictures","12_safety","13_reports","14_inegi_data","15_sgm_data","16_claims_properties","17_minesight","18_exported_maps","19_survey","20_geotechnical","21_general_files","22_qa_qc","uncategorized"]){let b=a.match(/^(\d{2})_/);b&&(d[b[1]]=a)}function e(a){let b=String(a||"").split(/[/\\]/).filter(Boolean),c=null;for(let a of b){let b=a.match(/^(\d{2})[-_ ]/i);if(!b)continue;let e=b[1];Object.prototype.hasOwnProperty.call(d,e)&&(c=d[e])}return c??"uncategorized"}},96822:(a,b,c)=>{"use strict";Object.defineProperty(b,"e",{enumerable:!0,get:function(){return k}});let d=c(73443),e=c(43709),f=c(29294),g=c(63033),h=c(56557),i=0;async function j(a,b,c,e,f,g,i){await b.set(c,{kind:h.CachedRouteKind.FETCH,data:{headers:{},body:JSON.stringify(a),status:200,url:""},revalidate:"number"!=typeof f?d.CACHE_ONE_YEAR:f},{fetchCache:!0,tags:e,fetchIdx:g,fetchUrl:i})}function k(a,b,c={}){if(0===c.revalidate)throw Object.defineProperty(Error(`Invariant revalidate: 0 can not be passed to unstable_cache(), must be "false" or "> 0" ${a.toString()}`),"__NEXT_ERROR_CODE",{value:"E57",enumerable:!1,configurable:!0});let d=c.tags?(0,e.validateTags)(c.tags,`unstable_cache ${a.toString()}`):[];(0,e.validateRevalidate)(c.revalidate,`unstable_cache ${a.name||a.toString()}`);let l=`${a.toString()}-${Array.isArray(b)&&b.join(",")}`;return async(...b)=>{let e=f.workAsyncStorage.getStore(),k=g.workUnitAsyncStorage.getStore(),m=(null==e?void 0:e.incrementalCache)||globalThis.__incrementalCache;if(!m)throw Object.defineProperty(Error(`Invariant: incrementalCache missing in unstable_cache ${a.toString()}`),"__NEXT_ERROR_CODE",{value:"E469",enumerable:!1,configurable:!0});let n=k?(0,g.getCacheSignal)(k):null;n&&n.beginRead();try{let f=e&&k?function(a,b){switch(b.type){case"request":let c=b.url.pathname,d=new URLSearchParams(b.url.search),e=[...d.keys()].sort((a,b)=>a.localeCompare(b)).map(a=>`${a}=${d.get(a)}`).join("&");return`${c}${e.length?"?":""}${e}`;case"prerender":case"prerender-client":case"prerender-runtime":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return a.route;default:return b}}(e,k):"",n=`${l}-${JSON.stringify(b)}`,o=await m.generateCacheKey(n),p=`unstable_cache ${f} ${a.name?` ${a.name}`:o}`,q=(e?e.nextFetchId:i)??1,r=null==k?void 0:k.implicitTags,s={type:"unstable-cache",phase:"render",implicitTags:r,draftMode:k&&e&&(0,g.getDraftModeProviderForCacheScope)(e,k)};if(e){e.nextFetchId=q+1;let f=!1;if(k)switch(k.type){case"cache":case"private-cache":case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-legacy":"number"==typeof c.revalidate&&(k.revalidate<c.revalidate||(k.revalidate=c.revalidate));let i=k.tags;if(null===i)k.tags=d.slice();else for(let a of d)i.includes(a)||i.push(a);break;case"unstable-cache":f=!0}if(!f&&"force-no-store"!==e.fetchCache&&!e.isOnDemandRevalidate&&!m.isOnDemandRevalidate&&!e.isDraftMode){let f=await m.get(o,{kind:h.IncrementalCacheKind.FETCH,revalidate:c.revalidate,tags:d,softTags:null==r?void 0:r.tags,fetchIdx:q,fetchUrl:p});if(f&&f.value)if(f.value.kind!==h.CachedRouteKind.FETCH)console.error(`Invariant invalid cacheEntry returned for ${n}`);else{let h=void 0!==f.value.data.body?JSON.parse(f.value.data.body):void 0;if(f.isStale){if(e.pendingRevalidates||(e.pendingRevalidates={}),!e.pendingRevalidates[n]){let f=g.workUnitAsyncStorage.run(s,a,...b).then(async a=>(await j(a,m,o,d,c.revalidate,q,p),a)).catch(a=>(console.error(`revalidating cache with key: ${n}`,a),h));e.isRevalidate&&f.catch(()=>{}),e.pendingRevalidates[n]=f}if(e.isRevalidate)return e.pendingRevalidates[n]}return h}}let l=await g.workUnitAsyncStorage.run(s,a,...b);return e.isDraftMode||(e.pendingRevalidates||(e.pendingRevalidates={}),e.pendingRevalidates[n]=j(l,m,o,d,c.revalidate,q,p)),l}{if(i+=1,!m.isOnDemandRevalidate){let a=await m.get(o,{kind:h.IncrementalCacheKind.FETCH,revalidate:c.revalidate,tags:d,fetchIdx:q,fetchUrl:p,softTags:null==r?void 0:r.tags});if(a&&a.value){if(a.value.kind!==h.CachedRouteKind.FETCH)console.error(`Invariant invalid cacheEntry returned for ${n}`);else if(!a.isStale)return void 0!==a.value.data.body?JSON.parse(a.value.data.body):void 0}}let e=await g.workUnitAsyncStorage.run(s,a,...b);return await j(e,m,o,d,c.revalidate,q,p),e}}finally{n&&n.endRead()}}}},96865:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{NextRequestAdapter:function(){return l},ResponseAborted:function(){return i},ResponseAbortedName:function(){return h},createAbortController:function(){return j},signalFromNodeResponse:function(){return k}});let d=c(90475),e=c(66568),f=c(47390),g=c(97610),h="ResponseAborted";class i extends Error{constructor(...a){super(...a),this.name=h}}function j(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new i)}),b}function k(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new i);let{signal:d}=j(a);return d}class l{static fromBaseNextRequest(a,b){if((0,g.isNodeNextRequest)(a))return l.fromNodeNextRequest(a,b);throw Object.defineProperty(Error("Invariant: Unsupported NextRequest type"),"__NEXT_ERROR_CODE",{value:"E345",enumerable:!1,configurable:!0})}static fromNodeNextRequest(a,b){let c,g=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(g=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,d.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new f.NextRequest(c,{method:a.method,headers:(0,e.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:g}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new f.NextRequest(a.url,{method:a.method,headers:(0,e.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},97357:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isPostpone",{enumerable:!0,get:function(){return d}});let c=Symbol.for("react.postpone");function d(a){return"object"==typeof a&&null!==a&&a.$$typeof===c}},97610:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{isNodeNextRequest:function(){return e},isNodeNextResponse:function(){return f},isWebNextRequest:function(){return c},isWebNextResponse:function(){return d}});let c=a=>!1,d=a=>!1,e=a=>!0,f=a=>!0},97857:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{isAbortError:function(){return i},pipeToNodeResponse:function(){return j}});let d=c(96865),e=c(42474),f=c(36821),g=c(45441),h=c(12690);function i(a){return(null==a?void 0:a.name)==="AbortError"||(null==a?void 0:a.name)===d.ResponseAbortedName}async function j(a,b,c){try{let{errored:i,destroyed:j}=b;if(i||j)return;let k=(0,d.createAbortController)(b),l=function(a,b){let c=!1,d=new e.DetachedPromise;function i(){d.resolve()}a.on("drain",i),a.once("close",()=>{a.off("drain",i),d.resolve()});let j=new e.DetachedPromise;return a.once("finish",()=>{j.resolve()}),new WritableStream({write:async b=>{if(!c){if(c=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let a=(0,h.getClientComponentLoaderMetrics)();a&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:a.clientComponentLoadStart,end:a.clientComponentLoadStart+a.clientComponentLoadTimes})}a.flushHeaders(),(0,f.getTracer)().trace(g.NextNodeServerSpan.startResponse,{spanName:"start response"},()=>void 0)}try{let c=a.write(b);"flush"in a&&"function"==typeof a.flush&&a.flush(),c||(await d.promise,d=new e.DetachedPromise)}catch(b){throw a.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:b}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:b=>{a.writableFinished||a.destroy(b)},close:async()=>{if(b&&await b,!a.writableFinished)return a.end(),j.promise}})}(b,c);await a.pipeTo(l,{signal:k.signal})}catch(a){if(i(a))return;throw Object.defineProperty(Error("failed to pipe response",{cause:a}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}},98450:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{I:()=>n,m:()=>m});var e=c(73024),f=c(76760),g=c(84104),h=c(79336),i=c(38985),j=c(37937),k=c(83498),l=a([g,h,i,j]);async function m(a,b={}){let c,{name:d,slug:l,asset_stage:n="exploration",commodity:o=null,deposit_type:p=null,portfolio_entry_id:q=null,description:r=null}=a||{};if(!d||!String(d).trim())return{status:"error",error:"name_required"};let s=(0,g.Lf)(),t=(0,g.kF)(),u=(0,h.DJ)(l||d);if(s.prepare("SELECT id FROM mines_projects WHERE slug = ? LIMIT 1").get(u))return{status:"error",error:"slug_in_use",slug:u};if(q){let a=s.prepare("SELECT id, project_id FROM mines_portfolio_entries WHERE id = ? LIMIT 1").get(q);if(!a)return{status:"error",error:"entry_not_found",portfolio_entry_id:q};if(a.project_id)return{status:"error",error:"entry_already_linked",portfolio_entry_id:q}}try{c=(0,h.gA)({name:String(d).trim(),slug:u,description:r||"Mine project: "+String(d).trim(),color:"#2A5C45"})}catch(a){if(a?.code==="PROJECT_SLUG_EXISTS")return{status:"error",error:"slug_in_use",slug:u};throw a}let v=c.id,w=c.slug,x=(0,g.Si)("mp"),y=q||null;s.prepare("BEGIN").run();try{if(s.prepare(`
|
|
3168
3183
|
INSERT INTO mines_projects
|
|
3169
3184
|
(id, os_project_id, name, slug, asset_stage, commodity, deposit_type,
|
|
3170
3185
|
country, state_province, has_technical_report, data_completeness, created_at, updated_at)
|
|
@@ -3203,4 +3218,4 @@ ${b}`:b;return p(o("codex"),["exec",d],{timeoutMs:Number(process.env.CODEX_TICK_
|
|
|
3203
3218
|
`).run(f,a.workspace_id||"local",String(a.title||"Untitled task"),a.description||null,i,l,g?.id||null,a.created_by_agent_id||null,a.created_by_user_id||null,a.parent_task_id||null,a.project_id||null,a.goal_id||null,a.blocked_reason||null,r,k(m),s,k(q),t,a.acceptance_criteria||null,a.recurred_from_task_id||null,d,d,"in_progress"===i?d:null,"done"===i?d:null,"cancelled"===i?d:null),Array.isArray(a.checklist)&&a.checklist.length){let b=c.prepare(`
|
|
3204
3219
|
INSERT INTO task_checklist_items (id, task_id, label, done, position, created_at, done_at)
|
|
3205
3220
|
VALUES (?, ?, ?, 0, ?, ?, NULL)
|
|
3206
|
-
`);a.checklist.map(a=>String(a).trim()).filter(Boolean).slice(0,30).forEach((a,c)=>{b.run((0,e.Si)("ckl"),f,a,c,d)})}let u=(b=(0,e.Lf)().prepare("SELECT * FROM tasks WHERE id = ?").get(f))?{...b,parent_task_id:b.parent_task_id||null,tags:j(b.tags_json,[]),watchers:j(b.watchers_json,[]),due_at:b.due_at||null,estimate_minutes:null==b.estimate_minutes?null:Number(b.estimate_minutes),recurrence:b.recurrence||null,acceptance_criteria:b.acceptance_criteria||null}:null;return o(u,{action:"task.updated",liveType:"task.updated",actor_type:a.created_by_agent_id?"agent":a.created_by_user_id?"user":"system",actor_id:a.created_by_agent_id||a.created_by_user_id||null,agent_id:g?.id||null,details:{event:"created"},event_type:"task.created",wake_reason:g?"task_assigned":null}),g&&o(u,{action:"task.assigned",liveType:"task.assigned",actor_type:a.created_by_agent_id?"agent":a.created_by_user_id?"user":"system",actor_id:a.created_by_agent_id||a.created_by_user_id||null,agent_id:g.id,details:{assignee_agent_id:g.id},event_type:"task.assigned"}),a.parent_task_id&&n(a.parent_task_id,{event_type:"task.child_created",actor_type:a.created_by_agent_id?"agent":a.created_by_user_id?"user":"system",actor_id:a.created_by_agent_id||a.created_by_user_id||null,agent_id:g?.id||null,payload:{child_task_id:u.id}}),u}[e,f,g]=i.then?(await i)():i,d()}catch(a){d(a)}})},99752:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{chatWithClaude:()=>i});var e=c(50832),f=c(66740),g=a([e,f]);[e,f]=g.then?(await g)():g;let j=Number(process.env.MADARX_ANTHROPIC_MAX_RETRIES??4),k=Number(process.env.MADARX_ANTHROPIC_OUTER_RETRIES??3),l=a=>new Promise(b=>setTimeout(b,a));async function h(a,b){let c;for(let d=0;d<k;d+=1)try{return await a()}catch(e){if(c=e,!function(a){let b=a?.status;return!!(429===b||408===b||409===b||"number"==typeof b&&b>=500||null==b&&(a?.name==="APIConnectionError"||a?.name==="APIConnectionTimeoutError"||/timeout|ECONNRESET|ENOTFOUND|EAI_AGAIN|socket hang up/i.test(String(a?.message||""))))}(e)||d===k-1)throw e;let a=function(a,b){let c=a?.headers?.get?.("retry-after"),d=null!=c?Number(c):NaN;return Number.isFinite(d)&&d>=0?Math.min(1e3*d,3e4):Math.min(500*2**b,8e3)+Math.floor(250*Math.random())}(e,d);console.warn(`[claude] ${b} transient ${e?.status||e?.name||"error"} — retry ${d+1}/${k-1} in ${a}ms`),await l(a)}throw c}async function i(a,b,c=[],d={}){let g=function(){let a=(0,f.resolveAnthropicApiKey)();if(!a)throw Error("ANTHROPIC_API_KEY not configured");return new e.default({apiKey:a,maxRetries:j})}(),k={model:d.model||"claude-sonnet-4-6",max_tokens:d.max_tokens||8192,system:b,messages:a};return c.length&&(k.tools=c),d.tool_choice&&(k.tool_choice=d.tool_choice),"number"==typeof d.temperature&&(k.temperature=d.temperature),h(()=>g.messages.create(k),`chat(${k.model})`)}d()}catch(a){d(a)}})},99755:(a,b,c)=>{"use strict";c.d(b,{nA:()=>g});let d=/^[a-z][a-z0-9-]{2,63}$/,e=/^\/[a-z][a-z0-9-]{1,63}$/;function f(a,b,c){a.push(`${b}: ${c}`)}function g(a,b={}){var c;let h,i=[],j=[];try{h=JSON.stringify(a)}catch{return{ok:!1,errors:["spec: not JSON-serialisable"],warnings:[],normalized:null}}if(!h||"undefined"===h)return{ok:!1,errors:["spec: required"],warnings:[],normalized:null};if(Buffer.byteLength(h,"utf8")>65536)return{ok:!1,errors:["spec: exceeds 64KB"],warnings:[],normalized:null};return null===a||"object"!=typeof a||Array.isArray(a)?{ok:!1,errors:["spec: must be an object"],warnings:[],normalized:null}:(a.slug&&"string"==typeof a.slug?d.test(a.slug)||f(i,"slug",`does not match ${d} (lowercase, starts with letter, 3-64 chars, [a-z0-9-])`):f(i,"slug","required (string)"),a.title&&"string"==typeof a.title||f(i,"title","required (non-empty string)"),null!=a.description&&"string"!=typeof a.description&&f(i,"description","must be a string"),a.markdown&&"string"==typeof a.markdown?a.markdown.length>1e5&&f(i,"markdown",`exceeds 100000 chars (got ${a.markdown.length})`):f(i,"markdown","required (non-empty string)"),null!=a.invocation&&("string"!=typeof a.invocation?f(i,"invocation","must be a string"):e.test(a.invocation)||f(i,"invocation",`must match ${e} (e.g. "/my-skill")`)),null!=a.trigger_examples&&(Array.isArray(a.trigger_examples)?a.trigger_examples.forEach((a,b)=>{"string"==typeof a&&a.trim()||f(i,`trigger_examples[${b}]`,"must be a non-empty string")}):f(i,"trigger_examples","must be an array of strings")),null!=a.category&&"string"!=typeof a.category&&f(i,"category","must be a string"),i.length>0)?{ok:!1,errors:i,warnings:j,normalized:null}:{ok:!0,errors:[],warnings:j,normalized:{slug:(c=a).slug,title:c.title,description:c.description||null,category:"string"==typeof c.category&&c.category?c.category:"authored",invocation:"string"==typeof c.invocation&&c.invocation?c.invocation:`/${c.slug}`,markdown:c.markdown,trigger_examples:Array.isArray(c.trigger_examples)?c.trigger_examples.filter(a=>"string"==typeof a&&a.trim()):[]}}}},99850:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{J1:()=>h}),c(77598);var e=c(84104),f=a([e]);async function g(a,b,c){let d=new URLSearchParams(b).toString(),e=await c(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:d}),f=null;try{f=await e.json()}catch{f=null}return{res:e,data:f}}async function h(a,b={},c=fetch){if(!a?.token_url)throw Error("provider.token_url required");if(!b.refresh_token)throw Error("refresh_token required");let d={grant_type:"refresh_token",refresh_token:b.refresh_token,client_id:b.client_id||""};b.client_secret&&(d.client_secret=b.client_secret);let{res:e,data:f}=await g(a.token_url,d,c);if(!e.ok)return{ok:!1,error:"refresh_failed",http_status:e.status,detail:f?.error||null};let i=function(a){if(!a||"object"!=typeof a)return null;let b=a.access_token||null;return b?{access_token:b,refresh_token:a.refresh_token||null,token_type:a.token_type||"Bearer",expires_in:Number.isFinite(a.expires_in)?a.expires_in:null,scope:a.scope||null}:null}(f);return i?{ok:!0,...i,refresh_token:i.refresh_token||b.refresh_token}:{ok:!1,error:"no_access_token"}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,3940,
|
|
3221
|
+
`);a.checklist.map(a=>String(a).trim()).filter(Boolean).slice(0,30).forEach((a,c)=>{b.run((0,e.Si)("ckl"),f,a,c,d)})}let u=(b=(0,e.Lf)().prepare("SELECT * FROM tasks WHERE id = ?").get(f))?{...b,parent_task_id:b.parent_task_id||null,tags:j(b.tags_json,[]),watchers:j(b.watchers_json,[]),due_at:b.due_at||null,estimate_minutes:null==b.estimate_minutes?null:Number(b.estimate_minutes),recurrence:b.recurrence||null,acceptance_criteria:b.acceptance_criteria||null}:null;return o(u,{action:"task.updated",liveType:"task.updated",actor_type:a.created_by_agent_id?"agent":a.created_by_user_id?"user":"system",actor_id:a.created_by_agent_id||a.created_by_user_id||null,agent_id:g?.id||null,details:{event:"created"},event_type:"task.created",wake_reason:g?"task_assigned":null}),g&&o(u,{action:"task.assigned",liveType:"task.assigned",actor_type:a.created_by_agent_id?"agent":a.created_by_user_id?"user":"system",actor_id:a.created_by_agent_id||a.created_by_user_id||null,agent_id:g.id,details:{assignee_agent_id:g.id},event_type:"task.assigned"}),a.parent_task_id&&n(a.parent_task_id,{event_type:"task.child_created",actor_type:a.created_by_agent_id?"agent":a.created_by_user_id?"user":"system",actor_id:a.created_by_agent_id||a.created_by_user_id||null,agent_id:g?.id||null,payload:{child_task_id:u.id}}),u}[e,f,g]=i.then?(await i)():i,d()}catch(a){d(a)}})},99752:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{chatWithClaude:()=>i});var e=c(50832),f=c(66740),g=a([e,f]);[e,f]=g.then?(await g)():g;let j=Number(process.env.MADARX_ANTHROPIC_MAX_RETRIES??4),k=Number(process.env.MADARX_ANTHROPIC_OUTER_RETRIES??3),l=a=>new Promise(b=>setTimeout(b,a));async function h(a,b){let c;for(let d=0;d<k;d+=1)try{return await a()}catch(e){if(c=e,!function(a){let b=a?.status;return!!(429===b||408===b||409===b||"number"==typeof b&&b>=500||null==b&&(a?.name==="APIConnectionError"||a?.name==="APIConnectionTimeoutError"||/timeout|ECONNRESET|ENOTFOUND|EAI_AGAIN|socket hang up/i.test(String(a?.message||""))))}(e)||d===k-1)throw e;let a=function(a,b){let c=a?.headers?.get?.("retry-after"),d=null!=c?Number(c):NaN;return Number.isFinite(d)&&d>=0?Math.min(1e3*d,3e4):Math.min(500*2**b,8e3)+Math.floor(250*Math.random())}(e,d);console.warn(`[claude] ${b} transient ${e?.status||e?.name||"error"} — retry ${d+1}/${k-1} in ${a}ms`),await l(a)}throw c}async function i(a,b,c=[],d={}){let g=function(){let a=(0,f.resolveAnthropicApiKey)();if(!a)throw Error("ANTHROPIC_API_KEY not configured");return new e.default({apiKey:a,maxRetries:j})}(),k={model:d.model||"claude-sonnet-4-6",max_tokens:d.max_tokens||8192,system:b,messages:a};return c.length&&(k.tools=c),d.tool_choice&&(k.tool_choice=d.tool_choice),"number"==typeof d.temperature&&(k.temperature=d.temperature),h(()=>g.messages.create(k),`chat(${k.model})`)}d()}catch(a){d(a)}})},99755:(a,b,c)=>{"use strict";c.d(b,{nA:()=>g});let d=/^[a-z][a-z0-9-]{2,63}$/,e=/^\/[a-z][a-z0-9-]{1,63}$/;function f(a,b,c){a.push(`${b}: ${c}`)}function g(a,b={}){var c;let h,i=[],j=[];try{h=JSON.stringify(a)}catch{return{ok:!1,errors:["spec: not JSON-serialisable"],warnings:[],normalized:null}}if(!h||"undefined"===h)return{ok:!1,errors:["spec: required"],warnings:[],normalized:null};if(Buffer.byteLength(h,"utf8")>65536)return{ok:!1,errors:["spec: exceeds 64KB"],warnings:[],normalized:null};return null===a||"object"!=typeof a||Array.isArray(a)?{ok:!1,errors:["spec: must be an object"],warnings:[],normalized:null}:(a.slug&&"string"==typeof a.slug?d.test(a.slug)||f(i,"slug",`does not match ${d} (lowercase, starts with letter, 3-64 chars, [a-z0-9-])`):f(i,"slug","required (string)"),a.title&&"string"==typeof a.title||f(i,"title","required (non-empty string)"),null!=a.description&&"string"!=typeof a.description&&f(i,"description","must be a string"),a.markdown&&"string"==typeof a.markdown?a.markdown.length>1e5&&f(i,"markdown",`exceeds 100000 chars (got ${a.markdown.length})`):f(i,"markdown","required (non-empty string)"),null!=a.invocation&&("string"!=typeof a.invocation?f(i,"invocation","must be a string"):e.test(a.invocation)||f(i,"invocation",`must match ${e} (e.g. "/my-skill")`)),null!=a.trigger_examples&&(Array.isArray(a.trigger_examples)?a.trigger_examples.forEach((a,b)=>{"string"==typeof a&&a.trim()||f(i,`trigger_examples[${b}]`,"must be a non-empty string")}):f(i,"trigger_examples","must be an array of strings")),null!=a.category&&"string"!=typeof a.category&&f(i,"category","must be a string"),i.length>0)?{ok:!1,errors:i,warnings:j,normalized:null}:{ok:!0,errors:[],warnings:j,normalized:{slug:(c=a).slug,title:c.title,description:c.description||null,category:"string"==typeof c.category&&c.category?c.category:"authored",invocation:"string"==typeof c.invocation&&c.invocation?c.invocation:`/${c.slug}`,markdown:c.markdown,trigger_examples:Array.isArray(c.trigger_examples)?c.trigger_examples.filter(a=>"string"==typeof a&&a.trim()):[]}}}},99850:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{J1:()=>h}),c(77598);var e=c(84104),f=a([e]);async function g(a,b,c){let d=new URLSearchParams(b).toString(),e=await c(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:d}),f=null;try{f=await e.json()}catch{f=null}return{res:e,data:f}}async function h(a,b={},c=fetch){if(!a?.token_url)throw Error("provider.token_url required");if(!b.refresh_token)throw Error("refresh_token required");let d={grant_type:"refresh_token",refresh_token:b.refresh_token,client_id:b.client_id||""};b.client_secret&&(d.client_secret=b.client_secret);let{res:e,data:f}=await g(a.token_url,d,c);if(!e.ok)return{ok:!1,error:"refresh_failed",http_status:e.status,detail:f?.error||null};let i=function(a){if(!a||"object"!=typeof a)return null;let b=a.access_token||null;return b?{access_token:b,refresh_token:a.refresh_token||null,token_type:a.token_type||"Bearer",expires_in:Number.isFinite(a.expires_in)?a.expires_in:null,scope:a.scope||null}:null}(f);return i?{ok:!0,...i,refresh_token:i.refresh_token||b.refresh_token}:{ok:!1,error:"no_access_token"}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,3940,9483,1699,3230,6059],()=>b(b.s=17483));module.exports=c})();
|