madarx 2.16.3 → 2.17.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 +432 -425
- package/.next/standalone/.next/app-path-routes-manifest.json +83 -82
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +15 -15
- package/.next/standalone/.next/routes-manifest.json +8 -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 +1 -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 +5 -5
- 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.js +1 -0
- package/.next/standalone/.next/server/app/api/agents/[id]/active-run/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/agents/[id]/active-run/route_client-reference-manifest.js +1 -0
- 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.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/run/route.js.nft.json +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_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/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_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_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/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_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_client-reference-manifest.js +1 -1
- 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_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 +1 -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 +1 -1
- 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 +3 -3
- 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.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 +2 -2
- 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 +1 -1
- 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 -1
- package/.next/standalone/.next/server/app/projects/new.rsc +5 -5
- package/.next/standalone/.next/server/app/projects/page.js +13 -13
- 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 +4 -4
- 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 +4 -4
- package/.next/standalone/.next/server/app/settings/organization/page.js +1 -1
- 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 +1 -1
- 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 +4 -4
- 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 +1 -1
- 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 +83 -82
- package/.next/standalone/.next/server/chunks/1699.js +25 -25
- package/.next/standalone/.next/server/chunks/3806.js +1 -0
- package/.next/standalone/.next/server/chunks/4740.js +1 -1
- package/.next/standalone/.next/server/chunks/6059.js +1 -1
- package/.next/standalone/.next/server/chunks/8194.js +1 -0
- package/.next/standalone/.next/server/chunks/9195.js +9 -0
- package/.next/standalone/.next/server/functions-config-manifest.json +34 -33
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/pages/404.html +1 -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/3054-451abdd7b9afc2ac.js +1 -0
- package/.next/standalone/.next/static/chunks/app/activity/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/agents/[id]/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/agents/[id]/page-e4bcb0ace2900a11.js +1 -0
- package/.next/standalone/.next/static/chunks/app/agents/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/agents/page-47a00aa58327a35e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/activity/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/audit-export/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/share-links/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-memory/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/events/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/log/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/active-run/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/chain/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/memory/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/reports/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/run/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/skills/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/create/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/ops/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/approvals/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/approvals/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/acl/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/protect/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/raw/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/upload/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/audit/list/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/audit/search/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/config/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/join-bootstrap/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/session/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/brand/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/brand/share/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/chat/sessions/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/chat/sessions/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/config/env/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/config/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/connections/[service]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/connections/[service]/verify/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/connections/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/cron/tick/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/import/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/blob/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/disk/files/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/disk/folders/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/events/since/[cursor]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/events/stream/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/fs/create-folder/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/fs/pick-folder/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/validate/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/heartbeat/tick/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/heartbeat/worker/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/help/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/integrations/google/callback/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/integrations/google/oauth/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/marketplace/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/marketplace/open-design/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/marketplace/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/import-roots/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/portfolio/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/import/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/publish/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/missions/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/models/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/onboarding/blueprint/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/onboarding/launch/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/command/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/stream/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/upload/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/org/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/invites/pending/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/join/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/join-complete/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/printing-press/clis/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/printing-press/install/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/printing-press/security-mode/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/privacy/config/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/privacy/verify/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/share-link/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/validate/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/start-and-route/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/library/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/runs/approve-claude-run/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/runs/claude-code-dry-run/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/runs/competitor-report/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/runs/engine-ping/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/runs/marketing-plan/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/schedules/upsert/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/secrets/[name]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/secrets/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/settings/trust-mode/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/otp/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/verify/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/otp/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/verify/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/publish/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/status/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/unpublish/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/state/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/system/update/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/active-run/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/attachments/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checkout/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/children/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/comments/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/events/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/live-runs/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/release/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tool-egress/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tools/[name]/approve/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tools/[name]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tools/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/transcripts/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/providers/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/context/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/session/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tool-result/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tools/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/tts/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/allowlist/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/disconnect/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/messages/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/qr/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/send/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/status/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/approvals/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/architecture/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/audit/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/brand/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/disk/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/federated-ai/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/help/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/layout-b7e1918b9125641e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/login/page-d2298bc1803944ae.js +1 -0
- package/.next/standalone/.next/static/chunks/app/marketplace/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/missions/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/onboarding/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/org/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/page-887ef6f96897f78a.js +1 -0
- package/.next/standalone/.next/static/chunks/app/projects/[slug]/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/projects/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/projects/page-739d4cc74824d336.js +1 -0
- package/.next/standalone/.next/static/chunks/app/reports/[file]/route-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/reports/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/runtime/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/schedules/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/settings/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/settings/page-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/tasks/[id]/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/tasks/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/tools/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/tools/page-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/whatsapp/loading-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/chunks/app/workflows/share/[caseId]/page-17ae3509caaa1354.js +1 -0
- package/.next/standalone/.next/static/css/2587cd46c922a6d8.css +1 -0
- package/.next/standalone/CHANGELOG.md +14 -0
- package/.next/standalone/package.json +4 -2
- package/.next/static/chunks/3054-451abdd7b9afc2ac.js +1 -0
- package/.next/static/chunks/app/activity/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/agents/[id]/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/agents/[id]/page-e4bcb0ace2900a11.js +1 -0
- package/.next/static/chunks/app/agents/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/agents/page-47a00aa58327a35e.js +1 -0
- package/.next/static/chunks/app/api/activity/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/admin/audit-export/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/admin/share-links/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/agent-memory/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/agent-runs/[id]/events/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/agent-runs/[id]/log/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/agent-runs/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/agent-runs/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/active-run/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/chain/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/memory/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/reports/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/run/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/skills/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/agents/create/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/agents/ops/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/approvals/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/approvals/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/acl/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/protect/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/raw/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/share-link/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/artifacts/upload/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/audit/list/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/audit/search/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/auth/callback/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/auth/config/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/auth/join-bootstrap/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/auth/session/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/brand/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/brand/share/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/chat/sessions/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/chat/sessions/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/config/env/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/config/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/connections/[service]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/connections/[service]/verify/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/connections/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/cron/tick/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/import/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/disk/files/[id]/blob/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/disk/files/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/disk/files/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/disk/folders/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/events/since/[cursor]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/events/stream/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/fs/create-folder/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/fs/pick-folder/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hail/interviews/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hail/setup-packages/validate/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/heartbeat/tick/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/heartbeat/worker/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/help/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hermes/jobs/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/hermes/jobs/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/integrations/google/callback/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/integrations/google/oauth/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/marketplace/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/marketplace/open-design/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/marketplace/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/mines/import-roots/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/mines/portfolio/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/mines/projects/[id]/import/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/mines/projects/[id]/publish/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/mines/projects/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/missions/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/models/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/onboarding/blueprint/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/onboarding/launch/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/orchestrator/command/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/orchestrator/stream/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/orchestrator/upload/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/org/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/invites/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/members/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/orgs/invites/pending/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/orgs/join/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/orgs/join-complete/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/orgs/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/printing-press/clis/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/printing-press/install/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/printing-press/security-mode/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/privacy/config/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/privacy/verify/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/processes/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/processes/[id]/share-link/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/processes/definitions/[slug]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/processes/definitions/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/processes/definitions/validate/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/processes/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/processes/start-and-route/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/projects/[slug]/library/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/projects/[slug]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/projects/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/runs/approve-claude-run/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/runs/claude-code-dry-run/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/runs/competitor-report/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/runs/engine-ping/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/runs/marketing-plan/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/schedules/upsert/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/secrets/[name]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/secrets/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/settings/trust-mode/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/share/[token]/otp/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/share/[token]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/share/[token]/verify/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/share/space/[token]/otp/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/share/space/[token]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/share/space/[token]/verify/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/shared/spaces/publish/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/shared/spaces/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/shared/spaces/status/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/shared/spaces/unpublish/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/state/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/system/update/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/active-run/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/attachments/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/checklist/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/checkout/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/children/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/comments/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/events/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/live-runs/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/release/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tasks/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tool-allowlists/[id]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tool-allowlists/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tool-egress/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tools/[name]/approve/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tools/[name]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/tools/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/transcripts/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/voice/providers/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/voice/realtime/context/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/voice/realtime/session/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/voice/realtime/tool-result/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/voice/realtime/tools/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/voice/tts/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/allowlist/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/disconnect/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/messages/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/qr/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/send/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/status/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/approvals/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/architecture/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/audit/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/brand/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/disk/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/federated-ai/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/help/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/layout-b7e1918b9125641e.js +1 -0
- package/.next/static/chunks/app/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/login/page-d2298bc1803944ae.js +1 -0
- package/.next/static/chunks/app/marketplace/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/missions/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/onboarding/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/org/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/page-887ef6f96897f78a.js +1 -0
- package/.next/static/chunks/app/projects/[slug]/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/projects/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/projects/page-739d4cc74824d336.js +1 -0
- package/.next/static/chunks/app/reports/[file]/route-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/reports/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/runtime/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/schedules/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/settings/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/settings/page-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/tasks/[id]/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/tasks/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/tools/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/tools/page-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/whatsapp/loading-17ae3509caaa1354.js +1 -0
- package/.next/static/chunks/app/workflows/share/[caseId]/page-17ae3509caaa1354.js +1 -0
- package/.next/static/css/2587cd46c922a6d8.css +1 -0
- package/CHANGELOG.md +14 -0
- package/app/agents/[id]/agent-activity-feed.tsx +43 -7
- package/app/agents/[id]/agent-detail-simple.tsx +1 -1
- package/app/agents/agent-run-button.jsx +13 -0
- package/app/api/agents/[id]/active-run/route.js +23 -0
- package/app/api/agents/[id]/run/route.js +27 -8
- package/app/components/app-chrome.jsx +2 -0
- package/app/components/app-topbar.jsx +100 -0
- package/app/components/dashboard/canvas-section.jsx +73 -53
- package/app/components/smart-search.jsx +11 -0
- package/app/globals.css +107 -4
- package/app/login/login-client.jsx +15 -2
- package/lib/active-runs.js +33 -0
- package/lib/agent-config.js +1 -8
- package/lib/agent-engines.js +7 -1
- package/lib/agent-runner.js +36 -0
- package/lib/auth.js +21 -8
- package/lib/heartbeat-worker.js +5 -1
- package/package.json +4 -2
- package/scripts/prepack-guard.mjs +79 -0
- package/.next/standalone/.next/server/chunks/3676.js +0 -9
- package/.next/standalone/.next/server/chunks/5093.js +0 -1
- package/.next/standalone/.next/server/chunks/9860.js +0 -1
- package/.next/standalone/.next/static/chunks/7597-9d44318ae8a6db9b.js +0 -1
- package/.next/standalone/.next/static/chunks/app/activity/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/agents/[id]/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/agents/[id]/page-474f640e84f7b4b5.js +0 -1
- package/.next/standalone/.next/static/chunks/app/agents/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/agents/page-b79b611acd56712b.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/activity/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/audit-export/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/share-links/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-memory/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/events/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/log/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/chain/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/memory/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/reports/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/run/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/skills/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/create/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/ops/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/approvals/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/approvals/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/acl/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/protect/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/raw/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/upload/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/audit/list/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/audit/search/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/config/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/join-bootstrap/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/session/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/brand/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/brand/share/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/chat/sessions/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/chat/sessions/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/config/env/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/config/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/connections/[service]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/connections/[service]/verify/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/connections/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/cron/tick/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/import/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/blob/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/disk/files/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/disk/folders/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/events/since/[cursor]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/events/stream/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/fs/create-folder/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/fs/pick-folder/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/validate/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/heartbeat/tick/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/heartbeat/worker/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/help/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/integrations/google/callback/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/integrations/google/oauth/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/marketplace/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/marketplace/open-design/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/marketplace/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/import-roots/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/portfolio/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/import/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/publish/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/missions/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/models/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/onboarding/blueprint/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/onboarding/launch/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/command/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/stream/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/upload/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/org/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/invites/pending/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/join/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/join-complete/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/printing-press/clis/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/printing-press/install/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/printing-press/security-mode/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/privacy/config/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/privacy/verify/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/share-link/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/validate/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/start-and-route/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/library/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/runs/approve-claude-run/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/runs/claude-code-dry-run/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/runs/competitor-report/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/runs/engine-ping/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/runs/marketing-plan/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/schedules/upsert/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/secrets/[name]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/secrets/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/settings/trust-mode/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/otp/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/verify/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/otp/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/verify/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/publish/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/status/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/unpublish/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/state/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/system/update/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/active-run/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/attachments/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checkout/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/children/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/comments/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/events/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/live-runs/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/release/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tool-egress/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tools/[name]/approve/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tools/[name]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tools/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/transcripts/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/providers/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/context/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/session/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tool-result/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tools/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/tts/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/allowlist/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/disconnect/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/messages/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/qr/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/send/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/status/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/approvals/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/architecture/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/audit/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/brand/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/disk/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/federated-ai/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/help/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/layout-eaed78b7751b2b5b.js +0 -1
- package/.next/standalone/.next/static/chunks/app/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/login/page-e23d5fe32a5160d5.js +0 -1
- package/.next/standalone/.next/static/chunks/app/marketplace/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/missions/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/onboarding/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/org/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/page-a716d81055cfaa16.js +0 -1
- package/.next/standalone/.next/static/chunks/app/projects/[slug]/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/projects/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/projects/page-9792d7b57f298e6f.js +0 -1
- package/.next/standalone/.next/static/chunks/app/reports/[file]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/reports/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/runtime/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/schedules/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/settings/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/settings/page-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/tasks/[id]/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/tasks/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/tools/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/tools/page-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/whatsapp/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/chunks/app/workflows/share/[caseId]/page-ac9aed5c6e27d434.js +0 -1
- package/.next/standalone/.next/static/css/54018a2de582f8bf.css +0 -1
- package/.next/standalone/data/.artifacts-migrated-v1 +0 -9
- package/.next/standalone/data/.auth-migrated-v1 +0 -1
- package/.next/standalone/data/.default-project-seeded +0 -1
- package/.next/standalone/data/madarx.sqlite +0 -0
- package/.next/standalone/data/madarx.sqlite-shm +0 -0
- package/.next/standalone/data/madarx.sqlite-wal +0 -0
- package/.next/standalone/data/uae-ai-report-2026-05-18.md +0 -103
- package/.next/standalone/workspace/agents/ops-agent/skills.md +0 -35
- package/.next/standalone/workspace/agents/tool-smith-agent/skills.md +0 -35
- package/.next/static/chunks/7597-9d44318ae8a6db9b.js +0 -1
- package/.next/static/chunks/app/activity/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/agents/[id]/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/agents/[id]/page-474f640e84f7b4b5.js +0 -1
- package/.next/static/chunks/app/agents/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/agents/page-b79b611acd56712b.js +0 -1
- package/.next/static/chunks/app/api/activity/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/admin/audit-export/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/admin/share-links/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/agent-memory/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/agent-runs/[id]/events/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/agent-runs/[id]/log/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/agent-runs/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/agent-runs/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/chain/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/memory/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/reports/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/run/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/skills/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/agents/create/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/agents/ops/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/approvals/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/approvals/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/acl/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/protect/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/raw/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/share-link/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/artifacts/upload/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/audit/list/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/audit/search/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/auth/callback/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/auth/config/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/auth/join-bootstrap/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/auth/session/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/brand/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/brand/share/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/chat/sessions/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/chat/sessions/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/config/env/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/config/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/connections/[service]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/connections/[service]/verify/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/connections/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/cron/tick/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/import/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/disk/files/[id]/blob/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/disk/files/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/disk/files/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/disk/folders/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/events/since/[cursor]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/events/stream/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/fs/create-folder/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/fs/pick-folder/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hail/interviews/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hail/setup-packages/validate/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/heartbeat/tick/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/heartbeat/worker/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/help/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hermes/jobs/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/hermes/jobs/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/integrations/google/callback/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/integrations/google/oauth/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/marketplace/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/marketplace/open-design/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/marketplace/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/mines/import-roots/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/mines/portfolio/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/mines/projects/[id]/import/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/mines/projects/[id]/publish/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/mines/projects/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/missions/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/models/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/onboarding/blueprint/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/onboarding/launch/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/orchestrator/command/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/orchestrator/stream/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/orchestrator/upload/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/org/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/invites/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/members/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/orgs/invites/pending/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/orgs/join/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/orgs/join-complete/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/orgs/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/printing-press/clis/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/printing-press/install/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/printing-press/security-mode/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/privacy/config/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/privacy/verify/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/processes/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/processes/[id]/share-link/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/processes/definitions/[slug]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/processes/definitions/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/processes/definitions/validate/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/processes/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/processes/start-and-route/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/projects/[slug]/library/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/projects/[slug]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/projects/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/runs/approve-claude-run/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/runs/claude-code-dry-run/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/runs/competitor-report/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/runs/engine-ping/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/runs/marketing-plan/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/schedules/upsert/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/secrets/[name]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/secrets/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/settings/trust-mode/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/share/[token]/otp/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/share/[token]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/share/[token]/verify/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/share/space/[token]/otp/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/share/space/[token]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/share/space/[token]/verify/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/shared/spaces/publish/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/shared/spaces/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/shared/spaces/status/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/shared/spaces/unpublish/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/state/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/system/update/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/active-run/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/attachments/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/checklist/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/checkout/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/children/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/comments/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/events/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/live-runs/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/release/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tasks/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tool-allowlists/[id]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tool-allowlists/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tool-egress/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tools/[name]/approve/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tools/[name]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/tools/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/transcripts/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/voice/providers/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/voice/realtime/context/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/voice/realtime/session/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/voice/realtime/tool-result/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/voice/realtime/tools/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/voice/tts/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/allowlist/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/disconnect/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/messages/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/qr/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/send/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/status/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/approvals/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/architecture/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/audit/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/brand/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/disk/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/federated-ai/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/help/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/layout-eaed78b7751b2b5b.js +0 -1
- package/.next/static/chunks/app/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/login/page-e23d5fe32a5160d5.js +0 -1
- package/.next/static/chunks/app/marketplace/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/missions/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/onboarding/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/org/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/page-a716d81055cfaa16.js +0 -1
- package/.next/static/chunks/app/projects/[slug]/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/projects/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/projects/page-9792d7b57f298e6f.js +0 -1
- package/.next/static/chunks/app/reports/[file]/route-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/reports/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/runtime/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/schedules/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/settings/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/settings/page-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/tasks/[id]/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/tasks/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/tools/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/tools/page-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/whatsapp/loading-ac9aed5c6e27d434.js +0 -1
- package/.next/static/chunks/app/workflows/share/[caseId]/page-ac9aed5c6e27d434.js +0 -1
- package/.next/static/css/54018a2de582f8bf.css +0 -1
- /package/.next/standalone/.next/static/{PoL-cD5mauHkRGcYCq0A2 → ZxaTPKGC9lESQlvHfrHgp}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{PoL-cD5mauHkRGcYCq0A2 → ZxaTPKGC9lESQlvHfrHgp}/_ssgManifest.js +0 -0
- /package/.next/static/{PoL-cD5mauHkRGcYCq0A2 → ZxaTPKGC9lESQlvHfrHgp}/_buildManifest.js +0 -0
- /package/.next/static/{PoL-cD5mauHkRGcYCq0A2 → ZxaTPKGC9lESQlvHfrHgp}/_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")},4760:(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)("40662a4066f3fa89922109d95af142ae788c0f48a7",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,{})]})]})})]})}},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){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(`
|
|
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)}})},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
|
|
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)}})},5543:(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)("403c25060ebe8ffd3630e52b9e29629efa7a15835b",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,{})]})]})})]})}},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,"403c25060ebe8ffd3630e52b9e29629efa7a15835b",null),(0,e.A)(l,"4075a84e8eb09a4875edef58dc19d1a4d6a5b6ed89",null),(0,e.A)(m,"404cce7150d2acc5ee19356fa3efb446f4ccd47781",null),d()}catch(a){d(a)}})},12556:(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)("4075a84e8eb09a4875edef58dc19d1a4d6a5b6ed89",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})]})]})})]})}},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:""}},13934:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"403c25060ebe8ffd3630e52b9e29629efa7a15835b":()=>e.gL,"404cce7150d2acc5ee19356fa3efb446f4ccd47781":()=>e.Tg,"4075a84e8eb09a4875edef58dc19d1a4d6a5b6ed89":()=>e.Dv});var e=c(11812),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},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
|
//
|
|
@@ -367,7 +367,7 @@ Review, wire into lib/tools/registry.js (see registry-snippet.txt), add tests, r
|
|
|
367
367
|
(id, tool_name, agent_id, host, method, status_code, bytes_out, bytes_in, duration_ms, error, at)
|
|
368
368
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
369
369
|
`).run(a,b,c??null,d,f,g??null,h??0,i??0,j??null,k??null,l)}catch(a){console.warn("[egress] Failed to insert tool_egress row:",a?.message||a)}}function h(a,b,c=fetch){return async function(d,f={}){var h;let i,j=function(a){try{return new URL(String(a)).host}catch{return String(a).slice(0,256)}}(d),k=String(f?.method||"GET").toUpperCase(),l=(h=f?.body,null==h?0:"string"==typeof h?Buffer.byteLength(h,"utf8"):Buffer.isBuffer(h)||h instanceof Uint8Array||h instanceof ArrayBuffer?h.byteLength:h instanceof URLSearchParams?Buffer.byteLength(h.toString(),"utf8"):0),m=performance.now(),n=(0,e.kF)(),o=(0,e.Si)("egr"),p=0,q=null,r=null;try{q=(i=await c(d,f)).status;let e=await i.arrayBuffer();p=e.byteLength;let h=Math.round(performance.now()-m);return g({id:o,tool_name:a,agent_id:b,host:j,method:k,status_code:q,bytes_out:l,bytes_in:p,duration_ms:h,error:null,at:n}),new Response(e,{status:i.status,statusText:i.statusText,headers:i.headers})}catch(d){let c=Math.round(performance.now()-m);throw r=String(d?.message||d).slice(0,512),g({id:o,tool_name:a,agent_id:b,host:j,method:k,status_code:q,bytes_out:l,bytes_in:p,duration_ms:c,error:r,at:n}),d}}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},16483:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{h:()=>l,m:()=>m});var e=c(84104),f=c(75994),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,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 j(){return{ok:!1,status:"error",error:"insufficient_role",message:"Workflow definition authoring requires owner/admin authority in addition to tool approval."}}function k(a){return a?.code==="spec_invalid"?{ok:!1,status:"error",error:"spec_invalid",errors:a.errors||[a.message]}:a?.code==="version_bump_required"?{ok:!1,status:"error",error:"version_bump_required",message:a.message}:null}async function l(a,b={}){if(!i(b))return j();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)"};let d=(0,f.Ao)(c.slug);if(d&&"archived"!==d.status)return{ok:!1,status:"error",error:"slug_in_use",slug:c.slug};try{let a=(0,f.R1)(c,{source_spec_json:JSON.stringify(c),created_by_user_id:h(b),created_by_agent_id:b?.agent_id||null});return{ok:!0,status:"complete",definition_id:a.id,slug:a.slug,version:a.version}}catch(b){let a=k(b);if(a)return a;throw b}}async function m(a,b={}){if(!i(b))return j();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.Ao)(c))return{ok:!1,status:"error",error:"not_found",slug:c};let e={...d,slug:c};try{let a=(0,f.R1)(e,{source_spec_json:JSON.stringify(e),created_by_user_id:h(b),created_by_agent_id:b?.agent_id||null});return{ok:!0,status:"complete",definition_id:a.id,slug:a.slug,version:a.version}}catch(b){let a=k(b);if(a)return a;throw b}}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},16871:(a,b,c)=>{"use strict";let d;c.d(b,{DD:()=>k,IH:()=>h,Lb:()=>i,Vu:()=>g,wM:()=>j});let e=process.env.MINES_EMBEDDING_MODEL||"Xenova/multilingual-e5-small";async function f(){return void 0===d&&(d=(async()=>{let a=null;try{a=await import("@xenova/transformers")}catch{return null}let b=a?.pipeline||a?.default?.pipeline;if("function"!=typeof b)return null;let c=await b("feature-extraction",e);return async a=>Array.from((await c(String(a??""),{pooling:"mean",normalize:!0})).data)})().catch(()=>null)),d}async function g(a,b={}){let c="function"==typeof b.provider?b.provider:await f();if(!c)return null;try{let b=await c(a);return Array.isArray(b)?b:null}catch{return null}}async function h(a,b={}){let c=Array.isArray(a)?a:[];if(0===c.length)return{chunks:[],embedded:0,available:!1};let d="function"==typeof b.provider?b.provider:await f();if(!d){for(let a of c)a.embedding=null;return{chunks:c,embedded:0,available:!1}}let e=Math.max(1,Number(b.batchSize)||100),g=0;for(let a=0;a<c.length;a+=e)for(let b of c.slice(a,a+e))try{let a=await d(b.text);Array.isArray(a)?(b.embedding=a,g++):b.embedding=null}catch{b.embedding=null}return{chunks:c,embedded:g,available:!0}}function i(a,b){if(!Array.isArray(a)||!Array.isArray(b)||0===a.length||a.length!==b.length)return 0;let c=0,d=0,e=0;for(let f=0;f<a.length;f++){let g=Number(a[f])||0,h=Number(b[f])||0;c+=g*h,d+=g*g,e+=h*h}return 0===d||0===e?0:c/(Math.sqrt(d)*Math.sqrt(e))}function j(a){return Array.isArray(a)&&0!==a.length?JSON.stringify(a):null}function k(a){if(null==a||""===a)return null;if(Array.isArray(a))return a;try{let b=JSON.parse(a);return Array.isArray(b)?b:null}catch{return null}}},17483:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(52574),o=c(82802),p=c(77533),q=c(45229),r=c(32822),s=c(261),t=c(26453),u=c(52474),v=c(26713),w=c(51356),x=c(62685),y=c(36225),z=c(63446),A=c(2762),B=c(45742),C=c(86439),D=c(81170),E=c.n(D),F=c(62506),G=c(91203),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["projects",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,64509)),"/home/runner/work/madarx-os/madarx-os/app/projects/page.js"]}]},{loading:[()=>Promise.resolve().then(c.bind(c,47892)),"/home/runner/work/madarx-os/madarx-os/app/projects/loading.tsx"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,2987))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(c.bind(c,70715)),"/home/runner/work/madarx-os/madarx-os/app/layout.js"],loading:[()=>Promise.resolve().then(c.bind(c,90391)),"/home/runner/work/madarx-os/madarx-os/app/loading.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,2987))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]}.children,J=["/home/runner/work/madarx-os/madarx-os/app/projects/page.js"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/projects/page",pathname:"/projects",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/projects/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
370
|
-
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},17553:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$F:()=>m,mx:()=>n});var e=c(73024),f=c(76760),g=c(84104),h=c(83498),i=a([g]);g=(i.then?(await i)():i)[0];let o="brand_profile",p=f.join(h.Dl,"brand-assets","brand-guidelines.html"),q=f.join(h.Dl,"brand-assets","madarx-logo-primary.svg"),r={active:!0,company_name:"madarX",tagline:"",colors:[{name:"Onyx",value:"#0F0F11"},{name:"Platinum",value:"#E8E8E5"},{name:"Bone",value:"#DCDCD8"},{name:"Graphite",value:"#4A4A4D"},{name:"Mars",value:"#C2452A"}],fonts:["Inter","Cairo","IBM Plex Mono"],voice:["Direct","disciplined","precise","premium","local-first"],document_types:["Report","Brief","Strategy memo","Proposal"],presentation_style:"Dark editorial system with restrained layouts, Inter/Cairo/IBM Plex Mono typography, onyx backgrounds, platinum text, and Mars red accents.",logo_path:e.existsSync(q)?(0,h.z9)(q):null,logo_data_url:k(q),guidelines_path:e.existsSync(p)?(0,h.z9)(p):null,source_name:"brand-guidelines.html",extracted_at:null,updated_at:null};function j(a){return String(a||"").replace(/^--/,"").replace(/[-_]+/g," ").replace(/\b\w/g,a=>a.toUpperCase()).trim().replace(/^Ibm\b/,"IBM").replace(/\bUi\b/g,"UI")}function k(a){try{if(!a||!e.existsSync(a))return null;let b=f.extname(a).toLowerCase(),c=".svg"===b?"image/svg+xml":".png"===b?"image/png":".jpg"===b||".jpeg"===b?"image/jpeg":".webp"===b?"image/webp":"application/octet-stream",d=e.readFileSync(a);if("image/svg+xml"===c)return`data:${c};utf8,${encodeURIComponent(d.toString("utf8"))}`;return`data:${c};base64,${d.toString("base64")}`}catch{return null}}function l(){try{if(!e.existsSync(p))return{...r};let a=e.readFileSync(p,"utf8");return{...function(a,b="brand-guidelines"){let c=String(a||"").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<[^>]+>/g," ").replace(/—|—/g,"-").replace(/&[a-z]+;/gi," ").replace(/\s+/g," ").trim(),d={...r,company_name:function(a,b){let c=a.match(/<title[^>]*>([\s\S]*?)<\/title>/i)?.[1]?.replace(/\s+/g," ").trim()||"",d=c.split(/[—|-]/)[0]?.trim();return d?d.replace(/\s+Brand Guidelines.*$/i,"").trim():f.basename(b||"Brand",f.extname(b||"")).replace(/[-_]+/g," ")}(a,b)||r.company_name,tagline:function(a,b){let c=RegExp(`<meta[^>]+name=["']${b}["'][^>]+content=["']([^"']+)["']`,"i");return a.match(c)?.[1]?.trim()||""}(a,"description")||"",colors:function(a){let b,c=function(a){let b,c=[],d=/--([a-z0-9_-]+)\s*:\s*(#[0-9a-f]{3,8})\b/gi;for(;b=d.exec(a);)c.push({name:j(b[1]),value:b[2].toUpperCase()});return c}(a),d=new Set(c.map(a=>a.value.toUpperCase())),e=/#[0-9a-f]{3,8}\b/gi;for(;(b=e.exec(a))&&c.length<10;){let a=b[0].toUpperCase();d.has(a)||(d.add(a),c.push({name:`Color ${c.length+1}`,value:a}))}return c.slice(0,10)}(a),fonts:function(a){let b=[];for(let c of a.matchAll(/@fontsource\/([^@/'")]+)/gi))b.push(j(c[1]));for(let c of a.matchAll(/font-family\s*:\s*([^;}{]+)/gi)){let a=c[1].split(",")[0].replace(/["']/g,"").trim();a&&!/^(var|system-ui|-apple-system|sans-serif|serif|monospace)$/i.test(a)&&b.push(a)}return[...new Set(b.filter(Boolean).map(a=>String(a).trim()).filter(Boolean))].slice(0,8)}(a),voice:function(a){let b=a.toLowerCase();return["direct","disciplined","precise","premium","minimal","editorial","confident","restrained","local-first","bilingual","operational"].filter(a=>b.includes(a)).slice(0,8)}(c),source_name:b,extracted_at:(0,g.kF)(),updated_at:(0,g.kF)()};return d.colors.length||(d.colors=r.colors),d.fonts.length||(d.fonts=r.fonts),d.voice.length||(d.voice=r.voice),d.presentation_style=function(a){let b=a.colors?.[0]?.value||"#111318",c=a.colors?.find(a=>!["#FFFFFF","#000000"].includes(a.value))?.value||b,d=a.fonts?.length?a.fonts.join(", "):"brand typography";return`Use ${d}; lead with ${a.company_name||"the brand"} identity, restrained hierarchy, ${b} as the base color, and ${c} as the accent.`}(d),d}(a,"brand-guidelines.html"),logo_path:e.existsSync(q)?(0,h.z9)(q):null,logo_data_url:k(q),guidelines_path:(0,h.z9)(p)}}catch{return{...r}}}function m(){let a=(0,g.Lf)().prepare("SELECT value FROM config WHERE key = ?").get(o);return a?{...r,...function(a,b){try{return JSON.parse(a)}catch{return b}}(a.value,{})}:l()}function n(a=(0,g.Lf)()){if(a.prepare("SELECT value FROM config WHERE key = ?").get(o))return!1;let b=l();return a.prepare("INSERT OR REPLACE INTO config (key, value) VALUES (?, ?)").run(o,JSON.stringify({...b,updated_at:(0,g.kF)()})),!0}d()}catch(a){d(a)}})},17830:(a,b,c)=>{"use strict";c.d(b,{ho:()=>l,pE:()=>f});let d=/^[a-z][a-z0-9-]{2,63}$/,e=new Set(["tool_call","llm_synthesis","artifact_write"]),f=["low","medium","high","irreversible_external"],g=/^[a-z][a-z0-9-]{0,63}$/,h=/\{\{([a-z][a-z0-9-]*)/g;function i(a,b,c){a.push(`${b}: ${c}`)}function j(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}function k(a){return f.indexOf(a)}function l(a,b={}){let c,m=[],n=[];try{c=JSON.stringify(a)}catch{return{ok:!1,errors:["spec: not JSON-serialisable"],warnings:[],normalized:null}}if(!c||"undefined"===c)return{ok:!1,errors:["spec: required"],warnings:[],normalized:null};if(Buffer.byteLength(c,"utf8")>65536)return{ok:!1,errors:[`spec: serialized length ${Buffer.byteLength(c,"utf8")} bytes exceeds 65536-byte cap`],warnings:[],normalized:null};if(!j(a))return{ok:!1,errors:["spec: must be a plain object"],warnings:[],normalized:null};if(a.slug&&"string"==typeof a.slug?d.test(a.slug)||i(m,"slug",`does not match ${d} (lowercase, starts with letter, 3-64 chars, hyphens allowed)`):i(m,"slug","required (string)"),a.title&&"string"==typeof a.title||i(m,"title","required (non-empty string)"),null!=a.description&&"string"!=typeof a.description&&i(m,"description","must be a string"),null==a.input_schema||j(a.input_schema)||i(m,"input_schema","must be a plain object"),!Array.isArray(a.steps)||0===a.steps.length)return i(m,"steps","required (non-empty array)"),{ok:!1,errors:m,warnings:n,normalized:null};if(a.steps.length>25)return i(m,"steps","exceeds 25"),{ok:!1,errors:m,warnings:n,normalized:null};let o=new Set,p="low",q=[];for(let c=0;c<a.steps.length;c++){var r,s;let d,l=a.steps[c],n=`steps[${c}]`;if(!j(l)){i(m,n,"must be a plain object");continue}if(!l.kind||!e.has(l.kind)){i(m,`${n}.kind`,`must be one of ${[...e].join(", ")}`);continue}l.id&&"string"==typeof l.id?g.test(l.id)?o.has(l.id)?i(m,`${n}.id`,`duplicate step id '${l.id}'`):o.add(l.id):i(m,`${n}.id`,`does not match ${g}`):i(m,`${n}.id`,"required (slug-like string)");let t=new Set(o);l.id&&t.delete(l.id);let u={};for(let[a,b]of("tool_call"===l.kind&&j(l.input_template)&&(u.input_template=l.input_template),"artifact_write"===l.kind&&(null!=l.title_template&&(u.title_template=l.title_template),null!=l.content_ref&&(u.content_ref=l.content_ref)),"llm_synthesis"===l.kind&&null!=l.prompt&&(u.prompt=l.prompt),Object.entries(u)))for(let c of function a(b){let c=new Set;if("string"==typeof b){let a;for(h.lastIndex=0;null!==(a=h.exec(b));){let b=a[1];"input"!==b&&c.add(b)}return c}if(j(b))for(let d of Object.values(b))for(let b of a(d))c.add(b);if(Array.isArray(b))for(let d of b)for(let b of a(d))c.add(b);return c}(b))t.has(c)||i(m,n,`references later/unknown step '${c}' in ${a}`);switch(l.kind){case"tool_call":d=function(a,b,c,d){let e;return a.tool&&"string"==typeof a.tool?d.knownToolNames&&!d.knownToolNames.has(a.tool)&&i(b,`${c}.tool`,`unknown tool '${a.tool}'`):i(b,`${c}.tool`,"required (string)"),null==a.input_template||j(a.input_template)||i(b,`${c}.input_template`,"must be a plain object (data only)"),null!=a.risk?f.includes(a.risk)?e=a.risk:(i(b,`${c}.risk`,`must be one of ${f.join(", ")}`),e="medium"):e=d.toolRiskByName&&"string"==typeof a.tool?d.toolRiskByName.get(a.tool)??"medium":"medium",e}(l,m,n,b);break;case"llm_synthesis":l.prompt&&"string"==typeof l.prompt?l.prompt.length>8e3&&i(m,`${n}.prompt`,`exceeds 8000 chars (got ${l.prompt.length})`):i(m,`${n}.prompt`,"required (non-empty string)"),d="low";break;case"artifact_write":d="low"}r=p,s=d,p=k(r)>=k(s)?r:s;let v={kind:l.kind,id:l.id};"tool_call"===l.kind?(v.tool=l.tool??null,null!=l.input_template&&(v.input_template=structuredClone(l.input_template)),v.risk=d):"llm_synthesis"===l.kind?v.prompt=l.prompt??null:"artifact_write"===l.kind&&(null!=l.title_template&&(v.title_template=l.title_template),null!=l.content_ref&&(v.content_ref=l.content_ref)),q.push(v)}return m.length>0?{ok:!1,errors:m,warnings:n,normalized:null}:{ok:!0,errors:[],warnings:n,normalized:{slug:a.slug,title:a.title,description:a.description??null,input_schema:null!=a.input_schema?structuredClone(a.input_schema):{type:"object",properties:{}},steps:q,risk_level:p}}}},17916:(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,{normalizeAppPath:function(){return f},normalizeRscURL:function(){return g}});let d=c(8991),e=c(8625);function f(a){return(0,d.ensureLeadingSlash)(a.split("/").reduce((a,b,c,d)=>!b||(0,e.isGroupSegment)(b)||"@"===b[0]||("page"===b||"route"===b)&&c===d.length-1?a:a+"/"+b,""))}function g(a){return a.replace(/\.rsc($|\?)/,"$1")}},18633:(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,{METADATA_BOUNDARY_NAME:function(){return c},OUTLET_BOUNDARY_NAME:function(){return e},ROOT_LAYOUT_BOUNDARY_NAME:function(){return f},VIEWPORT_BOUNDARY_NAME:function(){return d}});let c="__next_metadata_boundary__",d="__next_viewport_boundary__",e="__next_outlet_boundary__",f="__next_root_layout_boundary__"},18722:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{r1:()=>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-quarterly-review.js")),l=null;function j(){let a=(l||(l=JSON.parse((0,e.readFileSync)((0,g.join)(k,"specs","hail-quarterly-review.json"),"utf8"))),l);return(0,h.R1)(a,{source_spec_json:JSON.stringify(a)})}d()}catch(a){d(a)}})},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19376:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{wA:()=>i});var e=c(84104),f=c(68571),g=c(17553),h=a([e,f,g]);[e,f,g]=h.then?(await h)():h,process.env.OLLAMA_BASE_URL,process.env.MADARX_DEFAULT_MODEL;let j=["balanced","minimal","bold","soft"];function i(){try{let a=(0,e.Lf)().prepare("SELECT value FROM config WHERE key = ?").get("design_style"),b=a?.value;return j.includes(b)?b:"balanced"}catch{return"balanced"}}d()}catch(a){d(a)}})},20749:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{FE:()=>w,R5:()=>s,Y$:()=>y,zP:()=>u});var e=c(81909),f=c(16343),g=c(85798),h=a([e,f,g]);function i(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}function j(a,b={}){let c=i(a,b);if(!c)throw Error(`${a} not configured`);return c}function k(a,b,c,d){let e=Number(a);return Number.isFinite(e)?Math.min(Math.max(Math.trunc(e),c),d):b}function l(a,b){let c=String(a||"").trim().toUpperCase();if(!/^[A-Z]{3}$/.test(c))throw Error(`"${b}" must be a 3-letter IATA code (got: ${a??""})`);return c}function m(a,b){let c=String(a||"").trim();if(!/^\d{4}-\d{2}-\d{2}$/.test(c))throw Error(`"${b}" must be ISO date YYYY-MM-DD (got: ${a??""})`);return c}async function n(a,b){try{let c=await a.text();if(!c)return b;return c.slice(0,300)}catch{return b}}function o(a={}){let b=(i("AMADEUS_ENV",a)||"test").toLowerCase();return"production"===b||"prod"===b?"https://api.amadeus.com":"https://test.api.amadeus.com"}[e,f,g]=h.then?(await h)():h;let z=new Map;async function p(a={}){let b=o(a),c=z.get(b);if(c&&c.expires_at>Date.now()+6e4)return c.access_token;let d=j("AMADEUS_CLIENT_ID",a),e=j("AMADEUS_CLIENT_SECRET",a),g=(0,f.N)("flight_search",a.agent_id??null),h=await g(`${b}/v1/security/oauth2/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"client_credentials",client_id:d,client_secret:e}).toString()});if(!h.ok){let a=await n(h,`HTTP ${h.status}`);throw Error(`Amadeus auth failed (${h.status}): ${a}`)}let i=await h.json(),k=String(i.access_token||""),l=Number(i.expires_in||1800);if(!k)throw Error("Amadeus auth returned no access_token");return z.set(b,{access_token:k,expires_at:Date.now()+1e3*l}),k}function q(a={}){let b=Array.isArray(a.itineraries)?a.itineraries:[],c=b.flatMap(a=>Array.isArray(a?.segments)?a.segments:[]);return{id:a.id||null,price:{total:a.price?.total??null,currency:a.price?.currency??null,base:a.price?.base??null},seats_available:a.numberOfBookableSeats??null,last_ticketing_date:a.lastTicketingDate??null,itineraries:b.map(a=>({duration:a?.duration??null,stops:Math.max(0,(Array.isArray(a?.segments)?a.segments.length:1)-1),segments:(Array.isArray(a?.segments)?a.segments:[]).map(a=>({carrier:a?.carrierCode??null,flight_number:a?.number??null,departure:{iata:a?.departure?.iataCode??null,at:a?.departure?.at??null,terminal:a?.departure?.terminal??null},arrival:{iata:a?.arrival?.iataCode??null,at:a?.arrival?.at??null,terminal:a?.arrival?.terminal??null},duration:a?.duration??null,aircraft:a?.aircraft?.code??null}))})),validating_airlines:Array.isArray(a.validatingAirlineCodes)?a.validatingAirlineCodes:[],cabin:c[0]?.cabin||a.travelerPricings?.[0]?.fareDetailsBySegment?.[0]?.cabin||null}}async function r(a={},b={}){let c=l(a.origin,"origin"),d=l(a.destination,"destination"),e=m(a.departure_date,"departure_date"),g=a.return_date?m(a.return_date,"return_date"):null,h=k(a.adults,1,1,9),i=k(a.children,0,0,8),j=k(a.max_results,5,1,25),s=new URLSearchParams({originLocationCode:c,destinationLocationCode:d,departureDate:e,adults:String(h),max:String(j),currencyCode:a.currency?String(a.currency).toUpperCase().slice(0,3):"USD"});if(g&&s.set("returnDate",g),i>0&&s.set("children",String(i)),a.travel_class){let b=String(a.travel_class).toUpperCase();["ECONOMY","PREMIUM_ECONOMY","BUSINESS","FIRST"].includes(b)&&s.set("travelClass",b)}(!0===a.non_stop||"true"===a.non_stop)&&s.set("nonStop","true");let t=await p(b),u=o(b),v=(0,f.N)("flight_search",b.agent_id??null),w=await v(`${u}/v2/shopping/flight-offers?${s.toString()}`,{headers:{Authorization:`Bearer ${t}`,Accept:"application/json"}});if(401===w.status){z.delete(u);let a=await n(w,"unauthorized");throw Error(`Amadeus auth rejected (401): ${a}`)}if(!w.ok){let a=await n(w,`HTTP ${w.status}`);throw Error(`Amadeus flight offers failed (${w.status}): ${a}`)}let x=await w.json(),y=Array.isArray(x.data)?x.data:[];return{query:{origin:c,destination:d,departure_date:e,return_date:g,adults:h,children:i,currency:s.get("currencyCode"),travel_class:s.get("travelClass")||null,non_stop:"true"===s.get("nonStop"),max_results:j},count:y.length,offers:y.map(q),source:{provider:"amadeus",environment:u.includes("test.api")?"test":"production",fetched_at:new Date().toISOString()}}}async function s(a={},b={}){let c=!!(i("AMADEUS_CLIENT_ID",b)&&i("AMADEUS_CLIENT_SECRET",b)),d="1"===String(process.env.MADARX_FLIGHT_SEARCH_NO_FALLBACK||"").trim();if(c)try{return await r(a,b)}catch(a){if(d)throw a;console.warn("[flight_search] Amadeus failed, falling back to Google Flights:",a?.message||a)}return(0,g.b3)(a,b)}function t(a={}){return{flight_date:a.flight_date??null,flight_status:a.flight_status??null,airline:a.airline?.name??null,flight:{iata:a.flight?.iata??null,icao:a.flight?.icao??null,number:a.flight?.number??null},departure:{airport:a.departure?.airport??null,iata:a.departure?.iata??null,icao:a.departure?.icao??null,terminal:a.departure?.terminal??null,gate:a.departure?.gate??null,scheduled:a.departure?.scheduled??null,estimated:a.departure?.estimated??null,actual:a.departure?.actual??null,delay_minutes:a.departure?.delay??null},arrival:{airport:a.arrival?.airport??null,iata:a.arrival?.iata??null,icao:a.arrival?.icao??null,terminal:a.arrival?.terminal??null,gate:a.arrival?.gate??null,scheduled:a.arrival?.scheduled??null,estimated:a.arrival?.estimated??null,actual:a.arrival?.actual??null,delay_minutes:a.arrival?.delay??null},aircraft:a.aircraft?.registration??null,live:a.live?{latitude:a.live.latitude??null,longitude:a.live.longitude??null,altitude:a.live.altitude??null,speed_horizontal:a.live.speed_horizontal??null,is_ground:a.live.is_ground??null,updated:a.live.updated??null}:null}}async function u(a={},b={}){let c=a.flight_iata?String(a.flight_iata).trim().toUpperCase():null,d=a.flight_icao?String(a.flight_icao).trim().toUpperCase():null,e=a.airline_iata?String(a.airline_iata).trim().toUpperCase():null,g=a.dep_iata?l(a.dep_iata,"dep_iata"):null,h=a.arr_iata?l(a.arr_iata,"arr_iata"):null,o=a.flight_date?m(a.flight_date,"flight_date"):null,p=k(a.limit,5,1,100);if(!c&&!d&&!e&&!g&&!h)throw Error("At least one of flight_iata, flight_icao, airline_iata, dep_iata, or arr_iata is required");let q=j("AVIATIONSTACK_API_KEY",b),r=new URLSearchParams({access_key:q,limit:String(p)});c&&r.set("flight_iata",c),d&&r.set("flight_icao",d),e&&r.set("airline_iata",e),g&&r.set("dep_iata",g),h&&r.set("arr_iata",h),o&&r.set("flight_date",o);let s=function(a={}){let b=String(i("AVIATIONSTACK_HTTPS",a)||"").toLowerCase();return"1"===b||"true"===b||"yes"===b?"https://api.aviationstack.com":"http://api.aviationstack.com"}(b),v=(0,f.N)("flight_status",b.agent_id??null),w=await v(`${s}/v1/flights?${r.toString()}`);if(!w.ok){let a=await n(w,`HTTP ${w.status}`);throw Error(`Aviationstack failed (${w.status}): ${a}`)}let x=await w.json();if(x?.error){let a=x.error.code||"error",b=x.error.message||x.error.info||"unknown error";throw Error(`Aviationstack error (${a}): ${b}`)}let y=Array.isArray(x?.data)?x.data:[];return{query:{flight_iata:c,flight_icao:d,airline_iata:e,dep_iata:g,arr_iata:h,flight_date:o,limit:p},count:y.length,pagination:x?.pagination||null,flights:y.map(t),source:{provider:"aviationstack",fetched_at:new Date().toISOString()}}}let A="https://data.xotelo.com";function v(a={}){return{key:a.key??a.hotel_key??null,name:a.name??null,geo:{latitude:a.geo?.latitude??null,longitude:a.geo?.longitude??null},address:a.address??null,stars:a.stars??null,review_summary:a.review_summary?{score:a.review_summary.score??null,count:a.review_summary.count??null}:null,price:a.price??null,accommodation_type:a.accommodation_type??null}}async function w(a={},b={}){let c=String(a.location_key||"").trim();if(!c)throw Error('"location_key" is required');if(!/^[a-z]?[0-9]+$/i.test(c))throw Error(`"location_key" must be a TripAdvisor key like "g60763" (got: ${c})`);let d=k(a.offset,0,0,1e3),e=k(a.limit,10,1,30),g=a.currency?String(a.currency).toUpperCase().slice(0,3):"USD",h=new URLSearchParams({location_key:c,offset:String(d),limit:String(e),currency:g});if(a.sort){let b=String(a.sort).toLowerCase();["popularity","price","rating"].includes(b)&&h.set("sort",b)}a.hotel_class&&h.set("hotel_class",String(a.hotel_class));let i=(0,f.N)("hotel_search",b.agent_id??null),j=await i(`${A}/api/list?${h.toString()}`);if(!j.ok){let a=await n(j,`HTTP ${j.status}`);throw Error(`Xotelo list failed (${j.status}): ${a}`)}let l=await j.json();if(l?.error)throw Error(`Xotelo error: ${"string"==typeof l.error?l.error:JSON.stringify(l.error)}`);let m=l?.result||{},o=Array.isArray(m.list)?m.list:[];return{query:{location_key:c,offset:d,limit:e,currency:g,sort:h.get("sort")||null},count:o.length,total_available:m.number_of_results??null,hotels:o.map(v),source:{provider:"xotelo",fetched_at:new Date().toISOString()}}}function x(a={}){return{vendor:a.name??a.code??null,code:a.code??null,rate:a.rate??null,tax:a.tax??null,total:a.total??null,currency:a.currency??null,deeplink:a.deeplink??null,is_official:a.is_official??null,free_cancellation:a.free_cancellation??null}}async function y(a={},b={}){let c=String(a.hotel_key||"").trim();if(!c)throw Error('"hotel_key" is required');if(!/^[a-z]?[0-9]+-[a-z]?[0-9]+$/i.test(c))throw Error(`"hotel_key" must be a TripAdvisor hotel key like "g60763-d224867" (got: ${c})`);let d=m(a.chk_in,"chk_in"),e=m(a.chk_out,"chk_out");if(new Date(e)<=new Date(d))throw Error('"chk_out" must be after "chk_in"');let g=a.currency?String(a.currency).toUpperCase().slice(0,3):"USD",h=k(a.rooms,1,1,9),i=k(a.adults,2,1,9),j=new URLSearchParams({hotel_key:c,chk_in:d,chk_out:e,currency:g,rooms:String(h),adults:String(i)}),l=(0,f.N)("hotel_rates",b.agent_id??null),o=await l(`${A}/api/rates?${j.toString()}`);if(!o.ok){let a=await n(o,`HTTP ${o.status}`);throw Error(`Xotelo rates failed (${o.status}): ${a}`)}let p=await o.json();if(p?.error)throw Error(`Xotelo error: ${"string"==typeof p.error?p.error:JSON.stringify(p.error)}`);let q=p?.result||{},r=Array.isArray(q.rates)?q.rates:[];return{query:{hotel_key:c,chk_in:d,chk_out:e,currency:g,rooms:h,adults:i},count:r.length,hotel:{name:q.name??null,stars:q.stars??null},rates:r.map(x),source:{provider:"xotelo",fetched_at:new Date().toISOString()}}}d()}catch(a){d(a)}})},21016:(a,b,c)=>{Promise.resolve().then(c.bind(c,35271)),Promise.resolve().then(c.bind(c,79148)),Promise.resolve().then(c.bind(c,72987)),Promise.resolve().then(c.bind(c,78516)),Promise.resolve().then(c.t.bind(c,65169,23))},21118:(a,b,c)=>{"use strict";c.d(b,{Tt:()=>g,ix:()=>d,wb:()=>e}),Object.freeze(["public","internal","confidential","restricted","refused"]),Object.freeze(["diagnostic","blueprint","pilot","managed_layer"]),Object.freeze(["low","medium","high","irreversible_external","blocked"]),Object.freeze(["decide","draft","recommend","execute","escalate"]),Object.freeze(["interview_transcript","diagnostic_report","operating_profile","role_map","friction_map","governance_matrix","agent_roster","setup_plan","pilot_test_report","quarterly_review"]);let d=new Set(Object.freeze(["diagnostic_signoff","blueprint_signoff","setup_package_approval","pilot_launch","managed_layer_change"])),e=new Set(Object.freeze(["practitioner","architect","security_reviewer","principal","counsel"]));Object.freeze(["agent","tool","allowlist_entry","secret","schedule","workflow","memory_scope","artifact_acl","approval_policy"]),Object.freeze(["observed","inferred","needs_confirmation"]),Object.freeze([{slug:"principal_identity",label:"Principal identity & context"},{slug:"role_capacity_inventory",label:"Role / capacity inventory"},{slug:"decision_delegation_style",label:"Decision & delegation style"},{slug:"reputation_constraints",label:"Reputation constraints"},{slug:"confidentiality_boundaries",label:"Confidentiality boundaries"},{slug:"current_systems_tools",label:"Current systems, tools & communications"},{slug:"bottlenecks_friction",label:"Work bottlenecks & friction points"},{slug:"approval_preferences",label:"Approval preferences"},{slug:"counterparties_reviewers",label:"Human counterparties & reviewer roles"},{slug:"regulated_obligations",label:"Regulated / counsel / audit obligations"},{slug:"desired_outcomes",label:"Desired outcomes (time / judgment / reputation)"}]).map(a=>a.slug);let f=Object.freeze({"diagnostic-signoff":{gate_type:"diagnostic_signoff",reviewer_role:"practitioner"},"blueprint-signoff":{gate_type:"blueprint_signoff",reviewer_role:"architect"},"setup-package-approval":{gate_type:"setup_package_approval",reviewer_role:"principal"},"pilot-activation":{gate_type:"pilot_launch",reviewer_role:"principal"},"managed-layer-activation":{gate_type:"managed_layer_change",reviewer_role:"practitioner"}}),g=Object.freeze({"hail-engagement-lifecycle":f,"hail-quarterly-review":Object.freeze({"review-signoff":{gate_type:"managed_layer_change",reviewer_role:"practitioner"},"reconfig-approval":{gate_type:"setup_package_approval",reviewer_role:"principal"}})})},22458:(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,{ReadonlyURLSearchParams:function(){return k},RedirectType:function(){return e.RedirectType},forbidden:function(){return g.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return h.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return i.unstable_rethrow}});let d=c(79595),e=c(44338),f=c(52741),g=c(36098),h=c(87345),i=c(23129);class j extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class k extends URLSearchParams{append(){throw new j}delete(){throw new j}set(){throw new j}sort(){throw new j}}function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("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)},22896:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{I6:()=>l,Q$:()=>k,vV:()=>m});var e=c(81909),f=c(16343),g=a([e,f]);function h(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}function i(a={}){return{Authorization:`Bearer ${function(a,b={}){let c=h(a,b);if(!c)throw Error(`${a} not configured`);return c}("VERCEL_TOKEN",a)}`,Accept:"application/json"}}function j(a,b){return b&&a.searchParams.set("teamId",String(b)),a}async function k(a={},b={}){let c=a.team_id||h("VERCEL_TEAM_ID",b),d=b.agent_id??null,e=j(new URL("https://api.vercel.com/v9/projects"),c);a.limit&&e.searchParams.set("limit",String(Math.min(Math.max(Number(a.limit),1),100)));let g=await (0,f.N)("vercel_list_projects",d)(e,{headers:i(b)});if(!g.ok)throw Error(`Vercel projects request failed: ${g.status}`);return{projects:((await g.json()).projects||[]).map(a=>({id:a.id,name:a.name,framework:a.framework,latest_deployments:(a.latestDeployments||[]).map(a=>({uid:a.uid,url:a.url,state:a.state,created_at:a.createdAt}))}))}}async function l(a={},b={}){let c=a.team_id||h("VERCEL_TEAM_ID",b),d=b.agent_id??null,e=j(new URL("https://api.vercel.com/v6/deployments"),c);a.project_id&&e.searchParams.set("projectId",String(a.project_id)),a.project_name&&e.searchParams.set("projectName",String(a.project_name)),a.limit&&e.searchParams.set("limit",String(Math.min(Math.max(Number(a.limit),1),100)));let g=await (0,f.N)("vercel_list_deployments",d)(e,{headers:i(b)});if(!g.ok)throw Error(`Vercel deployments request failed: ${g.status}`);let k=await g.json();return{deployments:(k.deployments||[]).map(a=>({uid:a.uid,name:a.name,url:a.url,state:a.state,target:a.target,created_at:a.createdAt,creator:a.creator?{uid:a.creator.uid,username:a.creator.username}:null})),pagination:k.pagination||null}}async function m(a={}){return{approval_required:!0,status:"pending_approval",action:"vercel_create_deployment",summary:a.summary||"Create a Vercel deployment",requested_at:new Date().toISOString(),note:"Deployment creation is staged only. Approve the pending action before any external write is executed."}}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},23129:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(74144).unstable_rethrow;("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)},23339:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{NO:()=>p,TP:()=>q,c3:()=>r,l8:()=>w,mD:()=>s,oc:()=>u,sX:()=>t,wm:()=>v});var e=c(81909),f=c(16343),g=a([e,f]);function h(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}function i(a,b={}){let c=h(a,b);if(!c)throw Error(`${a} not configured`);return c}function j(a){return{Authorization:`Bearer ${a}`,apikey:a,Accept:"application/json"}}function k(a,b){let c=String(a||"").trim();if(!/^[a-zA-Z_][a-zA-Z0-9_]*(\.[a-zA-Z_][a-zA-Z0-9_]*)?$/.test(c))throw Error(`${b} must be a valid identifier (got: ${JSON.stringify(a)})`);return c}function l(a){let b=new URLSearchParams;for(let[c,d]of Object.entries(a)){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(c))throw Error(`Invalid filter column: ${c}`);b.set(c,String(d).includes(".")?String(d):`eq.${d}`)}return b}async function m(a){let b={};try{b=await a.json()}catch{}return{status:a.status,message:b.message||b.error||a.statusText||"Request failed",hint:b.hint||null}}function n(a){let b=i("SUPABASE_URL",a).replace(/\/+$/g,""),c=h("SUPABASE_SERVICE_ROLE_KEY",a)||h("SUPABASE_ANON_KEY",a);if(!c)throw Error("SUPABASE_SERVICE_ROLE_KEY or SUPABASE_ANON_KEY not configured");return{baseUrl:b,key:c}}function o(a){return Array.isArray(a)&&a.length>100?a.slice(0,100):a}async function p(a={},b={}){let c=i("SUPABASE_ACCESS_TOKEN",b),d=b.agent_id??null,e=await (0,f.N)("supabase_list_projects",d)("https://api.supabase.com/v1/projects",{headers:{Authorization:`Bearer ${c}`,Accept:"application/json"}});if(!e.ok)throw Error(`Supabase projects request failed: ${e.status}`);let g=await e.json();return{projects:(Array.isArray(g)?g:[]).map(a=>({id:a.id,name:a.name,region:a.region,status:a.status,organization_id:a.organization_id}))}}async function q(a={},b={}){let c=i("SUPABASE_URL",b).replace(/\/+$/g,""),d=h("SUPABASE_SERVICE_ROLE_KEY",b)||h("SUPABASE_ANON_KEY",b);if(!d)throw Error("SUPABASE_SERVICE_ROLE_KEY or SUPABASE_ANON_KEY not configured");let e=b.agent_id??null,g=String(a.table||"").trim();if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(g))throw Error("table must be a simple table name");let k=Math.min(Math.max(Number(a.limit||25),1),100),l=new URL(`${c}/rest/v1/${g}`);l.searchParams.set("select",String(a.select||"*")),l.searchParams.set("limit",String(k));let m=a.filters&&"object"==typeof a.filters?a.filters:{};for(let[a,b]of Object.entries(m)){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(a))throw Error(`Invalid filter column: ${a}`);l.searchParams.set(a,String(b).includes(".")?String(b):`eq.${b}`)}let n=await (0,f.N)("supabase_rest_select",e)(l,{headers:j(d)});if(!n.ok)throw Error(`Supabase REST select failed: ${n.status}`);let o=await n.json();return{table:g,count:Array.isArray(o)?o.length:null,rows:o}}async function r(a={},b={}){let{baseUrl:c,key:d}=n(b),e=b.agent_id??null,g=k(a.table,"table"),h=Array.isArray(a.rows)?a.rows:[a.rows].filter(Boolean);if(!h.length)throw Error("supabase_rest_insert requires at least one row in rows[]");let i=new URL(`${c}/rest/v1/${g}`);i.searchParams.set("limit","100");let l=await (0,f.N)("supabase_rest_insert",e)(i,{method:"POST",headers:{...j(d),"Content-Type":"application/json",Prefer:"return=representation"},body:JSON.stringify(h)});if(!l.ok){let a=await m(l);throw Error(`supabase_rest_insert failed (${a.status}): ${a.message}${a.hint?` — ${a.hint}`:""}`)}let p=await l.json(),q=o(Array.isArray(p)?p:[]);return{inserted:h.length,rows:q}}async function s(a={},b={}){let{baseUrl:c,key:d}=n(b),e=b.agent_id??null,g=k(a.table,"table"),h=Array.isArray(a.rows)?a.rows:[a.rows].filter(Boolean);if(!h.length)throw Error("supabase_rest_upsert requires at least one row in rows[]");let i=new URL(`${c}/rest/v1/${g}`);i.searchParams.set("limit","100"),a.on_conflict&&i.searchParams.set("on_conflict",String(a.on_conflict));let l=await (0,f.N)("supabase_rest_upsert",e)(i,{method:"POST",headers:{...j(d),"Content-Type":"application/json",Prefer:"resolution=merge-duplicates,return=representation"},body:JSON.stringify(h)});if(!l.ok){let a=await m(l);throw Error(`supabase_rest_upsert failed (${a.status}): ${a.message}${a.hint?` — ${a.hint}`:""}`)}let p=await l.json(),q=o(Array.isArray(p)?p:[]);return{upserted:h.length,rows:q}}async function t(a={},b={}){let{baseUrl:c,key:d}=n(b),e=b.agent_id??null,g=k(a.table,"table"),h=a.filters&&"object"==typeof a.filters?a.filters:{};if(!Object.keys(h).length)throw Error("supabase_rest_update requires filters to avoid table-wide updates");if(!a.patch||"object"!=typeof a.patch||Array.isArray(a.patch))throw Error("supabase_rest_update requires a patch object");let i=l(h),p=new URL(`${c}/rest/v1/${g}?${i.toString()}`),q=await (0,f.N)("supabase_rest_update",e)(p,{method:"PATCH",headers:{...j(d),"Content-Type":"application/json",Prefer:"return=representation",Range:"0-99"},body:JSON.stringify(a.patch)});if(!q.ok){let a=await m(q);throw Error(`supabase_rest_update failed (${a.status}): ${a.message}${a.hint?` — ${a.hint}`:""}`)}let r=await q.json(),s=o(Array.isArray(r)?r:[]);return{updated:s.length,rows:s}}async function u(a={},b={}){let{baseUrl:c,key:d}=n(b),e=b.agent_id??null,g=k(a.table,"table"),h=a.filters&&"object"==typeof a.filters?a.filters:{};if(!Object.keys(h).length)throw Error("supabase_rest_delete requires filters; bulk table truncation is blocked");let i=l(h),p=new URL(`${c}/rest/v1/${g}?${i.toString()}`),q=await (0,f.N)("supabase_rest_delete",e)(p,{method:"DELETE",headers:{...j(d),Prefer:"return=representation",Range:"0-99"}});if(!q.ok){let a=await m(q);throw Error(`supabase_rest_delete failed (${a.status}): ${a.message}${a.hint?` — ${a.hint}`:""}`)}let r=await q.json(),s=o(Array.isArray(r)?r:[]);return{deleted:s.length,rows:s}}async function v(a={},b={}){let c,{baseUrl:d,key:e}=n(b),g=b.agent_id??null,h=k(a.function_name,"function_name"),i=a.params&&"object"==typeof a.params?a.params:{},l=new URL(`${d}/rest/v1/rpc/${h}`),p=await (0,f.N)("supabase_rpc",g)(l,{method:"POST",headers:{...j(e),"Content-Type":"application/json"},body:JSON.stringify(i)});if(!p.ok){let a=await m(p);throw Error(`supabase_rpc(${h}) failed (${a.status}): ${a.message}${a.hint?` — ${a.hint}`:""}`)}let q=await p.text();if(Buffer.byteLength(q,"utf8")>51200)throw Error("supabase_rpc response too large (>51200 bytes); narrow your query");try{c=JSON.parse(q)}catch{c=q}return{result:o((Array.isArray(c),c))}}async function w(a={},b={}){let c,{baseUrl:d,key:e}=n(b),g=b.agent_id??null,h=String(a.query||"").trim();if(!h)throw Error("supabase_sql requires a query string");let i=a.params&&"object"==typeof a.params?a.params:{},k=new URL(`${d}/rest/v1/rpc/madarx_exec_sql`),l=await (0,f.N)("supabase_sql",g)(k,{method:"POST",headers:{...j(e),"Content-Type":"application/json"},body:JSON.stringify({query:h,params:i})});if(404===l.status)throw Error("madarx_exec_sql() function not found. Create it in your Supabase project with: CREATE OR REPLACE FUNCTION madarx_exec_sql(query text, params jsonb DEFAULT '{}'::jsonb) RETURNS SETOF record LANGUAGE plpgsql SECURITY DEFINER AS $$ BEGIN RETURN QUERY EXECUTE query; END; $$;");if(!l.ok){let a=await m(l);throw Error(`supabase_sql failed (${a.status}): ${a.message}${a.hint?` — ${a.hint}`:""}`)}let p=await l.text();if(Buffer.byteLength(p,"utf8")>51200)throw Error("supabase_sql response too large (>51200 bytes); add LIMIT to your query");try{c=JSON.parse(p)}catch{c=[]}let q=o(Array.isArray(c)?c:[c]);return{rows:q,row_count:q.length}}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},23799:(a,b,c)=>{"use strict";c.d(b,{m:()=>h});var d=c(31421);c(26848);var e=c(6390);function f(a){return new Promise(b=>{let c="",e=(0,d.spawn)("npm",["install","-g",a,"--prefer-online","--no-audit","--no-fund"],{stdio:["ignore","pipe","pipe"]});e.stdout.on("data",a=>{c+=a,process.stdout.write(a)}),e.stderr.on("data",a=>{c+=a,process.stderr.write(a)}),e.on("error",a=>b({ok:!1,code:-1,output:String(a.message)})),e.on("exit",a=>b({ok:0===a,code:a,output:c}))})}async function g({runner:a=f,to:b="latest",initiatedBy:d="cli"}={}){let h=(0,e.YO)(),i=`${e.rd}@${b}`,j=await a(i);try{let{appendAudit:a}=await Promise.resolve().then(c.bind(c,42382));a({type:"system.self_update",summary:`madarx update ${h} → ${b} (${j.ok?"ok":"failed"})`,status:j.ok?"ok":"failed",meta:{from:h,to:b,code:j.code,initiated_by:d}})}catch{}return{ok:j.ok,from:h,to:b,code:j.code,output:j.output}}async function h(a={}){let b=await (0,e.NS)({});if(!b.reachable)return{ok:!1,from:(0,e.YO)(),to:null,applied:!1,message:"npm registry unreachable"};if(!b.behind)return{ok:!0,from:b.current,to:b.latest,applied:!1,message:"already up to date"};let c=await g({initiatedBy:"self_update_tool"});return{ok:c.ok,from:c.from,to:b.latest,applied:c.ok,message:c.ok?`updated ${c.from} → v${b.latest}; restart required`:`update failed (exit ${c.code})`}}c(76760),c(48161),c(73024)},23998:(a,b)=>{"use strict";function c(a){return null!==a&&"object"==typeof a&&"then"in a&&"function"==typeof a.then}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isThenable",{enumerable:!0,get:function(){return c}})},24867:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Bs:()=>g});var e=c(84104),f=a([e]);function g(a,{scope_key:b,scope_value:c},d={}){let f=(0,e.Lf)(),h=!!d.default_allow,i=f.prepare("SELECT id FROM tool_allowlists WHERE tool_name = ? AND scope_key = ?").all(a,b);return 0===i.length?h?{ok:!0}:{ok:!1,missing_entry:{tool_name:a,scope_key:b,scope_value:c}}:f.prepare("SELECT id FROM tool_allowlists WHERE tool_name = ? AND scope_key = ? AND scope_value = ?").get(a,b,String(c))?{ok:!0}:{ok:!1,missing_entry:{tool_name:a,scope_key:b,scope_value:c}}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},26082:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"RouteKind",{enumerable:!0,get:function(){return c}});var c=function(a){return a.PAGES="PAGES",a.PAGES_API="PAGES_API",a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.IMAGE="IMAGE",a}({})},26200:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{ef:()=>C});var e=c(31421),f=c(73024),g=c(76760),h=c(83498),i=c(71086),j=c(79336),k=c(57647),l=c(42382),m=c(42864),n=c(11575),o=c(44246),p=c(85774),q=c(45830),r=c(40266),s=c(73005),t=c(62670),u=c(18722),v=c(34976),w=c(96615),x=c(5609),y=c(71454),z=c(17553),A=c(6390),B=a([j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z]);[j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z]=B.then?(await B)():B;let D="1"===process.env.MADARX_SEED_DEFAULT_WORKFLOWS;function C(a){globalThis.__madarxSuppressStateEmits=!0;try{try{!function(a){if(a.prepare("SELECT id FROM heartbeat_tasks WHERE type = 'tool_rate_limit_gc' AND status IN ('queued','leased','running') LIMIT 1").get())return;let b=`hbtask-rl-gc-${Date.now().toString(36)}`,c=JSON.stringify({type:"tool_rate_limit_gc"}),d=new Date().toISOString(),e=new Date(Date.now()+864e5).toISOString();a.prepare(`
|
|
370
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},17553:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$F:()=>m,mx:()=>n});var e=c(73024),f=c(76760),g=c(84104),h=c(83498),i=a([g]);g=(i.then?(await i)():i)[0];let o="brand_profile",p=f.join(h.Dl,"brand-assets","brand-guidelines.html"),q=f.join(h.Dl,"brand-assets","madarx-logo-primary.svg"),r={active:!0,company_name:"madarX",tagline:"",colors:[{name:"Onyx",value:"#0F0F11"},{name:"Platinum",value:"#E8E8E5"},{name:"Bone",value:"#DCDCD8"},{name:"Graphite",value:"#4A4A4D"},{name:"Mars",value:"#C2452A"}],fonts:["Inter","Cairo","IBM Plex Mono"],voice:["Direct","disciplined","precise","premium","local-first"],document_types:["Report","Brief","Strategy memo","Proposal"],presentation_style:"Dark editorial system with restrained layouts, Inter/Cairo/IBM Plex Mono typography, onyx backgrounds, platinum text, and Mars red accents.",logo_path:e.existsSync(q)?(0,h.z9)(q):null,logo_data_url:k(q),guidelines_path:e.existsSync(p)?(0,h.z9)(p):null,source_name:"brand-guidelines.html",extracted_at:null,updated_at:null};function j(a){return String(a||"").replace(/^--/,"").replace(/[-_]+/g," ").replace(/\b\w/g,a=>a.toUpperCase()).trim().replace(/^Ibm\b/,"IBM").replace(/\bUi\b/g,"UI")}function k(a){try{if(!a||!e.existsSync(a))return null;let b=f.extname(a).toLowerCase(),c=".svg"===b?"image/svg+xml":".png"===b?"image/png":".jpg"===b||".jpeg"===b?"image/jpeg":".webp"===b?"image/webp":"application/octet-stream",d=e.readFileSync(a);if("image/svg+xml"===c)return`data:${c};utf8,${encodeURIComponent(d.toString("utf8"))}`;return`data:${c};base64,${d.toString("base64")}`}catch{return null}}function l(){try{if(!e.existsSync(p))return{...r};let a=e.readFileSync(p,"utf8");return{...function(a,b="brand-guidelines"){let c=String(a||"").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<[^>]+>/g," ").replace(/—|—/g,"-").replace(/&[a-z]+;/gi," ").replace(/\s+/g," ").trim(),d={...r,company_name:function(a,b){let c=a.match(/<title[^>]*>([\s\S]*?)<\/title>/i)?.[1]?.replace(/\s+/g," ").trim()||"",d=c.split(/[—|-]/)[0]?.trim();return d?d.replace(/\s+Brand Guidelines.*$/i,"").trim():f.basename(b||"Brand",f.extname(b||"")).replace(/[-_]+/g," ")}(a,b)||r.company_name,tagline:function(a,b){let c=RegExp(`<meta[^>]+name=["']${b}["'][^>]+content=["']([^"']+)["']`,"i");return a.match(c)?.[1]?.trim()||""}(a,"description")||"",colors:function(a){let b,c=function(a){let b,c=[],d=/--([a-z0-9_-]+)\s*:\s*(#[0-9a-f]{3,8})\b/gi;for(;b=d.exec(a);)c.push({name:j(b[1]),value:b[2].toUpperCase()});return c}(a),d=new Set(c.map(a=>a.value.toUpperCase())),e=/#[0-9a-f]{3,8}\b/gi;for(;(b=e.exec(a))&&c.length<10;){let a=b[0].toUpperCase();d.has(a)||(d.add(a),c.push({name:`Color ${c.length+1}`,value:a}))}return c.slice(0,10)}(a),fonts:function(a){let b=[];for(let c of a.matchAll(/@fontsource\/([^@/'")]+)/gi))b.push(j(c[1]));for(let c of a.matchAll(/font-family\s*:\s*([^;}{]+)/gi)){let a=c[1].split(",")[0].replace(/["']/g,"").trim();a&&!/^(var|system-ui|-apple-system|sans-serif|serif|monospace)$/i.test(a)&&b.push(a)}return[...new Set(b.filter(Boolean).map(a=>String(a).trim()).filter(Boolean))].slice(0,8)}(a),voice:function(a){let b=a.toLowerCase();return["direct","disciplined","precise","premium","minimal","editorial","confident","restrained","local-first","bilingual","operational"].filter(a=>b.includes(a)).slice(0,8)}(c),source_name:b,extracted_at:(0,g.kF)(),updated_at:(0,g.kF)()};return d.colors.length||(d.colors=r.colors),d.fonts.length||(d.fonts=r.fonts),d.voice.length||(d.voice=r.voice),d.presentation_style=function(a){let b=a.colors?.[0]?.value||"#111318",c=a.colors?.find(a=>!["#FFFFFF","#000000"].includes(a.value))?.value||b,d=a.fonts?.length?a.fonts.join(", "):"brand typography";return`Use ${d}; lead with ${a.company_name||"the brand"} identity, restrained hierarchy, ${b} as the base color, and ${c} as the accent.`}(d),d}(a,"brand-guidelines.html"),logo_path:e.existsSync(q)?(0,h.z9)(q):null,logo_data_url:k(q),guidelines_path:(0,h.z9)(p)}}catch{return{...r}}}function m(){let a=(0,g.Lf)().prepare("SELECT value FROM config WHERE key = ?").get(o);return a?{...r,...function(a,b){try{return JSON.parse(a)}catch{return b}}(a.value,{})}:l()}function n(a=(0,g.Lf)()){if(a.prepare("SELECT value FROM config WHERE key = ?").get(o))return!1;let b=l();return a.prepare("INSERT OR REPLACE INTO config (key, value) VALUES (?, ?)").run(o,JSON.stringify({...b,updated_at:(0,g.kF)()})),!0}d()}catch(a){d(a)}})},17830:(a,b,c)=>{"use strict";c.d(b,{ho:()=>l,pE:()=>f});let d=/^[a-z][a-z0-9-]{2,63}$/,e=new Set(["tool_call","llm_synthesis","artifact_write"]),f=["low","medium","high","irreversible_external"],g=/^[a-z][a-z0-9-]{0,63}$/,h=/\{\{([a-z][a-z0-9-]*)/g;function i(a,b,c){a.push(`${b}: ${c}`)}function j(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}function k(a){return f.indexOf(a)}function l(a,b={}){let c,m=[],n=[];try{c=JSON.stringify(a)}catch{return{ok:!1,errors:["spec: not JSON-serialisable"],warnings:[],normalized:null}}if(!c||"undefined"===c)return{ok:!1,errors:["spec: required"],warnings:[],normalized:null};if(Buffer.byteLength(c,"utf8")>65536)return{ok:!1,errors:[`spec: serialized length ${Buffer.byteLength(c,"utf8")} bytes exceeds 65536-byte cap`],warnings:[],normalized:null};if(!j(a))return{ok:!1,errors:["spec: must be a plain object"],warnings:[],normalized:null};if(a.slug&&"string"==typeof a.slug?d.test(a.slug)||i(m,"slug",`does not match ${d} (lowercase, starts with letter, 3-64 chars, hyphens allowed)`):i(m,"slug","required (string)"),a.title&&"string"==typeof a.title||i(m,"title","required (non-empty string)"),null!=a.description&&"string"!=typeof a.description&&i(m,"description","must be a string"),null==a.input_schema||j(a.input_schema)||i(m,"input_schema","must be a plain object"),!Array.isArray(a.steps)||0===a.steps.length)return i(m,"steps","required (non-empty array)"),{ok:!1,errors:m,warnings:n,normalized:null};if(a.steps.length>25)return i(m,"steps","exceeds 25"),{ok:!1,errors:m,warnings:n,normalized:null};let o=new Set,p="low",q=[];for(let c=0;c<a.steps.length;c++){var r,s;let d,l=a.steps[c],n=`steps[${c}]`;if(!j(l)){i(m,n,"must be a plain object");continue}if(!l.kind||!e.has(l.kind)){i(m,`${n}.kind`,`must be one of ${[...e].join(", ")}`);continue}l.id&&"string"==typeof l.id?g.test(l.id)?o.has(l.id)?i(m,`${n}.id`,`duplicate step id '${l.id}'`):o.add(l.id):i(m,`${n}.id`,`does not match ${g}`):i(m,`${n}.id`,"required (slug-like string)");let t=new Set(o);l.id&&t.delete(l.id);let u={};for(let[a,b]of("tool_call"===l.kind&&j(l.input_template)&&(u.input_template=l.input_template),"artifact_write"===l.kind&&(null!=l.title_template&&(u.title_template=l.title_template),null!=l.content_ref&&(u.content_ref=l.content_ref)),"llm_synthesis"===l.kind&&null!=l.prompt&&(u.prompt=l.prompt),Object.entries(u)))for(let c of function a(b){let c=new Set;if("string"==typeof b){let a;for(h.lastIndex=0;null!==(a=h.exec(b));){let b=a[1];"input"!==b&&c.add(b)}return c}if(j(b))for(let d of Object.values(b))for(let b of a(d))c.add(b);if(Array.isArray(b))for(let d of b)for(let b of a(d))c.add(b);return c}(b))t.has(c)||i(m,n,`references later/unknown step '${c}' in ${a}`);switch(l.kind){case"tool_call":d=function(a,b,c,d){let e;return a.tool&&"string"==typeof a.tool?d.knownToolNames&&!d.knownToolNames.has(a.tool)&&i(b,`${c}.tool`,`unknown tool '${a.tool}'`):i(b,`${c}.tool`,"required (string)"),null==a.input_template||j(a.input_template)||i(b,`${c}.input_template`,"must be a plain object (data only)"),null!=a.risk?f.includes(a.risk)?e=a.risk:(i(b,`${c}.risk`,`must be one of ${f.join(", ")}`),e="medium"):e=d.toolRiskByName&&"string"==typeof a.tool?d.toolRiskByName.get(a.tool)??"medium":"medium",e}(l,m,n,b);break;case"llm_synthesis":l.prompt&&"string"==typeof l.prompt?l.prompt.length>8e3&&i(m,`${n}.prompt`,`exceeds 8000 chars (got ${l.prompt.length})`):i(m,`${n}.prompt`,"required (non-empty string)"),d="low";break;case"artifact_write":d="low"}r=p,s=d,p=k(r)>=k(s)?r:s;let v={kind:l.kind,id:l.id};"tool_call"===l.kind?(v.tool=l.tool??null,null!=l.input_template&&(v.input_template=structuredClone(l.input_template)),v.risk=d):"llm_synthesis"===l.kind?v.prompt=l.prompt??null:"artifact_write"===l.kind&&(null!=l.title_template&&(v.title_template=l.title_template),null!=l.content_ref&&(v.content_ref=l.content_ref)),q.push(v)}return m.length>0?{ok:!1,errors:m,warnings:n,normalized:null}:{ok:!0,errors:[],warnings:n,normalized:{slug:a.slug,title:a.title,description:a.description??null,input_schema:null!=a.input_schema?structuredClone(a.input_schema):{type:"object",properties:{}},steps:q,risk_level:p}}}},17916:(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,{normalizeAppPath:function(){return f},normalizeRscURL:function(){return g}});let d=c(8991),e=c(8625);function f(a){return(0,d.ensureLeadingSlash)(a.split("/").reduce((a,b,c,d)=>!b||(0,e.isGroupSegment)(b)||"@"===b[0]||("page"===b||"route"===b)&&c===d.length-1?a:a+"/"+b,""))}function g(a){return a.replace(/\.rsc($|\?)/,"$1")}},18633:(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,{METADATA_BOUNDARY_NAME:function(){return c},OUTLET_BOUNDARY_NAME:function(){return e},ROOT_LAYOUT_BOUNDARY_NAME:function(){return f},VIEWPORT_BOUNDARY_NAME:function(){return d}});let c="__next_metadata_boundary__",d="__next_viewport_boundary__",e="__next_outlet_boundary__",f="__next_root_layout_boundary__"},18707:(a,b,c)=>{},18722:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{r1:()=>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-quarterly-review.js")),l=null;function j(){let a=(l||(l=JSON.parse((0,e.readFileSync)((0,g.join)(k,"specs","hail-quarterly-review.json"),"utf8"))),l);return(0,h.R1)(a,{source_spec_json:JSON.stringify(a)})}d()}catch(a){d(a)}})},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19376:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{wA:()=>j});var e=c(84104),f=c(68571),g=c(17553),h=c(96307),i=a([e,f,g,h]);[e,f,g,h]=i.then?(await i)():i,process.env.OLLAMA_BASE_URL,process.env.MADARX_DEFAULT_MODEL;let k=["balanced","minimal","bold","soft"];function j(){try{let a=(0,e.Lf)().prepare("SELECT value FROM config WHERE key = ?").get("design_style"),b=a?.value;return k.includes(b)?b:"balanced"}catch{return"balanced"}}d()}catch(a){d(a)}})},20749:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{FE:()=>w,R5:()=>s,Y$:()=>y,zP:()=>u});var e=c(81909),f=c(16343),g=c(85798),h=a([e,f,g]);function i(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}function j(a,b={}){let c=i(a,b);if(!c)throw Error(`${a} not configured`);return c}function k(a,b,c,d){let e=Number(a);return Number.isFinite(e)?Math.min(Math.max(Math.trunc(e),c),d):b}function l(a,b){let c=String(a||"").trim().toUpperCase();if(!/^[A-Z]{3}$/.test(c))throw Error(`"${b}" must be a 3-letter IATA code (got: ${a??""})`);return c}function m(a,b){let c=String(a||"").trim();if(!/^\d{4}-\d{2}-\d{2}$/.test(c))throw Error(`"${b}" must be ISO date YYYY-MM-DD (got: ${a??""})`);return c}async function n(a,b){try{let c=await a.text();if(!c)return b;return c.slice(0,300)}catch{return b}}function o(a={}){let b=(i("AMADEUS_ENV",a)||"test").toLowerCase();return"production"===b||"prod"===b?"https://api.amadeus.com":"https://test.api.amadeus.com"}[e,f,g]=h.then?(await h)():h;let z=new Map;async function p(a={}){let b=o(a),c=z.get(b);if(c&&c.expires_at>Date.now()+6e4)return c.access_token;let d=j("AMADEUS_CLIENT_ID",a),e=j("AMADEUS_CLIENT_SECRET",a),g=(0,f.N)("flight_search",a.agent_id??null),h=await g(`${b}/v1/security/oauth2/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"client_credentials",client_id:d,client_secret:e}).toString()});if(!h.ok){let a=await n(h,`HTTP ${h.status}`);throw Error(`Amadeus auth failed (${h.status}): ${a}`)}let i=await h.json(),k=String(i.access_token||""),l=Number(i.expires_in||1800);if(!k)throw Error("Amadeus auth returned no access_token");return z.set(b,{access_token:k,expires_at:Date.now()+1e3*l}),k}function q(a={}){let b=Array.isArray(a.itineraries)?a.itineraries:[],c=b.flatMap(a=>Array.isArray(a?.segments)?a.segments:[]);return{id:a.id||null,price:{total:a.price?.total??null,currency:a.price?.currency??null,base:a.price?.base??null},seats_available:a.numberOfBookableSeats??null,last_ticketing_date:a.lastTicketingDate??null,itineraries:b.map(a=>({duration:a?.duration??null,stops:Math.max(0,(Array.isArray(a?.segments)?a.segments.length:1)-1),segments:(Array.isArray(a?.segments)?a.segments:[]).map(a=>({carrier:a?.carrierCode??null,flight_number:a?.number??null,departure:{iata:a?.departure?.iataCode??null,at:a?.departure?.at??null,terminal:a?.departure?.terminal??null},arrival:{iata:a?.arrival?.iataCode??null,at:a?.arrival?.at??null,terminal:a?.arrival?.terminal??null},duration:a?.duration??null,aircraft:a?.aircraft?.code??null}))})),validating_airlines:Array.isArray(a.validatingAirlineCodes)?a.validatingAirlineCodes:[],cabin:c[0]?.cabin||a.travelerPricings?.[0]?.fareDetailsBySegment?.[0]?.cabin||null}}async function r(a={},b={}){let c=l(a.origin,"origin"),d=l(a.destination,"destination"),e=m(a.departure_date,"departure_date"),g=a.return_date?m(a.return_date,"return_date"):null,h=k(a.adults,1,1,9),i=k(a.children,0,0,8),j=k(a.max_results,5,1,25),s=new URLSearchParams({originLocationCode:c,destinationLocationCode:d,departureDate:e,adults:String(h),max:String(j),currencyCode:a.currency?String(a.currency).toUpperCase().slice(0,3):"USD"});if(g&&s.set("returnDate",g),i>0&&s.set("children",String(i)),a.travel_class){let b=String(a.travel_class).toUpperCase();["ECONOMY","PREMIUM_ECONOMY","BUSINESS","FIRST"].includes(b)&&s.set("travelClass",b)}(!0===a.non_stop||"true"===a.non_stop)&&s.set("nonStop","true");let t=await p(b),u=o(b),v=(0,f.N)("flight_search",b.agent_id??null),w=await v(`${u}/v2/shopping/flight-offers?${s.toString()}`,{headers:{Authorization:`Bearer ${t}`,Accept:"application/json"}});if(401===w.status){z.delete(u);let a=await n(w,"unauthorized");throw Error(`Amadeus auth rejected (401): ${a}`)}if(!w.ok){let a=await n(w,`HTTP ${w.status}`);throw Error(`Amadeus flight offers failed (${w.status}): ${a}`)}let x=await w.json(),y=Array.isArray(x.data)?x.data:[];return{query:{origin:c,destination:d,departure_date:e,return_date:g,adults:h,children:i,currency:s.get("currencyCode"),travel_class:s.get("travelClass")||null,non_stop:"true"===s.get("nonStop"),max_results:j},count:y.length,offers:y.map(q),source:{provider:"amadeus",environment:u.includes("test.api")?"test":"production",fetched_at:new Date().toISOString()}}}async function s(a={},b={}){let c=!!(i("AMADEUS_CLIENT_ID",b)&&i("AMADEUS_CLIENT_SECRET",b)),d="1"===String(process.env.MADARX_FLIGHT_SEARCH_NO_FALLBACK||"").trim();if(c)try{return await r(a,b)}catch(a){if(d)throw a;console.warn("[flight_search] Amadeus failed, falling back to Google Flights:",a?.message||a)}return(0,g.b3)(a,b)}function t(a={}){return{flight_date:a.flight_date??null,flight_status:a.flight_status??null,airline:a.airline?.name??null,flight:{iata:a.flight?.iata??null,icao:a.flight?.icao??null,number:a.flight?.number??null},departure:{airport:a.departure?.airport??null,iata:a.departure?.iata??null,icao:a.departure?.icao??null,terminal:a.departure?.terminal??null,gate:a.departure?.gate??null,scheduled:a.departure?.scheduled??null,estimated:a.departure?.estimated??null,actual:a.departure?.actual??null,delay_minutes:a.departure?.delay??null},arrival:{airport:a.arrival?.airport??null,iata:a.arrival?.iata??null,icao:a.arrival?.icao??null,terminal:a.arrival?.terminal??null,gate:a.arrival?.gate??null,scheduled:a.arrival?.scheduled??null,estimated:a.arrival?.estimated??null,actual:a.arrival?.actual??null,delay_minutes:a.arrival?.delay??null},aircraft:a.aircraft?.registration??null,live:a.live?{latitude:a.live.latitude??null,longitude:a.live.longitude??null,altitude:a.live.altitude??null,speed_horizontal:a.live.speed_horizontal??null,is_ground:a.live.is_ground??null,updated:a.live.updated??null}:null}}async function u(a={},b={}){let c=a.flight_iata?String(a.flight_iata).trim().toUpperCase():null,d=a.flight_icao?String(a.flight_icao).trim().toUpperCase():null,e=a.airline_iata?String(a.airline_iata).trim().toUpperCase():null,g=a.dep_iata?l(a.dep_iata,"dep_iata"):null,h=a.arr_iata?l(a.arr_iata,"arr_iata"):null,o=a.flight_date?m(a.flight_date,"flight_date"):null,p=k(a.limit,5,1,100);if(!c&&!d&&!e&&!g&&!h)throw Error("At least one of flight_iata, flight_icao, airline_iata, dep_iata, or arr_iata is required");let q=j("AVIATIONSTACK_API_KEY",b),r=new URLSearchParams({access_key:q,limit:String(p)});c&&r.set("flight_iata",c),d&&r.set("flight_icao",d),e&&r.set("airline_iata",e),g&&r.set("dep_iata",g),h&&r.set("arr_iata",h),o&&r.set("flight_date",o);let s=function(a={}){let b=String(i("AVIATIONSTACK_HTTPS",a)||"").toLowerCase();return"1"===b||"true"===b||"yes"===b?"https://api.aviationstack.com":"http://api.aviationstack.com"}(b),v=(0,f.N)("flight_status",b.agent_id??null),w=await v(`${s}/v1/flights?${r.toString()}`);if(!w.ok){let a=await n(w,`HTTP ${w.status}`);throw Error(`Aviationstack failed (${w.status}): ${a}`)}let x=await w.json();if(x?.error){let a=x.error.code||"error",b=x.error.message||x.error.info||"unknown error";throw Error(`Aviationstack error (${a}): ${b}`)}let y=Array.isArray(x?.data)?x.data:[];return{query:{flight_iata:c,flight_icao:d,airline_iata:e,dep_iata:g,arr_iata:h,flight_date:o,limit:p},count:y.length,pagination:x?.pagination||null,flights:y.map(t),source:{provider:"aviationstack",fetched_at:new Date().toISOString()}}}let A="https://data.xotelo.com";function v(a={}){return{key:a.key??a.hotel_key??null,name:a.name??null,geo:{latitude:a.geo?.latitude??null,longitude:a.geo?.longitude??null},address:a.address??null,stars:a.stars??null,review_summary:a.review_summary?{score:a.review_summary.score??null,count:a.review_summary.count??null}:null,price:a.price??null,accommodation_type:a.accommodation_type??null}}async function w(a={},b={}){let c=String(a.location_key||"").trim();if(!c)throw Error('"location_key" is required');if(!/^[a-z]?[0-9]+$/i.test(c))throw Error(`"location_key" must be a TripAdvisor key like "g60763" (got: ${c})`);let d=k(a.offset,0,0,1e3),e=k(a.limit,10,1,30),g=a.currency?String(a.currency).toUpperCase().slice(0,3):"USD",h=new URLSearchParams({location_key:c,offset:String(d),limit:String(e),currency:g});if(a.sort){let b=String(a.sort).toLowerCase();["popularity","price","rating"].includes(b)&&h.set("sort",b)}a.hotel_class&&h.set("hotel_class",String(a.hotel_class));let i=(0,f.N)("hotel_search",b.agent_id??null),j=await i(`${A}/api/list?${h.toString()}`);if(!j.ok){let a=await n(j,`HTTP ${j.status}`);throw Error(`Xotelo list failed (${j.status}): ${a}`)}let l=await j.json();if(l?.error)throw Error(`Xotelo error: ${"string"==typeof l.error?l.error:JSON.stringify(l.error)}`);let m=l?.result||{},o=Array.isArray(m.list)?m.list:[];return{query:{location_key:c,offset:d,limit:e,currency:g,sort:h.get("sort")||null},count:o.length,total_available:m.number_of_results??null,hotels:o.map(v),source:{provider:"xotelo",fetched_at:new Date().toISOString()}}}function x(a={}){return{vendor:a.name??a.code??null,code:a.code??null,rate:a.rate??null,tax:a.tax??null,total:a.total??null,currency:a.currency??null,deeplink:a.deeplink??null,is_official:a.is_official??null,free_cancellation:a.free_cancellation??null}}async function y(a={},b={}){let c=String(a.hotel_key||"").trim();if(!c)throw Error('"hotel_key" is required');if(!/^[a-z]?[0-9]+-[a-z]?[0-9]+$/i.test(c))throw Error(`"hotel_key" must be a TripAdvisor hotel key like "g60763-d224867" (got: ${c})`);let d=m(a.chk_in,"chk_in"),e=m(a.chk_out,"chk_out");if(new Date(e)<=new Date(d))throw Error('"chk_out" must be after "chk_in"');let g=a.currency?String(a.currency).toUpperCase().slice(0,3):"USD",h=k(a.rooms,1,1,9),i=k(a.adults,2,1,9),j=new URLSearchParams({hotel_key:c,chk_in:d,chk_out:e,currency:g,rooms:String(h),adults:String(i)}),l=(0,f.N)("hotel_rates",b.agent_id??null),o=await l(`${A}/api/rates?${j.toString()}`);if(!o.ok){let a=await n(o,`HTTP ${o.status}`);throw Error(`Xotelo rates failed (${o.status}): ${a}`)}let p=await o.json();if(p?.error)throw Error(`Xotelo error: ${"string"==typeof p.error?p.error:JSON.stringify(p.error)}`);let q=p?.result||{},r=Array.isArray(q.rates)?q.rates:[];return{query:{hotel_key:c,chk_in:d,chk_out:e,currency:g,rooms:h,adults:i},count:r.length,hotel:{name:q.name??null,stars:q.stars??null},rates:r.map(x),source:{provider:"xotelo",fetched_at:new Date().toISOString()}}}d()}catch(a){d(a)}})},21016:(a,b,c)=>{Promise.resolve().then(c.bind(c,35271)),Promise.resolve().then(c.bind(c,79148)),Promise.resolve().then(c.bind(c,72987)),Promise.resolve().then(c.bind(c,78516)),Promise.resolve().then(c.t.bind(c,65169,23))},21118:(a,b,c)=>{"use strict";c.d(b,{Tt:()=>g,ix:()=>d,wb:()=>e}),Object.freeze(["public","internal","confidential","restricted","refused"]),Object.freeze(["diagnostic","blueprint","pilot","managed_layer"]),Object.freeze(["low","medium","high","irreversible_external","blocked"]),Object.freeze(["decide","draft","recommend","execute","escalate"]),Object.freeze(["interview_transcript","diagnostic_report","operating_profile","role_map","friction_map","governance_matrix","agent_roster","setup_plan","pilot_test_report","quarterly_review"]);let d=new Set(Object.freeze(["diagnostic_signoff","blueprint_signoff","setup_package_approval","pilot_launch","managed_layer_change"])),e=new Set(Object.freeze(["practitioner","architect","security_reviewer","principal","counsel"]));Object.freeze(["agent","tool","allowlist_entry","secret","schedule","workflow","memory_scope","artifact_acl","approval_policy"]),Object.freeze(["observed","inferred","needs_confirmation"]),Object.freeze([{slug:"principal_identity",label:"Principal identity & context"},{slug:"role_capacity_inventory",label:"Role / capacity inventory"},{slug:"decision_delegation_style",label:"Decision & delegation style"},{slug:"reputation_constraints",label:"Reputation constraints"},{slug:"confidentiality_boundaries",label:"Confidentiality boundaries"},{slug:"current_systems_tools",label:"Current systems, tools & communications"},{slug:"bottlenecks_friction",label:"Work bottlenecks & friction points"},{slug:"approval_preferences",label:"Approval preferences"},{slug:"counterparties_reviewers",label:"Human counterparties & reviewer roles"},{slug:"regulated_obligations",label:"Regulated / counsel / audit obligations"},{slug:"desired_outcomes",label:"Desired outcomes (time / judgment / reputation)"}]).map(a=>a.slug);let f=Object.freeze({"diagnostic-signoff":{gate_type:"diagnostic_signoff",reviewer_role:"practitioner"},"blueprint-signoff":{gate_type:"blueprint_signoff",reviewer_role:"architect"},"setup-package-approval":{gate_type:"setup_package_approval",reviewer_role:"principal"},"pilot-activation":{gate_type:"pilot_launch",reviewer_role:"principal"},"managed-layer-activation":{gate_type:"managed_layer_change",reviewer_role:"practitioner"}}),g=Object.freeze({"hail-engagement-lifecycle":f,"hail-quarterly-review":Object.freeze({"review-signoff":{gate_type:"managed_layer_change",reviewer_role:"practitioner"},"reconfig-approval":{gate_type:"setup_package_approval",reviewer_role:"principal"}})})},22458:(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,{ReadonlyURLSearchParams:function(){return k},RedirectType:function(){return e.RedirectType},forbidden:function(){return g.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return h.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return i.unstable_rethrow}});let d=c(79595),e=c(44338),f=c(52741),g=c(36098),h=c(87345),i=c(23129);class j extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class k extends URLSearchParams{append(){throw new j}delete(){throw new j}set(){throw new j}sort(){throw new j}}function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("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)},22896:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{I6:()=>l,Q$:()=>k,vV:()=>m});var e=c(81909),f=c(16343),g=a([e,f]);function h(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}function i(a={}){return{Authorization:`Bearer ${function(a,b={}){let c=h(a,b);if(!c)throw Error(`${a} not configured`);return c}("VERCEL_TOKEN",a)}`,Accept:"application/json"}}function j(a,b){return b&&a.searchParams.set("teamId",String(b)),a}async function k(a={},b={}){let c=a.team_id||h("VERCEL_TEAM_ID",b),d=b.agent_id??null,e=j(new URL("https://api.vercel.com/v9/projects"),c);a.limit&&e.searchParams.set("limit",String(Math.min(Math.max(Number(a.limit),1),100)));let g=await (0,f.N)("vercel_list_projects",d)(e,{headers:i(b)});if(!g.ok)throw Error(`Vercel projects request failed: ${g.status}`);return{projects:((await g.json()).projects||[]).map(a=>({id:a.id,name:a.name,framework:a.framework,latest_deployments:(a.latestDeployments||[]).map(a=>({uid:a.uid,url:a.url,state:a.state,created_at:a.createdAt}))}))}}async function l(a={},b={}){let c=a.team_id||h("VERCEL_TEAM_ID",b),d=b.agent_id??null,e=j(new URL("https://api.vercel.com/v6/deployments"),c);a.project_id&&e.searchParams.set("projectId",String(a.project_id)),a.project_name&&e.searchParams.set("projectName",String(a.project_name)),a.limit&&e.searchParams.set("limit",String(Math.min(Math.max(Number(a.limit),1),100)));let g=await (0,f.N)("vercel_list_deployments",d)(e,{headers:i(b)});if(!g.ok)throw Error(`Vercel deployments request failed: ${g.status}`);let k=await g.json();return{deployments:(k.deployments||[]).map(a=>({uid:a.uid,name:a.name,url:a.url,state:a.state,target:a.target,created_at:a.createdAt,creator:a.creator?{uid:a.creator.uid,username:a.creator.username}:null})),pagination:k.pagination||null}}async function m(a={}){return{approval_required:!0,status:"pending_approval",action:"vercel_create_deployment",summary:a.summary||"Create a Vercel deployment",requested_at:new Date().toISOString(),note:"Deployment creation is staged only. Approve the pending action before any external write is executed."}}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},23129:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(74144).unstable_rethrow;("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)},23339:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{NO:()=>p,TP:()=>q,c3:()=>r,l8:()=>w,mD:()=>s,oc:()=>u,sX:()=>t,wm:()=>v});var e=c(81909),f=c(16343),g=a([e,f]);function h(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}function i(a,b={}){let c=h(a,b);if(!c)throw Error(`${a} not configured`);return c}function j(a){return{Authorization:`Bearer ${a}`,apikey:a,Accept:"application/json"}}function k(a,b){let c=String(a||"").trim();if(!/^[a-zA-Z_][a-zA-Z0-9_]*(\.[a-zA-Z_][a-zA-Z0-9_]*)?$/.test(c))throw Error(`${b} must be a valid identifier (got: ${JSON.stringify(a)})`);return c}function l(a){let b=new URLSearchParams;for(let[c,d]of Object.entries(a)){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(c))throw Error(`Invalid filter column: ${c}`);b.set(c,String(d).includes(".")?String(d):`eq.${d}`)}return b}async function m(a){let b={};try{b=await a.json()}catch{}return{status:a.status,message:b.message||b.error||a.statusText||"Request failed",hint:b.hint||null}}function n(a){let b=i("SUPABASE_URL",a).replace(/\/+$/g,""),c=h("SUPABASE_SERVICE_ROLE_KEY",a)||h("SUPABASE_ANON_KEY",a);if(!c)throw Error("SUPABASE_SERVICE_ROLE_KEY or SUPABASE_ANON_KEY not configured");return{baseUrl:b,key:c}}function o(a){return Array.isArray(a)&&a.length>100?a.slice(0,100):a}async function p(a={},b={}){let c=i("SUPABASE_ACCESS_TOKEN",b),d=b.agent_id??null,e=await (0,f.N)("supabase_list_projects",d)("https://api.supabase.com/v1/projects",{headers:{Authorization:`Bearer ${c}`,Accept:"application/json"}});if(!e.ok)throw Error(`Supabase projects request failed: ${e.status}`);let g=await e.json();return{projects:(Array.isArray(g)?g:[]).map(a=>({id:a.id,name:a.name,region:a.region,status:a.status,organization_id:a.organization_id}))}}async function q(a={},b={}){let c=i("SUPABASE_URL",b).replace(/\/+$/g,""),d=h("SUPABASE_SERVICE_ROLE_KEY",b)||h("SUPABASE_ANON_KEY",b);if(!d)throw Error("SUPABASE_SERVICE_ROLE_KEY or SUPABASE_ANON_KEY not configured");let e=b.agent_id??null,g=String(a.table||"").trim();if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(g))throw Error("table must be a simple table name");let k=Math.min(Math.max(Number(a.limit||25),1),100),l=new URL(`${c}/rest/v1/${g}`);l.searchParams.set("select",String(a.select||"*")),l.searchParams.set("limit",String(k));let m=a.filters&&"object"==typeof a.filters?a.filters:{};for(let[a,b]of Object.entries(m)){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(a))throw Error(`Invalid filter column: ${a}`);l.searchParams.set(a,String(b).includes(".")?String(b):`eq.${b}`)}let n=await (0,f.N)("supabase_rest_select",e)(l,{headers:j(d)});if(!n.ok)throw Error(`Supabase REST select failed: ${n.status}`);let o=await n.json();return{table:g,count:Array.isArray(o)?o.length:null,rows:o}}async function r(a={},b={}){let{baseUrl:c,key:d}=n(b),e=b.agent_id??null,g=k(a.table,"table"),h=Array.isArray(a.rows)?a.rows:[a.rows].filter(Boolean);if(!h.length)throw Error("supabase_rest_insert requires at least one row in rows[]");let i=new URL(`${c}/rest/v1/${g}`);i.searchParams.set("limit","100");let l=await (0,f.N)("supabase_rest_insert",e)(i,{method:"POST",headers:{...j(d),"Content-Type":"application/json",Prefer:"return=representation"},body:JSON.stringify(h)});if(!l.ok){let a=await m(l);throw Error(`supabase_rest_insert failed (${a.status}): ${a.message}${a.hint?` — ${a.hint}`:""}`)}let p=await l.json(),q=o(Array.isArray(p)?p:[]);return{inserted:h.length,rows:q}}async function s(a={},b={}){let{baseUrl:c,key:d}=n(b),e=b.agent_id??null,g=k(a.table,"table"),h=Array.isArray(a.rows)?a.rows:[a.rows].filter(Boolean);if(!h.length)throw Error("supabase_rest_upsert requires at least one row in rows[]");let i=new URL(`${c}/rest/v1/${g}`);i.searchParams.set("limit","100"),a.on_conflict&&i.searchParams.set("on_conflict",String(a.on_conflict));let l=await (0,f.N)("supabase_rest_upsert",e)(i,{method:"POST",headers:{...j(d),"Content-Type":"application/json",Prefer:"resolution=merge-duplicates,return=representation"},body:JSON.stringify(h)});if(!l.ok){let a=await m(l);throw Error(`supabase_rest_upsert failed (${a.status}): ${a.message}${a.hint?` — ${a.hint}`:""}`)}let p=await l.json(),q=o(Array.isArray(p)?p:[]);return{upserted:h.length,rows:q}}async function t(a={},b={}){let{baseUrl:c,key:d}=n(b),e=b.agent_id??null,g=k(a.table,"table"),h=a.filters&&"object"==typeof a.filters?a.filters:{};if(!Object.keys(h).length)throw Error("supabase_rest_update requires filters to avoid table-wide updates");if(!a.patch||"object"!=typeof a.patch||Array.isArray(a.patch))throw Error("supabase_rest_update requires a patch object");let i=l(h),p=new URL(`${c}/rest/v1/${g}?${i.toString()}`),q=await (0,f.N)("supabase_rest_update",e)(p,{method:"PATCH",headers:{...j(d),"Content-Type":"application/json",Prefer:"return=representation",Range:"0-99"},body:JSON.stringify(a.patch)});if(!q.ok){let a=await m(q);throw Error(`supabase_rest_update failed (${a.status}): ${a.message}${a.hint?` — ${a.hint}`:""}`)}let r=await q.json(),s=o(Array.isArray(r)?r:[]);return{updated:s.length,rows:s}}async function u(a={},b={}){let{baseUrl:c,key:d}=n(b),e=b.agent_id??null,g=k(a.table,"table"),h=a.filters&&"object"==typeof a.filters?a.filters:{};if(!Object.keys(h).length)throw Error("supabase_rest_delete requires filters; bulk table truncation is blocked");let i=l(h),p=new URL(`${c}/rest/v1/${g}?${i.toString()}`),q=await (0,f.N)("supabase_rest_delete",e)(p,{method:"DELETE",headers:{...j(d),Prefer:"return=representation",Range:"0-99"}});if(!q.ok){let a=await m(q);throw Error(`supabase_rest_delete failed (${a.status}): ${a.message}${a.hint?` — ${a.hint}`:""}`)}let r=await q.json(),s=o(Array.isArray(r)?r:[]);return{deleted:s.length,rows:s}}async function v(a={},b={}){let c,{baseUrl:d,key:e}=n(b),g=b.agent_id??null,h=k(a.function_name,"function_name"),i=a.params&&"object"==typeof a.params?a.params:{},l=new URL(`${d}/rest/v1/rpc/${h}`),p=await (0,f.N)("supabase_rpc",g)(l,{method:"POST",headers:{...j(e),"Content-Type":"application/json"},body:JSON.stringify(i)});if(!p.ok){let a=await m(p);throw Error(`supabase_rpc(${h}) failed (${a.status}): ${a.message}${a.hint?` — ${a.hint}`:""}`)}let q=await p.text();if(Buffer.byteLength(q,"utf8")>51200)throw Error("supabase_rpc response too large (>51200 bytes); narrow your query");try{c=JSON.parse(q)}catch{c=q}return{result:o((Array.isArray(c),c))}}async function w(a={},b={}){let c,{baseUrl:d,key:e}=n(b),g=b.agent_id??null,h=String(a.query||"").trim();if(!h)throw Error("supabase_sql requires a query string");let i=a.params&&"object"==typeof a.params?a.params:{},k=new URL(`${d}/rest/v1/rpc/madarx_exec_sql`),l=await (0,f.N)("supabase_sql",g)(k,{method:"POST",headers:{...j(e),"Content-Type":"application/json"},body:JSON.stringify({query:h,params:i})});if(404===l.status)throw Error("madarx_exec_sql() function not found. Create it in your Supabase project with: CREATE OR REPLACE FUNCTION madarx_exec_sql(query text, params jsonb DEFAULT '{}'::jsonb) RETURNS SETOF record LANGUAGE plpgsql SECURITY DEFINER AS $$ BEGIN RETURN QUERY EXECUTE query; END; $$;");if(!l.ok){let a=await m(l);throw Error(`supabase_sql failed (${a.status}): ${a.message}${a.hint?` — ${a.hint}`:""}`)}let p=await l.text();if(Buffer.byteLength(p,"utf8")>51200)throw Error("supabase_sql response too large (>51200 bytes); add LIMIT to your query");try{c=JSON.parse(p)}catch{c=[]}let q=o(Array.isArray(c)?c:[c]);return{rows:q,row_count:q.length}}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},23799:(a,b,c)=>{"use strict";c.d(b,{m:()=>h});var d=c(31421);c(26848);var e=c(6390);function f(a){return new Promise(b=>{let c="",e=(0,d.spawn)("npm",["install","-g",a,"--prefer-online","--no-audit","--no-fund"],{stdio:["ignore","pipe","pipe"]});e.stdout.on("data",a=>{c+=a,process.stdout.write(a)}),e.stderr.on("data",a=>{c+=a,process.stderr.write(a)}),e.on("error",a=>b({ok:!1,code:-1,output:String(a.message)})),e.on("exit",a=>b({ok:0===a,code:a,output:c}))})}async function g({runner:a=f,to:b="latest",initiatedBy:d="cli"}={}){let h=(0,e.YO)(),i=`${e.rd}@${b}`,j=await a(i);try{let{appendAudit:a}=await Promise.resolve().then(c.bind(c,42382));a({type:"system.self_update",summary:`madarx update ${h} → ${b} (${j.ok?"ok":"failed"})`,status:j.ok?"ok":"failed",meta:{from:h,to:b,code:j.code,initiated_by:d}})}catch{}return{ok:j.ok,from:h,to:b,code:j.code,output:j.output}}async function h(a={}){let b=await (0,e.NS)({});if(!b.reachable)return{ok:!1,from:(0,e.YO)(),to:null,applied:!1,message:"npm registry unreachable"};if(!b.behind)return{ok:!0,from:b.current,to:b.latest,applied:!1,message:"already up to date"};let c=await g({initiatedBy:"self_update_tool"});return{ok:c.ok,from:c.from,to:b.latest,applied:c.ok,message:c.ok?`updated ${c.from} → v${b.latest}; restart required`:`update failed (exit ${c.code})`}}c(76760),c(48161),c(73024)},23998:(a,b)=>{"use strict";function c(a){return null!==a&&"object"==typeof a&&"then"in a&&"function"==typeof a.then}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isThenable",{enumerable:!0,get:function(){return c}})},24867:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Bs:()=>g});var e=c(84104),f=a([e]);function g(a,{scope_key:b,scope_value:c},d={}){let f=(0,e.Lf)(),h=!!d.default_allow,i=f.prepare("SELECT id FROM tool_allowlists WHERE tool_name = ? AND scope_key = ?").all(a,b);return 0===i.length?h?{ok:!0}:{ok:!1,missing_entry:{tool_name:a,scope_key:b,scope_value:c}}:f.prepare("SELECT id FROM tool_allowlists WHERE tool_name = ? AND scope_key = ? AND scope_value = ?").get(a,b,String(c))?{ok:!0}:{ok:!1,missing_entry:{tool_name:a,scope_key:b,scope_value:c}}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},26082:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"RouteKind",{enumerable:!0,get:function(){return c}});var c=function(a){return a.PAGES="PAGES",a.PAGES_API="PAGES_API",a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.IMAGE="IMAGE",a}({})},26200:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{ef:()=>C});var e=c(31421),f=c(73024),g=c(76760),h=c(83498),i=c(71086),j=c(79336),k=c(57647),l=c(42382),m=c(42864),n=c(11575),o=c(44246),p=c(85774),q=c(45830),r=c(40266),s=c(73005),t=c(62670),u=c(18722),v=c(34976),w=c(96615),x=c(5609),y=c(71454),z=c(17553),A=c(6390),B=a([j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z]);[j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z]=B.then?(await B)():B;let D="1"===process.env.MADARX_SEED_DEFAULT_WORKFLOWS;function C(a){globalThis.__madarxSuppressStateEmits=!0;try{try{!function(a){if(a.prepare("SELECT id FROM heartbeat_tasks WHERE type = 'tool_rate_limit_gc' AND status IN ('queued','leased','running') LIMIT 1").get())return;let b=`hbtask-rl-gc-${Date.now().toString(36)}`,c=JSON.stringify({type:"tool_rate_limit_gc"}),d=new Date().toISOString(),e=new Date(Date.now()+864e5).toISOString();a.prepare(`
|
|
371
371
|
INSERT INTO heartbeat_tasks
|
|
372
372
|
(id, agent_id, schedule_id, type, status, priority, payload, attempts, max_attempts, run_after, created_at, updated_at)
|
|
373
373
|
VALUES (?, NULL, NULL, ?, 'queued', 0, ?, 0, 99, ?, ?, ?)
|
|
@@ -986,7 +986,7 @@ ${A||' <p class="cl-sub">No notable changes recorded for this release.</p>'}
|
|
|
986
986
|
WHERE mp.id = ?
|
|
987
987
|
AND COALESCE(p.org_id, ?) = ?
|
|
988
988
|
LIMIT 1
|
|
989
|
-
`).get(h,a,h,c)||null}d()}catch(a){d(a)}})},47892:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(50872);function f(){return(0,d.jsx)(e.D,{label:"Projects"})}},48161:a=>{"use strict";a.exports=require("node:os")},48304:(a,b,c)=>{"use strict";c.a(a,async(a,b)=>{try{c(73024),c(76760);var d=c(99752),e=c(96307),f=c(19376),g=c(42864),h=c(84104);c(83498);var i=c(68571),j=c(40123),k=c(89998)
|
|
989
|
+
`).get(h,a,h,c)||null}d()}catch(a){d(a)}})},47892:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(50872);function f(){return(0,d.jsx)(e.D,{label:"Projects"})}},48161:a=>{"use strict";a.exports=require("node:os")},48304:(a,b,c)=>{"use strict";c.a(a,async(a,b)=>{try{c(73024),c(76760);var d=c(99752),e=c(96307),f=c(19376),g=c(42864),h=c(84104);c(83498);var i=c(68571),j=c(40123),k=c(89998);c(18707);var l=c(99332),m=a([d,e,f,g,h,i,j,k,l]);[d,e,f,g,h,i,j,k,l]=m.then?(await m)():m,b()}catch(a){b(a)}})},48467:(a,b,c)=>{"use strict";function d(a,b,c){let d=[],e=-1;for(;++e<a.length;){let f=a[e].resolveAll;f&&!d.includes(f)&&(b=f(b,c),d.push(f))}return b}c.d(b,{W:()=>d})},49248:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{aS:()=>k}),c(77598),c(77030);var e=c(84104),f=c(45555),g=c(73240),h=a([e,f,g]);[e,f,g]=h.then?(await h)():h,process.env.NEXT_PHASE;let n=new Map;function i(a,b){return`${a}:${b}`}function j(a,b,c){n.set(i(a,b),{verified_at:Date.now(),role:c})}async function k(a,b){if("local"===(0,f.Im)())return;let c=(process.env.MADARX_MEMBERSHIP_LIVE_CHECK??"on").toLowerCase();if("off"===c)return void console.warn("[auth] MADARX_MEMBERSHIP_LIVE_CHECK=off — membership revocation will not be detected. This mode is for dev/offline use only.");let d=a?.user_id,g=b||a?.org_id;if(!d||!g||function(a,b){let c=n.get(i(a,b));return c?Date.now()-c.verified_at>3e5?(n.delete(i(a,b)),null):c:null}(d,g))return;let h=(0,f.vR)().url,k=(0,f.fo)();if(h&&k)try{let a=`${h}/rest/v1/org_memberships?user_id=eq.${encodeURIComponent(d)}&org_id=eq.${encodeURIComponent(g)}&select=role&limit=1`,b=await fetch(a,{headers:{apikey:k,Authorization:`Bearer ${k}`,Accept:"application/json"},signal:AbortSignal.timeout(4e3)});if(!b.ok)throw Error(`Supabase returned HTTP ${b.status}`);let c=await b.json();if(!Array.isArray(c)||0===c.length)throw l(d,g),{status:403,error:"membership_revoked",sign_out_required:!0};j(d,g,c[0].role);return}catch(a){if(a.status)throw a;throw console.error("[auth] requireFreshMembership: Supabase live check failed:",a.message),m(d,g,a.message),{status:503,error:"supabase_unavailable",message:"Membership live check unavailable"}}try{let a=(0,e.Lf)().prepare(`SELECT id, role FROM org_memberships
|
|
990
990
|
WHERE user_id = ? AND org_id = ?
|
|
991
991
|
LIMIT 1`).get(d,g);if(!a)throw l(d,g),{status:403,error:"membership_revoked",sign_out_required:!0};j(d,g,a.role)}catch(a){if(a.status)throw a;throw console.error("[auth] requireFreshMembership SQLite fallback failed:",a.message),m(d,g,a.message),{status:503,error:"supabase_unavailable",message:"Membership check unavailable"}}}function l(a,b){try{(0,e.Lf)().prepare(`INSERT INTO audit_logs (id, at, type, summary, status, meta, user_id, org_id)
|
|
992
992
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run((0,e.Si)("audit"),(0,e.kF)(),"auth.membership.revoked_detected",`Membership revoked detected for user ${a} in org ${b}`,"denied",JSON.stringify({user_id:a,org_id:b}),a,b)}catch(a){console.error("[auth] Failed to write membership_revoked audit row:",a.message)}}function m(a,b,c){try{(0,e.Lf)().prepare(`INSERT INTO audit_logs (id, at, type, summary, status, meta, user_id, org_id)
|
|
@@ -997,7 +997,7 @@ Read more at https://nextjs.org/docs/messages/missing-root-layout-tags"
|
|
|
997
997
|
data-next-error-digest="${j.MISSING_ROOT_TAGS_ERROR}"
|
|
998
998
|
data-next-error-stack=""
|
|
999
999
|
></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,75145)),Promise.resolve().then(c.bind(c,4760)),Promise.resolve().then(c.bind(c,86544)),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)
|
|
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)
|
|
1001
1001
|
VALUES (?, 'agent', ?, ?, ?, ?, 'madarx', 'builtin', '1.0', ?, ?, ?, ?)
|
|
1002
1002
|
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
1003
|
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 +1014,7 @@ Read more at https://nextjs.org/docs/messages/missing-root-layout-tags"
|
|
|
1014
1014
|
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
1015
|
SELECT id, source_document_id, page, text, language, document_category
|
|
1016
1016
|
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)}})},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(`
|
|
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(`
|
|
1018
1018
|
INSERT INTO approval_requests (id, status, action_type, risk, summary, payload, requested_by, created_at, expires_at, project_id)
|
|
1019
1019
|
VALUES (?, 'pending', ?, ?, ?, ?, ?, ?, ?, ?)
|
|
1020
1020
|
`).run(k,a,b,c,JSON.stringify(d),f,m,g,n),i.prepare(`
|
|
@@ -1037,7 +1037,7 @@ Read more at https://nextjs.org/docs/messages/missing-root-layout-tags"
|
|
|
1037
1037
|
UPDATE heartbeat_tasks
|
|
1038
1038
|
SET status='queued', lease_owner=NULL, lease_expires_at=NULL, updated_at=?, error='Recovered stale lease'
|
|
1039
1039
|
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(83796),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(`
|
|
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(`
|
|
1041
1041
|
INSERT INTO audit_logs (id, at, type, summary, status, meta)
|
|
1042
1042
|
VALUES (?, ?, ?, ?, ?, ?)
|
|
1043
1043
|
`).run((0,f.Si)("audit"),(0,f.kF)(),`agent.tool.${c}`,d,c,JSON.stringify({agent_id:a,tool_name:b,...e}))}function ad(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 ae(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 ap={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 af(a,b={}){let c=ap[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 ag({tool_name:a,status:b,summary:c,meta:d={}}){(0,f.Lf)().prepare(`
|
|
@@ -1366,7 +1366,7 @@ HARD SAFETY RULES (non-negotiable — the package is rejected by the validator o
|
|
|
1366
1366
|
description=excluded.description,
|
|
1367
1367
|
manifest_json=excluded.manifest_json,
|
|
1368
1368
|
tags=excluded.tags
|
|
1369
|
-
`).run(`agent:${c.slug}`,c.slug,c.title,c.description_long,c.role,JSON.stringify({agent:c,process_engine:!0,hail:!0}),c.approval_profile,JSON.stringify([c.role,c.engine_default,"process-engine","hail"]),b)}d()}catch(a){d(a)}})},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73240:(a,b,c)=>{"use strict";c.a(a,async(a,b)=>{try{c(77598);var d=c(84104),e=c(1616),f=c(45555),g=a([d,e,f]);[d,e,f]=g.then?(await g)():g,Object.freeze(["owner","admin","member","viewer"]),Object.freeze({owner:["owner","admin","member","viewer"],admin:["member","viewer"],member:[],viewer:[]}),b()}catch(a){b(a)}})},73443:(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,{ACTION_SUFFIX:function(){return o},APP_DIR_ALIAS:function(){return I},CACHE_ONE_YEAR:function(){return A},DOT_NEXT_ALIAS:function(){return G},ESLINT_DEFAULT_DIRS:function(){return aa},GSP_NO_RETURNED_VALUE:function(){return W},GSSP_COMPONENT_MEMBER_ERROR:function(){return Z},GSSP_NO_RETURNED_VALUE:function(){return X},HTML_CONTENT_TYPE_HEADER:function(){return d},INFINITE_CACHE:function(){return B},INSTRUMENTATION_HOOK_FILENAME:function(){return E},JSON_CONTENT_TYPE_HEADER:function(){return e},MATCHED_PATH_HEADER:function(){return h},MIDDLEWARE_FILENAME:function(){return C},MIDDLEWARE_LOCATION_REGEXP:function(){return D},NEXT_BODY_SUFFIX:function(){return r},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return z},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return t},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return u},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return y},NEXT_CACHE_TAGS_HEADER:function(){return s},NEXT_CACHE_TAG_MAX_ITEMS:function(){return w},NEXT_CACHE_TAG_MAX_LENGTH:function(){return x},NEXT_DATA_SUFFIX:function(){return p},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return g},NEXT_META_SUFFIX:function(){return q},NEXT_QUERY_PARAM_PREFIX:function(){return f},NEXT_RESUME_HEADER:function(){return v},NON_STANDARD_NODE_ENV:function(){return $},PAGES_DIR_ALIAS:function(){return F},PRERENDER_REVALIDATE_HEADER:function(){return i},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return j},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return Q},ROOT_DIR_ALIAS:function(){return H},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return P},RSC_ACTION_ENCRYPTION_ALIAS:function(){return O},RSC_ACTION_PROXY_ALIAS:function(){return L},RSC_ACTION_VALIDATE_ALIAS:function(){return K},RSC_CACHE_WRAPPER_ALIAS:function(){return M},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return N},RSC_MOD_REF_PROXY_ALIAS:function(){return J},RSC_PREFETCH_SUFFIX:function(){return k},RSC_SEGMENTS_DIR_SUFFIX:function(){return l},RSC_SEGMENT_SUFFIX:function(){return m},RSC_SUFFIX:function(){return n},SERVER_PROPS_EXPORT_ERROR:function(){return V},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return S},SERVER_PROPS_SSG_CONFLICT:function(){return T},SERVER_RUNTIME:function(){return ab},SSG_FALLBACK_EXPORT_ERROR:function(){return _},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return R},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return U},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return c},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return Y},WEBPACK_LAYERS:function(){return ad},WEBPACK_RESOURCE_QUERIES:function(){return ae}});let c="text/plain",d="text/html; charset=utf-8",e="application/json; charset=utf-8",f="nxtP",g="nxtI",h="x-matched-path",i="x-prerender-revalidate",j="x-prerender-revalidate-if-generated",k=".prefetch.rsc",l=".segments",m=".segment.rsc",n=".rsc",o=".action",p=".json",q=".meta",r=".body",s="x-next-cache-tags",t="x-next-revalidated-tags",u="x-next-revalidate-tag-token",v="next-resume",w=128,x=256,y=1024,z="_N_T_",A=31536e3,B=0xfffffffe,C="middleware",D=`(?:src/)?${C}`,E="instrumentation",F="private-next-pages",G="private-dot-next",H="private-next-root-dir",I="private-next-app-dir",J="next/dist/build/webpack/loaders/next-flight-loader/module-proxy",K="private-next-rsc-action-validate",L="private-next-rsc-server-reference",M="private-next-rsc-cache-wrapper",N="private-next-rsc-track-dynamic-import",O="private-next-rsc-action-encryption",P="private-next-rsc-action-client-wrapper",Q="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",R="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",S="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",T="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",U="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",V="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",W="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",X="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",Y="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",Z="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",$='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',_="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",aa=["app","pages","components","lib","src"],ab={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},ac={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ad={...ac,GROUP:{builtinReact:[ac.reactServerComponents,ac.actionBrowser],serverOnly:[ac.reactServerComponents,ac.actionBrowser,ac.instrument,ac.middleware],neutralTarget:[ac.apiNode,ac.apiEdge],clientOnly:[ac.serverSideRendering,ac.appPagesBrowser],bundled:[ac.reactServerComponents,ac.actionBrowser,ac.serverSideRendering,ac.appPagesBrowser,ac.shared,ac.instrument,ac.middleware],appPages:[ac.reactServerComponents,ac.serverSideRendering,ac.appPagesBrowser,ac.actionBrowser]}},ae={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},74144:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(85384),e=c(97357),f=c(52318),g=c(90626),h=c(90151),i=c(52577);("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)},74467:(a,b,c)=>{"use strict";c.d(b,{v:()=>g,y:()=>f});var d=c(87301);let e={}.hasOwnProperty;function f(a){let b={},c=-1;for(;++c<a.length;)!function(a,b){let c;for(c in b){let f,g=(e.call(a,c)?a[c]:void 0)||(a[c]={}),h=b[c];if(h)for(f in h){e.call(g,f)||(g[f]=[]);let a=h[f];!function(a,b){let c=-1,e=[];for(;++c<b.length;)("after"===b[c].add?a:e).push(b[c]);(0,d.m)(a,0,0,e)}(g[f],Array.isArray(a)?a:a?[a]:[])}}}(b,a[c]);return b}function g(a){let b={},c=-1;for(;++c<a.length;)!function(a,b){let c;for(c in b){let d,f=(e.call(a,c)?a[c]:void 0)||(a[c]={}),g=b[c];if(g)for(d in g)f[d]=g[d]}}(b,a[c]);return b}},75145:(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)("40694892c01c4db4c43af24e3c5b8ff1bf82816a2c",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})]})]})})]})}},75392:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{B:()=>n,M:()=>m});var e=c(16343),f=c(684),g=a([e]);e=(g.then?(await g)():g)[0];let o={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"none","Sec-Fetch-User":"?1","Sec-Ch-Ua":'"Chromium";v="124", "Not(A:Brand";v="24"',"Upgrade-Insecure-Requests":"1"},p=new Map;function h(a){try{return new URL(a).hostname}catch{return a}}function i(a,b){let c=b.headers.get("set-cookie");if(!c)return;let d=c.split(/,(?=[^;]+=[^;]+)/).map(a=>a.trim().split(";")[0].trim()).filter(Boolean),e=p.get(a)||"",f=e?[...e.split("; "),...d].filter(Boolean).join("; "):d.join("; ");p.set(a,f)}function j(a){let b=h(a),c={...o},d=p.get(b);return d&&(c.Cookie=d),c}async function k(a,b){let c=a,d=[];for(let a=0;a<5;a++){d.push(c);let e=h(c),f=await b(c,{method:"GET",redirect:"manual",headers:j(c),signal:AbortSignal.timeout(2e4)});if(i(e,f),f.status>=300&&f.status<400){let a=f.headers.get("location");if(!a)break;c=new URL(a,c).href;continue}let g=await f.text(),k=function(a){let b=a.match(/<meta[^>]+http-equiv=["']?refresh["']?[^>]+content=["']?\d+;\s*url=([^"'\s>]+)/i);return b?b[1]:null}(g);if(k&&a<4){c=new URL(k,c).href;continue}return{res:f,html:g,finalUrl:c,redirects:d.length>1?d:void 0}}let e=h(c),f=await b(c,{method:"GET",redirect:"follow",headers:j(c),signal:AbortSignal.timeout(2e4)});i(e,f);let g=await f.text();return{res:f,html:g,finalUrl:c,redirects:d}}function l(a){let b=a.replace(/<(script|style|nav|header|footer|noscript)[\s\S]*?<\/\1>/gi,"");return b=(b=(b=(b=b.replace(/<\/?(p|div|br|h[1-6]|li|tr|td|th|section|article|main|aside|blockquote)[^>]*>/gi,"\n")).replace(/<[^>]+>/g," ")).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/ /g," ")).replace(/[ \t]+/g," ").replace(/\n{3,}/g,"\n\n").trim()}async function m({url:a,extract:b="text",selector:c,wait_for:d,max_chars:g=12e3}={}){let h,i,j,n,o,p=Math.min(Number(g)||12e3,5e4),q=(0,e.N)("browser_navigate",null);try{({res:h,html:i,finalUrl:j,redirects:n}=await k(a,q))}catch(b){return{status:"error",url:a,final_url:a,content_type:null,content:"Fetch error: "+String(b&&b.message?b.message:b).slice(0,512),length:0}}let r=h.headers.get("content-type")||"";if(d&&!i.includes(d))return{status:"incomplete",url:a,final_url:j,content_type:r,hint:"Substring not found, site may need JS rendering",length:i.length,...n?{redirects:n}:{}};let s=i;if(c){let a=function(a,b){if(!b)return null;try{let c;if(b.startsWith("#")){let a=b.slice(1).replace(/[.*+?^${}()|[\]\\]/g,"\\$&");c=RegExp("<[a-z][^>]+id=[\"']"+a+"[\"'][^>]*>([\\s\\S]*?)<\\/[a-z]+>","i")}else if(b.startsWith(".")){let a=b.slice(1).replace(/[.*+?^${}()|[\]\\]/g,"\\$&");c=RegExp("<[a-z][^>]+class=[\"'][^\"']*"+a+"[^\"']*[\"'][^>]*>([\\s\\S]*?)<\\/[a-z]+>","i")}else{let a=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");c=RegExp("<"+a+"[^>]*>([\\s\\S]*?)<\\/"+a+">","i")}let d=a.match(c);return d?d[0]:null}catch{return null}}(i,c);a&&(s=a)}try{if("text"===b)o=l(s).slice(0,p);else if("markdown"===b)o=s.replace(/<(script|style|noscript)[\s\S]*?<\/\1>/gi,"").replace(/<h1[^>]*>([\s\S]*?)<\/h1>/gi,(a,b)=>"\n# "+l(b)+"\n").replace(/<h2[^>]*>([\s\S]*?)<\/h2>/gi,(a,b)=>"\n## "+l(b)+"\n").replace(/<h3[^>]*>([\s\S]*?)<\/h3>/gi,(a,b)=>"\n### "+l(b)+"\n").replace(/<h[4-6][^>]*>([\s\S]*?)<\/h[4-6]>/gi,(a,b)=>"\n#### "+l(b)+"\n").replace(/<a[^>]+href=["']([^"']+)["'][^>]*>([\s\S]*?)<\/a>/gi,(a,b,c)=>"["+l(c)+"]("+b+")").replace(/<code[^>]*>([\s\S]*?)<\/code>/gi,(a,b)=>"`"+b+"`").replace(/<pre[^>]*>([\s\S]*?)<\/pre>/gi,(a,b)=>"\n```\n"+l(b)+"\n```\n").replace(/<li[^>]*>([\s\S]*?)<\/li>/gi,(a,b)=>"\n- "+l(b)).replace(/<\/?(p|div|br)[^>]*>/gi,"\n").replace(/<[^>]+>/g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/ /g," ").replace(/[ \t]+/g," ").replace(/\n{3,}/g,"\n\n").trim().slice(0,p);else o="json-ld"===b?function(a){let b,c=[],d=/<script[^>]+type=["']application\/ld\+json["'][^>]*>([\s\S]*?)<\/script>/gi;for(;null!==(b=d.exec(a));)try{c.push(JSON.parse(b[1]))}catch{}return c}(s):"metadata"===b?function(a){let b,c={},d=a.match(/<title[^>]*>([\s\S]*?)<\/title>/i);d&&(c.title=d[1].replace(/<[^>]+>/g,"").trim());let e=/<meta[^>]+(?:name|property)=["']([^"']+)["'][^>]+content=["']([^"']*)["'][^>]*>/gi;for(;null!==(b=e.exec(a));)c[b[1]]=b[2];let f=/<meta[^>]+content=["']([^"']*)["'][^>]+(?:name|property)=["']([^"']+)["'][^>]*>/gi;for(;null!==(b=f.exec(a));)c[b[2]]||(c[b[2]]=b[1]);return c}(s):s.slice(0,p)}catch{o=s.slice(0,p)}let t=o;return"string"==typeof o&&(t=(0,f.nc)(o)),{status:"ok",url:a,final_url:j,content_type:r,content:t,length:"string"==typeof i?i.length:0,...n?{redirects:n}:{}}}async function n(a){let[b,c]=await Promise.all([m({url:a,extract:"json-ld",max_chars:5e4}),m({url:a,extract:"metadata",max_chars:5e4})]);return{json_ld:Array.isArray(b.content)?b.content:[],metadata:"object"==typeof c.content&&null!==c.content?c.content:{}}}d()}catch(a){d(a)}})},75522:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDedupeFetch",{enumerable:!0,get:function(){return h}});let d=function(a,b){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=g(b);if(c&&c.has(a))return c.get(a);var d={__proto__:null},e=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var h=e?Object.getOwnPropertyDescriptor(a,f):null;h&&(h.get||h.set)?Object.defineProperty(d,f,h):d[f]=a[f]}return d.default=a,c&&c.set(a,d),d}(c(46204)),e=c(84125),f=c(58871);function g(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(g=function(a){return a?c:b})(a)}function h(a){let b=d.cache(a=>[]);return function(c,d){let g,h;if(d&&d.signal)return a(c,d);if("string"!=typeof c||d){let b="string"==typeof c||c instanceof URL?new Request(c,d):c;if("GET"!==b.method&&"HEAD"!==b.method||b.keepalive)return a(c,d);h=JSON.stringify([b.method,Array.from(b.headers.entries()),b.mode,b.redirect,b.credentials,b.referrer,b.referrerPolicy,b.integrity]),g=b.url}else h='["GET",[],null,"follow",null,null,null,null]',g=c;let i=b(g);for(let a=0,b=i.length;a<b;a+=1){let[b,c]=i[a];if(b===h)return c.then(()=>{let b=i[a][2];if(!b)throw Object.defineProperty(new f.InvariantError("No cached response"),"__NEXT_ERROR_CODE",{value:"E579",enumerable:!1,configurable:!0});let[c,d]=(0,e.cloneResponse)(b);return i[a][2]=d,c})}let j=a(c,d),k=[h,j,null];return i.push(k),j.then(a=>{let[b,c]=(0,e.cloneResponse)(a);return k[2]=c,b})}}},75994:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Ao:()=>i,R1:()=>j});var e=c(84104),f=c(80192),g=c(5972),h=a([e]);function i(a){var b;return a?(b=(0,e.Lf)().prepare("SELECT * FROM process_definitions WHERE slug = ? OR id = ? LIMIT 1").get(a,a))?{...b,intake_form_schema:(0,g.oi)(b.intake_form_schema_json,null),source_spec:(0,g.oi)(b.source_spec_json,null)}:null:null}function j(a,b={}){let c=(0,e.Lf)();if(!b.skipValidation){let b=(0,f.zP)(a,{knownAgentTemplates:(0,g.qY)(c)});if(!b.ok){let a=Error(`process definition: ${b.errors.join("; ")}`);throw a.code="spec_invalid",a.errors=b.errors,a}}let d=(0,e.kF)(),h=`procdef:${a.slug}`,k=a.stages.find(a=>"intake_form"===a.kind),l=k?.config?.form_schema?JSON.stringify(k.config.form_schema):null,m=b.source_spec_json?"string"==typeof b.source_spec_json?b.source_spec_json:JSON.stringify(b.source_spec_json):JSON.stringify(a),n=c.prepare("SELECT * FROM process_definitions WHERE id = ?").get(h);if(n&&"published"===n.status){let b=c.prepare("SELECT slug, kind, on_pass_stage_slug, on_fail_stage_slug FROM process_stages WHERE definition_id = ? ORDER BY position ASC").all(h);if((a.version||1)===n.version&&function(a,b){if(a.length!==b.length)return!0;for(let c=0;c<a.length;c++){let d=a[c],e=b[c];if(d.slug!==e.slug||d.kind!==e.kind||(d.on_pass_stage_slug||null)!==(e.on_pass_stage_slug||null)||(d.on_fail_stage_slug||null)!==(e.on_fail_stage_slug||null))return!0}return!1}(b,a.stages)){let b=Error(`process definition ${a.slug}: stage list changed but version not bumped (currently v${n.version})`);throw b.code="version_bump_required",b}}n?c.prepare(`
|
|
1369
|
+
`).run(`agent:${c.slug}`,c.slug,c.title,c.description_long,c.role,JSON.stringify({agent:c,process_engine:!0,hail:!0}),c.approval_profile,JSON.stringify([c.role,c.engine_default,"process-engine","hail"]),b)}d()}catch(a){d(a)}})},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73240:(a,b,c)=>{"use strict";c.a(a,async(a,b)=>{try{c(77598);var d=c(84104),e=c(1616),f=c(45555),g=a([d,e,f]);[d,e,f]=g.then?(await g)():g,Object.freeze(["owner","admin","member","viewer"]),Object.freeze({owner:["owner","admin","member","viewer"],admin:["member","viewer"],member:[],viewer:[]}),b()}catch(a){b(a)}})},73443:(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,{ACTION_SUFFIX:function(){return o},APP_DIR_ALIAS:function(){return I},CACHE_ONE_YEAR:function(){return A},DOT_NEXT_ALIAS:function(){return G},ESLINT_DEFAULT_DIRS:function(){return aa},GSP_NO_RETURNED_VALUE:function(){return W},GSSP_COMPONENT_MEMBER_ERROR:function(){return Z},GSSP_NO_RETURNED_VALUE:function(){return X},HTML_CONTENT_TYPE_HEADER:function(){return d},INFINITE_CACHE:function(){return B},INSTRUMENTATION_HOOK_FILENAME:function(){return E},JSON_CONTENT_TYPE_HEADER:function(){return e},MATCHED_PATH_HEADER:function(){return h},MIDDLEWARE_FILENAME:function(){return C},MIDDLEWARE_LOCATION_REGEXP:function(){return D},NEXT_BODY_SUFFIX:function(){return r},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return z},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return t},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return u},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return y},NEXT_CACHE_TAGS_HEADER:function(){return s},NEXT_CACHE_TAG_MAX_ITEMS:function(){return w},NEXT_CACHE_TAG_MAX_LENGTH:function(){return x},NEXT_DATA_SUFFIX:function(){return p},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return g},NEXT_META_SUFFIX:function(){return q},NEXT_QUERY_PARAM_PREFIX:function(){return f},NEXT_RESUME_HEADER:function(){return v},NON_STANDARD_NODE_ENV:function(){return $},PAGES_DIR_ALIAS:function(){return F},PRERENDER_REVALIDATE_HEADER:function(){return i},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return j},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return Q},ROOT_DIR_ALIAS:function(){return H},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return P},RSC_ACTION_ENCRYPTION_ALIAS:function(){return O},RSC_ACTION_PROXY_ALIAS:function(){return L},RSC_ACTION_VALIDATE_ALIAS:function(){return K},RSC_CACHE_WRAPPER_ALIAS:function(){return M},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return N},RSC_MOD_REF_PROXY_ALIAS:function(){return J},RSC_PREFETCH_SUFFIX:function(){return k},RSC_SEGMENTS_DIR_SUFFIX:function(){return l},RSC_SEGMENT_SUFFIX:function(){return m},RSC_SUFFIX:function(){return n},SERVER_PROPS_EXPORT_ERROR:function(){return V},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return S},SERVER_PROPS_SSG_CONFLICT:function(){return T},SERVER_RUNTIME:function(){return ab},SSG_FALLBACK_EXPORT_ERROR:function(){return _},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return R},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return U},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return c},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return Y},WEBPACK_LAYERS:function(){return ad},WEBPACK_RESOURCE_QUERIES:function(){return ae}});let c="text/plain",d="text/html; charset=utf-8",e="application/json; charset=utf-8",f="nxtP",g="nxtI",h="x-matched-path",i="x-prerender-revalidate",j="x-prerender-revalidate-if-generated",k=".prefetch.rsc",l=".segments",m=".segment.rsc",n=".rsc",o=".action",p=".json",q=".meta",r=".body",s="x-next-cache-tags",t="x-next-revalidated-tags",u="x-next-revalidate-tag-token",v="next-resume",w=128,x=256,y=1024,z="_N_T_",A=31536e3,B=0xfffffffe,C="middleware",D=`(?:src/)?${C}`,E="instrumentation",F="private-next-pages",G="private-dot-next",H="private-next-root-dir",I="private-next-app-dir",J="next/dist/build/webpack/loaders/next-flight-loader/module-proxy",K="private-next-rsc-action-validate",L="private-next-rsc-server-reference",M="private-next-rsc-cache-wrapper",N="private-next-rsc-track-dynamic-import",O="private-next-rsc-action-encryption",P="private-next-rsc-action-client-wrapper",Q="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",R="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",S="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",T="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",U="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",V="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",W="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",X="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",Y="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",Z="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",$='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',_="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",aa=["app","pages","components","lib","src"],ab={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},ac={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ad={...ac,GROUP:{builtinReact:[ac.reactServerComponents,ac.actionBrowser],serverOnly:[ac.reactServerComponents,ac.actionBrowser,ac.instrument,ac.middleware],neutralTarget:[ac.apiNode,ac.apiEdge],clientOnly:[ac.serverSideRendering,ac.appPagesBrowser],bundled:[ac.reactServerComponents,ac.actionBrowser,ac.serverSideRendering,ac.appPagesBrowser,ac.shared,ac.instrument,ac.middleware],appPages:[ac.reactServerComponents,ac.serverSideRendering,ac.appPagesBrowser,ac.actionBrowser]}},ae={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},74144:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(85384),e=c(97357),f=c(52318),g=c(90626),h=c(90151),i=c(52577);("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)},74467:(a,b,c)=>{"use strict";c.d(b,{v:()=>g,y:()=>f});var d=c(87301);let e={}.hasOwnProperty;function f(a){let b={},c=-1;for(;++c<a.length;)!function(a,b){let c;for(c in b){let f,g=(e.call(a,c)?a[c]:void 0)||(a[c]={}),h=b[c];if(h)for(f in h){e.call(g,f)||(g[f]=[]);let a=h[f];!function(a,b){let c=-1,e=[];for(;++c<b.length;)("after"===b[c].add?a:e).push(b[c]);(0,d.m)(a,0,0,e)}(g[f],Array.isArray(a)?a:a?[a]:[])}}}(b,a[c]);return b}function g(a){let b={},c=-1;for(;++c<a.length;)!function(a,b){let c;for(c in b){let d,f=(e.call(a,c)?a[c]:void 0)||(a[c]={}),g=b[c];if(g)for(d in g)f[d]=g[d]}}(b,a[c]);return b}},75392:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{B:()=>n,M:()=>m});var e=c(16343),f=c(684),g=a([e]);e=(g.then?(await g)():g)[0];let o={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"none","Sec-Fetch-User":"?1","Sec-Ch-Ua":'"Chromium";v="124", "Not(A:Brand";v="24"',"Upgrade-Insecure-Requests":"1"},p=new Map;function h(a){try{return new URL(a).hostname}catch{return a}}function i(a,b){let c=b.headers.get("set-cookie");if(!c)return;let d=c.split(/,(?=[^;]+=[^;]+)/).map(a=>a.trim().split(";")[0].trim()).filter(Boolean),e=p.get(a)||"",f=e?[...e.split("; "),...d].filter(Boolean).join("; "):d.join("; ");p.set(a,f)}function j(a){let b=h(a),c={...o},d=p.get(b);return d&&(c.Cookie=d),c}async function k(a,b){let c=a,d=[];for(let a=0;a<5;a++){d.push(c);let e=h(c),f=await b(c,{method:"GET",redirect:"manual",headers:j(c),signal:AbortSignal.timeout(2e4)});if(i(e,f),f.status>=300&&f.status<400){let a=f.headers.get("location");if(!a)break;c=new URL(a,c).href;continue}let g=await f.text(),k=function(a){let b=a.match(/<meta[^>]+http-equiv=["']?refresh["']?[^>]+content=["']?\d+;\s*url=([^"'\s>]+)/i);return b?b[1]:null}(g);if(k&&a<4){c=new URL(k,c).href;continue}return{res:f,html:g,finalUrl:c,redirects:d.length>1?d:void 0}}let e=h(c),f=await b(c,{method:"GET",redirect:"follow",headers:j(c),signal:AbortSignal.timeout(2e4)});i(e,f);let g=await f.text();return{res:f,html:g,finalUrl:c,redirects:d}}function l(a){let b=a.replace(/<(script|style|nav|header|footer|noscript)[\s\S]*?<\/\1>/gi,"");return b=(b=(b=(b=b.replace(/<\/?(p|div|br|h[1-6]|li|tr|td|th|section|article|main|aside|blockquote)[^>]*>/gi,"\n")).replace(/<[^>]+>/g," ")).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/ /g," ")).replace(/[ \t]+/g," ").replace(/\n{3,}/g,"\n\n").trim()}async function m({url:a,extract:b="text",selector:c,wait_for:d,max_chars:g=12e3}={}){let h,i,j,n,o,p=Math.min(Number(g)||12e3,5e4),q=(0,e.N)("browser_navigate",null);try{({res:h,html:i,finalUrl:j,redirects:n}=await k(a,q))}catch(b){return{status:"error",url:a,final_url:a,content_type:null,content:"Fetch error: "+String(b&&b.message?b.message:b).slice(0,512),length:0}}let r=h.headers.get("content-type")||"";if(d&&!i.includes(d))return{status:"incomplete",url:a,final_url:j,content_type:r,hint:"Substring not found, site may need JS rendering",length:i.length,...n?{redirects:n}:{}};let s=i;if(c){let a=function(a,b){if(!b)return null;try{let c;if(b.startsWith("#")){let a=b.slice(1).replace(/[.*+?^${}()|[\]\\]/g,"\\$&");c=RegExp("<[a-z][^>]+id=[\"']"+a+"[\"'][^>]*>([\\s\\S]*?)<\\/[a-z]+>","i")}else if(b.startsWith(".")){let a=b.slice(1).replace(/[.*+?^${}()|[\]\\]/g,"\\$&");c=RegExp("<[a-z][^>]+class=[\"'][^\"']*"+a+"[^\"']*[\"'][^>]*>([\\s\\S]*?)<\\/[a-z]+>","i")}else{let a=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");c=RegExp("<"+a+"[^>]*>([\\s\\S]*?)<\\/"+a+">","i")}let d=a.match(c);return d?d[0]:null}catch{return null}}(i,c);a&&(s=a)}try{if("text"===b)o=l(s).slice(0,p);else if("markdown"===b)o=s.replace(/<(script|style|noscript)[\s\S]*?<\/\1>/gi,"").replace(/<h1[^>]*>([\s\S]*?)<\/h1>/gi,(a,b)=>"\n# "+l(b)+"\n").replace(/<h2[^>]*>([\s\S]*?)<\/h2>/gi,(a,b)=>"\n## "+l(b)+"\n").replace(/<h3[^>]*>([\s\S]*?)<\/h3>/gi,(a,b)=>"\n### "+l(b)+"\n").replace(/<h[4-6][^>]*>([\s\S]*?)<\/h[4-6]>/gi,(a,b)=>"\n#### "+l(b)+"\n").replace(/<a[^>]+href=["']([^"']+)["'][^>]*>([\s\S]*?)<\/a>/gi,(a,b,c)=>"["+l(c)+"]("+b+")").replace(/<code[^>]*>([\s\S]*?)<\/code>/gi,(a,b)=>"`"+b+"`").replace(/<pre[^>]*>([\s\S]*?)<\/pre>/gi,(a,b)=>"\n```\n"+l(b)+"\n```\n").replace(/<li[^>]*>([\s\S]*?)<\/li>/gi,(a,b)=>"\n- "+l(b)).replace(/<\/?(p|div|br)[^>]*>/gi,"\n").replace(/<[^>]+>/g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/ /g," ").replace(/[ \t]+/g," ").replace(/\n{3,}/g,"\n\n").trim().slice(0,p);else o="json-ld"===b?function(a){let b,c=[],d=/<script[^>]+type=["']application\/ld\+json["'][^>]*>([\s\S]*?)<\/script>/gi;for(;null!==(b=d.exec(a));)try{c.push(JSON.parse(b[1]))}catch{}return c}(s):"metadata"===b?function(a){let b,c={},d=a.match(/<title[^>]*>([\s\S]*?)<\/title>/i);d&&(c.title=d[1].replace(/<[^>]+>/g,"").trim());let e=/<meta[^>]+(?:name|property)=["']([^"']+)["'][^>]+content=["']([^"']*)["'][^>]*>/gi;for(;null!==(b=e.exec(a));)c[b[1]]=b[2];let f=/<meta[^>]+content=["']([^"']*)["'][^>]+(?:name|property)=["']([^"']+)["'][^>]*>/gi;for(;null!==(b=f.exec(a));)c[b[2]]||(c[b[2]]=b[1]);return c}(s):s.slice(0,p)}catch{o=s.slice(0,p)}let t=o;return"string"==typeof o&&(t=(0,f.nc)(o)),{status:"ok",url:a,final_url:j,content_type:r,content:t,length:"string"==typeof i?i.length:0,...n?{redirects:n}:{}}}async function n(a){let[b,c]=await Promise.all([m({url:a,extract:"json-ld",max_chars:5e4}),m({url:a,extract:"metadata",max_chars:5e4})]);return{json_ld:Array.isArray(b.content)?b.content:[],metadata:"object"==typeof c.content&&null!==c.content?c.content:{}}}d()}catch(a){d(a)}})},75522:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDedupeFetch",{enumerable:!0,get:function(){return h}});let d=function(a,b){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=g(b);if(c&&c.has(a))return c.get(a);var d={__proto__:null},e=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var h=e?Object.getOwnPropertyDescriptor(a,f):null;h&&(h.get||h.set)?Object.defineProperty(d,f,h):d[f]=a[f]}return d.default=a,c&&c.set(a,d),d}(c(46204)),e=c(84125),f=c(58871);function g(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(g=function(a){return a?c:b})(a)}function h(a){let b=d.cache(a=>[]);return function(c,d){let g,h;if(d&&d.signal)return a(c,d);if("string"!=typeof c||d){let b="string"==typeof c||c instanceof URL?new Request(c,d):c;if("GET"!==b.method&&"HEAD"!==b.method||b.keepalive)return a(c,d);h=JSON.stringify([b.method,Array.from(b.headers.entries()),b.mode,b.redirect,b.credentials,b.referrer,b.referrerPolicy,b.integrity]),g=b.url}else h='["GET",[],null,"follow",null,null,null,null]',g=c;let i=b(g);for(let a=0,b=i.length;a<b;a+=1){let[b,c]=i[a];if(b===h)return c.then(()=>{let b=i[a][2];if(!b)throw Object.defineProperty(new f.InvariantError("No cached response"),"__NEXT_ERROR_CODE",{value:"E579",enumerable:!1,configurable:!0});let[c,d]=(0,e.cloneResponse)(b);return i[a][2]=d,c})}let j=a(c,d),k=[h,j,null];return i.push(k),j.then(a=>{let[b,c]=(0,e.cloneResponse)(a);return k[2]=c,b})}}},75994:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Ao:()=>i,R1:()=>j});var e=c(84104),f=c(80192),g=c(5972),h=a([e]);function i(a){var b;return a?(b=(0,e.Lf)().prepare("SELECT * FROM process_definitions WHERE slug = ? OR id = ? LIMIT 1").get(a,a))?{...b,intake_form_schema:(0,g.oi)(b.intake_form_schema_json,null),source_spec:(0,g.oi)(b.source_spec_json,null)}:null:null}function j(a,b={}){let c=(0,e.Lf)();if(!b.skipValidation){let b=(0,f.zP)(a,{knownAgentTemplates:(0,g.qY)(c)});if(!b.ok){let a=Error(`process definition: ${b.errors.join("; ")}`);throw a.code="spec_invalid",a.errors=b.errors,a}}let d=(0,e.kF)(),h=`procdef:${a.slug}`,k=a.stages.find(a=>"intake_form"===a.kind),l=k?.config?.form_schema?JSON.stringify(k.config.form_schema):null,m=b.source_spec_json?"string"==typeof b.source_spec_json?b.source_spec_json:JSON.stringify(b.source_spec_json):JSON.stringify(a),n=c.prepare("SELECT * FROM process_definitions WHERE id = ?").get(h);if(n&&"published"===n.status){let b=c.prepare("SELECT slug, kind, on_pass_stage_slug, on_fail_stage_slug FROM process_stages WHERE definition_id = ? ORDER BY position ASC").all(h);if((a.version||1)===n.version&&function(a,b){if(a.length!==b.length)return!0;for(let c=0;c<a.length;c++){let d=a[c],e=b[c];if(d.slug!==e.slug||d.kind!==e.kind||(d.on_pass_stage_slug||null)!==(e.on_pass_stage_slug||null)||(d.on_fail_stage_slug||null)!==(e.on_fail_stage_slug||null))return!0}return!1}(b,a.stages)){let b=Error(`process definition ${a.slug}: stage list changed but version not bumped (currently v${n.version})`);throw b.code="version_bump_required",b}}n?c.prepare(`
|
|
1370
1370
|
UPDATE process_definitions
|
|
1371
1371
|
SET name = ?, version = ?, description = ?, category = ?,
|
|
1372
1372
|
intake_form_schema_json = ?, source = ?, status = ?,
|
|
@@ -1425,7 +1425,7 @@ HARD SAFETY RULES (non-negotiable — the package is rejected by the validator o
|
|
|
1425
1425
|
INSERT OR IGNORE INTO marketplace_installations (item_id, installed)
|
|
1426
1426
|
VALUES (?, 0)
|
|
1427
1427
|
`).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}},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:()=>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)}})},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
|
|
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
|
|
1429
1429
|
SET title=?, description=?, spec_json=?, risk_level=?, input_schema_json=?, status='active', updated_at=?
|
|
1430
1430
|
WHERE slug=?`).run(g.title,g.description,l,g.risk_level,m,j,g.slug):i.prepare(`INSERT INTO composite_tools
|
|
1431
1431
|
(slug, title, description, spec_json, risk_level, input_schema_json, status,
|
|
@@ -1433,7 +1433,7 @@ HARD SAFETY RULES (non-negotiable — the package is rejected by the validator o
|
|
|
1433
1433
|
VALUES (?, ?, ?, ?, ?, ?, 'active', ?, ?, ?, ?)`).run(g.slug,g.title,g.description,l,g.risk_level,m,b.created_by_user_id||null,b.created_by_agent_id||null,j,j),{slug:g.slug,risk_level:g.risk_level,warnings:d.warnings}}function i(a){return(0,e.Lf)().prepare("SELECT * FROM composite_tools WHERE slug=? AND status='active'").get(a)||null}function j(a){let b=i(a);if(!b)return null;try{return JSON.parse(b.spec_json)}catch{return null}}function k(){let a;try{a=(0,e.Lf)().prepare("SELECT * FROM composite_tools WHERE status='active' ORDER BY slug ASC").all()}catch{return[]}return a.map(a=>{let b,{approval_required:c,approval_mode:d}=function(a){let b=f.pE.indexOf(a)>=f.pE.indexOf("medium");return{approval_required:b,approval_mode:b?"approval_required":"auto"}}(a.risk_level);try{b=JSON.parse(a.input_schema_json||"")||{type:"object",properties:{}}}catch{b={type:"object",properties:{}}}return{name:a.slug,title:a.title||a.slug,description:a.description||`Composite tool: ${a.slug}`,category:"composite",risk_level:a.risk_level,approval_required:c,approval_mode:d,required_env:[],enabled:!0,available:!0,missing_env:[],allowlist_required:!1,allowlist_scope_key:null,allowlist_default_allow:!1,input_schema:b,source:{kind:"composite",composite_slug:a.slug}}})}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},85384:(a,b)=>{"use strict";function c(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===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,{isHangingPromiseRejectionError:function(){return c},makeDevtoolsIOAwarePromise:function(){return i},makeHangingPromise:function(){return g}});let d="HANGING_PROMISE_REJECTION";class e extends Error{constructor(a,b){super(`During prerendering, ${b} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${b} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${a}".`),this.route=a,this.expression=b,this.digest=d}}let f=new WeakMap;function g(a,b,c){if(a.aborted)return Promise.reject(new e(b,c));{let d=new Promise((d,g)=>{let h=g.bind(null,new e(b,c)),i=f.get(a);if(i)i.push(h);else{let b=[h];f.set(a,b),a.addEventListener("abort",()=>{for(let a=0;a<b.length;a++)b[a]()},{once:!0})}});return d.catch(h),d}}function h(){}function i(a){return new Promise(b=>{setTimeout(()=>{b(a)},0)})}},85708:(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,{callServer:function(){return d.callServer},createServerReference:function(){return f.createServerReference},findSourceMapURL:function(){return e.findSourceMapURL}});let d=c(76779),e=c(6927),f=c(63188)},85774:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Om:()=>h,h5:()=>j,k2:()=>i});var e=c(84104),f=a([e]);function g(a){var b;return a?(b=(0,e.Lf)().prepare("SELECT * FROM dashboard_spaces WHERE id = ?").get(String(a)))?{id:String(b.id),name:String(b.name||""),position:Number(b.position)||0,is_active:1===b.is_active,created_at:b.created_at,updated_at:b.updated_at}:null:null}function h(a=[],{fallback:b="default"}={}){for(let b of Array.isArray(a)?a:[a])if(b&&g(b))return b;return b}function i(){let a=(0,e.Lf)(),b=a.prepare("SELECT COUNT(*) AS n FROM dashboard_spaces").get().n;if(0===b){let b=(0,e.kF)();a.prepare("INSERT INTO dashboard_spaces (id, name, position, is_active, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?)").run("default","main",0,1,b,b)}a.prepare("UPDATE artifacts SET space_id = 'default' WHERE space_id IS NULL").run()}function j(a,b){if(!a){let a=Error("artifact_id is required.");throw a.code="ARTIFACT_REQUIRED",a}let c=g(b);if(!c){let a=Error("Space not found.");throw a.code="SPACE_NOT_FOUND",a}let d=(0,e.Lf)(),f=d.prepare("SELECT id FROM artifacts WHERE id = ?").get(String(a));if(!f){let a=Error("Artifact not found.");throw a.code="ARTIFACT_NOT_FOUND",a}return d.prepare("UPDATE artifacts SET space_id = ?, pinned_to_space_at = datetime('now') WHERE id = ?").run(c.id,f.id),{artifact_id:f.id,space_id:c.id}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},85798:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{b3:()=>n});var e=c(16343),f=c(79533),g=a([e]);e=(g.then?(await g)():g)[0];let o="H4cFwe",p={ECONOMY:1,PREMIUM_ECONOMY:2,BUSINESS:3,FIRST:4};function h(a,b,c,d){let e=Number(a);return Number.isFinite(e)?Math.min(Math.max(Math.trunc(e),c),d):b}function i(a,b){let c=String(a||"").trim().toUpperCase();if(!/^[A-Z]{3}$/.test(c))throw Error(`"${b}" must be a 3-letter IATA code (got: ${a??""})`);return c}function j(a,b){let c=String(a||"").trim();if(!/^\d{4}-\d{2}-\d{2}$/.test(c))throw Error(`"${b}" must be ISO date YYYY-MM-DD (got: ${a??""})`);return c}function k(a={}){let b=i(a.origin,"origin"),c=i(a.destination,"destination"),d=j(a.departure_date,"departure_date"),e=a.return_date?j(a.return_date,"return_date"):null,f=h(a.adults,1,1,9),g=h(a.children,0,0,8),l=a.travel_class?String(a.travel_class).toUpperCase():"ECONOMY",m=p[l]?l:"ECONOMY",n=!0===a.non_stop||"true"===a.non_stop;return{origin:b,destination:c,departure_date:d,return_date:e,adults:f,children:g,travel_class:m,non_stop:n}}function l(a){return Array.isArray(a)&&a.length>=2&&"number"==typeof a[0]&&"string"==typeof a[1]&&/^[A-Z]{3}$/.test(a[1])}function m(a){if(!Array.isArray(a))return!1;for(let b of a)if(l(b))return!0;return!1}async function n(a={},b={}){let c=k(a),d=h(a.max_results,5,1,25),g=a.currency?String(a.currency).toUpperCase().slice(0,3):"USD",i=(0,f.O6)({...c,currency:g}),j=(0,f.Z2)(i);if(j)return{...j,source:{...j.source,cache_hit:!0,fetched_at:j.source?.fetched_at||new Date().toISOString()}};if("1"!==process.env.MADARX_GOOGLE_FLIGHTS_FORCE_LIVE)throw Error("flight_search: free Google Flights fallback is offline as of 2026-05-17 (Google rotated the backend endpoint and payload schema, and slot-0 session tokens cannot be bootstrapped from raw HTTP). To restore flight_search, add AMADEUS_CLIENT_ID and AMADEUS_CLIENT_SECRET to the secrets vault — free tier covers 500 calls/month. See specs/active/google-flights-schema-repair.md and lib/tools/adapters/google-flights.js header for the full repair plan.");let q=function(a={}){let b=k(a),c=p[b.travel_class],d=+!!b.non_stop,e=b.children>0?Array(b.children).fill(11):[],f=[[b.origin],[b.destination],b.departure_date,b.return_date,[],b.adults,e,null,null,null,null,c,null,null,d];return JSON.stringify([null,JSON.stringify(f)])}(c),r=function(a){let b=new URLSearchParams;return b.set("f.req",JSON.stringify([[[o,a,null,"generic"]]])),b.toString()}(q),s=(0,e.N)("flight_search",b.agent_id??null),t=`https://www.google.com/_/TravelFrontendUi/data/batchexecute?rpcids=${o}&source-path=%2Ftravel%2Fflights%2Fsearch&rt=c`,u=await s(t,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8","User-Agent":"Mozilla/5.0 (compatible; madarx-os/1.0; +https://madarx.io)",Accept:"*/*"},body:r});if(429===u.status)throw Error("flight_search: provider throttled by Google Flights, retry in a few minutes");if(!u.ok)throw Error(`Google Flights backend failed (HTTP ${u.status}). This usually means Google has rotated the batchexecute payload schema and the encoder in lib/tools/adapters/google-flights.js needs to be refreshed. Not a date-range or query problem. To unblock, add AMADEUS_CLIENT_ID and AMADEUS_CLIENT_SECRET to the secrets vault — flight_search will then use Amadeus instead of the free fallback.`);let v=await u.text(),w=function(a){if("string"!=typeof a)return{offers:[],warning:"response is not text"};let b=a.trim();b.startsWith(")]}'")&&(b=b.slice(4).trim());let c=function(a){let b=[],c=0;for(;c<a.length;){for(;c<a.length&&/\s/.test(a[c]);)c++;if(c<a.length&&/\d/.test(a[c])){for(;c<a.length&&/\d/.test(a[c]);)c++;continue}if("["===a[c]){let d=0,e=!1,f=!1,g=c;for(;c<a.length;c++){let h=a[c];if(e){if(f){f=!1;continue}if("\\"===h){f=!0;continue}'"'===h&&(e=!1);continue}if('"'===h){e=!0;continue}if("["===h)d++;else if("]"===h&&(d--,0===d)){c++;try{b.push(JSON.parse(a.slice(g,c)))}catch{}break}}continue}c++}return b}(b),d=null;for(let a of c)if(Array.isArray(a)){for(let b of a)if(Array.isArray(b)&&"wrb.fr"===b[0]&&b[1]===o&&"string"==typeof b[2]){try{d=JSON.parse(b[2])}catch{return{offers:[],warning:"inner RPC payload was not valid JSON"}}break}if(d)break}if(!d)return{offers:[],warning:"no RPC frame matched"};let e=[];return function a(b,c,d){if(!(c>10)&&Array.isArray(b)){if(function(a){if(!Array.isArray(a)||0===a.length)return!1;let b=a.filter(a=>Array.isArray(a));if(0===b.length)return!1;let c=0;for(let a of b)m(a)&&c++;return c>=1&&c===b.length}(b)){for(let a of b)Array.isArray(a)&&d.push(a);return}if(m(b))return void d.push(b);for(let e of b)a(e,c+1,d)}}(d,0,e),{offers:e,warning:e.length?null:"no offers parsed from response"}}(v),x=w.offers.slice(0,d).map((a,b)=>(function(a,b=0){let c,d=function a(b,c){if(c>4||!Array.isArray(b))return null;if(l(b))return{total:b[0],currency:b[1]};for(let d of b){let b=a(d,c+1);if(b)return b}return null}(a,0)||{total:null,currency:null},e=function(a){let b=[];return!function a(c,d){if(d>6||!Array.isArray(c))return;let e=[];for(let a of c)if(Array.isArray(a)){let b=function(a){let b=null,c=null,d=null,e=null,f=null,g=null,h=null;return(!function a(i,j){if(!(j>5)){if(Array.isArray(i)){for(let b of i)a(b,j+1);return}if("number"==typeof i){null==h&&i>30&&i<1500&&Number.isInteger(i)&&(h=i);return}"string"==typeof i&&(/^[A-Z]{3}$/.test(i)?b?c||i===b||(c=i):b=i:/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/.test(i)?d?e||(e=i):d=i:/^[A-Z]{2,3}\s?\d{1,4}$/.test(i)&&!g?g=i:/^[A-Z]{2,3}$/.test(i)&&!f&&(f=i))}}(a,0),b&&c)?{carrier:f,flight_number:g,departure:{iata:b,at:d,terminal:null},arrival:{iata:c,at:e,terminal:null},duration_minutes:h,aircraft:null}:null}(a);b&&e.push(b)}if(e.length>0)return void b.push({segments:e,duration_minutes:e.reduce((a,b)=>a+(b.duration_minutes||0),0)||null});for(let b of c)a(b,d+1)}(a,0),b}(a);return{id:`gf-${b}`,price:{total:d.total,currency:d.currency,base:null},seats_available:null,last_ticketing_date:null,itineraries:e.length>0?e.map(a=>({duration:null!=a.duration_minutes?`PT${a.duration_minutes}M`:null,duration_minutes:a.duration_minutes,stops:Math.max(0,(a.segments||[]).length-1),segments:a.segments||[]})):[{duration:null,duration_minutes:null,stops:0,segments:[]}],validating_airlines:[],cabin:null,booking_link:(c=null,!function a(b,d){if(!c&&!(d>6)){if("string"==typeof b){/^https?:\/\/(www\.)?google\.com\/[^"\s]*flights/i.test(b)&&(c=b);return}if(Array.isArray(b))for(let c of b)a(c,d+1)}}(a,0),c)}})(a,b)),y={query:{origin:c.origin,destination:c.destination,departure_date:c.departure_date,return_date:c.return_date,adults:c.adults,children:c.children,currency:g,travel_class:c.travel_class,non_stop:c.non_stop,max_results:d},count:x.length,offers:x,source:{provider:"google_flights_web",fetched_at:new Date().toISOString(),...w.warning?{parse_warning:w.warning}:{}}};return x.length>0&&(0,f.fb)(i,y),y}d()}catch(a){d(a)}})},85855:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{U$:()=>m,zc:()=>n});var e=c(84104),f=c(80028),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,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 j(){return{ok:!1,status:"error",error:"insufficient_role",message:"Connector authoring requires owner/admin authority in addition to tool approval."}}function k(a){return a?.code==="spec_invalid"?{ok:!1,status:"error",error:"spec_invalid",errors:a.errors||[a.message]}:null}function l({slug:a,title:b,secretRefs:c,toolSlugs:d}){if(c.length)try{let f=(0,e.Lf)(),g=`connection:${a}`,h={service_key:a,setup_kind:"api_key",benefit:`Unlocks the ${a} connector endpoints.`,credentials:c.map(b=>({name:b,label:b,type:"password",required:!0,help_text:`API credential for the ${a} connector. Stored encrypted in the secrets vault.`})),verify_endpoint:null,verify_supported:!1,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:d,engines:[],logo_glyph:a},i=JSON.stringify(["connection",a]),j=(0,e.kF)(),k=f.prepare("SELECT id FROM marketplace_items WHERE kind='connection' AND slug=?").get(a);k?f.prepare(`UPDATE marketplace_items
|
|
1434
1434
|
SET title=?, description=?, manifest_json=?, tags=? WHERE id=?`).run(b||a,`Connect ${a}`,JSON.stringify(h),i,k.id):(f.prepare(`INSERT INTO marketplace_items
|
|
1435
1435
|
(id, kind, slug, title, description, category, author, source_kind, source_url, version, manifest_json, risk_summary, tags, created_at)
|
|
1436
|
-
VALUES (?, 'connection', ?, ?, ?, 'connector', 'tool-smith', 'authored', NULL, '1.0', ?, ?, ?, ?)`).run(g,a,b||a,`Connect ${a}`,JSON.stringify(h),"Provide an API credential — no code runs.",i,j),f.prepare("INSERT OR IGNORE INTO marketplace_installations (item_id, installed) VALUES (?, 0)").run(g))}catch{}}async function m(a,b={}){if(!i(b))return j();let c=a?.manifest;if(!c||"object"!=typeof c)return{ok:!1,status:"error",error:"spec_required",message:"manifest required (object)"};if(!c.slug||"string"!=typeof c.slug)return{ok:!1,error:"slug_required",message:"manifest.slug required (string)"};if((0,f.SJ)(c.slug))return{ok:!1,status:"error",error:"slug_in_use",slug:c.slug};try{let a=(0,f.vt)(c,{created_by_user_id:h(b),created_by_agent_id:b?.agent_id||null});return l({slug:a.slug,title:c.title,secretRefs:a.secret_refs,toolSlugs:a.tool_slugs}),{ok:!0,status:"complete",slug:a.slug,endpoints:a.endpoints,tool_slugs:a.tool_slugs,secret_refs:a.secret_refs,setup_required:a.secret_refs.length>0,warnings:a.warnings||[]}}catch(b){let a=k(b);if(a)return a;throw b}}async function n(a,b={}){if(!i(b))return j();let c="string"==typeof a?.slug?a.slug.trim():"",d=a?.manifest;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:"manifest required (object)"};if(!(0,f.SJ)(c))return{ok:!1,status:"error",error:"not_found",slug:c};let e={...d,slug:c};try{let a=(0,f.vt)(e,{created_by_user_id:h(b),created_by_agent_id:b?.agent_id||null});return l({slug:a.slug,title:d.title,secretRefs:a.secret_refs,toolSlugs:a.tool_slugs}),{ok:!0,status:"complete",slug:a.slug,endpoints:a.endpoints,tool_slugs:a.tool_slugs,secret_refs:a.secret_refs,warnings:a.warnings||[]}}catch(b){let a=k(b);if(a)return a;throw b}}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},86331:(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,{atLeastOneTask:function(){return e},scheduleImmediate:function(){return d},scheduleOnNextTick:function(){return c},waitAtLeastOneReactRenderTask:function(){return f}});let c=a=>{Promise.resolve().then(()=>{process.nextTick(a)})},d=a=>{setImmediate(a)};function e(){return new Promise(a=>d(a))}function f(){return new Promise(a=>setImmediate(a))}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86544:(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)("40ee08d318c524b551415b396a489da82ae176f6cf",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,{})]})]})})]})}},86615:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$:()=>k});var e=c(84104),f=c(99752),g=c(69256),h=c(37937),i=a([e,f,g,h]);[e,f,g,h]=i.then?(await i)():i;let l=Number(process.env.MINES_EXTRACT_CHAR_BUDGET)||9e4,m=Number(process.env.MINES_EXTRACT_MAX_CHUNKS)||120,n=["porphyry","deposit","mineraliz","mineralis","chalcocite","breccia","drill","sondaje","barren","trench","trinchera","channel","grade","ley","cu ","copper","cobre","au ","gold","oro","silver","plata","resource","recurso","reserve","reserva","tonn","tonelad","target","objetivo","qa/qc","qaqc","quality control","assay","ensaye","la caridad","cananea","la colorada","geophys","magnetic","gravity","recommend","recomend","work program","programa"],o=["property","asset_stage","deposit_type","mineralization","drilling_summary","trenching_summary","geophysics","qa_qc","data_verification","work_program","resource_estimate"],p={name:"emit_mining_facts",description:"Emit the structured facts extracted from the supplied document chunks. Call exactly once.",input_schema:{type:"object",properties:{facts:{type:"array",description:"One entry per distinct fact found in the chunks. Omit any fact not supported by the text.",items:{type:"object",properties:{fact_type:{type:"string",description:"Canonical key. Use one of: property, asset_stage, deposit_type, mineralization, drilling_summary, trenching_summary, geophysics, qa_qc, data_verification, work_program, resource_estimate. For each defined exploration target use target_<slug> (e.g. target_el_choclo_nw). For each comparable/analogue deposit use comparable_<slug> (e.g. comparable_la_caridad)."},value_text:{type:"string",description:"The fact stated concisely in English (preserve Spanish technical terms in parentheses on first use). Quote figures exactly as written."},source_chunk_id:{type:"string",description:"The exact [chunk_id] of the chunk this fact came from. Must be one of the provided ids."},source_quote:{type:"string",description:"A short verbatim span (10–200 chars) copied EXACTLY from that chunk that supports the fact. Must appear in the chunk text character-for-character."},confidence:{type:"number",description:"0..1 — how directly the chunk supports the fact. 0.9+ for explicit statements, lower for inferred."}},required:["fact_type","value_text","source_chunk_id","source_quote"]}}},required:["facts"]}};function j(a){return String(a||"").toLowerCase().replace(/\s+/g," ").replace(/[‘’]/g,"'").trim()}async function k(a,b={}){let c=a?.project_id;if(!c)return{status:"error",error:"project_id_required"};let d=(0,e.Lf)(),f=d.prepare("SELECT id, name, commodity, asset_stage FROM mines_projects WHERE id = ?").get(c);if(!f)return{status:"error",error:"project_not_found"};let i=function(a,b,c){if(c)return a.prepare("SELECT id, file_name, page_count FROM mines_source_documents WHERE id = ? AND project_id = ?").get(c,b);let d=a.prepare(`
|
|
1436
|
+
VALUES (?, 'connection', ?, ?, ?, 'connector', 'tool-smith', 'authored', NULL, '1.0', ?, ?, ?, ?)`).run(g,a,b||a,`Connect ${a}`,JSON.stringify(h),"Provide an API credential — no code runs.",i,j),f.prepare("INSERT OR IGNORE INTO marketplace_installations (item_id, installed) VALUES (?, 0)").run(g))}catch{}}async function m(a,b={}){if(!i(b))return j();let c=a?.manifest;if(!c||"object"!=typeof c)return{ok:!1,status:"error",error:"spec_required",message:"manifest required (object)"};if(!c.slug||"string"!=typeof c.slug)return{ok:!1,error:"slug_required",message:"manifest.slug required (string)"};if((0,f.SJ)(c.slug))return{ok:!1,status:"error",error:"slug_in_use",slug:c.slug};try{let a=(0,f.vt)(c,{created_by_user_id:h(b),created_by_agent_id:b?.agent_id||null});return l({slug:a.slug,title:c.title,secretRefs:a.secret_refs,toolSlugs:a.tool_slugs}),{ok:!0,status:"complete",slug:a.slug,endpoints:a.endpoints,tool_slugs:a.tool_slugs,secret_refs:a.secret_refs,setup_required:a.secret_refs.length>0,warnings:a.warnings||[]}}catch(b){let a=k(b);if(a)return a;throw b}}async function n(a,b={}){if(!i(b))return j();let c="string"==typeof a?.slug?a.slug.trim():"",d=a?.manifest;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:"manifest required (object)"};if(!(0,f.SJ)(c))return{ok:!1,status:"error",error:"not_found",slug:c};let e={...d,slug:c};try{let a=(0,f.vt)(e,{created_by_user_id:h(b),created_by_agent_id:b?.agent_id||null});return l({slug:a.slug,title:d.title,secretRefs:a.secret_refs,toolSlugs:a.tool_slugs}),{ok:!0,status:"complete",slug:a.slug,endpoints:a.endpoints,tool_slugs:a.tool_slugs,secret_refs:a.secret_refs,warnings:a.warnings||[]}}catch(b){let a=k(b);if(a)return a;throw b}}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},86331:(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,{atLeastOneTask:function(){return e},scheduleImmediate:function(){return d},scheduleOnNextTick:function(){return c},waitAtLeastOneReactRenderTask:function(){return f}});let c=a=>{Promise.resolve().then(()=>{process.nextTick(a)})},d=a=>{setImmediate(a)};function e(){return new Promise(a=>d(a))}function f(){return new Promise(a=>setImmediate(a))}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86615:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$:()=>k});var e=c(84104),f=c(99752),g=c(69256),h=c(37937),i=a([e,f,g,h]);[e,f,g,h]=i.then?(await i)():i;let l=Number(process.env.MINES_EXTRACT_CHAR_BUDGET)||9e4,m=Number(process.env.MINES_EXTRACT_MAX_CHUNKS)||120,n=["porphyry","deposit","mineraliz","mineralis","chalcocite","breccia","drill","sondaje","barren","trench","trinchera","channel","grade","ley","cu ","copper","cobre","au ","gold","oro","silver","plata","resource","recurso","reserve","reserva","tonn","tonelad","target","objetivo","qa/qc","qaqc","quality control","assay","ensaye","la caridad","cananea","la colorada","geophys","magnetic","gravity","recommend","recomend","work program","programa"],o=["property","asset_stage","deposit_type","mineralization","drilling_summary","trenching_summary","geophysics","qa_qc","data_verification","work_program","resource_estimate"],p={name:"emit_mining_facts",description:"Emit the structured facts extracted from the supplied document chunks. Call exactly once.",input_schema:{type:"object",properties:{facts:{type:"array",description:"One entry per distinct fact found in the chunks. Omit any fact not supported by the text.",items:{type:"object",properties:{fact_type:{type:"string",description:"Canonical key. Use one of: property, asset_stage, deposit_type, mineralization, drilling_summary, trenching_summary, geophysics, qa_qc, data_verification, work_program, resource_estimate. For each defined exploration target use target_<slug> (e.g. target_el_choclo_nw). For each comparable/analogue deposit use comparable_<slug> (e.g. comparable_la_caridad)."},value_text:{type:"string",description:"The fact stated concisely in English (preserve Spanish technical terms in parentheses on first use). Quote figures exactly as written."},source_chunk_id:{type:"string",description:"The exact [chunk_id] of the chunk this fact came from. Must be one of the provided ids."},source_quote:{type:"string",description:"A short verbatim span (10–200 chars) copied EXACTLY from that chunk that supports the fact. Must appear in the chunk text character-for-character."},confidence:{type:"number",description:"0..1 — how directly the chunk supports the fact. 0.9+ for explicit statements, lower for inferred."}},required:["fact_type","value_text","source_chunk_id","source_quote"]}}},required:["facts"]}};function j(a){return String(a||"").toLowerCase().replace(/\s+/g," ").replace(/[‘’]/g,"'").trim()}async function k(a,b={}){let c=a?.project_id;if(!c)return{status:"error",error:"project_id_required"};let d=(0,e.Lf)(),f=d.prepare("SELECT id, name, commodity, asset_stage FROM mines_projects WHERE id = ?").get(c);if(!f)return{status:"error",error:"project_not_found"};let i=function(a,b,c){if(c)return a.prepare("SELECT id, file_name, page_count FROM mines_source_documents WHERE id = ? AND project_id = ?").get(c,b);let d=a.prepare(`
|
|
1437
1437
|
SELECT d.id, d.file_name, d.page_count, COUNT(c.id) AS chunk_count
|
|
1438
1438
|
FROM mines_source_documents d
|
|
1439
1439
|
JOIN mines_document_chunks c ON c.source_document_id = d.id
|
|
@@ -3160,7 +3160,7 @@ SELECT
|
|
|
3160
3160
|
ELSE CAST((julianday(decided_at) - julianday(created_at)) * 86400 AS INTEGER)
|
|
3161
3161
|
END AS latency_seconds
|
|
3162
3162
|
FROM approval_requests;
|
|
3163
|
-
`},
|
|
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:()=>m,Iu:()=>s,M2:()=>r,Qp:()=>n,bD:()=>q});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=a([j,k]);[j,k]=l.then?(await l)():l,e.resolve(e.dirname((0,i.fileURLToPath)("file:///home/runner/work/madarx-os/madarx-os/lib/agent-engines.js")),"..");let t=process.env.OLLAMA_BASE_URL||"http://127.0.0.1:11434",u=[{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 m(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 n(a){let b=m(a);return u.find(a=>a.id===b)?.default_model||""}let v=new Map;function o(a){return v.get(a)||function(a){if(v.has(a))return v.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),v.set(a,b),b}catch{}return null}(a)||a}function p(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 q({model:a,systemPrompt:b,userMessage:c,maxTokens:d=2048}){if(process.env.MADARX_MOCK_OLLAMA_RESPONSE)return process.env.MADARX_MOCK_OLLAMA_RESPONSE;let e=await fetch(`${t}/api/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:a||process.env.OLLAMA_MODEL,stream:!1,options:{num_predict:d},messages:[{role:"system",content:b},{role:"user",content:c}]})});if(!e.ok)throw Error(`Ollama chat failed: HTTP ${e.status}`);let f=await e.json(),g=f.message?.content||f.response||"";if(!g.trim())throw Error("Ollama returned no text");return g.trim()}async function r({model:a,systemPrompt:b,userMessage:c,maxTurns:d,allowedTools:e=[],timeoutMs:f,onChunk:g,onAssistantText:h,onToolStart:i,onToolResult:j,cwd:l,addDirs:m=[],agentId:n,agentName:q}={}){if(process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE)return process.env.MADARX_MOCK_CLAUDE_CODE_RESPONSE;let s=`${b}
|
|
3164
3164
|
|
|
3165
3165
|
${c}`,t=Number(d||process.env.CLAUDE_CODE_MAX_TURNS||30),u=["-p",s,"--max-turns",String(t),"--output-format","stream-json","--verbose","--permission-mode","bypassPermissions","--setting-sources","project,local,user"];for(let a of m)a&&u.push("--add-dir",a);e.length&&u.push("--allowedTools",e.join(",")),a&&"claude-code"!==a&&u.splice(2,0,"--model",a);let v=[],w=[],x="",y="",z=function({agentId:a,agentName:b,onText:c,onToolStart:d,onToolResult:e,onResult:f}){let g="",h=new Map;return function(i){let j;for(g+=i;(j=g.indexOf("\n"))>=0;){let i,l=g.slice(0,j).trim();if(g=g.slice(j+1),!l||"{"!==l[0])continue;try{i=JSON.parse(l)}catch{continue}if(!i||"object"!=typeof i)continue;if("result"===i.type){"string"==typeof i.result&&i.result.trim()&&f?.(i.result.trim());continue}let m=i.message?.content;if(Array.isArray(m)){if("assistant"===i.type){let e=m.some(a=>a?.type==="tool_use"),f=m.filter(a=>a?.type==="text"&&"string"==typeof a.text).map(a=>a.text).join("");for(let g of(f&&c?.(f,{isFinal:!e}),m))g?.type==="tool_use"&&(g.id&&h.set(g.id,g.name||"tool"),d?.({id:g.id,name:g.name||"tool",input:g.input}),a&&(0,k.AC)({type:"agent_tool_start",agent_id:a,agent_name:b||a,tool:g.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""}}(g.name,g.input)}))}else if("user"===i.type){for(let c of m)if(c?.type==="tool_result"){let d=h.get(c.tool_use_id)||"tool";e?.({tool_use_id:c.tool_use_id,name:d,isError:!!c.is_error}),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}),h.delete(c.tool_use_id)}}}}}}({agentId:n,agentName:q,onText:(a,b={})=>{v.push(a),b.isFinal?w.push(a):x=a,h?.(v.join("").trim())},onResult:a=>{y=a},onToolStart:i,onToolResult:j});await p(o("claude"),u,{cwd:l,timeoutMs:f??Number(process.env.CLAUDE_CODE_TICK_TIMEOUT_MS||6e5),closeStdin:!0,env: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}(),onChunk:a=>{z(a),g?.(a)}});let A=w.join("").trim()||x.trim()||v.join("").trim()||y.trim();if(!A)throw Error("Claude Code returned no assistant text");return A}async function s({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
3166
|
|
|
@@ -3203,4 +3203,4 @@ ${b}`:b;return p(o("codex"),["exec",d],{timeoutMs:Number(process.env.CODEX_TICK_
|
|
|
3203
3203
|
`).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
3204
|
INSERT INTO task_checklist_items (id, task_id, label, done, position, created_at, done_at)
|
|
3205
3205
|
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,
|
|
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,9195,1699,3230,6059],()=>b(b.s=17483));module.exports=c})();
|