madarx 2.18.0 → 2.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +695 -674
- package/.next/standalone/.next/app-path-routes-manifest.json +80 -77
- package/.next/standalone/.next/build-manifest.json +5 -5
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/routes-manifest.json +6 -0
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/activity/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/page.js +2 -2
- 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_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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/activity/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/audit-export/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/share-links/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-memory/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/log/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/active-run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/chain/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/memory/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/reports/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/skills/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/create/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/ops/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/acl/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/protect/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/raw/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/upload/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/audit/list/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/audit/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/config/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/config/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/join-bootstrap/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/brand/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/brand/share/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/sessions/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/cloud/schema/route.js +1 -0
- package/.next/standalone/.next/server/app/api/cloud/schema/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/cloud/schema/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/config/env/route_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/attach/route.js +4 -0
- package/.next/standalone/.next/server/app/api/orchestrator/stream/attach/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/orchestrator/stream/attach/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/orchestrator/stream/route.js +13 -13
- package/.next/standalone/.next/server/app/api/orchestrator/stream/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orchestrator/upload/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/org/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/invites/[inviteId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/invites/route.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/invites/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/invites/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/role/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/members/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/invites/pending/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/join/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/join-complete/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/printing-press/clis/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/printing-press/install/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/printing-press/security-mode/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/privacy/config/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/privacy/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/share-link/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/override/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/retry/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/submit/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/settings/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/validate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/start-and-route/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[slug]/library/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[slug]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/approve-claude-run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/claude-code-dry-run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/competitor-report/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/engine-ping/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/marketing-plan/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/schedules/upsert/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/secrets/[name]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/secrets/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/settings/trust-mode/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/otp/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/space/[token]/otp/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/space/[token]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/space/[token]/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/[id]/acl/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/publish/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/unpublish/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/state/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/system/update/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/active-run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/attachments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/[itemId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/checkout/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/children/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/comments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/live-runs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/release/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tool-allowlists/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tool-allowlists/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tool-egress/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/[name]/approve/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/[name]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/transcripts/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/providers/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/context/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/session/route_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_client-reference-manifest.js +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 +2 -2
- package/.next/standalone/.next/server/app/audit/live/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/brand/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/brand.html +2 -2
- package/.next/standalone/.next/server/app/brand.rsc +2 -2
- package/.next/standalone/.next/server/app/disk/page_client-reference-manifest.js +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 +2 -2
- 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_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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/setup/page.js +2 -2
- package/.next/standalone/.next/server/app/hail/[id]/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hail/page.js +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_client-reference-manifest.js +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 +3 -3
- 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 +2 -2
- 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_client-reference-manifest.js +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_client-reference-manifest.js +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 +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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/team/page.js +2 -0
- package/.next/standalone/.next/server/app/onboarding/team/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/onboarding/team/page_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/onboarding.html +2 -2
- package/.next/standalone/.next/server/app/onboarding.rsc +2 -2
- package/.next/standalone/.next/server/app/org/page.js +1 -1
- package/.next/standalone/.next/server/app/org/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/org/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/page.js +5 -5
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/new.html +2 -2
- package/.next/standalone/.next/server/app/projects/new.rsc +3 -3
- package/.next/standalone/.next/server/app/projects/page.js +19 -14
- 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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_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 +2 -2
- package/.next/standalone/.next/server/app/settings/connectors/page_client-reference-manifest.js +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_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 +2 -2
- 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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/runtime/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/team/page.js +2 -2
- package/.next/standalone/.next/server/app/settings/team/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/team/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/tools/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +2 -2
- package/.next/standalone/.next/server/app/settings.rsc +2 -2
- 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_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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/tasks/page.js +2 -2
- package/.next/standalone/.next/server/app/tasks/page_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/tools/page_client-reference-manifest.js +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 +2 -2
- 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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workflows/share/[caseId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +80 -77
- package/.next/standalone/.next/server/chunks/1699.js +13 -8
- package/.next/standalone/.next/server/chunks/2402.js +1 -0
- package/.next/standalone/.next/server/chunks/396.js +1 -0
- package/.next/standalone/.next/server/chunks/5030.js +1 -0
- package/.next/standalone/.next/server/chunks/5858.js +2 -2
- package/.next/standalone/.next/server/chunks/6910.js +2 -2
- package/.next/standalone/.next/server/chunks/8421.js +1 -0
- package/.next/standalone/.next/server/functions-config-manifest.json +59 -56
- package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/standalone/.next/server/middleware.js +3 -3
- package/.next/standalone/.next/server/pages/404.html +2 -2
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/3168.502cd8077da5f8b6.js +1 -0
- package/.next/standalone/.next/static/chunks/8217.739e4ce0447348b9.js +1 -0
- package/.next/standalone/.next/static/chunks/app/activity/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/agents/[id]/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/agents/[id]/page-721c43e75cb2dd59.js +1 -0
- package/.next/standalone/.next/static/chunks/app/agents/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/agents/page-b1bcb39a46a254aa.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/activity/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/audit-export/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/share-links/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-memory/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/events/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/log/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/active-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/chain/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/memory/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/reports/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/skills/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/create/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/ops/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/approvals/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/approvals/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/acl/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/protect/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/raw/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/artifacts/upload/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/audit/list/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/audit/search/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/config/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/join-bootstrap/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/session/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/brand/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/brand/share/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/chat/sessions/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/chat/sessions/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/cloud/schema/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/config/env/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/config/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/connections/[service]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/connections/[service]/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/connections/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/cron/tick/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/import/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/blob/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/disk/files/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/disk/folders/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/events/since/[cursor]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/events/stream/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/fs/create-folder/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/fs/pick-folder/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/validate/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/heartbeat/tick/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/heartbeat/worker/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/help/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/integrations/google/callback/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/integrations/google/oauth/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/marketplace/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/marketplace/open-design/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/marketplace/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/import-roots/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/portfolio/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/import/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/publish/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/missions/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/models/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/onboarding/blueprint/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/onboarding/launch/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/command/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/stream/attach/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/stream/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/upload/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/org/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/invites/pending/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/join/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/join-complete/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/orgs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/printing-press/clis/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/printing-press/install/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/printing-press/security-mode/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/privacy/config/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/privacy/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/share-link/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/validate/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/processes/start-and-route/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/library/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/runs/approve-claude-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/runs/claude-code-dry-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/runs/competitor-report/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/runs/engine-ping/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/runs/marketing-plan/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/schedules/upsert/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/secrets/[name]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/secrets/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/settings/trust-mode/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/otp/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/otp/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/publish/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/status/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/unpublish/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/state/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/system/update/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/active-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/attachments/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checkout/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/children/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/comments/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/events/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/live-runs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/release/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tool-egress/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tools/[name]/approve/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tools/[name]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tools/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/transcripts/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/providers/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/context/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/session/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tool-result/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tools/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/voice/tts/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/allowlist/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/disconnect/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/messages/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/qr/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/send/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/status/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/approvals/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/architecture/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/audit/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/brand/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/disk/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/federated-ai/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/help/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/marketplace/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/missions/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/onboarding/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/onboarding/team/page-9adf3bc729fd1762.js +1 -0
- package/.next/standalone/.next/static/chunks/app/org/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/page-8b485e954b4da5be.js +1 -0
- package/.next/standalone/.next/static/chunks/app/projects/[slug]/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/projects/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/projects/page-8b61f1179feb9d4b.js +1 -0
- package/.next/standalone/.next/static/chunks/app/reports/[file]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/reports/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/runtime/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/schedules/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/settings/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/settings/page-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/settings/team/page-c66a988a66a77b5e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/tasks/[id]/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/tasks/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/tools/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/tools/page-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/whatsapp/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/workflows/share/[caseId]/page-31bb6a3d587a09ca.js +1 -0
- package/.next/standalone/.next/static/chunks/webpack-a7e11ef0747e2718.js +1 -0
- package/.next/standalone/.next/static/css/577b1c48f4c7ee58.css +1 -0
- package/.next/standalone/.next/static/sO4ApzzsDEnqk70DEBOS6/_buildManifest.js +1 -0
- package/.next/standalone/CHANGELOG.md +11 -0
- package/.next/standalone/package.json +3 -1
- package/.next/static/chunks/3168.502cd8077da5f8b6.js +1 -0
- package/.next/static/chunks/8217.739e4ce0447348b9.js +1 -0
- package/.next/static/chunks/app/activity/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/agents/[id]/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/agents/[id]/page-721c43e75cb2dd59.js +1 -0
- package/.next/static/chunks/app/agents/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/agents/page-b1bcb39a46a254aa.js +1 -0
- package/.next/static/chunks/app/api/activity/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/admin/audit-export/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/admin/share-links/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agent-memory/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agent-runs/[id]/events/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agent-runs/[id]/log/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agent-runs/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agent-runs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/active-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/chain/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/memory/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/reports/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/[id]/skills/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/create/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/agents/ops/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/approvals/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/approvals/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/acl/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/protect/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/raw/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/artifacts/[id]/share-link/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/artifacts/upload/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/audit/list/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/audit/search/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/auth/callback/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/auth/config/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/auth/join-bootstrap/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/auth/session/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/brand/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/brand/share/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/chat/sessions/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/chat/sessions/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/cloud/schema/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/config/env/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/config/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/connections/[service]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/connections/[service]/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/connections/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/cron/tick/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/import/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/dashboard/spaces/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/disk/files/[id]/blob/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/disk/files/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/disk/files/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/disk/folders/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/events/since/[cursor]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/events/stream/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/fs/create-folder/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/fs/pick-folder/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/engagements/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/interviews/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hail/setup-packages/validate/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/heartbeat/tick/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/heartbeat/worker/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/help/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hermes/jobs/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/hermes/jobs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/integrations/google/callback/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/integrations/google/oauth/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/marketplace/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/marketplace/open-design/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/marketplace/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/mines/import-roots/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/mines/portfolio/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/mines/projects/[id]/import/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/mines/projects/[id]/publish/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/mines/projects/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/missions/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/models/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/onboarding/blueprint/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/onboarding/launch/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orchestrator/command/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orchestrator/stream/attach/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orchestrator/stream/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orchestrator/upload/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/org/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/invites/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/members/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/invites/pending/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/join/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/join-complete/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/orgs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/printing-press/clis/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/printing-press/install/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/printing-press/security-mode/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/privacy/config/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/privacy/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/[id]/share-link/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/definitions/[slug]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/definitions/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/definitions/validate/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/processes/start-and-route/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/projects/[slug]/library/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/projects/[slug]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/projects/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/runs/approve-claude-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/runs/claude-code-dry-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/runs/competitor-report/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/runs/engine-ping/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/runs/marketing-plan/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/schedules/upsert/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/secrets/[name]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/secrets/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/settings/trust-mode/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/share/[token]/otp/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/share/[token]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/share/[token]/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/share/space/[token]/otp/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/share/space/[token]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/share/space/[token]/verify/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/shared/spaces/publish/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/shared/spaces/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/shared/spaces/status/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/shared/spaces/unpublish/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/state/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/system/update/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/active-run/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/attachments/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/checklist/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/checkout/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/children/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/comments/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/events/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/live-runs/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/release/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tasks/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tool-allowlists/[id]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tool-allowlists/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tool-egress/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tools/[name]/approve/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tools/[name]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/tools/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/transcripts/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/voice/providers/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/voice/realtime/context/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/voice/realtime/session/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/voice/realtime/tool-result/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/voice/realtime/tools/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/voice/tts/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/allowlist/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/disconnect/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/messages/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/qr/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/send/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/api/whatsapp/status/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/approvals/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/architecture/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/audit/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/brand/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/disk/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/federated-ai/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/help/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/marketplace/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/missions/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/onboarding/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/onboarding/team/page-9adf3bc729fd1762.js +1 -0
- package/.next/static/chunks/app/org/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/page-8b485e954b4da5be.js +1 -0
- package/.next/static/chunks/app/projects/[slug]/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/projects/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/projects/page-8b61f1179feb9d4b.js +1 -0
- package/.next/static/chunks/app/reports/[file]/route-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/reports/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/runtime/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/schedules/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/settings/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/settings/page-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/settings/team/page-c66a988a66a77b5e.js +1 -0
- package/.next/static/chunks/app/tasks/[id]/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/tasks/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/tools/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/tools/page-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/whatsapp/loading-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/app/workflows/share/[caseId]/page-31bb6a3d587a09ca.js +1 -0
- package/.next/static/chunks/webpack-a7e11ef0747e2718.js +1 -0
- package/.next/static/css/577b1c48f4c7ee58.css +1 -0
- package/.next/static/sO4ApzzsDEnqk70DEBOS6/_buildManifest.js +1 -0
- package/CHANGELOG.md +11 -0
- package/app/api/auth/config/route.js +8 -1
- package/app/api/cloud/schema/route.js +109 -0
- package/app/api/orchestrator/stream/attach/route.js +101 -0
- package/app/api/orchestrator/stream/route.js +28 -0
- package/app/api/orgs/[id]/invites/route.js +7 -1
- package/app/components/dashboard/apply-stream-event.js +136 -0
- package/app/components/dashboard/artifact-board.jsx +7 -3
- package/app/components/dashboard/artifact-order.js +22 -0
- package/app/components/dashboard/chat-panel.jsx +21 -1
- package/app/components/dashboard/chat-session-view.js +26 -0
- package/app/components/dashboard/use-artifact-layout.js +48 -14
- package/app/components/dashboard/use-chat-continuity.js +113 -0
- package/app/components/dashboard/use-dashboard-sessions.js +24 -17
- package/app/components/dashboard/use-dashboard-state.js +72 -1
- package/app/components/dashboard/use-main-agent-stream.js +2 -0
- package/app/components/dashboard/use-stream-command.js +103 -108
- package/app/globals.css +91 -2
- package/app/onboarding/team/page.js +82 -0
- package/app/onboarding/team/team-setup-client.jsx +557 -0
- package/app/settings/account/auth-config-form.jsx +14 -0
- package/app/settings/team/page.js +51 -1
- package/app/settings/team/team-invites.jsx +3 -1
- package/lib/auth-config.js +18 -4
- package/lib/auth-env-fastpath.js +34 -0
- package/lib/cli/dispatch.js +2 -2
- package/lib/cli/doctor-deep.js +170 -0
- package/lib/cli/doctor.js +56 -5
- package/lib/cloud-schema.generated.js +18 -0
- package/lib/cloud-schema.js +144 -0
- package/lib/db.js +4 -0
- package/lib/delegation-contracts.js +1 -0
- package/lib/orchestrator-broadcast.js +126 -0
- package/lib/public-url.js +89 -0
- package/lib/runtime.js +38 -0
- package/lib/schema.js +6 -1
- package/lib/share-url.js +9 -17
- package/middleware.js +6 -9
- package/package.json +3 -1
- package/scripts/build-cloud-schema.mjs +118 -0
- package/scripts/inspect-cloud-orgs.mjs +30 -0
- package/.next/standalone/.next/server/chunks/3379.js +0 -1
- package/.next/standalone/.next/server/chunks/802.js +0 -1
- package/.next/standalone/.next/static/-FRz43s1H_LZFhx24FvnL/_buildManifest.js +0 -1
- package/.next/standalone/.next/static/chunks/3168.ed91d2d25b4aca3f.js +0 -1
- package/.next/standalone/.next/static/chunks/8217.9459315d921fdd61.js +0 -1
- package/.next/standalone/.next/static/chunks/app/activity/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/agents/[id]/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/agents/[id]/page-fd263522f6c29653.js +0 -1
- package/.next/standalone/.next/static/chunks/app/agents/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/agents/page-5860869c305cc54b.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/activity/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/audit-export/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/share-links/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-memory/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/events/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/log/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-runs/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/active-run/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/chain/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/memory/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/reports/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/run/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[id]/skills/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/create/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/ops/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/approvals/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/approvals/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/acl/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/protect/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/raw/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/[id]/share-link/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/artifacts/upload/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/audit/list/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/audit/search/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/config/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/join-bootstrap/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/session/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/brand/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/brand/share/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/chat/sessions/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/chat/sessions/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/config/env/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/config/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/connections/[service]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/connections/[service]/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/connections/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/cron/tick/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/import/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/dashboard/spaces/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/blob/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/disk/files/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/disk/folders/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/events/since/[cursor]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/events/stream/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/fs/create-folder/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/fs/pick-folder/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/engagements/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/interviews/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hail/setup-packages/validate/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/heartbeat/tick/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/heartbeat/worker/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/help/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/hermes/jobs/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/integrations/google/callback/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/integrations/google/oauth/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/marketplace/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/marketplace/open-design/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/marketplace/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/import-roots/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/portfolio/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/import/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/[id]/publish/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mines/projects/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/missions/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/models/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/onboarding/blueprint/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/onboarding/launch/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/command/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/stream/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orchestrator/upload/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/org/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/invites/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/members/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/invites/pending/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/join/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/join-complete/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/orgs/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/printing-press/clis/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/printing-press/install/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/printing-press/security-mode/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/privacy/config/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/privacy/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/share-link/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/definitions/validate/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/processes/start-and-route/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/library/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[slug]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/runs/approve-claude-run/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/runs/claude-code-dry-run/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/runs/competitor-report/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/runs/engine-ping/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/runs/marketing-plan/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/schedules/upsert/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/secrets/[name]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/secrets/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/settings/trust-mode/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/otp/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/[token]/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/otp/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/share/space/[token]/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/publish/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/status/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/shared/spaces/unpublish/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/state/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/system/update/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/active-run/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/attachments/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checklist/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/checkout/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/children/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/comments/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/events/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/live-runs/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/release/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tool-allowlists/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tool-egress/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tools/[name]/approve/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tools/[name]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tools/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/transcripts/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/providers/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/context/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/session/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tool-result/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/realtime/tools/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/voice/tts/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/allowlist/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/disconnect/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/messages/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/qr/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/send/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/whatsapp/status/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/approvals/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/architecture/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/audit/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/brand/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/disk/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/federated-ai/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/help/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/marketplace/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/missions/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/onboarding/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/org/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/page-9a013fdb2983cbf4.js +0 -1
- package/.next/standalone/.next/static/chunks/app/projects/[slug]/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/projects/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/projects/page-3d7140091264933a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/reports/[file]/route-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/reports/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/runtime/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/schedules/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/settings/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/settings/page-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/settings/team/page-9a2e675124de6aac.js +0 -1
- package/.next/standalone/.next/static/chunks/app/tasks/[id]/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/tasks/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/tools/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/tools/page-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/whatsapp/loading-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/app/workflows/share/[caseId]/page-17ae3509caaa1354.js +0 -1
- package/.next/standalone/.next/static/chunks/webpack-e4f2cfb4ad98f256.js +0 -1
- package/.next/standalone/.next/static/css/31fb2fdadf8f1c6b.css +0 -1
- package/.next/static/-FRz43s1H_LZFhx24FvnL/_buildManifest.js +0 -1
- package/.next/static/chunks/3168.ed91d2d25b4aca3f.js +0 -1
- package/.next/static/chunks/8217.9459315d921fdd61.js +0 -1
- package/.next/static/chunks/app/activity/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/agents/[id]/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/agents/[id]/page-fd263522f6c29653.js +0 -1
- package/.next/static/chunks/app/agents/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/agents/page-5860869c305cc54b.js +0 -1
- package/.next/static/chunks/app/api/activity/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/admin/audit-export/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/admin/share-links/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agent-memory/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agent-runs/[id]/cancel/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agent-runs/[id]/events/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agent-runs/[id]/log/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agent-runs/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agent-runs/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/active-run/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/chain/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/memory/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/reports/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/run/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/[id]/skills/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/create/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/agents/ops/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/approvals/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/approvals/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/acl/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/protect/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/raw/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/share-link/[linkId]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/artifacts/[id]/share-link/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/artifacts/upload/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/audit/list/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/audit/search/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/auth/callback/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/auth/config/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/auth/join-bootstrap/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/auth/session/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/brand/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/brand/share/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/chat/sessions/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/chat/sessions/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/config/env/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/config/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/connections/[service]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/connections/[service]/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/connections/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/cron/tick/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/move/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/[linkId]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/[id]/share-link/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/import/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/dashboard/spaces/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/disk/files/[id]/blob/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/disk/files/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/disk/files/[id]/transcribe/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/disk/files/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/disk/folders/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/events/since/[cursor]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/events/stream/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/fs/create-folder/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/fs/pick-folder/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/blueprint/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/diagnostic/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/governance/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/interview/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/pilot/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/quarterly/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/[id]/setup-package/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/engagements/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/interviews/[id]/responses/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/interviews/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/setup-packages/[id]/apply/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hail/setup-packages/validate/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/heartbeat/tick/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/heartbeat/worker/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/help/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hermes/jobs/[id]/events/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hermes/jobs/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/hermes/jobs/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/integrations/google/callback/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/integrations/google/oauth/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/marketplace/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/marketplace/open-design/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/marketplace/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/mines/import-roots/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/mines/portfolio/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/mines/projects/[id]/chunks/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/mines/projects/[id]/diligence/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/mines/projects/[id]/import/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/mines/projects/[id]/publish/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/mines/projects/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/missions/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/models/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/onboarding/blueprint/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/onboarding/launch/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orchestrator/command/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orchestrator/stream/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orchestrator/upload/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/org/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/invites/[inviteId]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/invites/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/role/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/members/[userId]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/members/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/invites/pending/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/join/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/join-complete/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/orgs/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/printing-press/clis/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/printing-press/install/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/printing-press/security-mode/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/privacy/config/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/privacy/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/[id]/share-link/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/override/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/retry/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/[id]/stages/[stageId]/submit/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/definitions/[slug]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/definitions/[slug]/settings/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/definitions/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/definitions/validate/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/processes/start-and-route/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/projects/[slug]/library/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/projects/[slug]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/projects/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/runs/approve-claude-run/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/runs/claude-code-dry-run/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/runs/competitor-report/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/runs/engine-ping/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/runs/marketing-plan/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/schedules/upsert/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/secrets/[name]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/secrets/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/settings/trust-mode/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/share/[token]/otp/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/share/[token]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/share/[token]/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/share/space/[token]/otp/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/share/space/[token]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/share/space/[token]/verify/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/shared/spaces/[id]/acl/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/shared/spaces/publish/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/shared/spaces/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/shared/spaces/status/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/shared/spaces/unpublish/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/state/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/system/update/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/active-run/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/attachments/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/checklist/[itemId]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/checklist/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/checkout/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/children/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/comments/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/events/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/live-runs/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/release/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tasks/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tool-allowlists/[id]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tool-allowlists/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tool-egress/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tools/[name]/approve/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tools/[name]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/tools/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/transcripts/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/voice/providers/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/voice/realtime/context/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/voice/realtime/session/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/voice/realtime/tool-result/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/voice/realtime/tools/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/voice/tts/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/allowlist/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/disconnect/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/messages/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/qr/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/send/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/api/whatsapp/status/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/approvals/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/architecture/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/audit/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/brand/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/disk/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/federated-ai/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/help/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/marketplace/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/missions/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/onboarding/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/org/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/page-9a013fdb2983cbf4.js +0 -1
- package/.next/static/chunks/app/projects/[slug]/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/projects/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/projects/page-3d7140091264933a.js +0 -1
- package/.next/static/chunks/app/reports/[file]/route-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/reports/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/runtime/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/schedules/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/settings/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/settings/page-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/settings/team/page-9a2e675124de6aac.js +0 -1
- package/.next/static/chunks/app/tasks/[id]/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/tasks/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/tools/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/tools/page-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/whatsapp/loading-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/app/workflows/share/[caseId]/page-17ae3509caaa1354.js +0 -1
- package/.next/static/chunks/webpack-e4f2cfb4ad98f256.js +0 -1
- package/.next/static/css/31fb2fdadf8f1c6b.css +0 -1
- /package/.next/standalone/.next/static/{-FRz43s1H_LZFhx24FvnL → sO4ApzzsDEnqk70DEBOS6}/_ssgManifest.js +0 -0
- /package/.next/static/{-FRz43s1H_LZFhx24FvnL → sO4ApzzsDEnqk70DEBOS6}/_ssgManifest.js +0 -0
|
@@ -859,7 +859,7 @@ ${b}
|
|
|
859
859
|
els.forEach(function(e){ e.style.transitionDelay=Math.min(i*40,160)+'ms'; i++; io.observe(e); });
|
|
860
860
|
})();
|
|
861
861
|
</script>
|
|
862
|
-
</body></html>`}(b,n),meta:{scenario_rows:l.scen.length,intercepts:l.intercepts.length,targets:l.targets.length,comparables:d.length,narrative_authored:Object.keys(c||{}).length>0}}}},17607:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{B:()=>n,M:()=>m});var e=c(58282),f=c(26531),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)}})},18313:(a,b,c)=>{"use strict";c.d(b,{Hb:()=>n,MK:()=>l,NV:()=>m,Ny:()=>g,_d:()=>p,ab:()=>q,eh:()=>i,rb:()=>h,uB:()=>k,vI:()=>o});let d=["backlog","todo","in_progress","in_review","blocked","done","cancelled"],e=["low","medium","high","urgent"],f=["queued","running","waiting_approval","succeeded","failed","cancelled","timed_out"],g=["task.created","task.updated","task.assigned","task.reassigned","task.status_changed","task.comment_added","task.blocked","task.unblocked","task.completed","task.cancelled","task.child_created"],h=["lifecycle","tool_start","tool_result","log","warning","error","approval_required","delegation_proposed","delegation_completed"],i=["activity.logged","task.updated","task.comment.added","task.assigned","task.reassigned","agent.status","agent.run.queued","agent.run.status","agent.run.event","agent.run.log"],j={backlog:["todo","cancelled"],todo:["in_progress","blocked","cancelled","done"],in_progress:["in_review","blocked","todo","done","cancelled"],in_review:["in_progress","done","blocked","cancelled"],blocked:["todo","in_progress","cancelled"],done:["in_review"],cancelled:["todo"]};function k(a){return"done"===a||"cancelled"===a}function l(a){return["queued","running","waiting_approval"].includes(a)}function m(a,b="todo"){return d.includes(a)?a:b}function n(a,b="medium"){return e.includes(a)?a:b}function o(a,b="queued"){return f.includes(a)?a:b}function p(a,b="activity.logged"){return i.includes(a)?a:b}function q(a,b){if(!(!a||a===b||j[a]?.includes(b)))throw Error(`Illegal task transition: ${a} -> ${b}`)}},18530:a=>{"use strict";a.exports=JSON.parse('{"schema_version":1,"slug":"vendor-onboarding","name":"Vendor Onboarding","version":1,"description":"Standard intake for new vendors. Captures contact + services, runs an automated risk review, gates on buyer sign-off, and packages the onboarding pack.","category":"procurement","source":"marketplace","status":"published","stages":[{"slug":"intake","name":"Vendor intake","kind":"intake_form","config":{"form_schema":{"title":"Vendor Onboarding — Intake","description":"Tell us about the vendor. The risk reviewer will use this to score them.","fields":[{"name":"vendor_name","label":"Vendor company name","type":"text","required":true,"placeholder":"Legal entity name"},{"name":"primary_contact_name","label":"Primary contact name","type":"text","required":true},{"name":"primary_contact_email","label":"Primary contact email","type":"email","required":true},{"name":"country","label":"Headquarters country","type":"select","required":true,"options":["United States","United Kingdom","United Arab Emirates","Singapore","Germany","India","Other"]},{"name":"services","label":"Services offered","type":"textarea","required":true,"placeholder":"Short list of services / products this vendor will deliver."},{"name":"annual_value_usd","label":"Estimated annual contract value (USD)","type":"number","required":true,"min":0},{"name":"references","label":"References (names + companies)","type":"textarea","required":false,"placeholder":"Optional. One reference per line."}]}}},{"slug":"risk-review","name":"Automated risk review","kind":"agent_run","config":{"agent_template_slug":"vendor-risk-reviewer","prompt":"You are a vendor risk reviewer. Given the intake payload, produce a structured risk report. Do not call external services — work from the intake alone. Return strict JSON only, no surrounding prose: { \\"outcome\\": \\"pass\\" | \\"reject\\", \\"overall_risk\\": \\"low\\" | \\"medium\\" | \\"high\\", \\"concerns\\": [string], \\"references_summary\\": string, \\"recommended_action\\": \\"auto_approve\\" | \\"manual_review\\" | \\"reject\\", \\"rationale\\": string }. Set outcome=\\"reject\\" when recommended_action is \\"reject\\" (sanctioned region, missing critical info). Set outcome=\\"pass\\" otherwise — the human-approval stage that follows is the real decision point. Risk tiers: low = clear references + reasonable value, medium = thin references OR value > $250k, high = sanctioned region OR missing services OR value > $1M.","output_schema":"vendor_risk_v1","timeout_ms":60000,"on_outcome":{"pass":"buyer-signoff","reject":"fail"}},"on_pass_stage_slug":"buyer-signoff","on_fail_stage_slug":null},{"slug":"buyer-signoff","name":"Buyer sign-off","kind":"human_approval","config":{"action_type":"process.stage.approve","risk":"medium","summary_template":"Approve onboarding for {{intake.vendor_name}} ({{intake.country}}) — risk {{risk-review.overall_risk}}"},"on_pass_stage_slug":"final-package","on_fail_stage_slug":null},{"slug":"final-package","name":"Onboarding pack","kind":"package","config":{"title_template":"Vendor onboarding pack — {{intake.vendor_name}}","include_stages":["intake","risk-review","buyer-signoff"]}}]}')},18630:(a,b,c)=>{"use strict";c.d(b,{m:()=>f});var d=c(1303),e=c(81553);async function f(a={}){let b=await (0,e.runUpdateCheck)({});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 (0,d.applyUpdate)({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})`}}},19151:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A2:()=>n,chatWithClaude:()=>j,xY:()=>k});var e=c(50832),f=c(65451),g=a([e,f]);[e,f]=g.then?(await g)():g;let l=Number(process.env.MADARX_ANTHROPIC_MAX_RETRIES??4),m=Number(process.env.MADARX_ANTHROPIC_OUTER_RETRIES??3);function h(){let a=(0,f.resolveAnthropicApiKey)();if(!a)throw Error("ANTHROPIC_API_KEY not configured");return new e.default({apiKey:a,maxRetries:l})}let n="claude-sonnet-4-6",o=a=>new Promise(b=>setTimeout(b,a));async function i(a,b){let c;for(let d=0;d<m;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===m-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}/${m-1} in ${a}ms`),await o(a)}throw c}async function j(a,b,c=[],d={}){let e=h(),f={model:d.model||n,max_tokens:d.max_tokens||8192,system:b,messages:a};return c.length&&(f.tools=c),d.tool_choice&&(f.tool_choice=d.tool_choice),"number"==typeof d.temperature&&(f.temperature=d.temperature),i(()=>e.messages.create(f),`chat(${f.model})`)}async function k(a,b,c=[],d=n,e={}){let f=h(),g={model:d,max_tokens:e.max_tokens||8192,system:b,messages:a};if(c.length&&(g.tools=c),e.thinkingBudget>0&&/(sonnet-4|opus-4|haiku-4|3-7-sonnet)/i.test(String(d||""))){let a=Math.max(1024,Math.floor(e.thinkingBudget));g.thinking={type:"enabled",budget_tokens:a},g.max_tokens=Math.max(g.max_tokens,a+8192)}return i(()=>f.messages.stream(g),`stream(${d})`)}d()}catch(a){d(a)}})},19348:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{D4:()=>p,It:()=>q,JF:()=>r}),c(73024);var e=c(34255),f=c(24516),g=c(58282),h=c(73912),i=c(61423),j=a([e,f,g,h,i]);[e,f,g,h,i]=j.then?(await j)():j;let r=["openai","elevenlabs","local"],s="alloy",t=new Set(["alloy","echo","fable","onyx","nova","shimmer"]);function k(){let a=process.env.MADARX_LOCAL_TTS_URL;return a&&/^https?:\/\//i.test(a.trim())?a.trim():null}function l(a,...b){let c=String(a??"");for(let a of b){if(!a)continue;let b=String(a).slice(-4);c=c.split(String(a)).join(`***${b}`)}return c}async function m({text:a,voice:b,model:c,format:d,fetchFn:e}){let g,h=(0,f.getSecret)("OPENAI_API_KEY")||process.env.OPENAI_API_KEY;if(!h)throw Error("OPENAI_API_KEY missing for OpenAI TTS");let i=b&&t.has(b)?b:s,j=c||"tts-1",k=d||"mp3";try{g=await e("https://api.openai.com/v1/audio/speech",{method:"POST",headers:{Authorization:`Bearer ${h}`,"Content-Type":"application/json"},body:JSON.stringify({model:j,voice:i,input:a,format:k})})}catch(a){throw Error(`openai tts failed: ${l(a?.message,h)}`)}if(!g.ok){let a="";try{a=(await g.text()).slice(0,256)}catch{}throw Error(`openai tts http ${g.status}: ${l(a,h)}`)}return{audio_buffer:Buffer.from(await g.arrayBuffer()),mime_type:"wav"===k?"audio/wav":"audio/mpeg",extension:"wav"===k?"wav":"mp3",provider:"openai",voice:i,model:j}}async function n({text:a,voice:b,model:c,format:d,fetchFn:e}){let g,h=(0,f.getSecret)("ELEVENLABS_API_KEY")||process.env.ELEVENLABS_API_KEY;if(!h)throw Error("ELEVENLABS_API_KEY missing for ElevenLabs TTS");let i=b||(0,f.getSecret)("ELEVENLABS_VOICE_ID")||process.env.ELEVENLABS_VOICE_ID||"21m00Tcm4TlvDq8ikWAM",j=c||"eleven_multilingual_v2",k="wav"===d?"pcm_16000":"mp3_44100_128";try{g=await e(`https://api.elevenlabs.io/v1/text-to-speech/${encodeURIComponent(i)}?output_format=${k}`,{method:"POST",headers:{"xi-api-key":h,"Content-Type":"application/json",Accept:"audio/mpeg"},body:JSON.stringify({text:a,model_id:j})})}catch(a){throw Error(`elevenlabs tts failed: ${l(a?.message,h)}`)}if(!g.ok){let a="";try{a=(await g.text()).slice(0,256)}catch{}throw Error(`elevenlabs tts http ${g.status}: ${l(a,h)}`)}return{audio_buffer:Buffer.from(await g.arrayBuffer()),mime_type:k.startsWith("pcm_")?"audio/wav":"audio/mpeg",extension:k.startsWith("pcm_")?"wav":"mp3",provider:"elevenlabs",voice:i,model:j}}async function o({text:a,voice:b,model:c,format:d,fetchFn:e}){let f,g=k();if(!g)throw Error("MADARX_LOCAL_TTS_URL missing for local TTS");let h=d||"wav",i=c||process.env.MADARX_LOCAL_TTS_MODEL||"local",j=b||process.env.MADARX_LOCAL_TTS_VOICE||"default";try{f=await e(g,{method:"POST",headers:{"Content-Type":"application/json",Accept:"mp3"===h?"audio/mpeg,application/json":"audio/wav,audio/*,application/json"},body:JSON.stringify({text:a,voice:j,model:i,format:h})})}catch(a){throw Error(`local tts failed: ${l(a?.message)}`)}if(!f.ok){let a="";try{a=(await f.text()).slice(0,256)}catch{}throw Error(`local tts http ${f.status}: ${a}`)}let m=String(f.headers.get("content-type")||"").toLowerCase();if(m.includes("application/json")){let a;try{a=await f.json()}catch{throw Error("local tts returned invalid JSON")}let b=a?.audio_base64||a?.audio;if(!b)throw Error("local tts JSON must include audio_base64");let c=a.mime_type||a.content_type||("mp3"===h?"audio/mpeg":"audio/wav"),d=a.extension||(String(c).includes("mpeg")||String(c).includes("mp3")?"mp3":"wav");return{audio_buffer:Buffer.from(String(b),"base64"),mime_type:c,extension:d,provider:"local",voice:a.voice||j,model:a.model||i}}let n=Buffer.from(await f.arrayBuffer()),o=m.includes("mpeg")||m.includes("mp3")||"mp3"===h;return{audio_buffer:n,mime_type:m||(o?"audio/mpeg":"audio/wav"),extension:o?"mp3":"wav",provider:"local",voice:j,model:i}}async function p(a={}){let b=String(a.text||"").trim();if(!b)throw Error("text is required");if(b.length>4e3)throw Error("text too long: max 4000 characters");let c=String(a.provider||process.env.MADARX_VOICE_DEFAULT_PROVIDER||process.env.TTS_DEFAULT_PROVIDER||"openai").toLowerCase(),d=r.includes(c)?c:"openai",f=(0,g.N)("voice_speak",a.agent_id??null,a.fetch||fetch),j=await ("elevenlabs"===d?n:"local"===d?o:m)({text:b,voice:a.voice,model:a.model,format:a.format,fetchFn:f}),k=Math.max(500,Math.round(b.length/14*1e3)),l=null;if(a.save_to_disk&&a.project_id){let c=(0,i.U1)(a.project_id);if(c){let a=function(a){let b=(0,e.getDb)(),c=(0,h.dh)(a),d=b.prepare("SELECT * FROM disk_folders WHERE project_id = ? AND parent_id = ? AND name = ? LIMIT 1").get(a,c.id,"voice");return d||(0,h.vV)(a,c.id,"voice")}(c.id),d=b.slice(0,40).replace(/[^A-Za-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tts";l=(0,h.QM)(c.id,a.id,{name:`${d}-${Date.now()}.${j.extension}`,buffer:j.audio_buffer,type:j.mime_type},{local_only:!1})}}try{(0,e.getDb)().prepare(`
|
|
862
|
+
</body></html>`}(b,n),meta:{scenario_rows:l.scen.length,intercepts:l.intercepts.length,targets:l.targets.length,comparables:d.length,narrative_authored:Object.keys(c||{}).length>0}}}},17607:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{B:()=>n,M:()=>m});var e=c(58282),f=c(26531),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)}})},18313:(a,b,c)=>{"use strict";c.d(b,{Hb:()=>n,MK:()=>l,NV:()=>m,Ny:()=>g,_d:()=>p,ab:()=>q,eh:()=>i,rb:()=>h,uB:()=>k,vI:()=>o});let d=["backlog","todo","in_progress","in_review","blocked","done","cancelled"],e=["low","medium","high","urgent"],f=["queued","running","waiting_approval","succeeded","failed","cancelled","timed_out"],g=["task.created","task.updated","task.assigned","task.reassigned","task.status_changed","task.comment_added","task.blocked","task.unblocked","task.completed","task.cancelled","task.child_created"],h=["lifecycle","tool_start","tool_result","log","warning","error","approval_required","delegation_proposed","delegation_completed"],i=["activity.logged","task.updated","task.comment.added","task.assigned","task.reassigned","agent.status","agent.run.queued","agent.run.status","agent.run.event","agent.run.log","chat_turn"],j={backlog:["todo","cancelled"],todo:["in_progress","blocked","cancelled","done"],in_progress:["in_review","blocked","todo","done","cancelled"],in_review:["in_progress","done","blocked","cancelled"],blocked:["todo","in_progress","cancelled"],done:["in_review"],cancelled:["todo"]};function k(a){return"done"===a||"cancelled"===a}function l(a){return["queued","running","waiting_approval"].includes(a)}function m(a,b="todo"){return d.includes(a)?a:b}function n(a,b="medium"){return e.includes(a)?a:b}function o(a,b="queued"){return f.includes(a)?a:b}function p(a,b="activity.logged"){return i.includes(a)?a:b}function q(a,b){if(!(!a||a===b||j[a]?.includes(b)))throw Error(`Illegal task transition: ${a} -> ${b}`)}},18530:a=>{"use strict";a.exports=JSON.parse('{"schema_version":1,"slug":"vendor-onboarding","name":"Vendor Onboarding","version":1,"description":"Standard intake for new vendors. Captures contact + services, runs an automated risk review, gates on buyer sign-off, and packages the onboarding pack.","category":"procurement","source":"marketplace","status":"published","stages":[{"slug":"intake","name":"Vendor intake","kind":"intake_form","config":{"form_schema":{"title":"Vendor Onboarding — Intake","description":"Tell us about the vendor. The risk reviewer will use this to score them.","fields":[{"name":"vendor_name","label":"Vendor company name","type":"text","required":true,"placeholder":"Legal entity name"},{"name":"primary_contact_name","label":"Primary contact name","type":"text","required":true},{"name":"primary_contact_email","label":"Primary contact email","type":"email","required":true},{"name":"country","label":"Headquarters country","type":"select","required":true,"options":["United States","United Kingdom","United Arab Emirates","Singapore","Germany","India","Other"]},{"name":"services","label":"Services offered","type":"textarea","required":true,"placeholder":"Short list of services / products this vendor will deliver."},{"name":"annual_value_usd","label":"Estimated annual contract value (USD)","type":"number","required":true,"min":0},{"name":"references","label":"References (names + companies)","type":"textarea","required":false,"placeholder":"Optional. One reference per line."}]}}},{"slug":"risk-review","name":"Automated risk review","kind":"agent_run","config":{"agent_template_slug":"vendor-risk-reviewer","prompt":"You are a vendor risk reviewer. Given the intake payload, produce a structured risk report. Do not call external services — work from the intake alone. Return strict JSON only, no surrounding prose: { \\"outcome\\": \\"pass\\" | \\"reject\\", \\"overall_risk\\": \\"low\\" | \\"medium\\" | \\"high\\", \\"concerns\\": [string], \\"references_summary\\": string, \\"recommended_action\\": \\"auto_approve\\" | \\"manual_review\\" | \\"reject\\", \\"rationale\\": string }. Set outcome=\\"reject\\" when recommended_action is \\"reject\\" (sanctioned region, missing critical info). Set outcome=\\"pass\\" otherwise — the human-approval stage that follows is the real decision point. Risk tiers: low = clear references + reasonable value, medium = thin references OR value > $250k, high = sanctioned region OR missing services OR value > $1M.","output_schema":"vendor_risk_v1","timeout_ms":60000,"on_outcome":{"pass":"buyer-signoff","reject":"fail"}},"on_pass_stage_slug":"buyer-signoff","on_fail_stage_slug":null},{"slug":"buyer-signoff","name":"Buyer sign-off","kind":"human_approval","config":{"action_type":"process.stage.approve","risk":"medium","summary_template":"Approve onboarding for {{intake.vendor_name}} ({{intake.country}}) — risk {{risk-review.overall_risk}}"},"on_pass_stage_slug":"final-package","on_fail_stage_slug":null},{"slug":"final-package","name":"Onboarding pack","kind":"package","config":{"title_template":"Vendor onboarding pack — {{intake.vendor_name}}","include_stages":["intake","risk-review","buyer-signoff"]}}]}')},18630:(a,b,c)=>{"use strict";c.d(b,{m:()=>f});var d=c(1303),e=c(81553);async function f(a={}){let b=await (0,e.runUpdateCheck)({});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 (0,d.applyUpdate)({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})`}}},19151:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A2:()=>n,chatWithClaude:()=>j,xY:()=>k});var e=c(50832),f=c(65451),g=a([e,f]);[e,f]=g.then?(await g)():g;let l=Number(process.env.MADARX_ANTHROPIC_MAX_RETRIES??4),m=Number(process.env.MADARX_ANTHROPIC_OUTER_RETRIES??3);function h(){let a=(0,f.resolveAnthropicApiKey)();if(!a)throw Error("ANTHROPIC_API_KEY not configured");return new e.default({apiKey:a,maxRetries:l})}let n="claude-sonnet-4-6",o=a=>new Promise(b=>setTimeout(b,a));async function i(a,b){let c;for(let d=0;d<m;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===m-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}/${m-1} in ${a}ms`),await o(a)}throw c}async function j(a,b,c=[],d={}){let e=h(),f={model:d.model||n,max_tokens:d.max_tokens||8192,system:b,messages:a};return c.length&&(f.tools=c),d.tool_choice&&(f.tool_choice=d.tool_choice),"number"==typeof d.temperature&&(f.temperature=d.temperature),i(()=>e.messages.create(f),`chat(${f.model})`)}async function k(a,b,c=[],d=n,e={}){let f=h(),g={model:d,max_tokens:e.max_tokens||8192,system:b,messages:a};if(c.length&&(g.tools=c),e.thinkingBudget>0&&/(sonnet-4|opus-4|haiku-4|3-7-sonnet)/i.test(String(d||""))){let a=Math.max(1024,Math.floor(e.thinkingBudget));g.thinking={type:"enabled",budget_tokens:a},g.max_tokens=Math.max(g.max_tokens,a+8192)}return i(()=>f.messages.stream(g),`stream(${d})`)}d()}catch(a){d(a)}})},19348:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{D4:()=>p,It:()=>q,JF:()=>r}),c(73024);var e=c(34255),f=c(24516),g=c(58282),h=c(73912),i=c(61423),j=a([e,f,g,h,i]);[e,f,g,h,i]=j.then?(await j)():j;let r=["openai","elevenlabs","local"],s="alloy",t=new Set(["alloy","echo","fable","onyx","nova","shimmer"]);function k(){let a=process.env.MADARX_LOCAL_TTS_URL;return a&&/^https?:\/\//i.test(a.trim())?a.trim():null}function l(a,...b){let c=String(a??"");for(let a of b){if(!a)continue;let b=String(a).slice(-4);c=c.split(String(a)).join(`***${b}`)}return c}async function m({text:a,voice:b,model:c,format:d,fetchFn:e}){let g,h=(0,f.getSecret)("OPENAI_API_KEY")||process.env.OPENAI_API_KEY;if(!h)throw Error("OPENAI_API_KEY missing for OpenAI TTS");let i=b&&t.has(b)?b:s,j=c||"tts-1",k=d||"mp3";try{g=await e("https://api.openai.com/v1/audio/speech",{method:"POST",headers:{Authorization:`Bearer ${h}`,"Content-Type":"application/json"},body:JSON.stringify({model:j,voice:i,input:a,format:k})})}catch(a){throw Error(`openai tts failed: ${l(a?.message,h)}`)}if(!g.ok){let a="";try{a=(await g.text()).slice(0,256)}catch{}throw Error(`openai tts http ${g.status}: ${l(a,h)}`)}return{audio_buffer:Buffer.from(await g.arrayBuffer()),mime_type:"wav"===k?"audio/wav":"audio/mpeg",extension:"wav"===k?"wav":"mp3",provider:"openai",voice:i,model:j}}async function n({text:a,voice:b,model:c,format:d,fetchFn:e}){let g,h=(0,f.getSecret)("ELEVENLABS_API_KEY")||process.env.ELEVENLABS_API_KEY;if(!h)throw Error("ELEVENLABS_API_KEY missing for ElevenLabs TTS");let i=b||(0,f.getSecret)("ELEVENLABS_VOICE_ID")||process.env.ELEVENLABS_VOICE_ID||"21m00Tcm4TlvDq8ikWAM",j=c||"eleven_multilingual_v2",k="wav"===d?"pcm_16000":"mp3_44100_128";try{g=await e(`https://api.elevenlabs.io/v1/text-to-speech/${encodeURIComponent(i)}?output_format=${k}`,{method:"POST",headers:{"xi-api-key":h,"Content-Type":"application/json",Accept:"audio/mpeg"},body:JSON.stringify({text:a,model_id:j})})}catch(a){throw Error(`elevenlabs tts failed: ${l(a?.message,h)}`)}if(!g.ok){let a="";try{a=(await g.text()).slice(0,256)}catch{}throw Error(`elevenlabs tts http ${g.status}: ${l(a,h)}`)}return{audio_buffer:Buffer.from(await g.arrayBuffer()),mime_type:k.startsWith("pcm_")?"audio/wav":"audio/mpeg",extension:k.startsWith("pcm_")?"wav":"mp3",provider:"elevenlabs",voice:i,model:j}}async function o({text:a,voice:b,model:c,format:d,fetchFn:e}){let f,g=k();if(!g)throw Error("MADARX_LOCAL_TTS_URL missing for local TTS");let h=d||"wav",i=c||process.env.MADARX_LOCAL_TTS_MODEL||"local",j=b||process.env.MADARX_LOCAL_TTS_VOICE||"default";try{f=await e(g,{method:"POST",headers:{"Content-Type":"application/json",Accept:"mp3"===h?"audio/mpeg,application/json":"audio/wav,audio/*,application/json"},body:JSON.stringify({text:a,voice:j,model:i,format:h})})}catch(a){throw Error(`local tts failed: ${l(a?.message)}`)}if(!f.ok){let a="";try{a=(await f.text()).slice(0,256)}catch{}throw Error(`local tts http ${f.status}: ${a}`)}let m=String(f.headers.get("content-type")||"").toLowerCase();if(m.includes("application/json")){let a;try{a=await f.json()}catch{throw Error("local tts returned invalid JSON")}let b=a?.audio_base64||a?.audio;if(!b)throw Error("local tts JSON must include audio_base64");let c=a.mime_type||a.content_type||("mp3"===h?"audio/mpeg":"audio/wav"),d=a.extension||(String(c).includes("mpeg")||String(c).includes("mp3")?"mp3":"wav");return{audio_buffer:Buffer.from(String(b),"base64"),mime_type:c,extension:d,provider:"local",voice:a.voice||j,model:a.model||i}}let n=Buffer.from(await f.arrayBuffer()),o=m.includes("mpeg")||m.includes("mp3")||"mp3"===h;return{audio_buffer:n,mime_type:m||(o?"audio/mpeg":"audio/wav"),extension:o?"mp3":"wav",provider:"local",voice:j,model:i}}async function p(a={}){let b=String(a.text||"").trim();if(!b)throw Error("text is required");if(b.length>4e3)throw Error("text too long: max 4000 characters");let c=String(a.provider||process.env.MADARX_VOICE_DEFAULT_PROVIDER||process.env.TTS_DEFAULT_PROVIDER||"openai").toLowerCase(),d=r.includes(c)?c:"openai",f=(0,g.N)("voice_speak",a.agent_id??null,a.fetch||fetch),j=await ("elevenlabs"===d?n:"local"===d?o:m)({text:b,voice:a.voice,model:a.model,format:a.format,fetchFn:f}),k=Math.max(500,Math.round(b.length/14*1e3)),l=null;if(a.save_to_disk&&a.project_id){let c=(0,i.U1)(a.project_id);if(c){let a=function(a){let b=(0,e.getDb)(),c=(0,h.dh)(a),d=b.prepare("SELECT * FROM disk_folders WHERE project_id = ? AND parent_id = ? AND name = ? LIMIT 1").get(a,c.id,"voice");return d||(0,h.vV)(a,c.id,"voice")}(c.id),d=b.slice(0,40).replace(/[^A-Za-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tts";l=(0,h.QM)(c.id,a.id,{name:`${d}-${Date.now()}.${j.extension}`,buffer:j.audio_buffer,type:j.mime_type},{local_only:!1})}}try{(0,e.getDb)().prepare(`
|
|
863
863
|
INSERT INTO audit_logs (id, at, type, summary, status, meta)
|
|
864
864
|
VALUES (?, ?, ?, ?, ?, ?)
|
|
865
865
|
`).run((0,e.newId)("audit"),(0,e.nowIso)(),"voice.tts",`TTS ${d} voice=${j.voice} chars=${b.length}`,"complete",JSON.stringify({provider:d,voice:j.voice,model:j.model,text_chars:b.length,audio_bytes:j.audio_buffer.length,disk_file_id:l?.id||null,agent_id:a.agent_id||null}))}catch(a){console.warn("[tts] audit write failed:",a?.message||a)}return{audio_buffer:j.audio_buffer,mime_type:j.mime_type,extension:j.extension,provider:d,voice:j.voice,model:j.model,duration_estimate_ms:k,disk_file:l}}function q(){return{openai:!!((0,f.getSecret)("OPENAI_API_KEY")||process.env.OPENAI_API_KEY),elevenlabs:!!((0,f.getSecret)("ELEVENLABS_API_KEY")||process.env.ELEVENLABS_API_KEY),local:!!k()}}d()}catch(a){d(a)}})},20086:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{An:()=>h,Bs:()=>g,_w:()=>j,b4:()=>i});var e=c(34255),f=a([e]);function g(a,{scope_key:b,scope_value:c},d={}){let f=(0,e.getDb)(),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}}}function h({tool_name:a,scope_key:b,scope_value:c,label:d}){if(!a)throw Error("tool_name is required");if(!b)throw Error("scope_key is required");if(!c&&0!==c)throw Error("scope_value is required");let f=(0,e.getDb)(),g=(0,e.newId)("tal"),h=(0,e.nowIso)(),i=d?String(d).trim():null;return f.prepare(`
|
|
@@ -917,7 +917,7 @@ ${b}
|
|
|
917
917
|
WHERE project_id = ?
|
|
918
918
|
GROUP BY document_category
|
|
919
919
|
`).all(a),f=b.prepare("SELECT COUNT(*) AS n FROM mines_spatial_assets WHERE project_id = ?").get(a),g=new Map,h={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,h.total_files+=a.n,h[i[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:h.total_files,chunks:n},spatial_assets_count:f?.n??0,completeness_score:m,progress:h}}function h(a){return g(a).progress}d()}catch(a){d(a)}})},33446:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Im:()=>r,LC:()=>z,LQ:()=>u,V6:()=>n,VD:()=>v,fo:()=>t,gB:()=>o,hI:()=>q,vR:()=>s});var e=c(73024),f=c(76760),g=c(77030),h=c(71553),i=c(77598),j=c(67179),k=c(24516),l=c(9381),m=a([j,k]);[j,k]=m.then?(await m)():m;let A="auth_mode",B=new Set(["local","supabase"]),C=f.join(l.nJ,".auth-recovery-token");function n(){try{if(e.existsSync(C)){let a=e.readFileSync(C,"utf8").trim();if(a)return a}e.mkdirSync(l.nJ,{recursive:!0});let a=(0,i.randomBytes)(24).toString("hex");e.writeFileSync(C,`${a}
|
|
920
|
-
`,{mode:384});try{e.chmodSync(C,384)}catch{}return a}catch(a){return console.warn("[auth-config] ensureRecoveryToken failed:",a.message),null}}function o(a){if(!a||"string"!=typeof a)return!1;let b=null;try{b=e.readFileSync(C,"utf8").trim()}catch{return!1}if(!b)return!1;let c=Buffer.from(a.trim()),d=Buffer.from(b);return c.length===d.length&&(0,i.timingSafeEqual)(c,d)}function p(){let a=process.env.MADARX_AUTH_MODE;if(a&&String(a).trim()){let b=String(a).trim().toLowerCase();if(B.has(b))return b}return null}function q(){let a=String(process.env.MADARX_AUTH_MODE_LOCK||"").trim().toLowerCase();return!!(p()&&("1"===a||"true"===a))}function r(){if(q())return p();try{let a=(0,j.getConfig)(A,null);if(a&&B.has(a))return a}catch{}return p()||"local"}function s(){let a=null,b=null;try{a=(0,k.getSecret)("SUPABASE_URL"),b=(0,k.getSecret)("SUPABASE_ANON_KEY")}catch{}return a=a||process.env.NEXT_PUBLIC_SUPABASE_URL||process.env.SUPABASE_URL||null,b=b||process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY||process.env.SUPABASE_ANON_KEY||null,{url:a||null,anonKey:b||null}}function t(){try{let a=(0,k.getSecret)("SUPABASE_SERVICE_ROLE_KEY");if(a)return a}catch{}return process.env.SUPABASE_SERVICE_ROLE_KEY||null}function u(){return!!t()}function v({mode:a,url:b,anonKey:c,serviceKey:d}={}){if(b&&String(b).trim()&&(0,k.setSecret)("SUPABASE_URL",String(b).trim(),{source:"manual"}),c&&String(c).trim()&&(0,k.setSecret)("SUPABASE_ANON_KEY",String(c).trim(),{source:"manual"}),d&&String(d).trim()&&(0,k.setSecret)("SUPABASE_SERVICE_ROLE_KEY",String(d).trim(),{source:"manual"}),null!=a&&""!==a){let b=String(a).toLowerCase();if(!B.has(b))throw Error(`invalid auth mode: ${a}`);if("supabase"===b){let{url:a,anonKey:b}=s();if(!a||!b)throw Error("cannot switch to supabase mode without a configured SUPABASE_URL and SUPABASE_ANON_KEY");n()}(0,j.setConfig)(A,b)}return{mode:r()}}function w(a){return a.split(".").reduce((a,b)=>a<<8|parseInt(b,10),0)>>>0}function x(a){let b=w(a),c=(a,c)=>(b&(0===c?0:-1<<32-c>>>0))==(w(a)&(0===c?0:-1<<32-c>>>0));return c("0.0.0.0",8)||c("10.0.0.0",8)||c("100.64.0.0",10)||c("127.0.0.0",8)||c("169.254.0.0",16)||c("172.16.0.0",12)||c("192.168.0.0",16)||c("192.0.0.0",24)||c("198.18.0.0",15)||c("224.0.0.0",4)||c("240.0.0.0",4)}function y(a){let b=g.isIP(a);if(4===b)return x(a);if(6===b){let b=a.toLowerCase();if("::1"===b||"::"===b||b.startsWith("fe80")||b.startsWith("fe9")||b.startsWith("fea")||b.startsWith("feb")||b.startsWith("fc")||b.startsWith("fd"))return!0;let c=b.match(/::ffff:(\d+\.\d+\.\d+\.\d+)$/);return!!c&&x(c[1])}return!0}async function z({url:a,anonKey:b}={}){let c;if(!a||!b)return{ok:!1,error:"missing_url_or_key"};try{c=new URL(a)}catch{return{ok:!1,error:"invalid_url"}}if("https:"!==c.protocol)return{ok:!1,error:"must_be_https"};try{let a=c.hostname;if(g.isIP(a)){if(y(a))return{ok:!1,error:"blocked_host"}}else{let b=await (0,h.lookup)(a,{all:!0});if(!b.length||b.some(a=>y(a.address)))return{ok:!1,error:"blocked_host"}}}catch{return{ok:!1,error:"unreachable"}}try{return(await fetch(`${c.origin}/auth/v1/health`,{headers:{apikey:b,Authorization:`Bearer ${b}`},redirect:"error",signal:AbortSignal.timeout(4e3)})).ok?{ok:!0}:{ok:!1,error:"unreachable"}}catch{return{ok:!1,error:"unreachable"}}}d()}catch(a){d(a)}})},34255:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{getDb:()=>n,newId:()=>p,nowIso:()=>o});var e=c(80099),f=c(73024),g=c(76760),h=c(48161),i=c(77598),j=c(9381),k=c(50662),l=c(23167),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(6818).then(c.bind(c,96818)),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)}})},36575:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{DB:()=>z,QK:()=>l,RW:()=>x,Tx:()=>s,XJ:()=>v,ZW:()=>y,aO:()=>u,ck:()=>p,eb:()=>w,jI:()=>t,wt:()=>q});var e=c(77598),f=c(34255),g=c(46359),h=c(33446),i=a([f,g,h]);async function j(a){try{let{appendAudit:b}=await Promise.resolve().then(c.bind(c,60105));b(a)}catch{}}[f,g,h]=i.then?(await i)():i;let A=Object.freeze(["owner","admin","member","viewer"]),B=Object.freeze({owner:["owner","admin","member","viewer"],admin:["member","viewer"],member:[],viewer:[]});function k(a){return String(a||"").trim().toLowerCase()}function l(a){return(0,e.createHash)("sha256").update(String(a),"utf8").digest("hex")}function m(a,b){if(!A.includes(b))throw Error(`Invalid role: ${b}`);if(!(B[a]||[]).includes(b))throw Object.assign(Error(`role ${a} cannot mint an invite granting ${b}`),{code:"role_ceiling"})}function n(a){return new Date(Date.now()+3600*a*1e3).toISOString()}function o(a,b=Date.now()){return null!=a.expires_at&&new Date(a.expires_at).getTime()<=b}function p({orgId:a,email:b,role:c="member",createdBy:d,creatorRole:e,label:g=null}){if(!a||!b||!d)throw Error("orgId, email, createdBy are required");m(e,c);let h=k(b);if(!h.includes("@"))throw Error("a valid email is required");let i=(0,f.getDb)(),l=i.prepare("SELECT * FROM org_invites WHERE org_id = ? AND email = ? AND revoked_at IS NULL").get(a,h);if(l&&!o(l))return i.prepare("UPDATE org_invites SET role = ?, expires_at = ? WHERE id = ?").run(c,n(72),l.id),i.prepare("SELECT * FROM org_invites WHERE id = ?").get(l.id);let p=(0,f.newId)("inv");return i.prepare(`INSERT INTO org_invites (id, org_id, role, email, label, created_by_user_id, expires_at, created_at)
|
|
920
|
+
`,{mode:384});try{e.chmodSync(C,384)}catch{}return a}catch(a){return console.warn("[auth-config] ensureRecoveryToken failed:",a.message),null}}function o(a){if(!a||"string"!=typeof a)return!1;let b=null;try{b=e.readFileSync(C,"utf8").trim()}catch{return!1}if(!b)return!1;let c=Buffer.from(a.trim()),d=Buffer.from(b);return c.length===d.length&&(0,i.timingSafeEqual)(c,d)}function p(){let a=process.env.MADARX_AUTH_MODE;if(a&&String(a).trim()){let b=String(a).trim().toLowerCase();if(B.has(b))return b}return null}function q(){let a=String(process.env.MADARX_AUTH_MODE_LOCK||"").trim().toLowerCase();return!!(p()&&("1"===a||"true"===a))}function r(){if(q())return p();if("supabase"===p()&&function(){let{url:a,anonKey:b}=s();return!!(a&&b)}())return"supabase";try{let a=(0,j.getConfig)(A,null);if(a&&B.has(a))return a}catch{}return p()||"local"}function s(){let a=null,b=null;try{a=(0,k.getSecret)("SUPABASE_URL"),b=(0,k.getSecret)("SUPABASE_ANON_KEY")}catch{}return a=a||process.env.NEXT_PUBLIC_SUPABASE_URL||process.env.SUPABASE_URL||null,b=b||process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY||process.env.SUPABASE_ANON_KEY||null,{url:a||null,anonKey:b||null}}function t(){try{let a=(0,k.getSecret)("SUPABASE_SERVICE_ROLE_KEY");if(a)return a}catch{}return process.env.SUPABASE_SERVICE_ROLE_KEY||null}function u(){return!!t()}function v({mode:a,url:b,anonKey:c,serviceKey:d}={}){if(b&&String(b).trim()&&(0,k.setSecret)("SUPABASE_URL",String(b).trim(),{source:"manual"}),c&&String(c).trim()&&(0,k.setSecret)("SUPABASE_ANON_KEY",String(c).trim(),{source:"manual"}),d&&String(d).trim()&&(0,k.setSecret)("SUPABASE_SERVICE_ROLE_KEY",String(d).trim(),{source:"manual"}),null!=a&&""!==a){let b=String(a).toLowerCase();if(!B.has(b))throw Error(`invalid auth mode: ${a}`);if("supabase"===b){let{url:a,anonKey:b}=s();if(!a||!b)throw Error("cannot switch to supabase mode without a configured SUPABASE_URL and SUPABASE_ANON_KEY");n()}(0,j.setConfig)(A,b)}return{mode:r()}}function w(a){return a.split(".").reduce((a,b)=>a<<8|parseInt(b,10),0)>>>0}function x(a){let b=w(a),c=(a,c)=>(b&(0===c?0:-1<<32-c>>>0))==(w(a)&(0===c?0:-1<<32-c>>>0));return c("0.0.0.0",8)||c("10.0.0.0",8)||c("100.64.0.0",10)||c("127.0.0.0",8)||c("169.254.0.0",16)||c("172.16.0.0",12)||c("192.168.0.0",16)||c("192.0.0.0",24)||c("198.18.0.0",15)||c("224.0.0.0",4)||c("240.0.0.0",4)}function y(a){let b=g.isIP(a);if(4===b)return x(a);if(6===b){let b=a.toLowerCase();if("::1"===b||"::"===b||b.startsWith("fe80")||b.startsWith("fe9")||b.startsWith("fea")||b.startsWith("feb")||b.startsWith("fc")||b.startsWith("fd"))return!0;let c=b.match(/::ffff:(\d+\.\d+\.\d+\.\d+)$/);return!!c&&x(c[1])}return!0}async function z({url:a,anonKey:b}={}){let c;if(!a||!b)return{ok:!1,error:"missing_url_or_key"};try{c=new URL(a)}catch{return{ok:!1,error:"invalid_url"}}if("https:"!==c.protocol)return{ok:!1,error:"must_be_https"};try{let a=c.hostname;if(g.isIP(a)){if(y(a))return{ok:!1,error:"blocked_host"}}else{let b=await (0,h.lookup)(a,{all:!0});if(!b.length||b.some(a=>y(a.address)))return{ok:!1,error:"blocked_host"}}}catch{return{ok:!1,error:"unreachable"}}try{return(await fetch(`${c.origin}/auth/v1/health`,{headers:{apikey:b,Authorization:`Bearer ${b}`},redirect:"error",signal:AbortSignal.timeout(4e3)})).ok?{ok:!0}:{ok:!1,error:"unreachable"}}catch{return{ok:!1,error:"unreachable"}}}d()}catch(a){d(a)}})},34255:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{getDb:()=>n,newId:()=>p,nowIso:()=>o});var e=c(80099),f=c(73024),g=c(76760),h=c(48161),i=c(77598),j=c(9381),k=c(50662),l=c(23167),m=a([l]);l=(m.then?(await m)():m)[0];let q=null,r=null;function n(){if(q&&r===j.c_)return q;if(q){try{q.close()}catch{}q=null}(0,j.Jh)();let a=new e.DatabaseSync(j.c_);for(let b of(a.exec("PRAGMA journal_mode=WAL;"),a.exec("PRAGMA busy_timeout=5000;"),a.exec("PRAGMA foreign_keys=ON;"),a.exec(k.x),["ALTER TABLE artifacts ADD COLUMN title TEXT","ALTER TABLE artifacts ADD COLUMN content TEXT","ALTER TABLE artifacts ADD COLUMN source_md TEXT","ALTER TABLE agents ADD COLUMN system_prompt TEXT","ALTER TABLE agents ADD COLUMN memory TEXT","ALTER TABLE agents ADD COLUMN model TEXT","ALTER TABLE runs ADD COLUMN output TEXT","ALTER TABLE hermes_jobs ADD COLUMN cwd TEXT","ALTER TABLE hermes_jobs ADD COLUMN timeout_ms INTEGER","ALTER TABLE connectors ADD COLUMN type TEXT","ALTER TABLE connectors ADD COLUMN capabilities TEXT","ALTER TABLE connectors ADD COLUMN metadata TEXT","ALTER TABLE schedules ADD COLUMN last_queued_at TEXT","ALTER TABLE schedules ADD COLUMN last_queued_window TEXT","ALTER TABLE heartbeat_tasks ADD COLUMN approval_request_id TEXT","ALTER TABLE agents ADD COLUMN reports_to TEXT","ALTER TABLE agents ADD COLUMN role TEXT","ALTER TABLE agents ADD COLUMN title TEXT","ALTER TABLE agents ADD COLUMN status_reason TEXT","ALTER TABLE agents ADD COLUMN autonomy_mode TEXT","ALTER TABLE agents ADD COLUMN budget_monthly_cents INTEGER DEFAULT 0","ALTER TABLE agents ADD COLUMN spent_monthly_cents INTEGER DEFAULT 0","ALTER TABLE agents ADD COLUMN permissions_json TEXT","ALTER TABLE agents ADD COLUMN metadata_json TEXT","ALTER TABLE agents ADD COLUMN project_id TEXT","ALTER TABLE agents ADD COLUMN template_slug TEXT","ALTER TABLE secrets ADD COLUMN project_id TEXT","ALTER TABLE audit_logs ADD COLUMN project_id TEXT","ALTER TABLE audit_logs ADD COLUMN correlation_id TEXT","ALTER TABLE tool_egress ADD COLUMN project_id TEXT","ALTER TABLE activity_log ADD COLUMN project_id TEXT","ALTER TABLE artifacts ADD COLUMN project_id TEXT","ALTER TABLE heartbeat_tasks ADD COLUMN project_id TEXT","ALTER TABLE transcripts ADD COLUMN engine TEXT","ALTER TABLE transcripts ADD COLUMN language TEXT","ALTER TABLE transcripts ADD COLUMN duration_seconds REAL","ALTER TABLE approval_requests ADD COLUMN project_id TEXT","ALTER TABLE projects ADD COLUMN folder_path TEXT","ALTER TABLE tasks ADD COLUMN due_at TEXT","ALTER TABLE tasks ADD COLUMN tags_json TEXT","ALTER TABLE tasks ADD COLUMN estimate_minutes INTEGER","ALTER TABLE tasks ADD COLUMN watchers_json TEXT","ALTER TABLE tasks ADD COLUMN recurrence TEXT","ALTER TABLE tasks ADD COLUMN acceptance_criteria TEXT","ALTER TABLE tasks ADD COLUMN recurred_from_task_id TEXT","ALTER TABLE artifacts ADD COLUMN task_id TEXT","ALTER TABLE artifacts ADD COLUMN is_protected INTEGER NOT NULL DEFAULT 0","ALTER TABLE projects ADD COLUMN org_id TEXT","ALTER TABLE artifacts ADD COLUMN owner_user_id TEXT","ALTER TABLE artifacts ADD COLUMN sharing_scope TEXT NOT NULL DEFAULT 'private'","ALTER TABLE artifacts ADD COLUMN encrypted INTEGER NOT NULL DEFAULT 0","ALTER TABLE artifacts ADD COLUMN encryption_key_id TEXT","ALTER TABLE audit_logs ADD COLUMN user_id TEXT","ALTER TABLE audit_logs ADD COLUMN org_id TEXT","ALTER TABLE audit_logs ADD COLUMN ip TEXT","ALTER TABLE audit_logs ADD COLUMN user_agent TEXT","ALTER TABLE audit_logs ADD COLUMN action_target_id TEXT","ALTER TABLE audit_logs ADD COLUMN action_target_type TEXT","ALTER TABLE activity_log ADD COLUMN user_id TEXT","ALTER TABLE activity_log ADD COLUMN org_id TEXT","ALTER TABLE activity_log ADD COLUMN ip TEXT","ALTER TABLE heartbeat_tasks ADD COLUMN acting_on_behalf_of_user_id TEXT","ALTER TABLE schedules ADD COLUMN created_by_user_id TEXT","ALTER TABLE schedules ADD COLUMN catchup_policy TEXT DEFAULT 'fire_all'","ALTER TABLE artifacts ADD COLUMN folder_id TEXT","ALTER TABLE artifacts ADD COLUMN space_id TEXT","ALTER TABLE agents ADD COLUMN default_space_id TEXT","ALTER TABLE artifacts ADD COLUMN heartbeat_task_id TEXT","ALTER TABLE artifacts ADD COLUMN dedupe_key TEXT","ALTER TABLE artifact_share_links ADD COLUMN token TEXT","ALTER TABLE artifacts ADD COLUMN pinned_to_space_at TEXT","ALTER TABLE process_definitions ADD COLUMN source_spec_json TEXT","ALTER TABLE process_definitions ADD COLUMN schema_version INTEGER NOT NULL DEFAULT 1","ALTER TABLE process_definitions ADD COLUMN created_by_user_id TEXT","ALTER TABLE process_definitions ADD COLUMN created_by_agent_id TEXT","ALTER TABLE tool_allowlists ADD COLUMN org_id TEXT","ALTER TABLE tool_allowlists ADD COLUMN created_by_user_id TEXT","ALTER TABLE agents ADD COLUMN expected_output TEXT","ALTER TABLE mines_projects ADD COLUMN default_space_id TEXT","ALTER TABLE chat_sessions ADD COLUMN active_turn_id TEXT","ALTER TABLE chat_sessions ADD COLUMN active_turn_started_at TEXT"]))try{a.exec(b)}catch(a){if(!/duplicate column name/i.test(String(a?.message||a)))throw a}return a.exec("CREATE INDEX IF NOT EXISTS idx_agents_reports_to ON agents(reports_to);"),a.exec("CREATE INDEX IF NOT EXISTS idx_tasks_due_at ON tasks(due_at);"),a.exec("DROP INDEX IF EXISTS idx_secrets_one_active;"),a.exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_secrets_one_active ON secrets(name, scope, COALESCE(project_id, '')) WHERE status = 'active';"),a.exec("CREATE INDEX IF NOT EXISTS idx_audit_project_at ON audit_logs(project_id, at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_egress_project_at ON tool_egress(project_id, at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_activity_project ON activity_log(project_id, created_at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_project ON artifacts(project_id, created_at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_task ON artifacts(task_id, created_at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_folder ON artifacts(project_id, folder_id);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_space ON artifacts(space_id);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_heartbeat_task ON artifacts(heartbeat_task_id);\nCREATE INDEX IF NOT EXISTS idx_artifacts_dedupe_key ON artifacts(dedupe_key);"),a.exec("CREATE INDEX IF NOT EXISTS idx_artifacts_is_protected ON artifacts(is_protected, project_id);"),a.exec("CREATE INDEX IF NOT EXISTS idx_projects_org ON projects(org_id);"),a.exec("CREATE INDEX IF NOT EXISTS idx_audit_user ON audit_logs(user_id, at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_audit_org ON audit_logs(org_id, at DESC);"),a.exec("CREATE INDEX IF NOT EXISTS idx_audit_target ON audit_logs(action_target_type, action_target_id, at DESC);"),a.exec("CREATE TRIGGER IF NOT EXISTS audit_logs_no_update\nBEFORE UPDATE ON audit_logs\nBEGIN\n SELECT RAISE(ABORT, 'audit_logs rows are immutable');\nEND;"),a.exec("CREATE TRIGGER IF NOT EXISTS audit_logs_no_delete\nBEFORE DELETE ON audit_logs\nBEGIN\n SELECT RAISE(ABORT, 'audit_logs rows cannot be deleted');\nEND;"),!function(){try{if(!a.prepare("PRAGMA index_list('secrets')").all().some(b=>"u"===b.origin&&b.name.startsWith("sqlite_autoindex_secrets_")&&3===a.prepare(`PRAGMA index_info('${b.name}')`).all().length))return;a.exec("BEGIN"),a.exec("CREATE TABLE secrets_new (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n scope TEXT NOT NULL DEFAULT 'global',\n value_encrypted BLOB NOT NULL,\n iv BLOB NOT NULL,\n auth_tag BLOB NOT NULL,\n status TEXT NOT NULL DEFAULT 'active',\n source TEXT,\n metadata_json TEXT,\n last_used_at TEXT,\n created_at TEXT NOT NULL,\n rotated_at TEXT\n)"),a.exec("INSERT INTO secrets_new\n SELECT id, name, scope, value_encrypted, iv, auth_tag, status,\n source, metadata_json, last_used_at, created_at, rotated_at\n FROM secrets\n WHERE status = 'active'"),a.exec("DROP TABLE secrets"),a.exec("ALTER TABLE secrets_new RENAME TO secrets"),a.exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_secrets_one_active\n ON secrets(name, scope) WHERE status = 'active'"),a.exec("CREATE INDEX IF NOT EXISTS idx_secrets_name_status\n ON secrets(name, status)"),a.exec("COMMIT")}catch(b){try{a.exec("ROLLBACK")}catch{}throw b}}(),a.exec(k.t),q=a,r=j.c_,(0,l.ef)(a),function(){if("1"===process.env.MADARX_DISABLE_INPROC_DAEMON||process.env.MADARX_DATA_DIR||process.env.VILLA515_DATA_DIR)return;let a=Number(process.env.CRON_DAEMON_INTERVAL_MS||3e4),b=Number(process.env.HEARTBEAT_WORKER_INTERVAL_MS||5e3),d=process.env.MADARX_INPROC_HOST||"127.0.0.1",e=process.env.PORT||process.env.MADARX_PORT||"8787",k=`http://${d}:${e}`,l=Number(process.env.MADARX_INPROC_POKE_TIMEOUT_MS||5e3);async function m(a){let{getInprocToken:b,INPROC_TOKEN_HEADER:d}=await c.e(6818).then(c.bind(c,96818)),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)}})},36575:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{DB:()=>z,QK:()=>l,RW:()=>x,Tx:()=>s,XJ:()=>v,ZW:()=>y,aO:()=>u,ck:()=>p,eb:()=>w,jI:()=>t,wt:()=>q});var e=c(77598),f=c(34255),g=c(46359),h=c(33446),i=a([f,g,h]);async function j(a){try{let{appendAudit:b}=await Promise.resolve().then(c.bind(c,60105));b(a)}catch{}}[f,g,h]=i.then?(await i)():i;let A=Object.freeze(["owner","admin","member","viewer"]),B=Object.freeze({owner:["owner","admin","member","viewer"],admin:["member","viewer"],member:[],viewer:[]});function k(a){return String(a||"").trim().toLowerCase()}function l(a){return(0,e.createHash)("sha256").update(String(a),"utf8").digest("hex")}function m(a,b){if(!A.includes(b))throw Error(`Invalid role: ${b}`);if(!(B[a]||[]).includes(b))throw Object.assign(Error(`role ${a} cannot mint an invite granting ${b}`),{code:"role_ceiling"})}function n(a){return new Date(Date.now()+3600*a*1e3).toISOString()}function o(a,b=Date.now()){return null!=a.expires_at&&new Date(a.expires_at).getTime()<=b}function p({orgId:a,email:b,role:c="member",createdBy:d,creatorRole:e,label:g=null}){if(!a||!b||!d)throw Error("orgId, email, createdBy are required");m(e,c);let h=k(b);if(!h.includes("@"))throw Error("a valid email is required");let i=(0,f.getDb)(),l=i.prepare("SELECT * FROM org_invites WHERE org_id = ? AND email = ? AND revoked_at IS NULL").get(a,h);if(l&&!o(l))return i.prepare("UPDATE org_invites SET role = ?, expires_at = ? WHERE id = ?").run(c,n(72),l.id),i.prepare("SELECT * FROM org_invites WHERE id = ?").get(l.id);let p=(0,f.newId)("inv");return i.prepare(`INSERT INTO org_invites (id, org_id, role, email, label, created_by_user_id, expires_at, created_at)
|
|
921
921
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run(p,a,c,h,g,d,n(72),(0,f.nowIso)()),j({type:"org.invite.email.created",summary:`Email invite for ${h} to org ${a} as ${c}`,meta:{id:p,org_id:a,email:h,role:c}}),i.prepare("SELECT * FROM org_invites WHERE id = ?").get(p)}function q({orgId:a,role:b="member",createdBy:c,creatorRole:d,expiresInHours:g=72,maxUses:h=null,label:i=null}){if(!a||!c)throw Error("orgId and createdBy are required");if(m(d,b),null!=h&&(!Number.isInteger(h)||h<1))throw Error("maxUses must be a positive integer or null");let k=null==g?null:n(g),o=(0,e.randomBytes)(32).toString("base64url"),p=(0,f.newId)("inv");(0,f.getDb)().prepare(`INSERT INTO org_invites (id, org_id, role, token_hash, label, created_by_user_id, expires_at, max_uses, created_at)
|
|
922
922
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(p,a,b,l(o),i,c,k,h,(0,f.nowIso)()),j({type:"org.invite.created",summary:`Invite link created for org ${a} as ${b}`,meta:{id:p,org_id:a,role:b,max_uses:h,expires_at:k}});let q=(0,f.getDb)().prepare("SELECT * FROM org_invites WHERE id = ?").get(p);return{id:p,token:o,invite:r(q)}}function r(a){if(!a)return a;let{token_hash:b,...c}=a;return{...c,has_token:null!=b}}function s(a,{includeInactive:b=!1}={}){return(0,f.getDb)().prepare("SELECT * FROM org_invites WHERE org_id = ? ORDER BY created_at DESC").all(a).filter(a=>b||null==a.revoked_at&&!o(a)&&(null==a.max_uses||!(a.used_count>=a.max_uses))).map(a=>({...r(a),kind:a.email?"email":"link"}))}function t(a){let b=k(a);return b?(0,f.getDb)().prepare(`SELECT i.*, o.name AS org_name, o.slug AS org_slug
|
|
923
923
|
FROM org_invites i JOIN organizations o ON o.id = i.org_id
|
|
@@ -1628,7 +1628,12 @@ CREATE TABLE IF NOT EXISTS chat_sessions (
|
|
|
1628
1628
|
total_output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
1629
1629
|
total_cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
|
1630
1630
|
total_cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
|
1631
|
-
last_context_tokens INTEGER NOT NULL DEFAULT 0
|
|
1631
|
+
last_context_tokens INTEGER NOT NULL DEFAULT 0,
|
|
1632
|
+
-- Live-turn continuity: set while an orchestrator turn is streaming for this
|
|
1633
|
+
-- session, cleared when it finishes. active_turn_started_at gates a TTL so a
|
|
1634
|
+
-- crashed turn self-heals to "idle" instead of pinning the flag forever.
|
|
1635
|
+
active_turn_id TEXT,
|
|
1636
|
+
active_turn_started_at TEXT
|
|
1632
1637
|
);
|
|
1633
1638
|
|
|
1634
1639
|
CREATE TABLE IF NOT EXISTS whatsapp_messages (
|
|
@@ -3044,7 +3049,7 @@ HARD SAFETY RULES (non-negotiable — the package is rejected by the validator o
|
|
|
3044
3049
|
INSERT OR IGNORE INTO mines_spatial_assets
|
|
3045
3050
|
(id, project_id, kind, path, crs, bbox, file_size_bytes, indexed_at)
|
|
3046
3051
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
3047
|
-
`).run((0,e.newId)("msa"),b.project_id,d.kind,b.original_path,d.crs,d.bbox?JSON.stringify(d.bbox):null,d.file_size_bytes,(0,e.nowIso)()),a.prepare("UPDATE mines_source_documents SET extraction_status = ?, updated_at = ? WHERE id = ?").run("complete",(0,e.nowIso)(),b.id),!!c}async function i(a,b={}){let c=(0,e.getDb)();if(a?.source_document_id){let b=c.prepare("SELECT id, project_id, original_path, file_type FROM mines_source_documents WHERE id = ?").get(a.source_document_id);if(!b)return{status:"error",error:"source_document_not_found"};let d=h(c,b);return{status:"ok",assets_indexed:+!d,assets_skipped:+!!d}}let d=a?.project_id;if(!d)return{status:"error",error:"project_id_required"};let f=c.prepare("SELECT id, project_id, original_path, file_type FROM mines_source_documents WHERE project_id = ?").all(d).filter(a=>j.has(String(a.file_type||"").toLowerCase())),g=0,k=0;for(let a of f)try{h(c,a)?k++:g++}catch{k++}return{status:"ok",assets_indexed:g,assets_skipped:k}}d()}catch(a){d(a)}})},59237:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{J1:()=>h}),c(77598);var e=c(34255),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)}})},59400:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{IY:()=>B,dV:()=>A,tE:()=>x,vC:()=>y});var e=c(77030),f=c(24516),g=c(58282),h=a([f,g]);function i(a){return String(process.env[a]||"").trim()}function j(a){try{let b=(0,f.getSecret)(a);if(b)return String(b).trim()}catch{}return i(a)}function k(a={}){let b=String(a.query||a.q||"").trim();if(!b)throw Error("query is required");return b}function l(a={}){return Math.min(Math.max(Number(a.count||5),1),10)}function m({title:a,url:b,snippet:c,source:d,rank:e=0,metadata:f={}}){return{rank:e+1,title:String(a||""),url:String(b||""),snippet:String(c||""),source:d,metadata:f}}async function n(a,b={},c=fetch){let d=await c(a,b);if(!d.ok){let a=d.statusText||String(d.status);try{let b=await d.text();b&&(a=`${a}: ${b.slice(0,200)}`)}catch{}throw Error(`Request failed: ${d.status} ${a}`.trim())}return d.json()}function o(a={},b=0){return m({rank:b,title:a.title,url:a.url,snippet:a.description||a.snippet,source:"brave",metadata:{age:a.age||null,family_friendly:a.family_friendly??null}})}function p(){let a={Accept:"application/json","Content-Type":"application/json"},b=j("FIRECRAWL_API_KEY");return b&&(a.Authorization=`Bearer ${b}`),a}function q(){return(j("FIRECRAWL_API_URL")||"https://api.firecrawl.dev").replace(/\/+$/g,"")}async function r(a={},b=fetch){let c=k(a),d=l(a),e=await n(`${q()}/v1/search`,{method:"POST",headers:p(),body:JSON.stringify({query:c,limit:d})},b);return{query:c,source:"firecrawl",results:(function(a={}){return Array.isArray(a.data)?a.data:Array.isArray(a.results)?a.results:Array.isArray(a.web)?a.web:Array.isArray(a.web?.results)?a.web.results:[]})(e).slice(0,d).map((a,b)=>m({rank:b,title:a.title,url:a.url||a.link,snippet:a.description||a.snippet||a.content||a.markdown,source:"firecrawl",metadata:a.metadata||{}})).filter(a=>a.url)}}async function s(a={},b=fetch){let c=k(a),d=l(a),e=j("SEARXNG_URL");if(!e)throw Error("SEARXNG_URL not configured");let f=new URL("/search",e.replace(/\/+$/g,""));f.searchParams.set("q",c),f.searchParams.set("format","json"),(a.search_lang||a.language)&&f.searchParams.set("language",String(a.search_lang||a.language));let g=await n(f,{headers:{Accept:"application/json"}},b);return{query:c,source:"searxng",results:(g.results||[]).slice(0,d).map((a,b)=>m({rank:b,title:a.title,url:a.url,snippet:a.content||a.snippet,source:"searxng",metadata:a.metadata||{}})).filter(a=>a.url)}}async function t(a={},b=fetch){let c=j("BRAVE_SEARCH_API_KEY");if(!c)throw Error("BRAVE_SEARCH_API_KEY not configured");let d=k(a),e=l(a),f=new URL("https://api.search.brave.com/res/v1/web/search");f.searchParams.set("q",d),f.searchParams.set("count",String(e)),a.country&&f.searchParams.set("country",String(a.country)),a.search_lang&&f.searchParams.set("search_lang",String(a.search_lang));let g=await n(f,{headers:{Accept:"application/json","X-Subscription-Token":c}},b),h=(g.web?.results||[]).slice(0,e).map(o);return{query:d,source:"brave",results:h}}function u(a=""){return String(a).replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'")}function v(a=""){return u(String(a).replace(/<[^>]+>/g," ")).replace(/\s+/g," ").trim()}async function w(a={},b=fetch){let c=k(a),d=l(a),e=new URL("https://lite.duckduckgo.com/lite/");e.searchParams.set("q",c);let f=await b(e,{headers:{Accept:"text/html,application/xhtml+xml;q=0.9,*/*;q=0.2","User-Agent":"MadarxOS/1.0 (+local research tool)"}});if(!f.ok)throw Error(`DuckDuckGo Lite search failed: ${f.status}`);let g=await f.text();return{query:c,source:"fetch",results:function(a="",b=5){let c=[...String(a).matchAll(/<a\b[^>]*href=["'][^"']+["'][^>]*>[\s\S]*?<\/a>/gi)],d=[...String(a).matchAll(/<td\b[^>]*class=["'][^"']*result-snippet[^"']*["'][^>]*>([\s\S]*?)<\/td>/gi)].map(a=>v(a[1])),e=[];for(let a of c){let c=a[0].match(/<a\b[^>]*>/i)?.[0]||"",f=v(a[0]),g=function(a=""){try{let b=new URL(a,"https://lite.duckduckgo.com"),c=b.searchParams.get("uddg");if(c)return c;if(["http:","https:"].includes(b.protocol))return b.toString()}catch{}return a}(function(a,b){let c=a.match(RegExp(`${b}\\s*=\\s*["']([^"']+)["']`,"i"));return c?u(c[1]):""}(c,"href"));if(f&&/^https?:\/\//i.test(g)&&(e.push(m({rank:e.length,title:f,url:g,snippet:d[e.length]||"",source:"duckduckgo_lite",metadata:{}})),e.length>=b))break}return e}(g,d)}}async function x(a={},b={}){let c=b.agent_id??null,d=function(){let a=i("MADARX_WEB_PROVIDER").toLowerCase();if(a){if(["firecrawl","searxng","brave","fetch"].includes(a))return a;throw Error(`Unsupported MADARX_WEB_PROVIDER: ${a}`)}return j("FIRECRAWL_API_URL")||j("FIRECRAWL_API_KEY")?"firecrawl":j("SEARXNG_URL")?"searxng":j("BRAVE_SEARCH_API_KEY")?"brave":"fetch"}();return"firecrawl"===d?r(a,(0,g.N)("web_search",c)):"searxng"===d?s(a,(0,g.N)("web_search",c)):"brave"===d?t(a,(0,g.N)("web_search",c)):w(a,(0,g.N)("web_search",c))}function y(a){let b;try{b=new URL(String(a||""))}catch{throw Error("url must be a valid URL")}if(!["http:","https:"].includes(b.protocol))throw Error("Only http and https URLs are supported");let c=b.hostname.replace(/^\[|\]$/g,"").toLowerCase();if(!c)throw Error("URL host is required");if("localhost"===c||c.endsWith(".localhost")||c.endsWith(".local"))throw Error("Local/private network URLs are blocked");let d=e.isIP(c);if(4===d&&function(a){let b=a.split(".").map(Number);if(4!==b.length||b.some(a=>!Number.isInteger(a)||a<0||a>255))return!1;let[c,d]=b;return 10===c||127===c||169===c&&254===d||172===c&&d>=16&&d<=31||192===c&&168===d||0===c}(c)||6===d&&function(a){let b=a.toLowerCase();return"::1"===b||b.startsWith("fc")||b.startsWith("fd")||b.startsWith("fe80:")||"::"===b||b.startsWith("0:")}(c))throw Error("Local/private network URLs are blocked");return b}function z(a){return String(a||"").replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi," ").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi," ").replace(/<noscript\b[^>]*>[\s\S]*?<\/noscript>/gi," ").replace(/<!--[\s\S]*?-->/g," ").replace(/<\/(p|div|section|article|header|footer|main|li|h[1-6]|tr)>/gi,"\n").replace(/<[^>]+>/g," ").replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/[ \t]+\n/g,"\n").replace(/\n{3,}/g,"\n\n").replace(/[ \t]{2,}/g," ").trim()}async function A(a={},b={}){let c=b.agent_id??null,d=(0,g.N)("web_fetch",c),e=y(a.url),f=Math.min(Math.max(Number(a.max_bytes||512e3),1024),512e3),h=await d(e,{headers:{Accept:"text/html,text/plain,application/xhtml+xml,application/json;q=0.8,*/*;q=0.2","User-Agent":"MadarxOS/1.0 (+local research tool)"},redirect:"follow"});if(!h.ok)throw Error(`Fetch failed: ${h.status}`);let i=Number(h.headers.get("content-length")||0);if(i&&i>f)throw Error(`Response too large: ${i} bytes`);let j=h.body?.getReader();if(!j){let a=await h.text();if(Buffer.byteLength(a,"utf8")>f)throw Error("Response too large");return{url:e.toString(),status:h.status,content_type:h.headers.get("content-type")||"",text:z(a)}}let k=[],l=0;for(;;){let{value:a,done:b}=await j.read();if(b)break;if((l+=a.byteLength)>f)throw Error("Response too large");k.push(a)}let m=Buffer.concat(k).toString("utf8"),n=h.headers.get("content-type")||"";return{url:h.url||e.toString(),status:h.status,content_type:n,text:z(m).slice(0,Math.min(f,12e4)),source:{url:h.url||e.toString(),fetched_at:new Date().toISOString()}}}async function B(a={},b={}){let c=b.agent_id??null,d=y(a.url);if(!j("FIRECRAWL_API_URL")&&!j("FIRECRAWL_API_KEY"))return A(a,b);let e=await n(`${q()}/v1/scrape`,{method:"POST",headers:p(),body:JSON.stringify({url:d.toString(),formats:["markdown"]})},(0,g.N)("web_extract",c)),f=e.data||e,h=String(f.markdown||f.content||f.text||"");return{url:d.toString(),status:200,content_type:"text/markdown",text:h.slice(0,12e4),metadata:f.metadata||{},source:{provider:"firecrawl",url:d.toString(),fetched_at:new Date().toISOString()}}}[f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},60105:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$S:()=>at,AD:()=>ax,CM:()=>_,Ck:()=>N,Dg:()=>function a({title:b,kind:c="html",content:d,project_id:k=null,agent_id:l=null,space_id:n=null,heartbeat_task_id:o=null,dedupe_key:p=null}){(0,i.Jh)();let r=k||q.Sk,s=(0,q.hF)({status:"all"}).find(a=>a.id===r||a.slug===r),t=s?s.id:q.Sk,u=(0,j.Kg)(t),v=(b||"artifact").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")||"artifact",w=l||"main-orchestrator",y=""===p?null:p||function({agent_id:a,title:b,project_id:c}){let d=new Date().toISOString().slice(0,10),e=String(b||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");return g.createHash("sha256").update([a||"main-orchestrator",c||q.Sk,e,d].join("|")).digest("hex").slice(0,32)}({agent_id:w,title:b,project_id:t}),z=function({heartbeat_task_id:a,dedupe_key:b,project_id:c}){if(!a&&!b)return null;let d=(0,h.getDb)(),e=c||q.Sk;if(a){let b=d.prepare("SELECT id, path, kind, title FROM artifacts WHERE heartbeat_task_id = ? LIMIT 1").get(String(a));if(b)return b}if(b){let a=d.prepare("SELECT id, path, kind, title FROM artifacts WHERE dedupe_key = ? AND project_id = ? LIMIT 1").get(String(b),e);if(a)return a}return null}({heartbeat_task_id:o,dedupe_key:y,project_id:t});if(z)return{artifact_id:z.id,file_path:z.path,title:z.title||b,kind:z.kind||c,deduped:!0};let A=s&&s.org_id?s.org_id:"personal-org",B=(0,x.Pf)();function C(a,b){return B?(e.writeFileSync(a,(0,x.A5)(A,b)),{encrypted:1,encryption_key_id:A}):(e.writeFileSync(a,b,"utf8"),{encrypted:0,encryption_key_id:null})}let D="main-orchestrator"===w?"madarX Main Agent":(a=>{try{let b=a.prepare("SELECT name FROM agents WHERE id = ?").get(w);return b?.name||w}catch{return w}})((0,h.getDb)());if("markdown"===c||"text"===c){let a=(0,m.vr)(d||""),c=(0,m.j7)({title:b,markdown:a}),e=f.join(u,`${v}-${Date.now().toString(36)}.md`),{encrypted:g,encryption_key_id:h}=C(e,a),j=(0,i.z9)(e),k=X({kind:"artifact-created",title:`Created artifact: ${b}`,agent:D,agent_id:w,artifact:j,preview:a.slice(0,200),triggered_by:"claude",status:"complete"}),l=Y({run_id:k.id,agent_id:w,file_path:j,kind:"document",title:b,content:c,source_md:a,project_id:t,encrypted:g,encryption_key_id:h,space_id:n,heartbeat_task_id:o,dedupe_key:y});try{(0,q.Ip)(t,{action:"project.artifact.created",actor_type:"agent",agent_id:w,run_id:k.id,title:`Created artifact: ${b}`,summary:`New document "${b}" is in the library.`,status:"complete",source:"artifact",update_kind:"progress",details:{artifact_id:l,kind:"document",folder_id:null}})}catch{}return{artifact_id:l,file_path:j,title:b,kind:"document"}}if("html"===c){let c=(d||"").trimStart().slice(0,200).toLowerCase();if(!(c.startsWith("<!doctype")||c.startsWith("<html")||c.includes("<body")))return a({title:b,kind:"markdown",content:d,project_id:k,agent_id:l,space_id:n,heartbeat_task_id:o,dedupe_key:p})}let E=(d||"").trimStart().slice(0,200).toLowerCase(),F=E.startsWith("<!doctype")||E.startsWith("<html")||E.includes("<body"),G="html"===c||F?(0,m.vr)(d||""):d||"",H=f.join(u,`${v}-${Date.now().toString(36)}.${"html"===c||F?"html":"txt"}`),{encrypted:I,encryption_key_id:J}=C(H,G),K=(0,i.z9)(H),L=X({kind:"artifact-created",title:`Created artifact: ${b}`,agent:D,agent_id:w,artifact:K,preview:G.slice(0,200),triggered_by:"claude",status:"complete"}),M=Y({run_id:L.id,agent_id:w,file_path:K,kind:c,title:b,content:G,project_id:t,encrypted:I,encryption_key_id:J,space_id:n,heartbeat_task_id:o,dedupe_key:y});try{(0,q.Ip)(t,{action:"project.artifact.created",actor_type:"agent",agent_id:w,run_id:L.id,title:`Created artifact: ${b}`,summary:`New ${c} artifact "${b}" is in the library.`,status:"complete",source:"artifact",update_kind:"progress",details:{artifact_id:M,kind:c,folder_id:null}})}catch{}return{artifact_id:M,file_path:K,title:b,kind:c}},Gu:()=>am,IG:()=>ak,JY:()=>K,K2:()=>I,Mh:()=>Q,NK:()=>ai,Nv:()=>ag,OH:()=>ab,PF:()=>R,RB:()=>ad,RG:()=>O,S9:()=>aa,Sn:()=>ac,UA:()=>as,V1:()=>M,W1:()=>L,WU:()=>G,Xr:()=>J,YS:()=>ap,_u:()=>S,appendAudit:()=>W,bC:()=>af,eP:()=>$,fB:()=>ar,fk:()=>aq,jZ:()=>V,mk:()=>aj,mo:()=>au,n1:()=>U,nF:()=>al,q:()=>av,recordArtifact:()=>Y,recordRun:()=>X,v:()=>P,vc:()=>F,wn:()=>T,x4:()=>ae});var e=c(73024),f=c(76760),g=c(77598),h=c(34255),i=c(9381),j=c(73066),k=c(90712),l=c(14743),m=c(8727),n=c(40563),o=c(8437),p=c(72326),q=c(61423),r=c(83963),s=c(40718),t=c(60897),u=c(67179),v=c(9001),w=c(81833),x=c(79133),y=a([h,j,l,m,n,o,p,q,r,s,u,v,w]);function z(a){return String(a||"agent").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,64)||"agent"}function A(){return new Date().toISOString().slice(0,10)}function B(a,b){if(!a)return b;try{return JSON.parse(a)}catch{return b}}function C(a){return a?{id:a.id,name:a.name,type:a.type,engine:(0,p.$k)(a.engine),model:a.model||(0,p.Qp)(a.engine),mission:a.mission,schedule:a.schedule,tools:B(a.tools,[]),status:a.status,approval:a.approval,generated:1===a.generated,files:B(a.files,[]),system_prompt:a.system_prompt||null,expected_output:a.expected_output||null,memory:B(a.memory,[]),created_at:a.created_at,last_heartbeat:a.last_heartbeat,last_run_at:a.last_run_at,next_run_at:a.next_run_at,reports_to:a.reports_to||null,role:a.role||null,title:a.title||null,status_reason:a.status_reason||null,autonomy_mode:a.autonomy_mode||null,budget_monthly_cents:Number(a.budget_monthly_cents||0),spent_monthly_cents:Number(a.spent_monthly_cents||0),permissions_json:B(a.permissions_json,{}),metadata_json:B(a.metadata_json,{}),project_id:a.project_id||null,template_slug:a.template_slug||null,default_space_id:a.default_space_id||null}:null}function D(a){return a?{id:a.id,agent_id:a.agent_id,agent_name:a.agent_name,schedule:a.schedule,action_kind:a.action_kind,enabled:1===a.enabled,next_run_at:a.next_run_at,last_run_at:a.last_run_at,delivery:a.delivery,approval:a.approval,last_queued_at:a.last_queued_at,last_queued_window:a.last_queued_window,updated_at:a.updated_at}:null}function E(a){return a?{...a}:null}function F(){return(0,h.getDb)().prepare("SELECT * FROM agents ORDER BY generated ASC, name ASC").all().map(C)}function G(a){let b=(0,h.getDb)();return C(b.prepare("SELECT * FROM agents WHERE id = ?").get(a))}function H(a){return a?{id:a.id,agent_id:a.agent_id,tool_name:a.tool_name,mode:a.mode,created_at:a.created_at,updated_at:a.updated_at}:null}function I(a){return(0,h.getDb)().prepare("SELECT * FROM agent_tool_permissions WHERE agent_id = ? ORDER BY tool_name ASC").all(a).map(H)}function J(a,b,c="approval_required"){if(!a||!b)throw Error("agent_id and tool_name are required");if(!["auto","approval_required","disabled"].includes(c))throw Error(`Invalid tool permission mode: ${c}`);let d=(0,h.getDb)(),e=(0,h.nowIso)(),f=`perm-${a}-${b}`.replace(/[^a-zA-Z0-9_-]/g,"-");return d.prepare(`
|
|
3052
|
+
`).run((0,e.newId)("msa"),b.project_id,d.kind,b.original_path,d.crs,d.bbox?JSON.stringify(d.bbox):null,d.file_size_bytes,(0,e.nowIso)()),a.prepare("UPDATE mines_source_documents SET extraction_status = ?, updated_at = ? WHERE id = ?").run("complete",(0,e.nowIso)(),b.id),!!c}async function i(a,b={}){let c=(0,e.getDb)();if(a?.source_document_id){let b=c.prepare("SELECT id, project_id, original_path, file_type FROM mines_source_documents WHERE id = ?").get(a.source_document_id);if(!b)return{status:"error",error:"source_document_not_found"};let d=h(c,b);return{status:"ok",assets_indexed:+!d,assets_skipped:+!!d}}let d=a?.project_id;if(!d)return{status:"error",error:"project_id_required"};let f=c.prepare("SELECT id, project_id, original_path, file_type FROM mines_source_documents WHERE project_id = ?").all(d).filter(a=>j.has(String(a.file_type||"").toLowerCase())),g=0,k=0;for(let a of f)try{h(c,a)?k++:g++}catch{k++}return{status:"ok",assets_indexed:g,assets_skipped:k}}d()}catch(a){d(a)}})},59237:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{J1:()=>h}),c(77598);var e=c(34255),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)}})},59400:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{IY:()=>B,dV:()=>A,tE:()=>x,vC:()=>y});var e=c(77030),f=c(24516),g=c(58282),h=a([f,g]);function i(a){return String(process.env[a]||"").trim()}function j(a){try{let b=(0,f.getSecret)(a);if(b)return String(b).trim()}catch{}return i(a)}function k(a={}){let b=String(a.query||a.q||"").trim();if(!b)throw Error("query is required");return b}function l(a={}){return Math.min(Math.max(Number(a.count||5),1),10)}function m({title:a,url:b,snippet:c,source:d,rank:e=0,metadata:f={}}){return{rank:e+1,title:String(a||""),url:String(b||""),snippet:String(c||""),source:d,metadata:f}}async function n(a,b={},c=fetch){let d=await c(a,b);if(!d.ok){let a=d.statusText||String(d.status);try{let b=await d.text();b&&(a=`${a}: ${b.slice(0,200)}`)}catch{}throw Error(`Request failed: ${d.status} ${a}`.trim())}return d.json()}function o(a={},b=0){return m({rank:b,title:a.title,url:a.url,snippet:a.description||a.snippet,source:"brave",metadata:{age:a.age||null,family_friendly:a.family_friendly??null}})}function p(){let a={Accept:"application/json","Content-Type":"application/json"},b=j("FIRECRAWL_API_KEY");return b&&(a.Authorization=`Bearer ${b}`),a}function q(){return(j("FIRECRAWL_API_URL")||"https://api.firecrawl.dev").replace(/\/+$/g,"")}async function r(a={},b=fetch){let c=k(a),d=l(a),e=await n(`${q()}/v1/search`,{method:"POST",headers:p(),body:JSON.stringify({query:c,limit:d})},b);return{query:c,source:"firecrawl",results:(function(a={}){return Array.isArray(a.data)?a.data:Array.isArray(a.results)?a.results:Array.isArray(a.web)?a.web:Array.isArray(a.web?.results)?a.web.results:[]})(e).slice(0,d).map((a,b)=>m({rank:b,title:a.title,url:a.url||a.link,snippet:a.description||a.snippet||a.content||a.markdown,source:"firecrawl",metadata:a.metadata||{}})).filter(a=>a.url)}}async function s(a={},b=fetch){let c=k(a),d=l(a),e=j("SEARXNG_URL");if(!e)throw Error("SEARXNG_URL not configured");let f=new URL("/search",e.replace(/\/+$/g,""));f.searchParams.set("q",c),f.searchParams.set("format","json"),(a.search_lang||a.language)&&f.searchParams.set("language",String(a.search_lang||a.language));let g=await n(f,{headers:{Accept:"application/json"}},b);return{query:c,source:"searxng",results:(g.results||[]).slice(0,d).map((a,b)=>m({rank:b,title:a.title,url:a.url,snippet:a.content||a.snippet,source:"searxng",metadata:a.metadata||{}})).filter(a=>a.url)}}async function t(a={},b=fetch){let c=j("BRAVE_SEARCH_API_KEY");if(!c)throw Error("BRAVE_SEARCH_API_KEY not configured");let d=k(a),e=l(a),f=new URL("https://api.search.brave.com/res/v1/web/search");f.searchParams.set("q",d),f.searchParams.set("count",String(e)),a.country&&f.searchParams.set("country",String(a.country)),a.search_lang&&f.searchParams.set("search_lang",String(a.search_lang));let g=await n(f,{headers:{Accept:"application/json","X-Subscription-Token":c}},b),h=(g.web?.results||[]).slice(0,e).map(o);return{query:d,source:"brave",results:h}}function u(a=""){return String(a).replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'")}function v(a=""){return u(String(a).replace(/<[^>]+>/g," ")).replace(/\s+/g," ").trim()}async function w(a={},b=fetch){let c=k(a),d=l(a),e=new URL("https://lite.duckduckgo.com/lite/");e.searchParams.set("q",c);let f=await b(e,{headers:{Accept:"text/html,application/xhtml+xml;q=0.9,*/*;q=0.2","User-Agent":"MadarxOS/1.0 (+local research tool)"}});if(!f.ok)throw Error(`DuckDuckGo Lite search failed: ${f.status}`);let g=await f.text();return{query:c,source:"fetch",results:function(a="",b=5){let c=[...String(a).matchAll(/<a\b[^>]*href=["'][^"']+["'][^>]*>[\s\S]*?<\/a>/gi)],d=[...String(a).matchAll(/<td\b[^>]*class=["'][^"']*result-snippet[^"']*["'][^>]*>([\s\S]*?)<\/td>/gi)].map(a=>v(a[1])),e=[];for(let a of c){let c=a[0].match(/<a\b[^>]*>/i)?.[0]||"",f=v(a[0]),g=function(a=""){try{let b=new URL(a,"https://lite.duckduckgo.com"),c=b.searchParams.get("uddg");if(c)return c;if(["http:","https:"].includes(b.protocol))return b.toString()}catch{}return a}(function(a,b){let c=a.match(RegExp(`${b}\\s*=\\s*["']([^"']+)["']`,"i"));return c?u(c[1]):""}(c,"href"));if(f&&/^https?:\/\//i.test(g)&&(e.push(m({rank:e.length,title:f,url:g,snippet:d[e.length]||"",source:"duckduckgo_lite",metadata:{}})),e.length>=b))break}return e}(g,d)}}async function x(a={},b={}){let c=b.agent_id??null,d=function(){let a=i("MADARX_WEB_PROVIDER").toLowerCase();if(a){if(["firecrawl","searxng","brave","fetch"].includes(a))return a;throw Error(`Unsupported MADARX_WEB_PROVIDER: ${a}`)}return j("FIRECRAWL_API_URL")||j("FIRECRAWL_API_KEY")?"firecrawl":j("SEARXNG_URL")?"searxng":j("BRAVE_SEARCH_API_KEY")?"brave":"fetch"}();return"firecrawl"===d?r(a,(0,g.N)("web_search",c)):"searxng"===d?s(a,(0,g.N)("web_search",c)):"brave"===d?t(a,(0,g.N)("web_search",c)):w(a,(0,g.N)("web_search",c))}function y(a){let b;try{b=new URL(String(a||""))}catch{throw Error("url must be a valid URL")}if(!["http:","https:"].includes(b.protocol))throw Error("Only http and https URLs are supported");let c=b.hostname.replace(/^\[|\]$/g,"").toLowerCase();if(!c)throw Error("URL host is required");if("localhost"===c||c.endsWith(".localhost")||c.endsWith(".local"))throw Error("Local/private network URLs are blocked");let d=e.isIP(c);if(4===d&&function(a){let b=a.split(".").map(Number);if(4!==b.length||b.some(a=>!Number.isInteger(a)||a<0||a>255))return!1;let[c,d]=b;return 10===c||127===c||169===c&&254===d||172===c&&d>=16&&d<=31||192===c&&168===d||0===c}(c)||6===d&&function(a){let b=a.toLowerCase();return"::1"===b||b.startsWith("fc")||b.startsWith("fd")||b.startsWith("fe80:")||"::"===b||b.startsWith("0:")}(c))throw Error("Local/private network URLs are blocked");return b}function z(a){return String(a||"").replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi," ").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi," ").replace(/<noscript\b[^>]*>[\s\S]*?<\/noscript>/gi," ").replace(/<!--[\s\S]*?-->/g," ").replace(/<\/(p|div|section|article|header|footer|main|li|h[1-6]|tr)>/gi,"\n").replace(/<[^>]+>/g," ").replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/[ \t]+\n/g,"\n").replace(/\n{3,}/g,"\n\n").replace(/[ \t]{2,}/g," ").trim()}async function A(a={},b={}){let c=b.agent_id??null,d=(0,g.N)("web_fetch",c),e=y(a.url),f=Math.min(Math.max(Number(a.max_bytes||512e3),1024),512e3),h=await d(e,{headers:{Accept:"text/html,text/plain,application/xhtml+xml,application/json;q=0.8,*/*;q=0.2","User-Agent":"MadarxOS/1.0 (+local research tool)"},redirect:"follow"});if(!h.ok)throw Error(`Fetch failed: ${h.status}`);let i=Number(h.headers.get("content-length")||0);if(i&&i>f)throw Error(`Response too large: ${i} bytes`);let j=h.body?.getReader();if(!j){let a=await h.text();if(Buffer.byteLength(a,"utf8")>f)throw Error("Response too large");return{url:e.toString(),status:h.status,content_type:h.headers.get("content-type")||"",text:z(a)}}let k=[],l=0;for(;;){let{value:a,done:b}=await j.read();if(b)break;if((l+=a.byteLength)>f)throw Error("Response too large");k.push(a)}let m=Buffer.concat(k).toString("utf8"),n=h.headers.get("content-type")||"";return{url:h.url||e.toString(),status:h.status,content_type:n,text:z(m).slice(0,Math.min(f,12e4)),source:{url:h.url||e.toString(),fetched_at:new Date().toISOString()}}}async function B(a={},b={}){let c=b.agent_id??null,d=y(a.url);if(!j("FIRECRAWL_API_URL")&&!j("FIRECRAWL_API_KEY"))return A(a,b);let e=await n(`${q()}/v1/scrape`,{method:"POST",headers:p(),body:JSON.stringify({url:d.toString(),formats:["markdown"]})},(0,g.N)("web_extract",c)),f=e.data||e,h=String(f.markdown||f.content||f.text||"");return{url:d.toString(),status:200,content_type:"text/markdown",text:h.slice(0,12e4),metadata:f.metadata||{},source:{provider:"firecrawl",url:d.toString(),fetched_at:new Date().toISOString()}}}[f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},60105:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$S:()=>au,AD:()=>ay,CM:()=>_,Ck:()=>N,Dg:()=>function a({title:b,kind:c="html",content:d,project_id:k=null,agent_id:l=null,space_id:n=null,heartbeat_task_id:o=null,dedupe_key:p=null}){(0,i.Jh)();let r=k||q.Sk,s=(0,q.hF)({status:"all"}).find(a=>a.id===r||a.slug===r),t=s?s.id:q.Sk,u=(0,j.Kg)(t),v=(b||"artifact").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")||"artifact",w=l||"main-orchestrator",y=""===p?null:p||function({agent_id:a,title:b,project_id:c}){let d=new Date().toISOString().slice(0,10),e=String(b||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");return g.createHash("sha256").update([a||"main-orchestrator",c||q.Sk,e,d].join("|")).digest("hex").slice(0,32)}({agent_id:w,title:b,project_id:t}),z=function({heartbeat_task_id:a,dedupe_key:b,project_id:c}){if(!a&&!b)return null;let d=(0,h.getDb)(),e=c||q.Sk;if(a){let b=d.prepare("SELECT id, path, kind, title FROM artifacts WHERE heartbeat_task_id = ? LIMIT 1").get(String(a));if(b)return b}if(b){let a=d.prepare("SELECT id, path, kind, title FROM artifacts WHERE dedupe_key = ? AND project_id = ? LIMIT 1").get(String(b),e);if(a)return a}return null}({heartbeat_task_id:o,dedupe_key:y,project_id:t});if(z)return{artifact_id:z.id,file_path:z.path,title:z.title||b,kind:z.kind||c,deduped:!0};let A=s&&s.org_id?s.org_id:"personal-org",B=(0,x.Pf)();function C(a,b){return B?(e.writeFileSync(a,(0,x.A5)(A,b)),{encrypted:1,encryption_key_id:A}):(e.writeFileSync(a,b,"utf8"),{encrypted:0,encryption_key_id:null})}let D="main-orchestrator"===w?"madarX Main Agent":(a=>{try{let b=a.prepare("SELECT name FROM agents WHERE id = ?").get(w);return b?.name||w}catch{return w}})((0,h.getDb)());if("markdown"===c||"text"===c){let a=(0,m.vr)(d||""),c=(0,m.j7)({title:b,markdown:a}),e=f.join(u,`${v}-${Date.now().toString(36)}.md`),{encrypted:g,encryption_key_id:h}=C(e,a),j=(0,i.z9)(e),k=X({kind:"artifact-created",title:`Created artifact: ${b}`,agent:D,agent_id:w,artifact:j,preview:a.slice(0,200),triggered_by:"claude",status:"complete"}),l=Y({run_id:k.id,agent_id:w,file_path:j,kind:"document",title:b,content:c,source_md:a,project_id:t,encrypted:g,encryption_key_id:h,space_id:n,heartbeat_task_id:o,dedupe_key:y});try{(0,q.Ip)(t,{action:"project.artifact.created",actor_type:"agent",agent_id:w,run_id:k.id,title:`Created artifact: ${b}`,summary:`New document "${b}" is in the library.`,status:"complete",source:"artifact",update_kind:"progress",details:{artifact_id:l,kind:"document",folder_id:null}})}catch{}return{artifact_id:l,file_path:j,title:b,kind:"document"}}if("html"===c){let c=(d||"").trimStart().slice(0,200).toLowerCase();if(!(c.startsWith("<!doctype")||c.startsWith("<html")||c.includes("<body")))return a({title:b,kind:"markdown",content:d,project_id:k,agent_id:l,space_id:n,heartbeat_task_id:o,dedupe_key:p})}let E=(d||"").trimStart().slice(0,200).toLowerCase(),F=E.startsWith("<!doctype")||E.startsWith("<html")||E.includes("<body"),G="html"===c||F?(0,m.vr)(d||""):d||"",H=f.join(u,`${v}-${Date.now().toString(36)}.${"html"===c||F?"html":"txt"}`),{encrypted:I,encryption_key_id:J}=C(H,G),K=(0,i.z9)(H),L=X({kind:"artifact-created",title:`Created artifact: ${b}`,agent:D,agent_id:w,artifact:K,preview:G.slice(0,200),triggered_by:"claude",status:"complete"}),M=Y({run_id:L.id,agent_id:w,file_path:K,kind:c,title:b,content:G,project_id:t,encrypted:I,encryption_key_id:J,space_id:n,heartbeat_task_id:o,dedupe_key:y});try{(0,q.Ip)(t,{action:"project.artifact.created",actor_type:"agent",agent_id:w,run_id:L.id,title:`Created artifact: ${b}`,summary:`New ${c} artifact "${b}" is in the library.`,status:"complete",source:"artifact",update_kind:"progress",details:{artifact_id:M,kind:c,folder_id:null}})}catch{}return{artifact_id:M,file_path:K,title:b,kind:c}},Gu:()=>am,IG:()=>ak,JY:()=>K,K2:()=>I,Mh:()=>Q,NK:()=>ai,Nv:()=>ag,OH:()=>ab,PF:()=>R,RB:()=>ad,RG:()=>O,S9:()=>aa,Sn:()=>ac,UA:()=>as,V1:()=>M,W1:()=>L,WU:()=>G,Wk:()=>at,Xr:()=>J,YS:()=>ap,_u:()=>S,appendAudit:()=>W,bC:()=>af,eP:()=>$,fB:()=>ar,fk:()=>aq,jZ:()=>V,mk:()=>aj,mo:()=>av,n1:()=>U,nF:()=>al,q:()=>aw,recordArtifact:()=>Y,recordRun:()=>X,v:()=>P,vc:()=>F,wn:()=>T,x4:()=>ae});var e=c(73024),f=c(76760),g=c(77598),h=c(34255),i=c(9381),j=c(73066),k=c(90712),l=c(14743),m=c(8727),n=c(40563),o=c(8437),p=c(72326),q=c(61423),r=c(83963),s=c(40718),t=c(60897),u=c(67179),v=c(9001),w=c(81833),x=c(79133),y=a([h,j,l,m,n,o,p,q,r,s,u,v,w]);function z(a){return String(a||"agent").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,64)||"agent"}function A(){return new Date().toISOString().slice(0,10)}function B(a,b){if(!a)return b;try{return JSON.parse(a)}catch{return b}}function C(a){return a?{id:a.id,name:a.name,type:a.type,engine:(0,p.$k)(a.engine),model:a.model||(0,p.Qp)(a.engine),mission:a.mission,schedule:a.schedule,tools:B(a.tools,[]),status:a.status,approval:a.approval,generated:1===a.generated,files:B(a.files,[]),system_prompt:a.system_prompt||null,expected_output:a.expected_output||null,memory:B(a.memory,[]),created_at:a.created_at,last_heartbeat:a.last_heartbeat,last_run_at:a.last_run_at,next_run_at:a.next_run_at,reports_to:a.reports_to||null,role:a.role||null,title:a.title||null,status_reason:a.status_reason||null,autonomy_mode:a.autonomy_mode||null,budget_monthly_cents:Number(a.budget_monthly_cents||0),spent_monthly_cents:Number(a.spent_monthly_cents||0),permissions_json:B(a.permissions_json,{}),metadata_json:B(a.metadata_json,{}),project_id:a.project_id||null,template_slug:a.template_slug||null,default_space_id:a.default_space_id||null}:null}function D(a){return a?{id:a.id,agent_id:a.agent_id,agent_name:a.agent_name,schedule:a.schedule,action_kind:a.action_kind,enabled:1===a.enabled,next_run_at:a.next_run_at,last_run_at:a.last_run_at,delivery:a.delivery,approval:a.approval,last_queued_at:a.last_queued_at,last_queued_window:a.last_queued_window,updated_at:a.updated_at}:null}function E(a){return a?{...a}:null}function F(){return(0,h.getDb)().prepare("SELECT * FROM agents ORDER BY generated ASC, name ASC").all().map(C)}function G(a){let b=(0,h.getDb)();return C(b.prepare("SELECT * FROM agents WHERE id = ?").get(a))}function H(a){return a?{id:a.id,agent_id:a.agent_id,tool_name:a.tool_name,mode:a.mode,created_at:a.created_at,updated_at:a.updated_at}:null}function I(a){return(0,h.getDb)().prepare("SELECT * FROM agent_tool_permissions WHERE agent_id = ? ORDER BY tool_name ASC").all(a).map(H)}function J(a,b,c="approval_required"){if(!a||!b)throw Error("agent_id and tool_name are required");if(!["auto","approval_required","disabled"].includes(c))throw Error(`Invalid tool permission mode: ${c}`);let d=(0,h.getDb)(),e=(0,h.nowIso)(),f=`perm-${a}-${b}`.replace(/[^a-zA-Z0-9_-]/g,"-");return d.prepare(`
|
|
3048
3053
|
INSERT INTO agent_tool_permissions (id, agent_id, tool_name, mode, created_at, updated_at)
|
|
3049
3054
|
VALUES (?, ?, ?, ?, ?, ?)
|
|
3050
3055
|
ON CONFLICT(agent_id, tool_name) DO UPDATE SET mode=excluded.mode, updated_at=excluded.updated_at
|
|
@@ -3214,7 +3219,7 @@ Day 7: Owner report — leads, bookings, content performance, next experiments.
|
|
|
3214
3219
|
${e}`,triggered_by:b})}function am({project_id:a=null}={}){(0,i.Jh)();let b=(0,r.hC)(),c=a||null;if(c)try{let a=(0,q.hF)({status:"all"}).find(a=>a.id===c||a.slug===c);a&&(c=a.id)}catch{}let d=a=>!c||a?.project_id===c;return{ok:!0,product:"madarX OS",workspace:"Client Workspace",project_filter:c||null,projects:(0,q.hF)({status:"all"}),agents:F().filter(d),tasks:(0,r.Vk)({limit:100}).filter(d),runs:P(20).filter(d),audit:S(20).filter(d),activity:(0,r.kP)({limit:50}).filter(d),schedules:O().filter(d),connectors:(0,h.getDb)().prepare("SELECT * FROM connectors ORDER BY name ASC").all(),artifacts:T(500).filter(a=>d(a)||a.pinned_to_space_at),heartbeat_tasks:(0,n.N$)(20).filter(d),heartbeat_task_events:(0,n.vK)({limit:100}).filter(a=>!c||a.project_id===c||(0,h.getDb)().prepare("SELECT project_id FROM heartbeat_tasks WHERE id=?").get(a.task_id)?.project_id===c),approvals:(0,o.ct)({project_id:c,limit:20}),pending_approvals:(0,o.ct)({status:"pending",project_id:c,limit:20}),local_processes:function(a=20){return(0,h.getDb)().prepare("SELECT * FROM local_processes ORDER BY updated_at DESC LIMIT ?").all(a)}(20),local_tool_audit:S(50).filter(a=>String(a.type||"").startsWith("local.")&&d(a)).slice(0,20),main_agent_trust_mode:(0,s.yC)(),reporting:b,processes:function(a){try{let b=(0,h.getDb)(),c=a?"WHERE project_id = ?":"",d=a?[a]:[],e=b.prepare(`SELECT id, definition_slug, project_id, title, status, current_stage_slug, updated_at, completed_at
|
|
3215
3220
|
FROM process_cases ${c}
|
|
3216
3221
|
ORDER BY updated_at DESC
|
|
3217
|
-
LIMIT 20`).all(...d),f=b.prepare(`SELECT status, COUNT(*) AS n FROM process_cases ${c} GROUP BY status`).all(...d).reduce((a,b)=>(a[b.status]=b.n,a),{});return{active_count:["intake","running","awaiting_approval"].reduce((a,b)=>a+(f[b]||0),0),by_status:f,recent_cases:e}}catch{return{active_count:0,by_status:{},recent_cases:[]}}}(c),hail:function(){try{let a=(0,h.getDb)().prepare("SELECT current_stage AS stage, COUNT(*) AS n FROM hail_engagements WHERE status = 'active' GROUP BY current_stage").all().reduce((a,b)=>(a[b.stage]=b.n,a),{});return{active_count:Object.values(a).reduce((a,b)=>a+b,0),by_stage:a}}catch{return{active_count:0,by_stage:{}}}}()}}function an(a){return a
|
|
3222
|
+
LIMIT 20`).all(...d),f=b.prepare(`SELECT status, COUNT(*) AS n FROM process_cases ${c} GROUP BY status`).all(...d).reduce((a,b)=>(a[b.status]=b.n,a),{});return{active_count:["intake","running","awaiting_approval"].reduce((a,b)=>a+(f[b]||0),0),by_status:f,recent_cases:e}}catch{return{active_count:0,by_status:{},recent_cases:[]}}}(c),hail:function(){try{let a=(0,h.getDb)().prepare("SELECT current_stage AS stage, COUNT(*) AS n FROM hail_engagements WHERE status = 'active' GROUP BY current_stage").all().reduce((a,b)=>(a[b.stage]=b.n,a),{});return{active_count:Object.values(a).reduce((a,b)=>a+b,0),by_stage:a}}catch{return{active_count:0,by_stage:{}}}}()}}[h,j,l,m,n,o,p,q,r,s,u,v,w]=y.then?(await y)():y;let az=Number(process.env.MADARX_ACTIVE_TURN_TTL_MS)||9e5;function an(a){if(!a)return null;let b=function(a){if(!a)return!1;let b=Date.parse(a);return!Number.isNaN(b)&&Date.now()-b<az}(a.active_turn_started_at);return{id:a.id,title:a.title,model:a.model,created_at:a.created_at,last_message_at:a.last_message_at,message_count:a.message_count,total_input_tokens:a.total_input_tokens,total_output_tokens:a.total_output_tokens,total_cache_read_tokens:a.total_cache_read_tokens,total_cache_creation_tokens:a.total_cache_creation_tokens,last_context_tokens:a.last_context_tokens,active_turn_id:b&&a.active_turn_id||null,active_turn_started_at:b&&a.active_turn_started_at||null,agent_working:b&&!!a.active_turn_id}}function ao(a){return a?{id:a.id,session_id:a.session_id,role:a.role,content:a.content,tool_calls:B(a.tool_calls,null),model:a.model,input_tokens:a.input_tokens,output_tokens:a.output_tokens,cache_read_tokens:a.cache_read_tokens,cache_creation_tokens:a.cache_creation_tokens,at:a.at}:null}function ap(a=50){return(0,h.getDb)().prepare("SELECT * FROM chat_sessions ORDER BY COALESCE(last_message_at, created_at) DESC LIMIT ?").all(a).map(an)}function aq(a){let b=(0,h.getDb)(),c=b.prepare("SELECT * FROM chat_sessions WHERE id = ?").get(a);if(!c)return null;let d=b.prepare("SELECT * FROM chat_messages WHERE session_id = ? ORDER BY at ASC").all(a).map(ao);return{...an(c),messages:d}}function ar({title:a=null,model:b=null}={}){let c=(0,h.getDb)(),d=(0,h.newId)("chat"),e=(0,h.nowIso)();return c.prepare(`
|
|
3218
3223
|
INSERT INTO chat_sessions
|
|
3219
3224
|
(id, title, model, created_at, last_message_at, message_count,
|
|
3220
3225
|
total_input_tokens, total_output_tokens,
|
|
@@ -3237,11 +3242,11 @@ ${e}`,triggered_by:b})}function am({project_id:a=null}={}){(0,i.Jh)();let b=(0,r
|
|
|
3237
3242
|
total_cache_creation_tokens = total_cache_creation_tokens + ?,
|
|
3238
3243
|
last_context_tokens = CASE WHEN ? > 0 THEN ? ELSE last_context_tokens END
|
|
3239
3244
|
WHERE id = ?
|
|
3240
|
-
`).run(p,e,n,0|f,0|g,0|i,0|j,q,q,a),{id:m,session_id:a,role:b,at:n}}function at(a,b){let c=(0,h.getDb)(),d=String(b||"").slice(0,200);return{ok:c.prepare("UPDATE chat_sessions SET title = ? WHERE id = ?").run(d,a).changes>0}}function
|
|
3245
|
+
`).run(p,e,n,0|f,0|g,0|i,0|j,q,q,a),{id:m,session_id:a,role:b,at:n}}function at(a,b){if(!a)return{ok:!1};let c=(0,h.getDb)();try{return b?c.prepare("UPDATE chat_sessions SET active_turn_id = ?, active_turn_started_at = ? WHERE id = ?").run(String(b),(0,h.nowIso)(),a):c.prepare("UPDATE chat_sessions SET active_turn_id = NULL, active_turn_started_at = NULL WHERE id = ?").run(a),{ok:!0}}catch{return{ok:!1}}}function au(a,b){let c=(0,h.getDb)(),d=String(b||"").slice(0,200);return{ok:c.prepare("UPDATE chat_sessions SET title = ? WHERE id = ?").run(d,a).changes>0}}function av(a){return{ok:(0,h.getDb)().prepare("DELETE FROM chat_sessions WHERE id = ?").run(a).changes>0}}function aw(a={}){let b=String(a.prompt||"").trim(),c=b.toLowerCase(),d=String(a.channel||"http"),e=a.from?String(a.from):null,f=(a,b)=>"whatsapp"!==d?a:{...a,channel:d,from:e,reply_text:function(a,b){if(!a)return b||"";let c=[];return a.title&&c.push(a.title),a.preview&&c.push(a.preview),!c.length&&b&&c.push(b),c.join("\n\n").replace(/`{1,3}/g,"").replace(/\*\*/g,"").replace(/<\/?[^>]+>/g,"").trim()}(a,b)};if(!b)return f(X({kind:"orchestrator-note",title:"Empty orchestrator command",agent:"madarX Main Agent",agent_id:"main-orchestrator",artifact:"none",preview:"Type a command for the madarX Main Agent."}),"Type a command for the madarX Main Agent.");if(c.includes("create agent")||c.includes("new agent")){let a=[];c.includes("instagram")&&a.push("instagram-public-view"),c.includes("tiktok")&&a.push("tiktok-public-view"),c.includes("web")&&a.push("web-search"),c.includes("browser")&&a.push("browser"),(c.includes("scrap")||c.includes("scrape"))&&a.push("browser-scrape"),(c.includes("mail")||c.includes("email"))&&a.push("gmail-draft"),(c.includes("ui")||c.includes("mockup")||c.includes("landing"))&&a.push("claude-code","browser-qa"),a.length||a.push("web-search","browser","files","cron");let d=c.includes("noon")?"daily 12:00":c.includes("08:15")?"daily 08:15":c.includes("daily")?"daily 07:30":"on demand",e=ac({name:function(a){let b=String(a||"").match(/create(?: an)? agent\s+([a-z0-9][a-z0-9\s-]{2,60}?)(?:\s+with|\s+to|\s+for|\s+every|\s+daily|$)/i);return b?b[1].trim().replace(/\s+/g," "):"Client Workspace Custom Agent"}(b),type:"custom",mission:b,schedule:d,tools:a});"on demand"!==d&&ag({agent_id:e.agent.id,schedule:d,action_kind:"agent-tick"});let g=X({kind:"agent-created",title:`Created ${e.agent.name}`,agent:"madarX Main Agent",agent_id:"main-orchestrator",artifact:e.files.join(", "),preview:`${e.agent.name} created with ${e.files.length} local files.`,triggered_by:"orchestrator"});return f({...g,created_agent:e.agent,files:e.files},`${e.agent.name} created with ${e.files.length} local files.`)}return c.includes("marketing")||c.includes("content plan")||c.includes("social media")?f(aj({triggered_by:"orchestrator"}),"Marketing plan generated."):c.includes("competitor")||c.includes("daily report")?f(ai({triggered_by:"orchestrator"}),"Competitor report generated."):c.includes("heartbeat")||c.includes("schedule tick")?f(ak({triggered_by:"orchestrator"}),"Heartbeat tick completed."):c.includes("claude")||c.includes("ui mockup")||c.includes("website")||c.includes("landing page")?f(al({prompt:b},{triggered_by:"orchestrator"}),"Claude Code command prepared. Approve in the dashboard to execute."):f(X({kind:"orchestrator-plan",title:"Main agent routed command",agent:"madarX Main Agent",agent_id:"main-orchestrator",artifact:"audit log",preview:`Main agent received: ${b}
|
|
3241
3246
|
|
|
3242
|
-
Next action: choose a specialized agent, create a local run folder, keep human-in-loop approval before external actions.`,triggered_by:"orchestrator"}),`Received: ${b}`)}async function
|
|
3247
|
+
Next action: choose a specialized agent, create a local run folder, keep human-in-loop approval before external actions.`,triggered_by:"orchestrator"}),`Received: ${b}`)}async function ax({once:a=!0}={}){let b=(0,h.getDb)(),c=(0,h.nowIso)(),d=Number(process.env.MADARX_BACKFILL_MAX_WINDOWS||10),e=b.prepare(`SELECT *, created_by_user_id FROM schedules
|
|
3243
3248
|
WHERE enabled = 1 AND next_run_at IS NOT NULL AND next_run_at <= ?
|
|
3244
|
-
ORDER BY next_run_at ASC`).all(c),f=[];for(let a of e)try{let e=a.created_by_user_id||null,g=a.catchup_policy||"fire_all",i=[],j=a.next_run_at;for(;j<=c&&i.length<d&&(i.push(j),j=(0,k.F)(a.schedule,j)););let l=0;if(j&&j<=c){let b=j;for(;b&&b<=c;)l++,b=(0,k.F)(a.schedule,b);j=b}let m="fire_once"===g?i.slice(-1):"skip"===g?[]:i;for(let c of m){let d=`hbtask-${a.id}-${String(c).replace(/[^a-zA-Z0-9]/g,"")}`,g=(0,n.aJ)({id:d,type:"agent_tick",agent_id:a.agent_id,schedule_id:a.id,max_attempts:Number(process.env.MADARX_AGENT_TICK_MAX_ATTEMPTS||1),payload:{type:a.action_kind||"agent-tick",agent_id:a.agent_id,schedule_id:a.id,prompt:`Run ${a.agent_name||a.agent_id} scheduled heartbeat`,tools_allowed:["web_search","file_read","create_artifact"]},run_after:c});if(e&&g?.id)try{b.prepare("UPDATE heartbeat_tasks SET acting_on_behalf_of_user_id = ? WHERE id = ?").run(e,g.id)}catch(a){console.warn("[cron] acting_on_behalf_of_user_id update failed:",a.message)}W({type:"cron.schedule.queued",summary:`Queued ${a.agent_name||a.agent_id} \xb7 ${a.action_kind}`,status:"queued",meta:{schedule_id:a.id,task_id:g?.id,window:c,acting_on_behalf_of_user_id:e}}),f.push(g)}let o=i.at(-1)||a.next_run_at;b.prepare("UPDATE schedules SET last_run_at=?, next_run_at=?, last_queued_at=?, last_queued_window=?, updated_at=? WHERE id=?").run(o,j,(0,h.nowIso)(),o,(0,h.nowIso)(),a.id),(i.length>1||l>0||"fire_all"!==g&&i.length>0)&&W({type:"cron.schedule.backfilled",summary:`Backfilled ${a.agent_name||a.agent_id}: fired ${m.length}/${i.length} missed windows`,status:"queued",meta:{schedule_id:a.id,missed_count:i.length,fired_count:m.length,truncated_count:l,policy:g,oldest:i[0]||null,newest:i.at(-1)||null}})}catch(b){f.push(X({kind:"cron-error",title:`Cron failed: ${a.id}`,status:"failed",agent:a.agent_name,agent_id:a.agent_id,preview:b.message,triggered_by:"cron"})),function(a,b=null){let c=(0,h.getDb)(),d=c.prepare("SELECT * FROM schedules WHERE id = ?").get(a);if(!d)return;let e=b||(0,h.nowIso)(),f=(0,k.F)(d.schedule,e),g=(0,h.nowIso)();c.prepare("UPDATE schedules SET last_run_at=?, next_run_at=?, updated_at=? WHERE id=?").run(e,f,g,a)}(a.id,a.next_run_at)}return{ok:!0,once:a,executed:f.filter(Boolean).length,tasks:f}}async function ax({lastTickAt:a=null,intervalMs:b=3e4}={}){let{recoverStaleHeartbeatTasks:d}=await Promise.resolve().then(c.bind(c,40563));if(null!==a&&Date.now()-a>2*b)try{await d()}catch(a){console.warn("[cron] stale recovery failed:",a?.message||a)}return aw({once:!0})}[h,j,l,m,n,o,p,q,r,s,u,v,w]=y.then?(await y)():y,d()}catch(a){d(a)}})},60897:(a,b,c)=>{"use strict";function d({slug:a,title:b,description:c,category:d="integration",provider:e,scopes:f,prefix:g,extraCredentials:h=[],unlocks:i,healthEndpoint:j,risk:k,tags:l}){let m=`${g}_ACCESS_TOKEN`;return{slug:a,title:b,description:c,category:d,author:"madarx",source_kind:"builtin",source_url:null,version:null,risk_summary:k,tags:l,manifest:{service_key:a,setup_kind:"oauth2",benefit:`Sign in with ${b} to unlock ${i.length} tool${1===i.length?"":"s"}. No code, no .env editing.`,credentials:[{name:`${g}_CLIENT_ID`,label:`${b} client ID`,type:"text",required:!0,help_text:`Create an app on the ${b} developer console and paste its client ID.`},{name:`${g}_CLIENT_SECRET`,label:`${b} client secret`,type:"password",required:!0,help_text:"Stored encrypted in the local vault — never echoed back."},...h],oauth:{provider:e,scopes:f,pkce:"google"===e||"tiktok"===e,redirect_path:`/api/connections/${a}/oauth/callback`,client_id_ref:`${g}_CLIENT_ID`,client_secret_ref:`${g}_CLIENT_SECRET`,access_token_ref:m,refresh_token_ref:`${g}_REFRESH_TOKEN`},health_check:{endpoint:j,method:"GET",expect_status:200,auth:{in:"header",name:"Authorization",prefix:"Bearer ",credential:m}},verify_endpoint:`/api/connections/${a}/verify`,verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:i,engines:[],logo_glyph:a}}}c.d(b,{R2:()=>q,fP:()=>o});let e=[{slug:"anthropic",title:"Anthropic",description:"Power any agent running on the Anthropic engine (Claude Opus, Sonnet, Haiku). Your key is encrypted on this Mac and never leaves the vault.",category:"engine",author:"madarx",source_kind:"builtin",source_url:"https://console.anthropic.com/settings/keys",version:null,risk_summary:"API key only — no destructive scope.",tags:["engine","anthropic","claude"],manifest:{service_key:"anthropic",setup_kind:"api_key",benefit:"Unlock the Anthropic engine for sub-agents and the main agent. Required for /api/orchestrator/command on default mode.",credentials:[{name:"ANTHROPIC_API_KEY",label:"API key",type:"password",placeholder:"sk-ant-…",help_url:"https://console.anthropic.com/settings/keys",help_text:"Generate a key in the Anthropic console.",required:!0}],verify_endpoint:"/api/connections/anthropic/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:[],engines:["anthropic"],logo_glyph:"anthropic"}},{slug:"openai",title:"OpenAI",description:"Use OpenAI models for agents that prefer GPT. Stored encrypted; never echoed back.",category:"engine",author:"madarx",source_kind:"builtin",source_url:"https://platform.openai.com/api-keys",version:null,risk_summary:"API key only.",tags:["engine","openai","gpt"],manifest:{service_key:"openai",setup_kind:"api_key",benefit:"Unlock OpenAI models for agents and transcription.",credentials:[{name:"OPENAI_API_KEY",label:"API key",type:"password",placeholder:"sk-…",help_url:"https://platform.openai.com/api-keys",help_text:"Create a key in the OpenAI dashboard.",required:!0}],verify_endpoint:"/api/connections/openai/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:[],engines:["openai"],logo_glyph:"openai"}},{slug:"kimi",title:"Kimi (Moonshot)",description:"Connect Moonshot AI — Kimi models for long-context Chinese + English reasoning. Stored encrypted.",category:"engine",author:"madarx",source_kind:"builtin",source_url:"https://platform.moonshot.ai/console/api-keys",version:null,risk_summary:"API key only.",tags:["engine","kimi","moonshot"],manifest:{service_key:"kimi",setup_kind:"api_key",benefit:"Unlock Kimi (Moonshot) models for the kimi engine.",credentials:[{name:"KIMI_API_KEY",label:"API key",type:"password",placeholder:"sk-…",help_url:"https://platform.moonshot.ai/console/api-keys",help_text:"Create a key in the Moonshot console.",required:!0}],verify_endpoint:"/api/connections/kimi/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:[],engines:["kimi"],logo_glyph:"kimi"}},{slug:"github",title:"GitHub",description:"Unlock 11 GitHub tools: read repos, list PRs, create issues, dispatch workflows, and (with approval) merge PRs. Token is encrypted at rest.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://github.com/settings/tokens",version:null,risk_summary:"Some GitHub tools are irreversible (e.g. gh_pr_merge) and always require approval.",tags:["integration","github","git"],manifest:{service_key:"github",setup_kind:"api_key",benefit:"Unlock 11 GitHub tools across read, issue, and PR workflows.",credentials:[{name:"GITHUB_TOKEN",label:"Personal access token",type:"password",placeholder:"ghp_…",help_url:"https://github.com/settings/tokens",help_text:'To read repos beyond your own, the token must be granted access to them. Fine-grained PAT: under "Repository access" pick the orgs/repos (org owner may need to approve); classic PAT: enable the "repo" scope and, for SSO orgs, click "Authorize" / "Configure SSO" next to the token.',required:!0}],verify_endpoint:"/api/connections/github/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["gh_repo_read","gh_repo_list","gh_issue_list","gh_issue_create","gh_issue_comment","gh_pr_list","gh_pr_create","gh_pr_comment","gh_pr_merge","gh_actions_dispatch","gh_release_create"],engines:[],logo_glyph:"github"}},{slug:"resend",title:"Resend",description:"Send transactional email. A default recipient_domain allowlist is seeded from git config user.email — add more in the marketplace afterwards.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://resend.com/api-keys",version:null,risk_summary:"email_send is irreversible and always requires approval.",tags:["integration","email","resend"],manifest:{service_key:"resend",setup_kind:"api_key",benefit:"Unlock email_send and email_status_lookup for transactional email.",credentials:[{name:"RESEND_API_KEY",label:"API key",type:"password",placeholder:"re_…",help_url:"https://resend.com/api-keys",help_text:"Create a Resend API key.",required:!0},{name:"RESEND_FROM_EMAIL",label:"From email",type:"text",placeholder:"agent@yourdomain.com",help_url:"https://resend.com/domains",help_text:"A verified sender address on a verified Resend domain.",required:!0}],verify_endpoint:"/api/connections/resend/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["email_send","email_status_lookup"],engines:[],logo_glyph:"resend"}},{slug:"supabase",title:"Supabase",description:"Connect a Supabase project. Service role key bypasses RLS — destructive ops (supabase_rest_delete, supabase_sql) are always approval-gated.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://supabase.com/dashboard",version:null,risk_summary:"Service role key bypasses Row-Level Security. Some tools (supabase_sql) always require approval.",tags:["integration","database","supabase"],manifest:{service_key:"supabase",setup_kind:"api_key",benefit:"Unlock 7 Supabase tools: REST select/insert/upsert/update/delete, RPC, and SQL.",credentials:[{name:"SUPABASE_URL",label:"Project URL",type:"text",placeholder:"https://xxxx.supabase.co",help_url:"https://supabase.com/dashboard",help_text:"Project Settings → API → Project URL.",required:!0},{name:"SUPABASE_SERVICE_ROLE_KEY",label:"Service role key",type:"password",placeholder:"eyJ…",help_url:"https://supabase.com/dashboard",help_text:"Project Settings → API → service_role. Treat as a database password.",required:!1},{name:"SUPABASE_ANON_KEY",label:"Anon key",type:"password",placeholder:"eyJ…",help_url:"https://supabase.com/dashboard",help_text:"Project Settings → API → anon. Used for verify when service-role is absent.",required:!1},{name:"SUPABASE_ACCESS_TOKEN",label:"Personal access token",type:"password",placeholder:"sbp_…",help_url:"https://supabase.com/dashboard/account/tokens",help_text:"Required only if you want the agent to list / manage your Supabase projects via the Management API. Distinct from the project keys above.",required:!1}],verify_endpoint:"/api/connections/supabase/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["supabase_list_projects","supabase_rest_select","supabase_rest_insert","supabase_rest_upsert","supabase_rest_update","supabase_rest_delete","supabase_rpc","supabase_sql"],engines:[],logo_glyph:"supabase"}},{slug:"vercel",title:"Vercel",description:"Trigger deployments and read project state. v1 saves the token without a live verify — failures surface on first call.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://vercel.com/account/tokens",version:null,risk_summary:"vercel_create_deployment is high risk and approval-gated.",tags:["integration","vercel","deploy"],manifest:{service_key:"vercel",setup_kind:"api_key",benefit:"Unlock 3 Vercel tools: list projects, list deployments, create deployment.",credentials:[{name:"VERCEL_TOKEN",label:"Access token",type:"password",placeholder:"vercel_…",help_url:"https://vercel.com/account/tokens",help_text:"Create a token scoped to the right team.",required:!0},{name:"VERCEL_TEAM_ID",label:"Team ID (optional)",type:"text",placeholder:"team_…",help_url:"https://vercel.com/teams",help_text:"Only required for team-scoped tokens.",required:!1}],verify_endpoint:"/api/connections/vercel/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["vercel_list_projects","vercel_list_deployments","vercel_create_deployment"],engines:[],logo_glyph:"vercel"}},{slug:"whatsapp",title:"WhatsApp",description:"Text the main agent like you text Hermes. Pairs a dedicated WhatsApp number via Baileys. Operations (allowlist, message log) live at /whatsapp.",category:"channel",author:"madarx",source_kind:"builtin",source_url:null,version:null,risk_summary:"Pair only a dedicated number — Baileys is an unofficial Web client; the paired account can be banned.",tags:["channel","whatsapp","messaging"],manifest:{service_key:"whatsapp",setup_kind:"qr_pair",benefit:"Receive WhatsApp messages and let the main agent reply through your number.",credentials:[],verify_endpoint:"/api/connections/whatsapp/verify",verify_supported:!0,deep_link:"/whatsapp",requires_daemon:"npm run whatsapp:bridge",supports_scopes:["global"],unlocks_tool_slugs:["whatsapp_send"],engines:[],logo_glyph:"whatsapp"}},{slug:"hermes",title:"Hermes Agent",description:"Route long-running orchestrator jobs to the local Hermes binary. Detection probes ../hermes-agent and scripts/hermes-command.py.",category:"engine",author:"madarx",source_kind:"builtin",source_url:null,version:null,risk_summary:"Local subprocess execution — Hermes jobs inherit your local env.",tags:["engine","hermes","local"],manifest:{service_key:"hermes",setup_kind:"binary_detect",benefit:"Unlock the Hermes engine and the start_hermes_job orchestrator tool.",credentials:[{name:"HERMES_AGENT_DIR",label:"Hermes agent directory (optional)",type:"text",placeholder:"/Users/you/Projects/hermes-agent",help_url:null,help_text:"Defaults to ../hermes-agent relative to this repo. Override to point at a different checkout.",required:!1}],verify_endpoint:"/api/connections/hermes/verify",verify_supported:!0,deep_link:null,supports_scopes:["global"],unlocks_tool_slugs:["start_hermes_job","send_to_hermes"],engines:["hermes"],logo_glyph:"hermes"}},d({slug:"meta-ads",title:"Meta Ads",description:"Build and report on Facebook + Instagram ad campaigns. Campaign/budget writes are always approval-gated.",category:"marketing",provider:"meta",prefix:"META",scopes:["ads_management","ads_read","business_management"],unlocks:["meta_ads.insights_read","meta_ads.campaign_create","meta_ads.adset_create","meta_ads.budget_set"],healthEndpoint:"https://graph.facebook.com/v19.0/me",risk:"Campaign create, budget set, and audience create are irreversible and always require approval.",tags:["marketing","ads","meta","oauth"]}),d({slug:"google-ads",title:"Google Ads",description:"Manage Google Ads campaigns and pull GAQL reports. Requires a developer token in addition to OAuth sign-in.",category:"marketing",provider:"google",prefix:"GOOGLE_ADS",scopes:["https://www.googleapis.com/auth/adwords"],extraCredentials:[{name:"GOOGLE_ADS_DEVELOPER_TOKEN",label:"Developer token",type:"password",required:!0,help_text:"Google Ads API access requires a developer token alongside OAuth."}],unlocks:["google_ads.report","google_ads.campaign_create","google_ads.budget_set"],healthEndpoint:"https://googleads.googleapis.com/v17/customers:listAccessibleCustomers",risk:"Campaign create and budget set are irreversible and always require approval.",tags:["marketing","ads","google","oauth"]}),d({slug:"ga4",title:"Google Analytics 4",description:"Read GA4 metrics for marketing reports. Read-only — no external writes.",category:"analytics",provider:"google",prefix:"GA4",scopes:["https://www.googleapis.com/auth/analytics.readonly"],unlocks:["ga4.run_report","ga4.realtime_report"],healthEndpoint:"https://analyticsdata.googleapis.com/v1beta/properties",risk:"Read-only analytics access.",tags:["analytics","ga4","google","oauth"]}),d({slug:"hubspot-crm",title:"HubSpot CRM",description:"Read and (with approval) write contacts, deals, and activity in HubSpot.",category:"sales",provider:"hubspot",prefix:"HUBSPOT",scopes:["crm.objects.contacts.read","crm.objects.deals.read","crm.objects.contacts.write"],unlocks:["hubspot.contacts_read","hubspot.deals_read","hubspot.contact_upsert"],healthEndpoint:"https://api.hubapi.com/crm/v3/objects/contacts",risk:"CRM writes (contact/deal upsert) require approval.",tags:["sales","crm","hubspot","oauth"]})];e.map(a=>a.slug);let f=[{slug:"web-prototype",title:"Open Design — Web Prototype",description:"Generate a complete production-quality web prototype from a brief."},{slug:"saas-landing",title:"Open Design — SaaS Landing",description:"Build a SaaS landing page with hero, features, social proof, pricing."},{slug:"dashboard",title:"Open Design — Dashboard",description:"Information-dense, hierarchy-driven dashboard scaffold."},{slug:"mobile-app",title:"Open Design — Mobile App",description:"Mobile-first product UI scaffold with touch targets and gestures."},{slug:"social-carousel",title:"Open Design — Social Carousel",description:"Editorial social carousel with platform-aware aspect ratios."},{slug:"magazine-poster",title:"Open Design — Magazine Poster",description:"Editorial magazine/poster typography with high contrast."},{slug:"deck-guizang-editorial",title:"Open Design — Editorial Deck",description:"Guizang editorial-style slide deck system."},{slug:"email-marketing",title:"Open Design — Email Marketing",description:"Transactional/marketing email scaffold with bulletproof HTML."},{slug:"design-brief",title:"Open Design — Design Brief",description:"Structured design brief used to seed the rest of the pipeline."},{slug:"design-review",title:"Open Design — Design Review",description:"Designer's eye plan review and visual QA pass."},{slug:"brand-guidelines",title:"Open Design — Brand Guidelines",description:"Distill or author a brand guidelines book."},{slug:"copywriting",title:"Open Design — Copywriting",description:"High-signal product copywriting craft notes and structure."}],g={slug:"open-design",title:"Open Design (nexu-io)",description:"Vendored design corpus from nexu-io/open-design: craft notes, 130+ skills, ~140 design systems, prompt + design templates. Apache-2.0.",category:"design",author:"nexu-io",source_kind:"github",source_url:"https://github.com/nexu-io/open-design",version:null,risk_summary:"Read-only design content. No code executes; no external writes.",tags:["design","craft","systems","templates","open-source","apache-2.0"],manifest:{item_refs:f.map(a=>`skill:open-design-${a.slug}`),published_count:f.length,license:"Apache-2.0",note:"Vendored under workspace/skills/open-design/. Re-vendor with `npm run vendor:open-design`. See NOTICE.md for attribution."}},h=[{slug:"design-shotgun",title:"Design Shotgun",description:"Generate multiple AI design variants for any UI surface, open a comparison board, and iterate from approved options.",category:"design",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Read-only ideation — no external writes.",tags:["design","mockups","exploration"],manifest:{invocation:"/design-shotgun",file_paths:["skills/design-shotgun/SKILL.md"],trigger_examples:["explore designs","show me design variants","visual brainstorm"]}},{slug:"design-review",title:"Design Review",description:"Visual QA pass on live pages: extracts the design system in use, audits hierarchy, typography, color, and spacing, and proposes fixes.",category:"design",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Read-only audit — fixes are proposed, not applied.",tags:["design","review","visual-qa"],manifest:{invocation:"/design-review",file_paths:["skills/design-review/SKILL.md"],trigger_examples:["review the design","visual QA","audit this page"]}},{slug:"qa-only",title:"QA Only",description:"Systematically QA a web app and produce a structured report with health score, screenshots, and repro steps. Never modifies code.",category:"review",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Report-only — no auto-fix.",tags:["qa","testing","report"],manifest:{invocation:"/qa-only",file_paths:["skills/qa-only/SKILL.md"],trigger_examples:["just report bugs","qa report only","test but do not fix"]}},{slug:"cso-audit",title:"CSO Audit",description:"Chief Security Officer mode: infrastructure-first security audit covering secrets archaeology, supply chain, OWASP Top 10, and threat modeling.",category:"security",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Read-only audit; never executes destructive commands.",tags:["security","audit","owasp","threat-model"],manifest:{invocation:"/cso",file_paths:["skills/cso/SKILL.md"],trigger_examples:["security audit","threat model","OWASP review"]}}],i=[{slug:"market-research",title:"Market Research",category:"research",description:"Research any market, company, or topic across the web and deliver a cited, structured brief.",tools:["web_search","web_fetch","file_write"],risk_summary:"Read-only research; writes only the report file.",tags:["research","web","brief"],invocation:"/research",trigger_examples:["research this market","competitive landscape for X","brief me on company Y"]},{slug:"competitor-watch",title:"Competitor Watch",category:"research",description:"Track competitor pricing, features, and news on a schedule and alert you when something changes.",tools:["web_fetch","web_extract","email_send"],risk_summary:"Read-only monitoring; sends a summary email.",tags:["research","monitoring","competitive"],invocation:"/watch",trigger_examples:["watch competitor pricing","alert me when X changes","track this page weekly"]},{slug:"inbox-triage",title:"Inbox Triage",category:"comms",description:"Summarize, prioritize, and draft replies across your inbox so you act on what matters first.",tools:["gmail_messages_list","gmail_thread_read","email_send"],risk_summary:"Drafts replies; sending is approval-gated.",tags:["email","inbox","comms"],invocation:"/inbox",trigger_examples:["triage my inbox","summarize unread email","draft replies"]},{slug:"meeting-scheduler",title:"Meeting Scheduler",category:"comms",description:"Find times, schedule meetings, and send invites from your calendar and email.",tools:["calendar_events_list","calendar_event_read","email_send"],risk_summary:"Proposes times; invites are approval-gated.",tags:["calendar","scheduling","comms"],invocation:"/schedule-meeting",trigger_examples:["schedule a meeting","find a time with X","book a call next week"]},{slug:"document-extract",title:"Document Extraction",category:"documents",description:"Pull structured data and key facts from PDFs, documents, and audio into clean, usable output.",tools:["file_read","transcribe_audio","file_write"],risk_summary:"Read-only extraction; writes only the output file.",tags:["documents","extraction","pdf"],invocation:"/extract",trigger_examples:["extract data from this PDF","pull the numbers from these docs","transcribe this audio"]},{slug:"report-builder",title:"Report Builder",category:"documents",description:"Turn raw data and notes into a polished, formatted report or one-pager ready to share.",tools:["file_read","file_write"],risk_summary:"Generates a document; no external writes.",tags:["documents","reporting","writing"],invocation:"/report",trigger_examples:["build a report from this data","write a one-pager","summarize into a deck outline"]},{slug:"database-query",title:"Database Q&A",category:"data",description:"Ask questions of your database in plain English and get answers, tables, and charts.",tools:["supabase_rest_select","supabase_sql"],risk_summary:"Read-only queries by default; writes are approval-gated.",tags:["data","sql","analytics"],invocation:"/ask-data",trigger_examples:["how many orders last month","query the users table","top customers by revenue"]},{slug:"spreadsheet-analysis",title:"Spreadsheet Analysis",category:"data",description:"Clean, analyze, and summarize spreadsheets and CSVs — pivots, trends, and outliers.",tools:["file_read","file_write"],risk_summary:"Local file analysis; no external writes.",tags:["data","spreadsheet","csv"],invocation:"/analyze-sheet",trigger_examples:["analyze this spreadsheet","summarize this CSV","find trends in this data"]},{slug:"web-automation",title:"Web Automation",category:"web",description:"Fill forms, extract data, and run repetitive flows in a real browser, end to end.",tools:["browser_open","browser_act","browser_extract"],risk_summary:"Browser actions are bounded and audited.",tags:["web","automation","browser"],invocation:"/automate-web",trigger_examples:["automate this form","scrape this site","run this flow for each row"]}],j=[{slug:"paid-campaign-build",title:"Paid Campaign Build",category:"marketing",description:"Structure a paid campaign — objective, audiences, ad sets, creative spec, and budget — ready for approval-gated launch.",tools:["create_artifact","web_search"],risk_summary:"Plans campaigns; every publish/budget set stays approval-gated.",tags:["marketing","ads","campaign"],invocation:"/paid-campaign",trigger_examples:["build a Meta campaign","plan a paid launch","structure ad sets"]},{slug:"ads-reporting",title:"Ads Reporting",category:"marketing",description:"Pull spend, CPA, ROAS, and reach from connected ad accounts into one weekly performance report.",tools:["create_artifact","file_write"],risk_summary:"Read-only reporting; no external writes.",tags:["marketing","ads","reporting"],invocation:"/ads-report",trigger_examples:["weekly ads report","how did campaigns perform","ROAS summary"]},{slug:"content-calendar",title:"Content Calendar",category:"content",description:"Plan a multi-channel content calendar with post drafts, captions, and a scheduled queue.",tools:["create_artifact","file_write"],risk_summary:"Drafts and schedules; every publish stays approval-gated.",tags:["content","social","calendar"],invocation:"/content-calendar",trigger_examples:["plan this month of content","build a content calendar","draft social posts"]},{slug:"lead-research",title:"Lead Research",category:"sales",description:"Build a qualified target list, enrich it, and prep a personalized outreach sequence.",tools:["web_search","web_fetch","create_artifact"],risk_summary:"Research + drafts; sequence enrollment and bulk sends are approval-gated.",tags:["sales","outreach","leads"],invocation:"/lead-research",trigger_examples:["build a target list","find leads for X","prep an outreach sequence"]},{slug:"ticket-reply",title:"Ticket Reply",category:"support",description:"Triage support tickets, draft replies in brand voice, and flag escalations.",tools:["gmail_messages_list","file_write"],risk_summary:"Drafts replies; outbound sends/status changes are approval-gated.",tags:["support","helpdesk","tickets"],invocation:"/ticket-reply",trigger_examples:["triage support tickets","draft ticket replies","escalate this ticket"]},{slug:"runway-model",title:"Runway Model",category:"finance",description:"Turn revenue/expense data into a runway model and P&L summary with scenario sensitivity.",tools:["file_read","create_artifact"],risk_summary:"Advisory analysis; any money movement is approval-gated.",tags:["finance","runway","modeling"],invocation:"/runway",trigger_examples:["model our runway","P&L summary","how many months of cash"]}],k=[{slug:"gstack",title:"gstack",description:'"Senior engineering team in your terminal." 8 power tools + a stack of specialist skills for design, QA, review, security, and shipping. MIT licensed.',category:"engineering",author:"garrytan",source_kind:"builtin",source_url:"https://github.com/garrytan/gstack",version:null,risk_summary:"Mixed-risk bundle: includes read-only review skills and write-capable workflows (e.g. /ship runs git push). Per-item risk surfaces in Phase 2 when install is wired up.",tags:["engineering","skills-pack","mit"],manifest:{item_refs:["skill:design-shotgun","skill:design-review","skill:qa-only","skill:cso-audit"],published_count:4,license:"MIT",note:"Agent personas in this bundle will surface in the Agent Marketplace when it ships."}}];function l(a,b,c){let d=a.prepare("SELECT id FROM marketplace_items WHERE kind=? AND slug=?").get(b,c.slug),e=d?.id||`${b}:${c.slug}`,f=c.manifest?JSON.stringify(c.manifest):null,g=c.tags?JSON.stringify(c.tags):null;if(d)a.prepare(`
|
|
3249
|
+
ORDER BY next_run_at ASC`).all(c),f=[];for(let a of e)try{let e=a.created_by_user_id||null,g=a.catchup_policy||"fire_all",i=[],j=a.next_run_at;for(;j<=c&&i.length<d&&(i.push(j),j=(0,k.F)(a.schedule,j)););let l=0;if(j&&j<=c){let b=j;for(;b&&b<=c;)l++,b=(0,k.F)(a.schedule,b);j=b}let m="fire_once"===g?i.slice(-1):"skip"===g?[]:i;for(let c of m){let d=`hbtask-${a.id}-${String(c).replace(/[^a-zA-Z0-9]/g,"")}`,g=(0,n.aJ)({id:d,type:"agent_tick",agent_id:a.agent_id,schedule_id:a.id,max_attempts:Number(process.env.MADARX_AGENT_TICK_MAX_ATTEMPTS||1),payload:{type:a.action_kind||"agent-tick",agent_id:a.agent_id,schedule_id:a.id,prompt:`Run ${a.agent_name||a.agent_id} scheduled heartbeat`,tools_allowed:["web_search","file_read","create_artifact"]},run_after:c});if(e&&g?.id)try{b.prepare("UPDATE heartbeat_tasks SET acting_on_behalf_of_user_id = ? WHERE id = ?").run(e,g.id)}catch(a){console.warn("[cron] acting_on_behalf_of_user_id update failed:",a.message)}W({type:"cron.schedule.queued",summary:`Queued ${a.agent_name||a.agent_id} \xb7 ${a.action_kind}`,status:"queued",meta:{schedule_id:a.id,task_id:g?.id,window:c,acting_on_behalf_of_user_id:e}}),f.push(g)}let o=i.at(-1)||a.next_run_at;b.prepare("UPDATE schedules SET last_run_at=?, next_run_at=?, last_queued_at=?, last_queued_window=?, updated_at=? WHERE id=?").run(o,j,(0,h.nowIso)(),o,(0,h.nowIso)(),a.id),(i.length>1||l>0||"fire_all"!==g&&i.length>0)&&W({type:"cron.schedule.backfilled",summary:`Backfilled ${a.agent_name||a.agent_id}: fired ${m.length}/${i.length} missed windows`,status:"queued",meta:{schedule_id:a.id,missed_count:i.length,fired_count:m.length,truncated_count:l,policy:g,oldest:i[0]||null,newest:i.at(-1)||null}})}catch(b){f.push(X({kind:"cron-error",title:`Cron failed: ${a.id}`,status:"failed",agent:a.agent_name,agent_id:a.agent_id,preview:b.message,triggered_by:"cron"})),function(a,b=null){let c=(0,h.getDb)(),d=c.prepare("SELECT * FROM schedules WHERE id = ?").get(a);if(!d)return;let e=b||(0,h.nowIso)(),f=(0,k.F)(d.schedule,e),g=(0,h.nowIso)();c.prepare("UPDATE schedules SET last_run_at=?, next_run_at=?, updated_at=? WHERE id=?").run(e,f,g,a)}(a.id,a.next_run_at)}return{ok:!0,once:a,executed:f.filter(Boolean).length,tasks:f}}async function ay({lastTickAt:a=null,intervalMs:b=3e4}={}){let{recoverStaleHeartbeatTasks:d}=await Promise.resolve().then(c.bind(c,40563));if(null!==a&&Date.now()-a>2*b)try{await d()}catch(a){console.warn("[cron] stale recovery failed:",a?.message||a)}return ax({once:!0})}d()}catch(a){d(a)}})},60897:(a,b,c)=>{"use strict";function d({slug:a,title:b,description:c,category:d="integration",provider:e,scopes:f,prefix:g,extraCredentials:h=[],unlocks:i,healthEndpoint:j,risk:k,tags:l}){let m=`${g}_ACCESS_TOKEN`;return{slug:a,title:b,description:c,category:d,author:"madarx",source_kind:"builtin",source_url:null,version:null,risk_summary:k,tags:l,manifest:{service_key:a,setup_kind:"oauth2",benefit:`Sign in with ${b} to unlock ${i.length} tool${1===i.length?"":"s"}. No code, no .env editing.`,credentials:[{name:`${g}_CLIENT_ID`,label:`${b} client ID`,type:"text",required:!0,help_text:`Create an app on the ${b} developer console and paste its client ID.`},{name:`${g}_CLIENT_SECRET`,label:`${b} client secret`,type:"password",required:!0,help_text:"Stored encrypted in the local vault — never echoed back."},...h],oauth:{provider:e,scopes:f,pkce:"google"===e||"tiktok"===e,redirect_path:`/api/connections/${a}/oauth/callback`,client_id_ref:`${g}_CLIENT_ID`,client_secret_ref:`${g}_CLIENT_SECRET`,access_token_ref:m,refresh_token_ref:`${g}_REFRESH_TOKEN`},health_check:{endpoint:j,method:"GET",expect_status:200,auth:{in:"header",name:"Authorization",prefix:"Bearer ",credential:m}},verify_endpoint:`/api/connections/${a}/verify`,verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:i,engines:[],logo_glyph:a}}}c.d(b,{R2:()=>q,fP:()=>o});let e=[{slug:"anthropic",title:"Anthropic",description:"Power any agent running on the Anthropic engine (Claude Opus, Sonnet, Haiku). Your key is encrypted on this Mac and never leaves the vault.",category:"engine",author:"madarx",source_kind:"builtin",source_url:"https://console.anthropic.com/settings/keys",version:null,risk_summary:"API key only — no destructive scope.",tags:["engine","anthropic","claude"],manifest:{service_key:"anthropic",setup_kind:"api_key",benefit:"Unlock the Anthropic engine for sub-agents and the main agent. Required for /api/orchestrator/command on default mode.",credentials:[{name:"ANTHROPIC_API_KEY",label:"API key",type:"password",placeholder:"sk-ant-…",help_url:"https://console.anthropic.com/settings/keys",help_text:"Generate a key in the Anthropic console.",required:!0}],verify_endpoint:"/api/connections/anthropic/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:[],engines:["anthropic"],logo_glyph:"anthropic"}},{slug:"openai",title:"OpenAI",description:"Use OpenAI models for agents that prefer GPT. Stored encrypted; never echoed back.",category:"engine",author:"madarx",source_kind:"builtin",source_url:"https://platform.openai.com/api-keys",version:null,risk_summary:"API key only.",tags:["engine","openai","gpt"],manifest:{service_key:"openai",setup_kind:"api_key",benefit:"Unlock OpenAI models for agents and transcription.",credentials:[{name:"OPENAI_API_KEY",label:"API key",type:"password",placeholder:"sk-…",help_url:"https://platform.openai.com/api-keys",help_text:"Create a key in the OpenAI dashboard.",required:!0}],verify_endpoint:"/api/connections/openai/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:[],engines:["openai"],logo_glyph:"openai"}},{slug:"kimi",title:"Kimi (Moonshot)",description:"Connect Moonshot AI — Kimi models for long-context Chinese + English reasoning. Stored encrypted.",category:"engine",author:"madarx",source_kind:"builtin",source_url:"https://platform.moonshot.ai/console/api-keys",version:null,risk_summary:"API key only.",tags:["engine","kimi","moonshot"],manifest:{service_key:"kimi",setup_kind:"api_key",benefit:"Unlock Kimi (Moonshot) models for the kimi engine.",credentials:[{name:"KIMI_API_KEY",label:"API key",type:"password",placeholder:"sk-…",help_url:"https://platform.moonshot.ai/console/api-keys",help_text:"Create a key in the Moonshot console.",required:!0}],verify_endpoint:"/api/connections/kimi/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:[],engines:["kimi"],logo_glyph:"kimi"}},{slug:"github",title:"GitHub",description:"Unlock 11 GitHub tools: read repos, list PRs, create issues, dispatch workflows, and (with approval) merge PRs. Token is encrypted at rest.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://github.com/settings/tokens",version:null,risk_summary:"Some GitHub tools are irreversible (e.g. gh_pr_merge) and always require approval.",tags:["integration","github","git"],manifest:{service_key:"github",setup_kind:"api_key",benefit:"Unlock 11 GitHub tools across read, issue, and PR workflows.",credentials:[{name:"GITHUB_TOKEN",label:"Personal access token",type:"password",placeholder:"ghp_…",help_url:"https://github.com/settings/tokens",help_text:'To read repos beyond your own, the token must be granted access to them. Fine-grained PAT: under "Repository access" pick the orgs/repos (org owner may need to approve); classic PAT: enable the "repo" scope and, for SSO orgs, click "Authorize" / "Configure SSO" next to the token.',required:!0}],verify_endpoint:"/api/connections/github/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["gh_repo_read","gh_repo_list","gh_issue_list","gh_issue_create","gh_issue_comment","gh_pr_list","gh_pr_create","gh_pr_comment","gh_pr_merge","gh_actions_dispatch","gh_release_create"],engines:[],logo_glyph:"github"}},{slug:"resend",title:"Resend",description:"Send transactional email. A default recipient_domain allowlist is seeded from git config user.email — add more in the marketplace afterwards.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://resend.com/api-keys",version:null,risk_summary:"email_send is irreversible and always requires approval.",tags:["integration","email","resend"],manifest:{service_key:"resend",setup_kind:"api_key",benefit:"Unlock email_send and email_status_lookup for transactional email.",credentials:[{name:"RESEND_API_KEY",label:"API key",type:"password",placeholder:"re_…",help_url:"https://resend.com/api-keys",help_text:"Create a Resend API key.",required:!0},{name:"RESEND_FROM_EMAIL",label:"From email",type:"text",placeholder:"agent@yourdomain.com",help_url:"https://resend.com/domains",help_text:"A verified sender address on a verified Resend domain.",required:!0}],verify_endpoint:"/api/connections/resend/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["email_send","email_status_lookup"],engines:[],logo_glyph:"resend"}},{slug:"supabase",title:"Supabase",description:"Connect a Supabase project. Service role key bypasses RLS — destructive ops (supabase_rest_delete, supabase_sql) are always approval-gated.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://supabase.com/dashboard",version:null,risk_summary:"Service role key bypasses Row-Level Security. Some tools (supabase_sql) always require approval.",tags:["integration","database","supabase"],manifest:{service_key:"supabase",setup_kind:"api_key",benefit:"Unlock 7 Supabase tools: REST select/insert/upsert/update/delete, RPC, and SQL.",credentials:[{name:"SUPABASE_URL",label:"Project URL",type:"text",placeholder:"https://xxxx.supabase.co",help_url:"https://supabase.com/dashboard",help_text:"Project Settings → API → Project URL.",required:!0},{name:"SUPABASE_SERVICE_ROLE_KEY",label:"Service role key",type:"password",placeholder:"eyJ…",help_url:"https://supabase.com/dashboard",help_text:"Project Settings → API → service_role. Treat as a database password.",required:!1},{name:"SUPABASE_ANON_KEY",label:"Anon key",type:"password",placeholder:"eyJ…",help_url:"https://supabase.com/dashboard",help_text:"Project Settings → API → anon. Used for verify when service-role is absent.",required:!1},{name:"SUPABASE_ACCESS_TOKEN",label:"Personal access token",type:"password",placeholder:"sbp_…",help_url:"https://supabase.com/dashboard/account/tokens",help_text:"Required only if you want the agent to list / manage your Supabase projects via the Management API. Distinct from the project keys above.",required:!1}],verify_endpoint:"/api/connections/supabase/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["supabase_list_projects","supabase_rest_select","supabase_rest_insert","supabase_rest_upsert","supabase_rest_update","supabase_rest_delete","supabase_rpc","supabase_sql"],engines:[],logo_glyph:"supabase"}},{slug:"vercel",title:"Vercel",description:"Trigger deployments and read project state. v1 saves the token without a live verify — failures surface on first call.",category:"integration",author:"madarx",source_kind:"builtin",source_url:"https://vercel.com/account/tokens",version:null,risk_summary:"vercel_create_deployment is high risk and approval-gated.",tags:["integration","vercel","deploy"],manifest:{service_key:"vercel",setup_kind:"api_key",benefit:"Unlock 3 Vercel tools: list projects, list deployments, create deployment.",credentials:[{name:"VERCEL_TOKEN",label:"Access token",type:"password",placeholder:"vercel_…",help_url:"https://vercel.com/account/tokens",help_text:"Create a token scoped to the right team.",required:!0},{name:"VERCEL_TEAM_ID",label:"Team ID (optional)",type:"text",placeholder:"team_…",help_url:"https://vercel.com/teams",help_text:"Only required for team-scoped tokens.",required:!1}],verify_endpoint:"/api/connections/vercel/verify",verify_supported:!0,deep_link:null,supports_scopes:["global","project","agent"],unlocks_tool_slugs:["vercel_list_projects","vercel_list_deployments","vercel_create_deployment"],engines:[],logo_glyph:"vercel"}},{slug:"whatsapp",title:"WhatsApp",description:"Text the main agent like you text Hermes. Pairs a dedicated WhatsApp number via Baileys. Operations (allowlist, message log) live at /whatsapp.",category:"channel",author:"madarx",source_kind:"builtin",source_url:null,version:null,risk_summary:"Pair only a dedicated number — Baileys is an unofficial Web client; the paired account can be banned.",tags:["channel","whatsapp","messaging"],manifest:{service_key:"whatsapp",setup_kind:"qr_pair",benefit:"Receive WhatsApp messages and let the main agent reply through your number.",credentials:[],verify_endpoint:"/api/connections/whatsapp/verify",verify_supported:!0,deep_link:"/whatsapp",requires_daemon:"npm run whatsapp:bridge",supports_scopes:["global"],unlocks_tool_slugs:["whatsapp_send"],engines:[],logo_glyph:"whatsapp"}},{slug:"hermes",title:"Hermes Agent",description:"Route long-running orchestrator jobs to the local Hermes binary. Detection probes ../hermes-agent and scripts/hermes-command.py.",category:"engine",author:"madarx",source_kind:"builtin",source_url:null,version:null,risk_summary:"Local subprocess execution — Hermes jobs inherit your local env.",tags:["engine","hermes","local"],manifest:{service_key:"hermes",setup_kind:"binary_detect",benefit:"Unlock the Hermes engine and the start_hermes_job orchestrator tool.",credentials:[{name:"HERMES_AGENT_DIR",label:"Hermes agent directory (optional)",type:"text",placeholder:"/Users/you/Projects/hermes-agent",help_url:null,help_text:"Defaults to ../hermes-agent relative to this repo. Override to point at a different checkout.",required:!1}],verify_endpoint:"/api/connections/hermes/verify",verify_supported:!0,deep_link:null,supports_scopes:["global"],unlocks_tool_slugs:["start_hermes_job","send_to_hermes"],engines:["hermes"],logo_glyph:"hermes"}},d({slug:"meta-ads",title:"Meta Ads",description:"Build and report on Facebook + Instagram ad campaigns. Campaign/budget writes are always approval-gated.",category:"marketing",provider:"meta",prefix:"META",scopes:["ads_management","ads_read","business_management"],unlocks:["meta_ads.insights_read","meta_ads.campaign_create","meta_ads.adset_create","meta_ads.budget_set"],healthEndpoint:"https://graph.facebook.com/v19.0/me",risk:"Campaign create, budget set, and audience create are irreversible and always require approval.",tags:["marketing","ads","meta","oauth"]}),d({slug:"google-ads",title:"Google Ads",description:"Manage Google Ads campaigns and pull GAQL reports. Requires a developer token in addition to OAuth sign-in.",category:"marketing",provider:"google",prefix:"GOOGLE_ADS",scopes:["https://www.googleapis.com/auth/adwords"],extraCredentials:[{name:"GOOGLE_ADS_DEVELOPER_TOKEN",label:"Developer token",type:"password",required:!0,help_text:"Google Ads API access requires a developer token alongside OAuth."}],unlocks:["google_ads.report","google_ads.campaign_create","google_ads.budget_set"],healthEndpoint:"https://googleads.googleapis.com/v17/customers:listAccessibleCustomers",risk:"Campaign create and budget set are irreversible and always require approval.",tags:["marketing","ads","google","oauth"]}),d({slug:"ga4",title:"Google Analytics 4",description:"Read GA4 metrics for marketing reports. Read-only — no external writes.",category:"analytics",provider:"google",prefix:"GA4",scopes:["https://www.googleapis.com/auth/analytics.readonly"],unlocks:["ga4.run_report","ga4.realtime_report"],healthEndpoint:"https://analyticsdata.googleapis.com/v1beta/properties",risk:"Read-only analytics access.",tags:["analytics","ga4","google","oauth"]}),d({slug:"hubspot-crm",title:"HubSpot CRM",description:"Read and (with approval) write contacts, deals, and activity in HubSpot.",category:"sales",provider:"hubspot",prefix:"HUBSPOT",scopes:["crm.objects.contacts.read","crm.objects.deals.read","crm.objects.contacts.write"],unlocks:["hubspot.contacts_read","hubspot.deals_read","hubspot.contact_upsert"],healthEndpoint:"https://api.hubapi.com/crm/v3/objects/contacts",risk:"CRM writes (contact/deal upsert) require approval.",tags:["sales","crm","hubspot","oauth"]})];e.map(a=>a.slug);let f=[{slug:"web-prototype",title:"Open Design — Web Prototype",description:"Generate a complete production-quality web prototype from a brief."},{slug:"saas-landing",title:"Open Design — SaaS Landing",description:"Build a SaaS landing page with hero, features, social proof, pricing."},{slug:"dashboard",title:"Open Design — Dashboard",description:"Information-dense, hierarchy-driven dashboard scaffold."},{slug:"mobile-app",title:"Open Design — Mobile App",description:"Mobile-first product UI scaffold with touch targets and gestures."},{slug:"social-carousel",title:"Open Design — Social Carousel",description:"Editorial social carousel with platform-aware aspect ratios."},{slug:"magazine-poster",title:"Open Design — Magazine Poster",description:"Editorial magazine/poster typography with high contrast."},{slug:"deck-guizang-editorial",title:"Open Design — Editorial Deck",description:"Guizang editorial-style slide deck system."},{slug:"email-marketing",title:"Open Design — Email Marketing",description:"Transactional/marketing email scaffold with bulletproof HTML."},{slug:"design-brief",title:"Open Design — Design Brief",description:"Structured design brief used to seed the rest of the pipeline."},{slug:"design-review",title:"Open Design — Design Review",description:"Designer's eye plan review and visual QA pass."},{slug:"brand-guidelines",title:"Open Design — Brand Guidelines",description:"Distill or author a brand guidelines book."},{slug:"copywriting",title:"Open Design — Copywriting",description:"High-signal product copywriting craft notes and structure."}],g={slug:"open-design",title:"Open Design (nexu-io)",description:"Vendored design corpus from nexu-io/open-design: craft notes, 130+ skills, ~140 design systems, prompt + design templates. Apache-2.0.",category:"design",author:"nexu-io",source_kind:"github",source_url:"https://github.com/nexu-io/open-design",version:null,risk_summary:"Read-only design content. No code executes; no external writes.",tags:["design","craft","systems","templates","open-source","apache-2.0"],manifest:{item_refs:f.map(a=>`skill:open-design-${a.slug}`),published_count:f.length,license:"Apache-2.0",note:"Vendored under workspace/skills/open-design/. Re-vendor with `npm run vendor:open-design`. See NOTICE.md for attribution."}},h=[{slug:"design-shotgun",title:"Design Shotgun",description:"Generate multiple AI design variants for any UI surface, open a comparison board, and iterate from approved options.",category:"design",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Read-only ideation — no external writes.",tags:["design","mockups","exploration"],manifest:{invocation:"/design-shotgun",file_paths:["skills/design-shotgun/SKILL.md"],trigger_examples:["explore designs","show me design variants","visual brainstorm"]}},{slug:"design-review",title:"Design Review",description:"Visual QA pass on live pages: extracts the design system in use, audits hierarchy, typography, color, and spacing, and proposes fixes.",category:"design",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Read-only audit — fixes are proposed, not applied.",tags:["design","review","visual-qa"],manifest:{invocation:"/design-review",file_paths:["skills/design-review/SKILL.md"],trigger_examples:["review the design","visual QA","audit this page"]}},{slug:"qa-only",title:"QA Only",description:"Systematically QA a web app and produce a structured report with health score, screenshots, and repro steps. Never modifies code.",category:"review",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Report-only — no auto-fix.",tags:["qa","testing","report"],manifest:{invocation:"/qa-only",file_paths:["skills/qa-only/SKILL.md"],trigger_examples:["just report bugs","qa report only","test but do not fix"]}},{slug:"cso-audit",title:"CSO Audit",description:"Chief Security Officer mode: infrastructure-first security audit covering secrets archaeology, supply chain, OWASP Top 10, and threat modeling.",category:"security",author:"gstack",source_kind:"builtin",source_url:null,version:null,risk_summary:"Read-only audit; never executes destructive commands.",tags:["security","audit","owasp","threat-model"],manifest:{invocation:"/cso",file_paths:["skills/cso/SKILL.md"],trigger_examples:["security audit","threat model","OWASP review"]}}],i=[{slug:"market-research",title:"Market Research",category:"research",description:"Research any market, company, or topic across the web and deliver a cited, structured brief.",tools:["web_search","web_fetch","file_write"],risk_summary:"Read-only research; writes only the report file.",tags:["research","web","brief"],invocation:"/research",trigger_examples:["research this market","competitive landscape for X","brief me on company Y"]},{slug:"competitor-watch",title:"Competitor Watch",category:"research",description:"Track competitor pricing, features, and news on a schedule and alert you when something changes.",tools:["web_fetch","web_extract","email_send"],risk_summary:"Read-only monitoring; sends a summary email.",tags:["research","monitoring","competitive"],invocation:"/watch",trigger_examples:["watch competitor pricing","alert me when X changes","track this page weekly"]},{slug:"inbox-triage",title:"Inbox Triage",category:"comms",description:"Summarize, prioritize, and draft replies across your inbox so you act on what matters first.",tools:["gmail_messages_list","gmail_thread_read","email_send"],risk_summary:"Drafts replies; sending is approval-gated.",tags:["email","inbox","comms"],invocation:"/inbox",trigger_examples:["triage my inbox","summarize unread email","draft replies"]},{slug:"meeting-scheduler",title:"Meeting Scheduler",category:"comms",description:"Find times, schedule meetings, and send invites from your calendar and email.",tools:["calendar_events_list","calendar_event_read","email_send"],risk_summary:"Proposes times; invites are approval-gated.",tags:["calendar","scheduling","comms"],invocation:"/schedule-meeting",trigger_examples:["schedule a meeting","find a time with X","book a call next week"]},{slug:"document-extract",title:"Document Extraction",category:"documents",description:"Pull structured data and key facts from PDFs, documents, and audio into clean, usable output.",tools:["file_read","transcribe_audio","file_write"],risk_summary:"Read-only extraction; writes only the output file.",tags:["documents","extraction","pdf"],invocation:"/extract",trigger_examples:["extract data from this PDF","pull the numbers from these docs","transcribe this audio"]},{slug:"report-builder",title:"Report Builder",category:"documents",description:"Turn raw data and notes into a polished, formatted report or one-pager ready to share.",tools:["file_read","file_write"],risk_summary:"Generates a document; no external writes.",tags:["documents","reporting","writing"],invocation:"/report",trigger_examples:["build a report from this data","write a one-pager","summarize into a deck outline"]},{slug:"database-query",title:"Database Q&A",category:"data",description:"Ask questions of your database in plain English and get answers, tables, and charts.",tools:["supabase_rest_select","supabase_sql"],risk_summary:"Read-only queries by default; writes are approval-gated.",tags:["data","sql","analytics"],invocation:"/ask-data",trigger_examples:["how many orders last month","query the users table","top customers by revenue"]},{slug:"spreadsheet-analysis",title:"Spreadsheet Analysis",category:"data",description:"Clean, analyze, and summarize spreadsheets and CSVs — pivots, trends, and outliers.",tools:["file_read","file_write"],risk_summary:"Local file analysis; no external writes.",tags:["data","spreadsheet","csv"],invocation:"/analyze-sheet",trigger_examples:["analyze this spreadsheet","summarize this CSV","find trends in this data"]},{slug:"web-automation",title:"Web Automation",category:"web",description:"Fill forms, extract data, and run repetitive flows in a real browser, end to end.",tools:["browser_open","browser_act","browser_extract"],risk_summary:"Browser actions are bounded and audited.",tags:["web","automation","browser"],invocation:"/automate-web",trigger_examples:["automate this form","scrape this site","run this flow for each row"]}],j=[{slug:"paid-campaign-build",title:"Paid Campaign Build",category:"marketing",description:"Structure a paid campaign — objective, audiences, ad sets, creative spec, and budget — ready for approval-gated launch.",tools:["create_artifact","web_search"],risk_summary:"Plans campaigns; every publish/budget set stays approval-gated.",tags:["marketing","ads","campaign"],invocation:"/paid-campaign",trigger_examples:["build a Meta campaign","plan a paid launch","structure ad sets"]},{slug:"ads-reporting",title:"Ads Reporting",category:"marketing",description:"Pull spend, CPA, ROAS, and reach from connected ad accounts into one weekly performance report.",tools:["create_artifact","file_write"],risk_summary:"Read-only reporting; no external writes.",tags:["marketing","ads","reporting"],invocation:"/ads-report",trigger_examples:["weekly ads report","how did campaigns perform","ROAS summary"]},{slug:"content-calendar",title:"Content Calendar",category:"content",description:"Plan a multi-channel content calendar with post drafts, captions, and a scheduled queue.",tools:["create_artifact","file_write"],risk_summary:"Drafts and schedules; every publish stays approval-gated.",tags:["content","social","calendar"],invocation:"/content-calendar",trigger_examples:["plan this month of content","build a content calendar","draft social posts"]},{slug:"lead-research",title:"Lead Research",category:"sales",description:"Build a qualified target list, enrich it, and prep a personalized outreach sequence.",tools:["web_search","web_fetch","create_artifact"],risk_summary:"Research + drafts; sequence enrollment and bulk sends are approval-gated.",tags:["sales","outreach","leads"],invocation:"/lead-research",trigger_examples:["build a target list","find leads for X","prep an outreach sequence"]},{slug:"ticket-reply",title:"Ticket Reply",category:"support",description:"Triage support tickets, draft replies in brand voice, and flag escalations.",tools:["gmail_messages_list","file_write"],risk_summary:"Drafts replies; outbound sends/status changes are approval-gated.",tags:["support","helpdesk","tickets"],invocation:"/ticket-reply",trigger_examples:["triage support tickets","draft ticket replies","escalate this ticket"]},{slug:"runway-model",title:"Runway Model",category:"finance",description:"Turn revenue/expense data into a runway model and P&L summary with scenario sensitivity.",tools:["file_read","create_artifact"],risk_summary:"Advisory analysis; any money movement is approval-gated.",tags:["finance","runway","modeling"],invocation:"/runway",trigger_examples:["model our runway","P&L summary","how many months of cash"]}],k=[{slug:"gstack",title:"gstack",description:'"Senior engineering team in your terminal." 8 power tools + a stack of specialist skills for design, QA, review, security, and shipping. MIT licensed.',category:"engineering",author:"garrytan",source_kind:"builtin",source_url:"https://github.com/garrytan/gstack",version:null,risk_summary:"Mixed-risk bundle: includes read-only review skills and write-capable workflows (e.g. /ship runs git push). Per-item risk surfaces in Phase 2 when install is wired up.",tags:["engineering","skills-pack","mit"],manifest:{item_refs:["skill:design-shotgun","skill:design-review","skill:qa-only","skill:cso-audit"],published_count:4,license:"MIT",note:"Agent personas in this bundle will surface in the Agent Marketplace when it ships."}}];function l(a,b,c){let d=a.prepare("SELECT id FROM marketplace_items WHERE kind=? AND slug=?").get(b,c.slug),e=d?.id||`${b}:${c.slug}`,f=c.manifest?JSON.stringify(c.manifest):null,g=c.tags?JSON.stringify(c.tags):null;if(d)a.prepare(`
|
|
3245
3250
|
UPDATE marketplace_items
|
|
3246
3251
|
SET title=?, description=?, category=?, author=?, source_kind=?,
|
|
3247
3252
|
source_url=?, version=?, manifest_json=?, risk_summary=?, tags=?
|