madarx 2.9.12 → 2.9.13
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 +552 -552
- package/.next/standalone/.next/app-path-routes-manifest.json +82 -82
- package/.next/standalone/.next/build-manifest.json +5 -5
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
- 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 +3 -3
- 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]/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_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/chat/sessions/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/config/env/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/[service]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/[service]/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/move/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/import/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/[id]/blob/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/[id]/transcribe/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/folders/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/since/[cursor]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/stream/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/fs/create-folder/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/fs/pick-folder/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/blueprint/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/diagnostic/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/governance/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/interview/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/pilot/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/quarterly/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/setup-package/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/interviews/[id]/responses/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/interviews/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/setup-packages/[id]/apply/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/setup-packages/validate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/heartbeat/tick/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/heartbeat/worker/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/help/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hermes/jobs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/integrations/google/callback/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/integrations/google/oauth/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/marketplace/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/marketplace/open-design/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/marketplace/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/import-roots/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/portfolio/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/chunks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/diligence/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/import/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/publish/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/missions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/onboarding/blueprint/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/onboarding/launch/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orchestrator/command/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orchestrator/stream/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/org/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/invites/[inviteId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/invites/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/role/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/members/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/invites/pending/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/join/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/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/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 +1 -1
- 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 +3 -3
- 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 +1 -1
- package/.next/standalone/.next/server/app/brand.rsc +3 -3
- 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 +3 -3
- 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 +2 -2
- 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 +2 -2
- 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 +3 -3
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/marketplace/page.js +1 -1
- package/.next/standalone/.next/server/app/marketplace/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/mines/[projectId]/page_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 +2 -2
- 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.html +2 -2
- package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
- 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_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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/new/page.js +1 -1
- package/.next/standalone/.next/server/app/projects/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/new.html +1 -1
- package/.next/standalone/.next/server/app/projects/new.rsc +4 -4
- package/.next/standalone/.next/server/app/projects/page.js +8 -8
- 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 +3 -3
- 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 +3 -3
- 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/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 +3 -3
- 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 +1 -1
- package/.next/standalone/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/team/[agentId]/page_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 +1 -1
- package/.next/standalone/.next/server/app/whatsapp.rsc +3 -3
- 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/new/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 +82 -82
- package/.next/standalone/.next/server/chunks/1699.js +7 -7
- package/.next/standalone/.next/server/chunks/1997.js +2 -2
- package/.next/standalone/.next/server/chunks/6700.js +3 -3
- package/.next/standalone/.next/server/chunks/9430.js +1 -0
- package/.next/standalone/.next/server/functions-config-manifest.json +28 -28
- 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/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/pages-manifest.json +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/{static/chunks/app/layout-3c5a2ec0922a44da.js → standalone/.next/static/chunks/app/layout-01269582605f37ea.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/projects/[slug]/page-bc5359a5168e8ce3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/projects/page-99d221c5fd54c0e3.js +1 -0
- package/.next/standalone/.next/static/chunks/{webpack-9b86a02e210b78df.js → webpack-ce537f60727acb61.js} +1 -1
- package/.next/standalone/data/.artifacts-migrated-v1 +1 -1
- package/.next/standalone/data/.default-project-seeded +1 -1
- package/.next/standalone/data/madarx.sqlite +0 -0
- package/.next/standalone/data/madarx.sqlite-shm +0 -0
- package/.next/standalone/data/madarx.sqlite-wal +0 -0
- package/.next/standalone/package.json +1 -1
- package/.next/{standalone/.next/static/chunks/app/layout-3c5a2ec0922a44da.js → static/chunks/app/layout-01269582605f37ea.js} +1 -1
- package/.next/static/chunks/app/projects/[slug]/page-bc5359a5168e8ce3.js +1 -0
- package/.next/static/chunks/app/projects/page-99d221c5fd54c0e3.js +1 -0
- package/.next/static/chunks/{webpack-9b86a02e210b78df.js → webpack-ce537f60727acb61.js} +1 -1
- package/app/components/smart-search.jsx +1 -1
- package/lib/auth.js +62 -0
- package/lib/shared-cloud.js +88 -0
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/8677.js +0 -1
- package/.next/standalone/.next/static/chunks/app/projects/[slug]/page-8696ab69500ca8e1.js +0 -1
- package/.next/standalone/.next/static/chunks/app/projects/page-e73dec080197c3c1.js +0 -1
- package/.next/static/chunks/app/projects/[slug]/page-8696ab69500ca8e1.js +0 -1
- package/.next/static/chunks/app/projects/page-e73dec080197c3c1.js +0 -1
- /package/.next/standalone/.next/static/{Ggj14oXXrOVWG6lsx-BHT → 7W4PAGIBak7apEhh8Fa5C}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{Ggj14oXXrOVWG6lsx-BHT → 7W4PAGIBak7apEhh8Fa5C}/_ssgManifest.js +0 -0
- /package/.next/static/{Ggj14oXXrOVWG6lsx-BHT → 7W4PAGIBak7apEhh8Fa5C}/_buildManifest.js +0 -0
- /package/.next/static/{Ggj14oXXrOVWG6lsx-BHT → 7W4PAGIBak7apEhh8Fa5C}/_ssgManifest.js +0 -0
|
@@ -9,59 +9,59 @@
|
|
|
9
9
|
"/api/agent-memory/route": "app/api/agent-memory/route.js",
|
|
10
10
|
"/api/agent-runs/[id]/cancel/route": "app/api/agent-runs/[id]/cancel/route.js",
|
|
11
11
|
"/api/agent-runs/[id]/events/route": "app/api/agent-runs/[id]/events/route.js",
|
|
12
|
-
"/api/agent-runs/[id]/log/route": "app/api/agent-runs/[id]/log/route.js",
|
|
13
12
|
"/api/agent-runs/[id]/route": "app/api/agent-runs/[id]/route.js",
|
|
13
|
+
"/api/agent-runs/[id]/log/route": "app/api/agent-runs/[id]/log/route.js",
|
|
14
14
|
"/api/agent-runs/route": "app/api/agent-runs/route.js",
|
|
15
|
-
"/api/admin/audit-export/route": "app/api/admin/audit-export/route.js",
|
|
16
15
|
"/api/agents/[id]/chain/route": "app/api/agents/[id]/chain/route.js",
|
|
17
16
|
"/api/agents/[id]/memory/route": "app/api/agents/[id]/memory/route.js",
|
|
18
17
|
"/api/agents/[id]/reports/route": "app/api/agents/[id]/reports/route.js",
|
|
19
|
-
"/api/
|
|
18
|
+
"/api/admin/audit-export/route": "app/api/admin/audit-export/route.js",
|
|
20
19
|
"/api/agents/[id]/skills/route": "app/api/agents/[id]/skills/route.js",
|
|
21
20
|
"/api/agents/create/route": "app/api/agents/create/route.js",
|
|
22
21
|
"/api/agents/ops/route": "app/api/agents/ops/route.js",
|
|
23
22
|
"/api/approvals/[id]/route": "app/api/approvals/[id]/route.js",
|
|
24
23
|
"/api/approvals/route": "app/api/approvals/route.js",
|
|
25
|
-
"/api/artifacts/[id]/
|
|
24
|
+
"/api/artifacts/[id]/acl/route": "app/api/artifacts/[id]/acl/route.js",
|
|
25
|
+
"/api/agents/[id]/run/route": "app/api/agents/[id]/run/route.js",
|
|
26
26
|
"/api/artifacts/[id]/raw/route": "app/api/artifacts/[id]/raw/route.js",
|
|
27
27
|
"/api/artifacts/[id]/route": "app/api/artifacts/[id]/route.js",
|
|
28
28
|
"/api/artifacts/[id]/share-link/[linkId]/route": "app/api/artifacts/[id]/share-link/[linkId]/route.js",
|
|
29
29
|
"/api/artifacts/[id]/share-link/route": "app/api/artifacts/[id]/share-link/route.js",
|
|
30
|
+
"/api/artifacts/upload/route": "app/api/artifacts/upload/route.js",
|
|
30
31
|
"/api/audit/list/route": "app/api/audit/list/route.js",
|
|
31
32
|
"/api/audit/search/route": "app/api/audit/search/route.js",
|
|
32
|
-
"/api/auth/config/route": "app/api/auth/config/route.js",
|
|
33
33
|
"/api/auth/callback/route": "app/api/auth/callback/route.js",
|
|
34
|
+
"/api/artifacts/[id]/protect/route": "app/api/artifacts/[id]/protect/route.js",
|
|
34
35
|
"/api/auth/join-bootstrap/route": "app/api/auth/join-bootstrap/route.js",
|
|
35
|
-
"/api/
|
|
36
|
+
"/api/auth/session/route": "app/api/auth/session/route.js",
|
|
36
37
|
"/api/chat/sessions/[id]/route": "app/api/chat/sessions/[id]/route.js",
|
|
37
38
|
"/api/chat/sessions/route": "app/api/chat/sessions/route.js",
|
|
38
39
|
"/api/config/env/route": "app/api/config/env/route.js",
|
|
39
|
-
"/api/
|
|
40
|
-
"/api/
|
|
41
|
-
"/api/artifacts/upload/route": "app/api/artifacts/upload/route.js",
|
|
40
|
+
"/api/config/route": "app/api/config/route.js",
|
|
41
|
+
"/api/brand/route": "app/api/brand/route.js",
|
|
42
42
|
"/api/connections/route": "app/api/connections/route.js",
|
|
43
|
-
"/api/
|
|
43
|
+
"/api/auth/config/route": "app/api/auth/config/route.js",
|
|
44
44
|
"/api/dashboard/spaces/[id]/share-link/[linkId]/route": "app/api/dashboard/spaces/[id]/share-link/[linkId]/route.js",
|
|
45
45
|
"/api/dashboard/spaces/[id]/share-link/route": "app/api/dashboard/spaces/[id]/share-link/route.js",
|
|
46
|
-
"/api/
|
|
46
|
+
"/api/connections/[service]/route": "app/api/connections/[service]/route.js",
|
|
47
47
|
"/api/disk/files/[id]/route": "app/api/disk/files/[id]/route.js",
|
|
48
48
|
"/api/disk/files/[id]/transcribe/route": "app/api/disk/files/[id]/transcribe/route.js",
|
|
49
49
|
"/api/disk/files/route": "app/api/disk/files/route.js",
|
|
50
50
|
"/api/disk/folders/route": "app/api/disk/folders/route.js",
|
|
51
|
+
"/api/disk/files/[id]/blob/route": "app/api/disk/files/[id]/blob/route.js",
|
|
51
52
|
"/api/events/since/[cursor]/route": "app/api/events/since/[cursor]/route.js",
|
|
52
|
-
"/api/auth/session/route": "app/api/auth/session/route.js",
|
|
53
53
|
"/api/fs/create-folder/route": "app/api/fs/create-folder/route.js",
|
|
54
|
-
"/api/
|
|
54
|
+
"/api/connections/[service]/verify/route": "app/api/connections/[service]/verify/route.js",
|
|
55
55
|
"/api/hail/engagements/[id]/blueprint/route": "app/api/hail/engagements/[id]/blueprint/route.js",
|
|
56
56
|
"/api/hail/engagements/[id]/diagnostic/route": "app/api/hail/engagements/[id]/diagnostic/route.js",
|
|
57
|
-
"/api/
|
|
58
|
-
"/api/
|
|
57
|
+
"/api/cron/tick/route": "app/api/cron/tick/route.js",
|
|
58
|
+
"/api/hail/engagements/[id]/interview/route": "app/api/hail/engagements/[id]/interview/route.js",
|
|
59
59
|
"/api/hail/engagements/[id]/pilot/route": "app/api/hail/engagements/[id]/pilot/route.js",
|
|
60
|
-
"/api/hail/engagements/[id]/
|
|
61
|
-
"/api/hail/engagements/[id]/route": "app/api/hail/engagements/[id]/route.js",
|
|
60
|
+
"/api/hail/engagements/[id]/governance/route": "app/api/hail/engagements/[id]/governance/route.js",
|
|
62
61
|
"/api/hail/engagements/[id]/setup-package/route": "app/api/hail/engagements/[id]/setup-package/route.js",
|
|
63
|
-
"/api/
|
|
64
|
-
"/api/hail/engagements/[id]/
|
|
62
|
+
"/api/hail/engagements/[id]/route": "app/api/hail/engagements/[id]/route.js",
|
|
63
|
+
"/api/hail/engagements/[id]/quarterly/route": "app/api/hail/engagements/[id]/quarterly/route.js",
|
|
64
|
+
"/api/hail/engagements/route": "app/api/hail/engagements/route.js",
|
|
65
65
|
"/api/hail/interviews/[id]/responses/route": "app/api/hail/interviews/[id]/responses/route.js",
|
|
66
66
|
"/api/hail/setup-packages/[id]/apply/route": "app/api/hail/setup-packages/[id]/apply/route.js",
|
|
67
67
|
"/api/hail/interviews/[id]/route": "app/api/hail/interviews/[id]/route.js",
|
|
@@ -69,110 +69,110 @@
|
|
|
69
69
|
"/api/heartbeat/tick/route": "app/api/heartbeat/tick/route.js",
|
|
70
70
|
"/api/heartbeat/worker/route": "app/api/heartbeat/worker/route.js",
|
|
71
71
|
"/api/help/route": "app/api/help/route.js",
|
|
72
|
-
"/api/hermes/jobs/[id]/route": "app/api/hermes/jobs/[id]/route.js",
|
|
73
72
|
"/api/hermes/jobs/[id]/events/route": "app/api/hermes/jobs/[id]/events/route.js",
|
|
74
73
|
"/api/hermes/jobs/route": "app/api/hermes/jobs/route.js",
|
|
75
74
|
"/api/integrations/google/callback/route": "app/api/integrations/google/callback/route.js",
|
|
76
75
|
"/api/integrations/google/oauth/route": "app/api/integrations/google/oauth/route.js",
|
|
76
|
+
"/api/marketplace/[id]/route": "app/api/marketplace/[id]/route.js",
|
|
77
77
|
"/api/events/stream/route": "app/api/events/stream/route.js",
|
|
78
|
-
"/api/marketplace/open-design/route": "app/api/marketplace/open-design/route.js",
|
|
79
78
|
"/api/marketplace/route": "app/api/marketplace/route.js",
|
|
80
79
|
"/api/mines/import-roots/route": "app/api/mines/import-roots/route.js",
|
|
81
80
|
"/api/mines/portfolio/route": "app/api/mines/portfolio/route.js",
|
|
81
|
+
"/api/hermes/jobs/[id]/route": "app/api/hermes/jobs/[id]/route.js",
|
|
82
82
|
"/api/mines/projects/[id]/chunks/route": "app/api/mines/projects/[id]/chunks/route.js",
|
|
83
|
+
"/api/mines/projects/[id]/import/route": "app/api/mines/projects/[id]/import/route.js",
|
|
83
84
|
"/api/mines/projects/[id]/diligence/route": "app/api/mines/projects/[id]/diligence/route.js",
|
|
84
|
-
"/api/mines/projects/[id]/publish/route": "app/api/mines/projects/[id]/publish/route.js",
|
|
85
85
|
"/api/mines/projects/route": "app/api/mines/projects/route.js",
|
|
86
|
+
"/api/mines/projects/[id]/publish/route": "app/api/mines/projects/[id]/publish/route.js",
|
|
86
87
|
"/api/missions/route": "app/api/missions/route.js",
|
|
87
88
|
"/api/models/route": "app/api/models/route.js",
|
|
88
|
-
"/api/onboarding/blueprint/route": "app/api/onboarding/blueprint/route.js",
|
|
89
89
|
"/api/onboarding/launch/route": "app/api/onboarding/launch/route.js",
|
|
90
|
-
"/api/
|
|
91
|
-
"/api/
|
|
90
|
+
"/api/orchestrator/command/route": "app/api/orchestrator/command/route.js",
|
|
91
|
+
"/api/fs/pick-folder/route": "app/api/fs/pick-folder/route.js",
|
|
92
92
|
"/api/org/route": "app/api/org/route.js",
|
|
93
93
|
"/api/orgs/[id]/invites/[inviteId]/route": "app/api/orgs/[id]/invites/[inviteId]/route.js",
|
|
94
94
|
"/api/orgs/[id]/invites/route": "app/api/orgs/[id]/invites/route.js",
|
|
95
95
|
"/api/orgs/[id]/members/[userId]/role/route": "app/api/orgs/[id]/members/[userId]/role/route.js",
|
|
96
96
|
"/api/orgs/[id]/members/[userId]/route": "app/api/orgs/[id]/members/[userId]/route.js",
|
|
97
|
-
"/api/
|
|
98
|
-
"/api/marketplace/[id]/route": "app/api/marketplace/[id]/route.js",
|
|
99
|
-
"/api/orgs/invites/pending/route": "app/api/orgs/invites/pending/route.js",
|
|
97
|
+
"/api/marketplace/open-design/route": "app/api/marketplace/open-design/route.js",
|
|
100
98
|
"/api/orgs/[id]/route": "app/api/orgs/[id]/route.js",
|
|
99
|
+
"/api/orgs/invites/pending/route": "app/api/orgs/invites/pending/route.js",
|
|
101
100
|
"/api/orgs/join/route": "app/api/orgs/join/route.js",
|
|
102
|
-
"/api/
|
|
103
|
-
"/api/printing-press/install/route": "app/api/printing-press/install/route.js",
|
|
101
|
+
"/api/onboarding/blueprint/route": "app/api/onboarding/blueprint/route.js",
|
|
104
102
|
"/api/printing-press/clis/route": "app/api/printing-press/clis/route.js",
|
|
103
|
+
"/api/printing-press/install/route": "app/api/printing-press/install/route.js",
|
|
105
104
|
"/api/printing-press/security-mode/route": "app/api/printing-press/security-mode/route.js",
|
|
106
|
-
"/api/
|
|
107
|
-
"/api/
|
|
105
|
+
"/api/privacy/config/route": "app/api/privacy/config/route.js",
|
|
106
|
+
"/api/orgs/[id]/members/route": "app/api/orgs/[id]/members/route.js",
|
|
107
|
+
"/api/privacy/verify/route": "app/api/privacy/verify/route.js",
|
|
108
108
|
"/api/processes/[id]/share-link/route": "app/api/processes/[id]/share-link/route.js",
|
|
109
109
|
"/api/processes/[id]/stages/[stageId]/override/route": "app/api/processes/[id]/stages/[stageId]/override/route.js",
|
|
110
110
|
"/api/processes/[id]/stages/[stageId]/retry/route": "app/api/processes/[id]/stages/[stageId]/retry/route.js",
|
|
111
111
|
"/api/processes/[id]/stages/[stageId]/submit/route": "app/api/processes/[id]/stages/[stageId]/submit/route.js",
|
|
112
|
-
"/api/
|
|
112
|
+
"/api/orgs/route": "app/api/orgs/route.js",
|
|
113
113
|
"/api/processes/definitions/[slug]/settings/route": "app/api/processes/definitions/[slug]/settings/route.js",
|
|
114
|
-
"/api/processes/definitions/route": "app/api/processes/definitions/route.js",
|
|
115
114
|
"/api/processes/definitions/validate/route": "app/api/processes/definitions/validate/route.js",
|
|
116
|
-
"/api/
|
|
115
|
+
"/api/orchestrator/stream/route": "app/api/orchestrator/stream/route.js",
|
|
116
|
+
"/api/processes/definitions/route": "app/api/processes/definitions/route.js",
|
|
117
117
|
"/api/processes/start-and-route/route": "app/api/processes/start-and-route/route.js",
|
|
118
118
|
"/api/projects/[slug]/library/route": "app/api/projects/[slug]/library/route.js",
|
|
119
119
|
"/api/projects/[slug]/route": "app/api/projects/[slug]/route.js",
|
|
120
120
|
"/api/projects/route": "app/api/projects/route.js",
|
|
121
|
-
"/api/
|
|
121
|
+
"/api/processes/[id]/route": "app/api/processes/[id]/route.js",
|
|
122
122
|
"/api/runs/claude-code-dry-run/route": "app/api/runs/claude-code-dry-run/route.js",
|
|
123
123
|
"/api/runs/competitor-report/route": "app/api/runs/competitor-report/route.js",
|
|
124
124
|
"/api/runs/engine-ping/route": "app/api/runs/engine-ping/route.js",
|
|
125
|
-
"/api/runs/marketing-plan/route": "app/api/runs/marketing-plan/route.js",
|
|
126
125
|
"/api/schedules/upsert/route": "app/api/schedules/upsert/route.js",
|
|
127
|
-
"/api/runs/
|
|
126
|
+
"/api/runs/marketing-plan/route": "app/api/runs/marketing-plan/route.js",
|
|
127
|
+
"/api/processes/route": "app/api/processes/route.js",
|
|
128
128
|
"/api/secrets/[name]/route": "app/api/secrets/[name]/route.js",
|
|
129
129
|
"/api/secrets/route": "app/api/secrets/route.js",
|
|
130
130
|
"/api/settings/trust-mode/route": "app/api/settings/trust-mode/route.js",
|
|
131
131
|
"/api/share/[token]/otp/route": "app/api/share/[token]/otp/route.js",
|
|
132
132
|
"/api/processes/definitions/[slug]/route": "app/api/processes/definitions/[slug]/route.js",
|
|
133
|
+
"/api/share/[token]/verify/route": "app/api/share/[token]/verify/route.js",
|
|
133
134
|
"/api/share/space/[token]/otp/route": "app/api/share/space/[token]/otp/route.js",
|
|
134
135
|
"/api/share/space/[token]/route": "app/api/share/space/[token]/route.js",
|
|
135
136
|
"/api/share/space/[token]/verify/route": "app/api/share/space/[token]/verify/route.js",
|
|
136
|
-
"/api/orchestrator/stream/route": "app/api/orchestrator/stream/route.js",
|
|
137
|
-
"/api/share/[token]/verify/route": "app/api/share/[token]/verify/route.js",
|
|
138
|
-
"/api/shared/spaces/route": "app/api/shared/spaces/route.js",
|
|
139
137
|
"/api/shared/spaces/publish/route": "app/api/shared/spaces/publish/route.js",
|
|
138
|
+
"/api/shared/spaces/route": "app/api/shared/spaces/route.js",
|
|
140
139
|
"/api/shared/spaces/status/route": "app/api/shared/spaces/status/route.js",
|
|
140
|
+
"/api/runs/approve-claude-run/route": "app/api/runs/approve-claude-run/route.js",
|
|
141
141
|
"/api/state/route": "app/api/state/route.js",
|
|
142
|
-
"/api/shared/spaces/
|
|
142
|
+
"/api/shared/spaces/[id]/acl/route": "app/api/shared/spaces/[id]/acl/route.js",
|
|
143
143
|
"/api/tasks/[id]/active-run/route": "app/api/tasks/[id]/active-run/route.js",
|
|
144
|
-
"/api/tasks/[id]/attachments/route": "app/api/tasks/[id]/attachments/route.js",
|
|
145
144
|
"/api/system/update/route": "app/api/system/update/route.js",
|
|
145
|
+
"/api/tasks/[id]/attachments/route": "app/api/tasks/[id]/attachments/route.js",
|
|
146
146
|
"/api/tasks/[id]/checklist/[itemId]/route": "app/api/tasks/[id]/checklist/[itemId]/route.js",
|
|
147
|
-
"/api/tasks/[id]/checklist/route": "app/api/tasks/[id]/checklist/route.js",
|
|
148
147
|
"/api/tasks/[id]/checkout/route": "app/api/tasks/[id]/checkout/route.js",
|
|
148
|
+
"/api/tasks/[id]/checklist/route": "app/api/tasks/[id]/checklist/route.js",
|
|
149
149
|
"/api/tasks/[id]/children/route": "app/api/tasks/[id]/children/route.js",
|
|
150
|
-
"/api/tasks/[id]/events/route": "app/api/tasks/[id]/events/route.js",
|
|
151
150
|
"/api/tasks/[id]/comments/route": "app/api/tasks/[id]/comments/route.js",
|
|
151
|
+
"/api/tasks/[id]/events/route": "app/api/tasks/[id]/events/route.js",
|
|
152
152
|
"/api/tasks/[id]/live-runs/route": "app/api/tasks/[id]/live-runs/route.js",
|
|
153
153
|
"/api/tasks/[id]/release/route": "app/api/tasks/[id]/release/route.js",
|
|
154
|
+
"/api/tasks/[id]/route": "app/api/tasks/[id]/route.js",
|
|
154
155
|
"/api/tasks/route": "app/api/tasks/route.js",
|
|
155
156
|
"/api/tool-allowlists/[id]/route": "app/api/tool-allowlists/[id]/route.js",
|
|
156
|
-
"/api/
|
|
157
|
-
"/api/tool-egress/route": "app/api/tool-egress/route.js",
|
|
157
|
+
"/api/share/[token]/route": "app/api/share/[token]/route.js",
|
|
158
158
|
"/api/tools/[name]/approve/route": "app/api/tools/[name]/approve/route.js",
|
|
159
159
|
"/api/tools/[name]/route": "app/api/tools/[name]/route.js",
|
|
160
|
-
"/api/
|
|
160
|
+
"/api/tools/route": "app/api/tools/route.js",
|
|
161
161
|
"/api/transcripts/route": "app/api/transcripts/route.js",
|
|
162
162
|
"/api/voice/providers/route": "app/api/voice/providers/route.js",
|
|
163
|
-
"/api/tasks/[id]/route": "app/api/tasks/[id]/route.js",
|
|
164
163
|
"/api/voice/realtime/context/route": "app/api/voice/realtime/context/route.js",
|
|
164
|
+
"/api/voice/realtime/session/route": "app/api/voice/realtime/session/route.js",
|
|
165
165
|
"/api/voice/realtime/tool-result/route": "app/api/voice/realtime/tool-result/route.js",
|
|
166
|
+
"/api/shared/spaces/unpublish/route": "app/api/shared/spaces/unpublish/route.js",
|
|
166
167
|
"/api/voice/realtime/tools/route": "app/api/voice/realtime/tools/route.js",
|
|
167
|
-
"/api/voice/realtime/session/route": "app/api/voice/realtime/session/route.js",
|
|
168
|
-
"/api/voice/tts/route": "app/api/voice/tts/route.js",
|
|
169
|
-
"/api/whatsapp/messages/route": "app/api/whatsapp/messages/route.js",
|
|
170
168
|
"/api/whatsapp/allowlist/route": "app/api/whatsapp/allowlist/route.js",
|
|
169
|
+
"/api/whatsapp/messages/route": "app/api/whatsapp/messages/route.js",
|
|
171
170
|
"/api/whatsapp/qr/route": "app/api/whatsapp/qr/route.js",
|
|
172
|
-
"/api/whatsapp/status/route": "app/api/whatsapp/status/route.js",
|
|
173
171
|
"/api/whatsapp/send/route": "app/api/whatsapp/send/route.js",
|
|
174
|
-
"/api/
|
|
175
|
-
"/api/
|
|
172
|
+
"/api/whatsapp/status/route": "app/api/whatsapp/status/route.js",
|
|
173
|
+
"/api/tool-egress/route": "app/api/tool-egress/route.js",
|
|
174
|
+
"/api/tool-allowlists/route": "app/api/tool-allowlists/route.js",
|
|
175
|
+
"/api/voice/tts/route": "app/api/voice/tts/route.js",
|
|
176
176
|
"/reports/[file]/route": "app/reports/[file]/route.js",
|
|
177
177
|
"/brand/page": "app/brand/page.js",
|
|
178
178
|
"/join/page": "app/join/page.js",
|
|
@@ -181,58 +181,58 @@
|
|
|
181
181
|
"/projects/new/page": "app/projects/new/page.js",
|
|
182
182
|
"/whatsapp/page": "app/whatsapp/page.js",
|
|
183
183
|
"/activity/page": "app/activity/page.js",
|
|
184
|
-
"/agents/page": "app/agents/page.js",
|
|
185
184
|
"/admin/page": "app/admin/page.js",
|
|
185
|
+
"/agents/page": "app/agents/page.js",
|
|
186
186
|
"/agents/[id]/page": "app/agents/[id]/page.js",
|
|
187
|
-
"/audit/page": "app/audit/page.js",
|
|
188
187
|
"/audit/live/page": "app/audit/live/page.js",
|
|
188
|
+
"/audit/page": "app/audit/page.js",
|
|
189
189
|
"/disk/page": "app/disk/page.js",
|
|
190
|
+
"/hail/[id]/interview/page": "app/hail/[id]/interview/page.js",
|
|
190
191
|
"/approvals/page": "app/approvals/page.js",
|
|
191
192
|
"/hail/[id]/governance/page": "app/hail/[id]/governance/page.js",
|
|
192
|
-
"/hail/[id]/interview/page": "app/hail/[id]/interview/page.js",
|
|
193
|
-
"/hail/[id]/setup/page": "app/hail/[id]/setup/page.js",
|
|
194
193
|
"/hail/page": "app/hail/page.js",
|
|
195
|
-
"/help/
|
|
194
|
+
"/help/page": "app/help/page.js",
|
|
196
195
|
"/hail/[id]/page": "app/hail/[id]/page.js",
|
|
196
|
+
"/hail/[id]/setup/page": "app/hail/[id]/setup/page.js",
|
|
197
197
|
"/login/page": "app/login/page.js",
|
|
198
198
|
"/marketplace/page": "app/marketplace/page.js",
|
|
199
|
-
"/
|
|
200
|
-
"/
|
|
199
|
+
"/architecture/page": "app/architecture/page.js",
|
|
200
|
+
"/help/[slug]/page": "app/help/[slug]/page.js",
|
|
201
201
|
"/mines/page": "app/mines/page.js",
|
|
202
202
|
"/missions/page": "app/missions/page.js",
|
|
203
|
-
"/
|
|
204
|
-
"/
|
|
203
|
+
"/onboarding/org/page": "app/onboarding/org/page.js",
|
|
204
|
+
"/projects/[slug]/log/page": "app/projects/[slug]/log/page.js",
|
|
205
|
+
"/federated-ai/page": "app/federated-ai/page.js",
|
|
205
206
|
"/org/page": "app/org/page.js",
|
|
206
207
|
"/projects/[slug]/page": "app/projects/[slug]/page.js",
|
|
207
|
-
"/onboarding/org/page": "app/onboarding/org/page.js",
|
|
208
|
-
"/reports/page": "app/reports/page.js",
|
|
209
|
-
"/mines/[projectId]/results/page": "app/mines/[projectId]/results/page.js",
|
|
210
|
-
"/schedules/page": "app/schedules/page.js",
|
|
211
208
|
"/projects/page": "app/projects/page.js",
|
|
212
|
-
"/
|
|
213
|
-
"/
|
|
209
|
+
"/mines/[projectId]/page": "app/mines/[projectId]/page.js",
|
|
210
|
+
"/schedules/page": "app/schedules/page.js",
|
|
214
211
|
"/runtime/page": "app/runtime/page.js",
|
|
215
|
-
"/
|
|
212
|
+
"/reports/page": "app/reports/page.js",
|
|
213
|
+
"/mines/[projectId]/results/page": "app/mines/[projectId]/results/page.js",
|
|
214
|
+
"/share/[token]/page": "app/share/[token]/page.js",
|
|
215
|
+
"/team/page": "app/team/page.js",
|
|
216
216
|
"/team/[agentId]/page": "app/team/[agentId]/page.js",
|
|
217
|
+
"/tasks/page": "app/tasks/page.js",
|
|
217
218
|
"/tools/page": "app/tools/page.js",
|
|
218
|
-
"/
|
|
219
|
-
"/workflows/new/page": "app/workflows/new/page.js",
|
|
220
|
-
"/workflows/share/[caseId]/page": "app/workflows/share/[caseId]/page.js",
|
|
221
|
-
"/share/[token]/page": "app/share/[token]/page.js",
|
|
222
|
-
"/tasks/[id]/page": "app/tasks/[id]/page.js",
|
|
219
|
+
"/workflows/[caseId]/page": "app/workflows/[caseId]/page.js",
|
|
223
220
|
"/workflows/page": "app/workflows/page.js",
|
|
224
|
-
"/
|
|
221
|
+
"/tasks/[id]/page": "app/tasks/[id]/page.js",
|
|
222
|
+
"/share/space/[token]/page": "app/share/space/[token]/page.js",
|
|
225
223
|
"/workflows/new/[caseId]/page": "app/workflows/new/[caseId]/page.js",
|
|
226
|
-
"/workflows/[caseId]/page": "app/workflows/[caseId]/page.js",
|
|
224
|
+
"/workflows/share/[caseId]/page": "app/workflows/share/[caseId]/page.js",
|
|
225
|
+
"/workflows/new/page": "app/workflows/new/page.js",
|
|
226
|
+
"/workflows/new/definition/page": "app/workflows/new/definition/page.js",
|
|
227
227
|
"/settings/brand/page": "app/settings/brand/page.js",
|
|
228
228
|
"/settings/onboarding/page": "app/settings/onboarding/page.js",
|
|
229
|
-
"/settings/advanced/page": "app/settings/advanced/page.js",
|
|
230
229
|
"/settings/appearance/page": "app/settings/appearance/page.js",
|
|
231
|
-
"/settings/connectors/page": "app/settings/connectors/page.js",
|
|
232
230
|
"/settings/organization/page": "app/settings/organization/page.js",
|
|
231
|
+
"/settings/connectors/page": "app/settings/connectors/page.js",
|
|
233
232
|
"/settings/page": "app/settings/page.js",
|
|
234
233
|
"/settings/runtime/page": "app/settings/runtime/page.js",
|
|
234
|
+
"/settings/advanced/page": "app/settings/advanced/page.js",
|
|
235
|
+
"/settings/tools/page": "app/settings/tools/page.js",
|
|
235
236
|
"/settings/engines/page": "app/settings/engines/page.js",
|
|
236
|
-
"/settings/account/page": "app/settings/account/page.js"
|
|
237
|
-
"/settings/tools/page": "app/settings/tools/page.js"
|
|
237
|
+
"/settings/account/page": "app/settings/account/page.js"
|
|
238
238
|
}
|
|
@@ -19,13 +19,13 @@ Return ONLY corrected JSON in a \`\`\`json fence that matches the schema. No oth
|
|
|
19
19
|
SELECT id, scope_value AS root_path
|
|
20
20
|
FROM tool_allowlists
|
|
21
21
|
WHERE id = ? AND tool_name = ? AND scope_key = ? AND COALESCE(org_id, ?) = ?
|
|
22
|
-
`).get(String(a||""),s,t,d,d);if(!e)return{status:"error",error:"not_found"};c.prepare("DELETE FROM tool_allowlists WHERE id = ?").run(e.id);try{(0,i.appendComplianceAudit)({user_id:b.acting_on_behalf_of_user_id||b.user_id||"system",org_id:d,action:"mines.import_root.removed",status:"success",summary:"Removed Mines import root: "+e.root_path,action_target_id:e.id,action_target_type:"tool_allowlist",meta:{root_path:e.root_path,org_id:d}})}catch{}return{status:"ok",id:e.id,root_path:e.root_path}}function r(a,b={}){let c=n(g.resolve(String(a||".")));return!k(c)&&o(b).some(a=>{let b=g.resolve(a.root_path),d=g.relative(b,c);return""===d||!!d&&!d.startsWith("..")&&!g.isAbsolute(d)})}d()}catch(a){d(a)}})},1511:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Ht:()=>
|
|
22
|
+
`).get(String(a||""),s,t,d,d);if(!e)return{status:"error",error:"not_found"};c.prepare("DELETE FROM tool_allowlists WHERE id = ?").run(e.id);try{(0,i.appendComplianceAudit)({user_id:b.acting_on_behalf_of_user_id||b.user_id||"system",org_id:d,action:"mines.import_root.removed",status:"success",summary:"Removed Mines import root: "+e.root_path,action_target_id:e.id,action_target_type:"tool_allowlist",meta:{root_path:e.root_path,org_id:d}})}catch{}return{status:"ok",id:e.id,root_path:e.root_path}}function r(a,b={}){let c=n(g.resolve(String(a||".")));return!k(c)&&o(b).some(a=>{let b=g.resolve(a.root_path),d=g.relative(b,c);return""===d||!!d&&!d.startsWith("..")&&!g.isAbsolute(d)})}d()}catch(a){d(a)}})},1511:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Ht:()=>p,OC:()=>r,aS:()=>u,getAuthMode:()=>h.Im,getLocalDevUser:()=>k,vR:()=>h.vR});var e=c(77598),f=c(77030),g=c(34255),h=c(33446),i=c(36575),j=a([g,h,i]);[g,h,i]=j.then?(await j)():j;let x="phase-production-build"===process.env.NEXT_PHASE;function k(){return{user_id:"local-user-1",email:process.env.MADARX_OWNER_EMAIL||"owner@local.dev",display_name:"Local Owner",org_id:"personal-org",role:"owner",auth_mode:"local"}}"local"!==(process.env.MADARX_AUTH_MODE||"local").toLowerCase()||x||console.error("[auth] WARNING: MADARX_AUTH_MODE is not set to supabase in NODE_ENV=production. Configure Supabase auth (Settings → Account) or set MADARX_AUTH_MODE=supabase before exposing this deployment.");let y=new Map;function l(a){return(0,e.createHash)("sha256").update(a).digest("hex")}let z=null;async function m(a){let b;if(!1===z)throw Error("@supabase/ssr is not installed. Run: npm install @supabase/ssr @supabase/supabase-js");try{b=(await c.e(1658).then(c.bind(c,81658))).createServerClient,z=!0}catch{throw z=!1,Error("@supabase/ssr is not installed. Run: npm install @supabase/ssr @supabase/supabase-js")}let{url:d,anonKey:e}=(0,h.vR)();if(!d||!e)throw Error("Supabase URL and anon key are not configured. Set them in Settings → Account.");return b(d,e,{cookies:{getAll:()=>(a?.headers?.get?.("cookie")||"").split(";").map(a=>a.trim()).filter(Boolean).map(a=>{let b=a.indexOf("=");return{name:a.slice(0,b),value:a.slice(b+1)}}),setAll(){}}})}async function n(a,b){try{if(!a?.email||!a?.email_confirmed_at)return null;try{let{claimEmailInvitesViaCloud:d}=await c.e(6700).then(c.bind(c,66700)),e=await d({user_id:a.id,supabase_access_token:b});if(e.length)return e[0]}catch{}let d=(0,i.XJ)(a.id,a.email);return d.length?d[0]:null}catch(a){return console.warn("[auth] email-invite claim failed:",a.message),null}}let A={owner:0,admin:1,member:2,viewer:3};async function o(a,b){try{let{mirrorCloudMembershipsForUser:d}=await c.e(6700).then(c.bind(c,66700));return await d({user_id:a.id,supabase_access_token:b})}catch(a){return console.warn("[auth] cloud membership mirror failed:",a.message),[]}}async function p(a){let b;if("local"===(0,h.Im)())return k();let c=await q(a),d=function(a){let b=a.match(/sb-[^=]+-auth-token(?:-\d+)?=([^;]+)/);return b?decodeURIComponent(b[1]):null}(c);if(d){let a=function(a){let b=l(a),c=y.get(b);return c?Date.now()>c.expiresAt?(y.delete(b),null):c.session:null}(d);if(a)return a}let e=a||{headers:{get:a=>"cookie"===String(a).toLowerCase()?c:null}};try{b=await m(e)}catch(a){return console.error("[auth] getSession: failed to build Supabase client:",a.message),null}let{data:{user:f},error:i}=await b.auth.getUser();if(i||!f)return null;try{var j;let a=(0,g.getDb)(),b=(0,g.nowIso)();a.prepare(`INSERT INTO users (id, email, display_name, avatar_url, auth_provider, last_sign_in_at, created_at)
|
|
23
23
|
VALUES (?, ?, ?, ?, 'supabase', ?, ?)
|
|
24
24
|
ON CONFLICT(id) DO UPDATE SET
|
|
25
25
|
email = excluded.email,
|
|
26
26
|
display_name = excluded.display_name,
|
|
27
27
|
avatar_url = excluded.avatar_url,
|
|
28
|
-
last_sign_in_at = excluded.last_sign_in_at`).run(f.id,f.email,f.user_metadata?.full_name||f.user_metadata?.name||null,f.user_metadata?.avatar_url||null,b,b)}catch(a){console.warn("[auth] upsertUserRow failed:",a.message)}let
|
|
28
|
+
last_sign_in_at = excluded.last_sign_in_at`).run(f.id,f.email,f.user_metadata?.full_name||f.user_metadata?.name||null,f.user_metadata?.avatar_url||null,b,b)}catch(a){console.warn("[auth] upsertUserRow failed:",a.message)}let p=(j=f.id,(0,g.getDb)().prepare(`SELECT m.org_id, m.role
|
|
29
29
|
FROM org_memberships m
|
|
30
30
|
WHERE m.user_id = ?
|
|
31
31
|
ORDER BY CASE m.role
|
|
@@ -35,13 +35,13 @@ Return ONLY corrected JSON in a \`\`\`json fence that matches the schema. No oth
|
|
|
35
35
|
WHEN 'viewer' THEN 3
|
|
36
36
|
ELSE 4
|
|
37
37
|
END
|
|
38
|
-
LIMIT 1`).get(j)||null);if(o||(
|
|
38
|
+
LIMIT 1`).get(j)||null);if((0,h.fo)()||!p){let a=await o(f,d);a.length&&(p=(Array.isArray(a)&&0!==a.length?[...a].sort((a,b)=>{let c=A[a.role]??4,d=A[b.role]??4;return c!==d?c-d:String(a.org_id).localeCompare(String(b.org_id))})[0]:null)||p)}if(p||(p=await n(f,d)),p||(p=function(a){try{let b=(0,g.getDb)();if(b.prepare("SELECT COUNT(*) AS c FROM org_memberships WHERE user_id != 'local-user-1'").get().c>0)return null;let c=(0,g.nowIso)(),d=(0,g.newId)("org"),e=(a.email||"owner").split("@")[0].replace(/[^a-z0-9-]/gi,"").toLowerCase()||"owner",f=`${e}-org`.slice(0,60),h=a.user_metadata?.full_name||a.email||"Personal Org";return b.prepare(`INSERT INTO organizations (id, slug, name, plan, created_at, updated_at)
|
|
39
39
|
VALUES (?, ?, ?, 'free', ?, ?)`).run(d,f,h,c,c),b.prepare(`INSERT INTO org_memberships (id, org_id, user_id, role, accepted_at)
|
|
40
|
-
VALUES (?, ?, ?, 'owner', ?)`).run((0,g.newId)("mem"),d,a.id,c),{org_id:d,role:"owner"}}catch(a){return console.warn("[auth] first-login org bootstrap failed:",a.message),null}}(f)),!
|
|
41
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run((0,g.newId)("audit"),(0,g.nowIso)(),"session.ip_denied",`Access denied: IP ${i} not in allowlist`,"denied",JSON.stringify({ip:i,org_id:b.org_id}),b.user_id,b.org_id,i)}catch(a){console.error("[auth] Failed to write ip_denied audit row:",a.message)}throw{status:403,error:"ip_not_allowed"}}}}}catch(a){if(a.status)throw a;console.error("[auth] requireSession org policy check failed:",a.message)}return b}let
|
|
40
|
+
VALUES (?, ?, ?, 'owner', ?)`).run((0,g.newId)("mem"),d,a.id,c),{org_id:d,role:"owner"}}catch(a){return console.warn("[auth] first-login org bootstrap failed:",a.message),null}}(f)),!p)return{user_id:f.id,email:f.email,display_name:f.user_metadata?.full_name||null,org_id:null,role:null,auth_mode:"supabase",supabase_access_token:d};let r={user_id:f.id,email:f.email,display_name:f.user_metadata?.full_name||f.user_metadata?.name||null,org_id:p.org_id,role:p.role,auth_mode:"supabase",supabase_access_token:d};return d&&function(a,b){let c=l(a);y.set(c,{session:b,expiresAt:Date.now()+3e4})}(d,r),r}async function q(a,b){if(a?.headers?.get)return a.headers.get("cookie")||"";try{var d;let a=b||(async()=>{let{cookies:a}=await c.e(6802).then(c.bind(c,86802));return a()});return d=await a(),(d?.getAll?.()||[]).map(a=>`${a.name}=${a.value}`).join("; ")}catch{return""}}async function r(a){let b=await p(a);if(!b)throw{status:401,error:"unauthenticated"};if("local"===(0,h.Im)())return b;if(b.org_id)try{let d=(0,g.getDb)(),e=d.prepare("SELECT ip_allowlist_json, session_timeout_seconds FROM organizations WHERE id = ?").get(b.org_id);if(e){if(e.session_timeout_seconds){let a=d.prepare("SELECT last_sign_in_at FROM users WHERE id = ?").get(b.user_id);if(a?.last_sign_in_at&&(Date.now()-new Date(a.last_sign_in_at).getTime())/1e3>e.session_timeout_seconds)throw{status:401,error:"session_expired"}}if(e.ip_allowlist_json){var c;let h;try{h=JSON.parse(e.ip_allowlist_json)}catch{h=[]}let i=function(a){let b=a?.headers?.get?.("x-forwarded-for")||a?.headers?.["x-forwarded-for"];return b?String(b).split(",")[0].trim():null}(a);if(c=h,!(!Array.isArray(c)||0===c.length||c.some(a=>(function(a,b){if(!a||!b)return!1;let[c,d]=b.split("/");if(!c||void 0===d||!f.isIPv4(a)||!f.isIPv4(c))return!1;let e=""===d?32:parseInt(d,10);if(isNaN(e)||e<0||e>32)return!1;let g=a=>a.split(".").reduce((a,b)=>a<<8|parseInt(b,10),0)>>>0,h=g(a),i=g(c),j=0===e?0:-1<<32-e>>>0;return(h&j)==(i&j)})(i,a)))){try{d.prepare(`INSERT INTO audit_logs (id, at, type, summary, status, meta, user_id, org_id, ip)
|
|
41
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run((0,g.newId)("audit"),(0,g.nowIso)(),"session.ip_denied",`Access denied: IP ${i} not in allowlist`,"denied",JSON.stringify({ip:i,org_id:b.org_id}),b.user_id,b.org_id,i)}catch(a){console.error("[auth] Failed to write ip_denied audit row:",a.message)}throw{status:403,error:"ip_not_allowed"}}}}}catch(a){if(a.status)throw a;console.error("[auth] requireSession org policy check failed:",a.message)}return b}let B=new Map;function s(a,b){return`${a}:${b}`}function t(a,b,c){B.set(s(a,b),{verified_at:Date.now(),role:c})}async function u(a,b){if("local"===(0,h.Im)())return;let c=(process.env.MADARX_MEMBERSHIP_LIVE_CHECK??"on").toLowerCase();if("off"===c)return void console.warn("[auth] MADARX_MEMBERSHIP_LIVE_CHECK=off — membership revocation will not be detected. This mode is for dev/offline use only.");let d=a?.user_id,e=b||a?.org_id;if(!d||!e||function(a,b){let c=B.get(s(a,b));return c?Date.now()-c.verified_at>3e5?(B.delete(s(a,b)),null):c:null}(d,e))return;let f=(0,h.vR)().url,i=(0,h.fo)();if(f&&i)try{let a=`${f}/rest/v1/org_memberships?user_id=eq.${encodeURIComponent(d)}&org_id=eq.${encodeURIComponent(e)}&select=role&limit=1`,b=await fetch(a,{headers:{apikey:i,Authorization:`Bearer ${i}`,Accept:"application/json"},signal:AbortSignal.timeout(4e3)});if(!b.ok)throw Error(`Supabase returned HTTP ${b.status}`);let c=await b.json();if(!Array.isArray(c)||0===c.length)throw v(d,e),{status:403,error:"membership_revoked",sign_out_required:!0};t(d,e,c[0].role);return}catch(a){if(a.status)throw a;throw console.error("[auth] requireFreshMembership: Supabase live check failed:",a.message),w(d,e,a.message),{status:503,error:"supabase_unavailable",message:"Membership live check unavailable"}}try{let a=(0,g.getDb)().prepare(`SELECT id, role FROM org_memberships
|
|
42
42
|
WHERE user_id = ? AND org_id = ?
|
|
43
|
-
LIMIT 1`).get(d,e);if(!a)throw
|
|
44
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run((0,g.newId)("audit"),(0,g.nowIso)(),"auth.membership.revoked_detected",`Membership revoked detected for user ${a} in org ${b}`,"denied",JSON.stringify({user_id:a,org_id:b}),a,b)}catch(a){console.error("[auth] Failed to write membership_revoked audit row:",a.message)}}function
|
|
43
|
+
LIMIT 1`).get(d,e);if(!a)throw v(d,e),{status:403,error:"membership_revoked",sign_out_required:!0};t(d,e,a.role)}catch(a){if(a.status)throw a;throw console.error("[auth] requireFreshMembership SQLite fallback failed:",a.message),w(d,e,a.message),{status:503,error:"supabase_unavailable",message:"Membership check unavailable"}}}function v(a,b){try{(0,g.getDb)().prepare(`INSERT INTO audit_logs (id, at, type, summary, status, meta, user_id, org_id)
|
|
44
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run((0,g.newId)("audit"),(0,g.nowIso)(),"auth.membership.revoked_detected",`Membership revoked detected for user ${a} in org ${b}`,"denied",JSON.stringify({user_id:a,org_id:b}),a,b)}catch(a){console.error("[auth] Failed to write membership_revoked audit row:",a.message)}}function w(a,b,c){try{(0,g.getDb)().prepare(`INSERT INTO audit_logs (id, at, type, summary, status, meta, user_id, org_id)
|
|
45
45
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run((0,g.newId)("audit"),(0,g.nowIso)(),"auth.live_check_unavailable",`Membership live check unavailable for user ${a} in org ${b}`,"error",JSON.stringify({user_id:a,org_id:b,reason:c}),a,b)}catch(a){console.error("[auth] Failed to write live_check_unavailable audit row:",a.message)}}d()}catch(a){d(a)}})},1623:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$b:()=>l,E1:()=>q,JD:()=>j,OD:()=>z,PA:()=>i,VS:()=>k,Wr:()=>t,iS:()=>r,q9:()=>v,sR:()=>m,uR:()=>u,wA:()=>s,zr:()=>p});var e=c(34255),f=c(40718),g=c(91648),h=a([e,f,g]);[e,f,g]=h.then?(await h)():h;let u=`IDENTITY
|
|
46
46
|
You are madarX — Chief of Staff to the principal. Local-first orchestrator. Your job is routing, presentation, escalation. You are NOT the doer; you conduct. Every specialist, tool, or sub-agent in this workspace is an instrument you direct. You translate principal intent into action and bring back verified results.`,v=`ORCHESTRATOR_MODE (NON-NEGOTIABLE)
|
|
47
47
|
For ANY task longer than a one-line factual reply, your default move is DELEGATE. Decision order on every request:
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.id=1997,exports.ids=[1997],exports.modules={51997:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{claimEmailInvitesViaCloud:()=>
|
|
2
|
-
VALUES (?, ?, ?, 'free', ?, ?) ON CONFLICT(id) DO NOTHING`).run(a,`org-${String(a).slice(-8)}`,String(a),b,b)}f.prepare("SELECT id FROM org_memberships WHERE org_id = ? AND user_id = ?").get(a,b)||f.prepare("INSERT INTO org_memberships (id, org_id, user_id, role, accepted_at) VALUES (?, ?, ?, ?, ?)").run((0,e.Si)("mem"),a,b,c,(0,e.kF)())}(b.org_id,a.user_id,c),
|
|
1
|
+
"use strict";exports.id=1997,exports.ids=[1997],exports.modules={51997:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{claimEmailInvitesViaCloud:()=>r,mirrorCloudMembershipsForUser:()=>s}),c(77598);var e=c(84104),f=c(81909),g=c(16343),h=c(37937),i=c(79336),j=a([e,f,g,h,i]);function k(){}function l(a,b={}){try{let c=(0,f.r6)(a,{agent_id:b.agent_id,project_id:b.project_id});if(c)return c}catch{}return process.env[a]||null}function m(a,b={}){for(let[c,d]of Object.entries(b)){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(c))throw Error(`Invalid filter column: ${c}`);a.searchParams.set(c,String(d).includes(".")?String(d):`eq.${d}`)}}function n({baseUrl:a,apikey:b,bearer:c,agentId:d=null}){let e=`${a.replace(/\/+$/g,"")}/rest/v1`;function f(a={}){return{Authorization:`Bearer ${c}`,apikey:b,Accept:"application/json",...a}}async function h(a){let b={};try{b=await a.json()}catch{}return b.message||b.error||a.statusText||`HTTP ${a.status}`}return{async select(a,{filters:b={},select:c="*",limit:i=100}={}){let j=new URL(`${e}/${a}`);j.searchParams.set("select",c),j.searchParams.set("limit",String(Math.min(Math.max(Number(i)||1,1),1e3))),m(j,b);let k=await (0,g.N)("shared_cloud_select",d)(j,{headers:f()});if(!k.ok)throw Error(`shared_cloud select(${a}) failed: ${await h(k)}`);return k.json()},async upsert(a,b,{onConflict:c}={}){let i=Array.isArray(b)?b:[b],j=new URL(`${e}/${a}`);c&&j.searchParams.set("on_conflict",String(c));let k=await (0,g.N)("shared_cloud_upsert",d)(j,{method:"POST",headers:f({"Content-Type":"application/json",Prefer:"resolution=merge-duplicates,return=representation"}),body:JSON.stringify(i)});if(!k.ok)throw Error(`shared_cloud upsert(${a}) failed: ${await h(k)}`);return k.json()},async delete(a,{filters:b}={}){if(!b||!Object.keys(b).length)throw Error("shared_cloud delete requires filters; bulk delete is blocked.");let c=new URL(`${e}/${a}`);m(c,b);let i=await (0,g.N)("shared_cloud_delete",d)(c,{method:"DELETE",headers:f({Prefer:"return=representation"})});if(!i.ok)throw Error(`shared_cloud delete(${a}) failed: ${await h(i)}`);return i.json()},async rpc(a,b={}){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(a))throw Error(`Invalid rpc function name: ${a}`);let c=new URL(`${e}/rpc/${a}`),i=await (0,g.N)("shared_cloud_rpc",d)(c,{method:"POST",headers:f({"Content-Type":"application/json"}),body:JSON.stringify(b??{})});if(!i.ok)throw Error(`shared_cloud rpc(${a}) failed: ${await h(i)}`);return i.json()}}}function o(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_ANON_KEY",a);return!!(b&&c)}function p(a,b={}){if(k(),!a)throw Error("getSharedCloudUserClient: an access token (user JWT) is required");let c=l("SUPABASE_URL",b),d=l("SUPABASE_ANON_KEY",b);if(!c||!d)throw Error("Shared cloud (user) not configured: set SUPABASE_URL and SUPABASE_ANON_KEY.");return n({baseUrl:c,apikey:d,bearer:a,agentId:b.agent_id??null})}function q(a,b,c,d){let f=(0,e.Lf)();if(!f.prepare("SELECT id FROM organizations WHERE id = ?").get(a)){let b=(0,e.kF)();f.prepare(`INSERT INTO organizations (id, slug, name, plan, created_at, updated_at)
|
|
2
|
+
VALUES (?, ?, ?, 'free', ?, ?) ON CONFLICT(id) DO NOTHING`).run(a,`org-${String(a).slice(-8)}`,d||String(a),b,b)}f.prepare("SELECT id FROM org_memberships WHERE org_id = ? AND user_id = ?").get(a,b)||f.prepare("INSERT INTO org_memberships (id, org_id, user_id, role, accepted_at) VALUES (?, ?, ?, ?, ?)").run((0,e.Si)("mem"),a,b,c,(0,e.kF)())}async function r(a,b={}){let c,d=a?.supabase_access_token;if(!d||!o(b))return[];try{c=await p(d,b).rpc("claim_email_invites")}catch{return[]}let e=Array.isArray(c)?c:[],f=[];for(let b of e){let c=b.granted_role||b.role;b.org_id&&(q(b.org_id,a.user_id,c),f.push({org_id:b.org_id,role:c}))}return f}async function s(a,b={}){let c,d,e=a?.user_id;if(!e)return[];let f=a?.supabase_access_token||null,g=function({serviceReady:a,userReady:b,accessToken:c}){return a?"admin":b&&c?"user":null}({serviceReady:function(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_SERVICE_ROLE_KEY",a);return!!(b&&c)}(b),userReady:o(b),accessToken:f});if(!g)return[];try{c="admin"===g?function(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_SERVICE_ROLE_KEY",a);if(!b||!c)throw Error("Shared cloud not configured: set SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY.");return n({baseUrl:b,apikey:c,bearer:c,agentId:a.agent_id??null})}(b):p(f,b)}catch{return[]}try{d=await c.select("org_memberships",{filters:{user_id:e},select:"org_id,role",limit:100})}catch{return[]}if(!Array.isArray(d)||0===d.length)return[];let h=[...new Set(d.map(a=>a.org_id).filter(Boolean))],i=new Map;try{if(h.length){let a=await c.select("organizations",{filters:{id:`in.(${h.join(",")})`},select:"id,name",limit:1e3});for(let b of Array.isArray(a)?a:[])b.id&&i.set(b.id,b.name)}}catch{}let j=[];for(let a of d)a.org_id&&(q(a.org_id,e,a.role,i.get(a.org_id)),j.push({org_id:a.org_id,role:a.role}));return j}[e,f,g,h,i]=j.then?(await j)():j,Object.freeze(["private","team","org","link"]),Object.freeze(["org","team","private"]),Object.freeze(["dashboard_space","project"]),Object.freeze(["folder","file","artifact"]),Object.freeze(["user","team","org"]),Object.freeze(["user","org"]),Object.freeze(["read","write","admin"]),Object.freeze({read:1,write:2,admin:3}),d()}catch(a){d(a)}})}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=6700,exports.ids=[6700],exports.modules={66700:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bd:()=>x,DJ:()=>A,LC:()=>
|
|
1
|
+
"use strict";exports.id=6700,exports.ids=[6700],exports.modules={66700:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bd:()=>x,DJ:()=>A,LC:()=>L,Zb:()=>J,bP:()=>K,claimEmailInvitesViaCloud:()=>D,fv:()=>B,getSharedCloudAdmin:()=>q,gx:()=>M,i9:()=>z,isSharedCloudReady:()=>m,mirrorCloudMembershipsForUser:()=>F,p7:()=>w,redeemInviteViaCloud:()=>E}),c(77598);var e=c(34255),f=c(24516),g=c(58282),h=c(4160),i=c(61423),j=a([e,f,g,h,i]);function k(){}function l(a,b={}){try{let c=(0,f.getSecret)(a,{agent_id:b.agent_id,project_id:b.project_id});if(c)return c}catch{}return process.env[a]||null}function m(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_SERVICE_ROLE_KEY",a);return!!(b&&c)}function n(a,b={}){for(let[c,d]of Object.entries(b)){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(c))throw Error(`Invalid filter column: ${c}`);a.searchParams.set(c,String(d).includes(".")?String(d):`eq.${d}`)}}function o({baseUrl:a,apikey:b,bearer:c,agentId:d=null}){let e=`${a.replace(/\/+$/g,"")}/rest/v1`;function f(a={}){return{Authorization:`Bearer ${c}`,apikey:b,Accept:"application/json",...a}}async function h(a){let b={};try{b=await a.json()}catch{}return b.message||b.error||a.statusText||`HTTP ${a.status}`}return{async select(a,{filters:b={},select:c="*",limit:i=100}={}){let j=new URL(`${e}/${a}`);j.searchParams.set("select",c),j.searchParams.set("limit",String(Math.min(Math.max(Number(i)||1,1),1e3))),n(j,b);let k=await (0,g.N)("shared_cloud_select",d)(j,{headers:f()});if(!k.ok)throw Error(`shared_cloud select(${a}) failed: ${await h(k)}`);return k.json()},async upsert(a,b,{onConflict:c}={}){let i=Array.isArray(b)?b:[b],j=new URL(`${e}/${a}`);c&&j.searchParams.set("on_conflict",String(c));let k=await (0,g.N)("shared_cloud_upsert",d)(j,{method:"POST",headers:f({"Content-Type":"application/json",Prefer:"resolution=merge-duplicates,return=representation"}),body:JSON.stringify(i)});if(!k.ok)throw Error(`shared_cloud upsert(${a}) failed: ${await h(k)}`);return k.json()},async delete(a,{filters:b}={}){if(!b||!Object.keys(b).length)throw Error("shared_cloud delete requires filters; bulk delete is blocked.");let c=new URL(`${e}/${a}`);n(c,b);let i=await (0,g.N)("shared_cloud_delete",d)(c,{method:"DELETE",headers:f({Prefer:"return=representation"})});if(!i.ok)throw Error(`shared_cloud delete(${a}) failed: ${await h(i)}`);return i.json()},async rpc(a,b={}){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(a))throw Error(`Invalid rpc function name: ${a}`);let c=new URL(`${e}/rpc/${a}`),i=await (0,g.N)("shared_cloud_rpc",d)(c,{method:"POST",headers:f({"Content-Type":"application/json"}),body:JSON.stringify(b??{})});if(!i.ok)throw Error(`shared_cloud rpc(${a}) failed: ${await h(i)}`);return i.json()}}}function p(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_ANON_KEY",a);return!!(b&&c)}function q(a={}){let b=l("SUPABASE_URL",a),c=l("SUPABASE_SERVICE_ROLE_KEY",a);if(!b||!c)throw Error("Shared cloud not configured: set SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY.");return o({baseUrl:b,apikey:c,bearer:c,agentId:a.agent_id??null})}function r(a,b={}){if(k(),!a)throw Error("getSharedCloudUserClient: an access token (user JWT) is required");let c=l("SUPABASE_URL",b),d=l("SUPABASE_ANON_KEY",b);if(!c||!d)throw Error("Shared cloud (user) not configured: set SUPABASE_URL and SUPABASE_ANON_KEY.");return o({baseUrl:c,apikey:d,bearer:a,agentId:b.agent_id??null})}[e,f,g,h,i]=j.then?(await j)():j,Object.freeze(["private","team","org","link"]);let N=Object.freeze(["org","team","private"]),O=Object.freeze(["dashboard_space","project"]),P=Object.freeze(["folder","file","artifact"]);function s(a,b){if(!N.includes(a))throw Error(`${b}: invalid visibility "${a}" (expected one of ${N.join("|")})`)}function t(a,b){if(!O.includes(a))throw Error(`${b}: invalid space_type "${a}" (expected one of ${O.join("|")})`)}function u(a,b){return(0,e.getDb)().prepare("SELECT * FROM shared_space_publications WHERE local_space_id = ? AND space_type = ?").get(a,b)||null}function v(a){let b=(0,e.getDb)(),c=b.prepare("SELECT id FROM shared_space_publications WHERE local_space_id = ? AND space_type = ?").get(a.local_space_id,a.space_type),d=c?.id||(0,e.newId)("spub");return b.prepare(`INSERT INTO shared_space_publications
|
|
2
2
|
(id, local_space_id, space_type, org_id, cloud_space_id, slug, name,
|
|
3
3
|
visibility, include_resource_metadata, resource_count, status, last_error,
|
|
4
4
|
published_by, published_at, last_synced_at, unpublished_at)
|
|
@@ -15,5 +15,5 @@
|
|
|
15
15
|
last_error = excluded.last_error,
|
|
16
16
|
published_by = excluded.published_by,
|
|
17
17
|
last_synced_at = excluded.last_synced_at,
|
|
18
|
-
unpublished_at = excluded.unpublished_at`).run(d,a.local_space_id,a.space_type,a.org_id,a.cloud_space_id??null,a.slug??null,a.name??null,a.visibility,+!!a.include_resource_metadata,Number(a.resource_count)||0,a.status,a.last_error??null,a.published_by??null,a.published_at??(0,e.nowIso)(),a.last_synced_at??null,a.unpublished_at??null),d}function w(a,b="dashboard_space"){t(b,"getSharedSpaceStatus");let c=u(a,b);return c?{shared:"published"===c.status,status:c.status,space_type:c.space_type,local_space_id:c.local_space_id,cloud_space_id:c.cloud_space_id||null,slug:c.slug||null,name:c.name||null,visibility:c.visibility||null,include_resource_metadata:1===c.include_resource_metadata,resource_count:Number(c.resource_count)||0,last_error:c.last_error||null,published_by:c.published_by||null,published_at:c.published_at||null,last_synced_at:c.last_synced_at||null}:{shared:!1,status:"local",space_type:b,local_space_id:a,cloud_space_id:null,visibility:null,resource_count:0,last_synced_at:null}}function x({status:a,space_type:b}={}){let c=(0,e.getDb)(),d=[],f=[];a&&(d.push("status = ?"),f.push(a)),b&&(d.push("space_type = ?"),f.push(b));let g=`SELECT * FROM shared_space_publications ${d.length?`WHERE ${d.join(" AND ")}`:""} ORDER BY published_at DESC`;return c.prepare(g).all(...f)}async function y(a,{session:b,options:c,resources:d=null,include_resource_metadata:f=!1,excludedLocalOnly:g=0,target_type:i,target_id:j}){var k=a;if(!k||"object"!=typeof k)throw Error("shared space metadata must be an object");for(let a of["org_id","space_type","local_space_id","slug","name","visibility"])if(null==k[a]||""===k[a])throw Error(`shared space metadata missing required field: ${a}`);t(k.space_type,"validateSharedSpaceMetadata"),s(k.visibility,"validateSharedSpaceMetadata");let{org_id:l,space_type:n,local_space_id:o}=a;if(!m(c))throw Error(`publish ${n}: shared cloud is not configured. Set SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY (vault or env) before sharing.`);let p=q(c),r=null;try{let b=await p.upsert("shared_spaces",a,{onConflict:"org_id,space_type,local_space_id"});r=Array.isArray(b)?b[0]:b}catch(c){throw v({local_space_id:o,space_type:n,org_id:l,slug:a.slug,name:a.name,visibility:a.visibility,include_resource_metadata:f,status:"error",last_error:c.message,published_by:b?.user_id}),(0,h.appendComplianceAudit)({user_id:b?.user_id,org_id:l,action:`${n}.shared.publish.error`,action_target_id:j,action_target_type:i,status:"error",summary:`Failed to share ${n} ${o} to shared cloud`,meta:{visibility:a.visibility,error:c.message}}),c}let u=r?.id??null,x=0;if(f&&Array.isArray(d)&&u&&(await p.delete("shared_space_resources",{filters:{org_id:l,shared_space_id:u}}),d.length)){let a=d.map(a=>(function(a,b={}){if(!a||!a.local_resource_id)throw Error("mapProjectResourceMetadata: resource with local_resource_id is required");if(!b.org_id)throw Error("mapProjectResourceMetadata: org_id is required");if(!b.cloud_space_id)throw Error("mapProjectResourceMetadata: cloud_space_id is required");if(!
|
|
19
|
-
VALUES (?, ?, ?, 'free', ?, ?) ON CONFLICT(id) DO NOTHING`).run(a,`org-${String(a).slice(-8)}`,d||String(a),b,b)}f.prepare("SELECT id FROM org_memberships WHERE org_id = ? AND user_id = ?").get(a,b)||f.prepare("INSERT INTO org_memberships (id, org_id, user_id, role, accepted_at) VALUES (?, ?, ?, ?, ?)").run((0,e.newId)("mem"),a,b,c,(0,e.nowIso)())}async function D(a,b={}){let c,d=a?.supabase_access_token;if(!d||!p(b))return[];try{c=await r(d,b).rpc("claim_email_invites")}catch{return[]}let e=Array.isArray(c)?c:[],f=[];for(let b of e){let c=b.granted_role||b.role;b.org_id&&(C(b.org_id,a.user_id,c),f.push({org_id:b.org_id,role:c}))}return f}async function E(a,b,c={}){let d=b?.supabase_access_token;if(!d)throw Error("redeemInviteViaCloud: no session access token");if(!p(c))throw Error("redeemInviteViaCloud: shared cloud (user) not configured");let e=await r(d,c).rpc("redeem_invite_token",{p_token:a}),f=Array.isArray(e)?e[0]:e;if(!f||!f.org_id)throw Object.assign(Error("invite is no longer valid (expired, revoked, or fully used)"),{code:"invite_invalid"});let g=f.granted_role||f.role;return C(f.org_id,b.user_id,g),{org_id:f.org_id,role:g}}let
|
|
18
|
+
unpublished_at = excluded.unpublished_at`).run(d,a.local_space_id,a.space_type,a.org_id,a.cloud_space_id??null,a.slug??null,a.name??null,a.visibility,+!!a.include_resource_metadata,Number(a.resource_count)||0,a.status,a.last_error??null,a.published_by??null,a.published_at??(0,e.nowIso)(),a.last_synced_at??null,a.unpublished_at??null),d}function w(a,b="dashboard_space"){t(b,"getSharedSpaceStatus");let c=u(a,b);return c?{shared:"published"===c.status,status:c.status,space_type:c.space_type,local_space_id:c.local_space_id,cloud_space_id:c.cloud_space_id||null,slug:c.slug||null,name:c.name||null,visibility:c.visibility||null,include_resource_metadata:1===c.include_resource_metadata,resource_count:Number(c.resource_count)||0,last_error:c.last_error||null,published_by:c.published_by||null,published_at:c.published_at||null,last_synced_at:c.last_synced_at||null}:{shared:!1,status:"local",space_type:b,local_space_id:a,cloud_space_id:null,visibility:null,resource_count:0,last_synced_at:null}}function x({status:a,space_type:b}={}){let c=(0,e.getDb)(),d=[],f=[];a&&(d.push("status = ?"),f.push(a)),b&&(d.push("space_type = ?"),f.push(b));let g=`SELECT * FROM shared_space_publications ${d.length?`WHERE ${d.join(" AND ")}`:""} ORDER BY published_at DESC`;return c.prepare(g).all(...f)}async function y(a,{session:b,options:c,resources:d=null,include_resource_metadata:f=!1,excludedLocalOnly:g=0,target_type:i,target_id:j}){var k=a;if(!k||"object"!=typeof k)throw Error("shared space metadata must be an object");for(let a of["org_id","space_type","local_space_id","slug","name","visibility"])if(null==k[a]||""===k[a])throw Error(`shared space metadata missing required field: ${a}`);t(k.space_type,"validateSharedSpaceMetadata"),s(k.visibility,"validateSharedSpaceMetadata");let{org_id:l,space_type:n,local_space_id:o}=a;if(!m(c))throw Error(`publish ${n}: shared cloud is not configured. Set SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY (vault or env) before sharing.`);let p=q(c),r=null;try{let b=await p.upsert("shared_spaces",a,{onConflict:"org_id,space_type,local_space_id"});r=Array.isArray(b)?b[0]:b}catch(c){throw v({local_space_id:o,space_type:n,org_id:l,slug:a.slug,name:a.name,visibility:a.visibility,include_resource_metadata:f,status:"error",last_error:c.message,published_by:b?.user_id}),(0,h.appendComplianceAudit)({user_id:b?.user_id,org_id:l,action:`${n}.shared.publish.error`,action_target_id:j,action_target_type:i,status:"error",summary:`Failed to share ${n} ${o} to shared cloud`,meta:{visibility:a.visibility,error:c.message}}),c}let u=r?.id??null,x=0;if(f&&Array.isArray(d)&&u&&(await p.delete("shared_space_resources",{filters:{org_id:l,shared_space_id:u}}),d.length)){let a=d.map(a=>(function(a,b={}){if(!a||!a.local_resource_id)throw Error("mapProjectResourceMetadata: resource with local_resource_id is required");if(!b.org_id)throw Error("mapProjectResourceMetadata: org_id is required");if(!b.cloud_space_id)throw Error("mapProjectResourceMetadata: cloud_space_id is required");if(!P.includes(a.resource_type))throw Error(`mapProjectResourceMetadata: invalid resource_type "${a.resource_type}"`);return{org_id:b.org_id,shared_space_id:b.cloud_space_id,local_resource_id:String(a.local_resource_id),resource_type:a.resource_type,name:a.name||a.local_resource_id,path:a.path??null,mime_type:a.mime_type??null,kind:a.kind??null,size_bytes:"number"==typeof a.size_bytes?a.size_bytes:null,sha256:a.sha256??null,local_only:!!a.local_only,metadata:a.metadata??null}})(a,{org_id:l,cloud_space_id:u}));await p.upsert("shared_space_resources",a,{onConflict:"shared_space_id,resource_type,local_resource_id"}),x=a.length}return v({local_space_id:o,space_type:n,org_id:l,cloud_space_id:u,slug:a.slug,name:a.name,visibility:a.visibility,include_resource_metadata:f,resource_count:x,status:"published",published_by:b?.user_id,published_at:(0,e.nowIso)(),last_synced_at:(0,e.nowIso)()}),(0,h.appendComplianceAudit)({user_id:b?.user_id,org_id:l,action:`${n}.shared.published`,action_target_id:j,action_target_type:i,status:"success",summary:`Shared ${n} ${o} to shared cloud (visibility: ${a.visibility})`,meta:{visibility:a.visibility,cloud_space_id:u,resource_count:x,excluded_local_only:g}}),w(o,n)}async function z(a={},b={}){var c;let{space_id:d,session:f,visibility:g="org"}=a;if(!d)throw Error("publishDashboardSpace: space_id is required");let h=a.org_id||f?.org_id;if(!h)throw Error("publishDashboardSpace: org_id (or session.org_id) is required");s(g,"publishDashboardSpace");let i=(0,e.getDb)().prepare("SELECT * FROM dashboard_spaces WHERE id = ?").get(String(d));if(!i)throw Error(`publishDashboardSpace: dashboard space ${d} not found locally`);let j=function(a,b={}){if(!a||!a.id)throw Error("mapDashboardSpaceToSharedSpaceMetadata: space with id is required");if(!b.org_id)throw Error("mapDashboardSpaceToSharedSpaceMetadata: org_id is required");let c=b.visibility||"org";s(c,"mapDashboardSpaceToSharedSpaceMetadata");let d=a.slug||String(a.id);return{org_id:b.org_id,space_type:"dashboard_space",local_space_id:String(a.id),local_project_id:null,slug:d,name:a.name||d,description:a.description??null,visibility:c,created_by:b.created_by??null}}(i,{org_id:h,visibility:g,created_by:a.published_by??null}),k=(c=String(d),(0,e.getDb)().prepare("SELECT id, title, kind FROM artifacts WHERE space_id = ? ORDER BY created_at DESC").all(String(c)).map(a=>({local_resource_id:a.id,resource_type:"artifact",name:a.title||a.id,kind:a.kind??null})));return y(j,{session:f,options:b,resources:k,include_resource_metadata:!0,target_type:"dashboard_space",target_id:String(d)})}async function A(a={},b={}){let{session:c,visibility:d="org",includeResourceMetadata:f=!0}=a,g=a.project_id||a.slug;if(!g)throw Error("publishProjectFolder: project_id or slug is required");let h=a.org_id||c?.org_id;if(!h)throw Error("publishProjectFolder: org_id (or session.org_id) is required");s(d,"publishProjectFolder");let j=(0,i.U1)(g);if(!j)throw Error(`publishProjectFolder: project ${g} not found locally`);let k=function(a,b={}){if(!a||!a.id)throw Error("mapProjectToSharedSpaceMetadata: project with id is required");if(!b.org_id)throw Error("mapProjectToSharedSpaceMetadata: org_id is required");let c=b.visibility||"org";return s(c,"mapProjectToSharedSpaceMetadata"),{org_id:b.org_id,space_type:"project",local_space_id:String(a.id),local_project_id:String(a.id),slug:a.slug||String(a.id),name:a.name||a.slug||String(a.id),description:a.description??null,visibility:c,created_by:b.created_by??null}}(j,{org_id:h,visibility:d,created_by:a.published_by??null}),l=null,m=0;if(f){let b=function(a,{includeLocalOnly:b=!1,allowLocalOnlyOverride:c=!1}={}){if(b&&!c)throw Error("publishProjectFolder: refusing to share local_only resources. local_only is a hard content boundary; pass allowLocalOnlyOverride:true to force metadata-only sharing of local_only files (bodies are never uploaded).");let d=(0,e.getDb)(),f=[];for(let b of d.prepare("SELECT * FROM disk_folders WHERE project_id = ? ORDER BY path ASC").all(a))f.push({local_resource_id:b.id,resource_type:"folder",name:b.name,path:b.path});let g=0;for(let c of d.prepare("SELECT * FROM disk_files WHERE project_id = ? ORDER BY updated_at DESC").all(a)){let a=1===c.local_only;if(a&&!b){g+=1;continue}f.push({local_resource_id:c.id,resource_type:"file",name:c.name,path:c.path??null,mime_type:c.mime_type??null,kind:c.kind??null,size_bytes:"number"==typeof c.size_bytes?c.size_bytes:null,sha256:c.sha256??null,local_only:a})}for(let b of d.prepare("SELECT id, title, kind FROM artifacts WHERE project_id = ? ORDER BY created_at DESC").all(a))f.push({local_resource_id:b.id,resource_type:"artifact",name:b.title||b.id,kind:b.kind??null});return{resources:f,excludedLocalOnly:g}}(j.id,{includeLocalOnly:!0===a.includeLocalOnly,allowLocalOnlyOverride:!0===a.allowLocalOnlyOverride});l=b.resources,m=b.excludedLocalOnly}return y(k,{session:c,options:b,resources:l,include_resource_metadata:f,excludedLocalOnly:m,target_type:"project",target_id:j.id})}async function B(a={},b={}){let{local_space_id:c,session:d,space_type:f="dashboard_space"}=a;if(!c)throw Error("unpublishSpace: local_space_id is required");let g=a.org_id||d?.org_id;if(!g)throw Error("unpublishSpace: org_id (or session.org_id) is required");if(t(f,"unpublishSpace"),!m(b))throw Error("unpublishSpace: shared cloud is not configured.");let i=q(b),j=u(c,f);return j?.cloud_space_id&&await i.delete("shared_space_resources",{filters:{org_id:g,shared_space_id:j.cloud_space_id}}),await i.delete("shared_spaces",{filters:{org_id:g,space_type:f,local_space_id:c}}),v({local_space_id:c,space_type:f,org_id:g,visibility:j?.visibility||"private",status:"unpublished",resource_count:0,published_by:d?.user_id,unpublished_at:(0,e.nowIso)(),last_synced_at:(0,e.nowIso)()}),(0,h.appendComplianceAudit)({user_id:d?.user_id,org_id:g,action:`${f}.shared.unpublished`,action_target_id:c,action_target_type:f,status:"success",summary:`Unshared ${f} ${c} from shared cloud`}),w(c,f)}function C(a,b,c,d){let f=(0,e.getDb)();if(!f.prepare("SELECT id FROM organizations WHERE id = ?").get(a)){let b=(0,e.nowIso)();f.prepare(`INSERT INTO organizations (id, slug, name, plan, created_at, updated_at)
|
|
19
|
+
VALUES (?, ?, ?, 'free', ?, ?) ON CONFLICT(id) DO NOTHING`).run(a,`org-${String(a).slice(-8)}`,d||String(a),b,b)}f.prepare("SELECT id FROM org_memberships WHERE org_id = ? AND user_id = ?").get(a,b)||f.prepare("INSERT INTO org_memberships (id, org_id, user_id, role, accepted_at) VALUES (?, ?, ?, ?, ?)").run((0,e.newId)("mem"),a,b,c,(0,e.nowIso)())}async function D(a,b={}){let c,d=a?.supabase_access_token;if(!d||!p(b))return[];try{c=await r(d,b).rpc("claim_email_invites")}catch{return[]}let e=Array.isArray(c)?c:[],f=[];for(let b of e){let c=b.granted_role||b.role;b.org_id&&(C(b.org_id,a.user_id,c),f.push({org_id:b.org_id,role:c}))}return f}async function E(a,b,c={}){let d=b?.supabase_access_token;if(!d)throw Error("redeemInviteViaCloud: no session access token");if(!p(c))throw Error("redeemInviteViaCloud: shared cloud (user) not configured");let e=await r(d,c).rpc("redeem_invite_token",{p_token:a}),f=Array.isArray(e)?e[0]:e;if(!f||!f.org_id)throw Object.assign(Error("invite is no longer valid (expired, revoked, or fully used)"),{code:"invite_invalid"});let g=f.granted_role||f.role;return C(f.org_id,b.user_id,g),{org_id:f.org_id,role:g}}async function F(a,b={}){let c,d,e=a?.user_id;if(!e)return[];let f=a?.supabase_access_token||null,g=function({serviceReady:a,userReady:b,accessToken:c}){return a?"admin":b&&c?"user":null}({serviceReady:m(b),userReady:p(b),accessToken:f});if(!g)return[];try{c="admin"===g?q(b):r(f,b)}catch{return[]}try{d=await c.select("org_memberships",{filters:{user_id:e},select:"org_id,role",limit:100})}catch{return[]}if(!Array.isArray(d)||0===d.length)return[];let h=[...new Set(d.map(a=>a.org_id).filter(Boolean))],i=new Map;try{if(h.length){let a=await c.select("organizations",{filters:{id:`in.(${h.join(",")})`},select:"id,name",limit:1e3});for(let b of Array.isArray(a)?a:[])b.id&&i.set(b.id,b.name)}}catch{}let j=[];for(let a of d)a.org_id&&(C(a.org_id,e,a.role,i.get(a.org_id)),j.push({org_id:a.org_id,role:a.role}));return j}let Q=Object.freeze(["user","team","org"]),R=Object.freeze(["user","org"]),S=Object.freeze(["read","write","admin"]),T=Object.freeze({read:1,write:2,admin:3});function G(a,b,{writableOnly:c=!1}={}){let d=c?R:Q;if(!d.includes(a))throw Error(`${b}: invalid principal_type "${a}" (expected one of ${d.join("|")})`)}function H(a,b,c,d){if("org"===a)return b||c;if(!b)throw Error(`${d}: principal_id is required for principal_type "${a}"`);return b}function I(a,b,c){let d=u(a,b);if(!d||"published"!==d.status||!d.cloud_space_id)throw Error(`${c}: ${b} ${a} is not published to the shared cloud`);return d.cloud_space_id}async function J(a={},b={}){let c,{local_space_id:d,session:f,principal_type:g,permission:i="read",space_type:j="project"}=a;if(!d)throw Error("grantSpaceAccess: local_space_id is required");let k=a.org_id||f?.org_id;if(!k)throw Error("grantSpaceAccess: org_id (or session.org_id) is required");t(j,"grantSpaceAccess"),G(g,"grantSpaceAccess",{writableOnly:!0});if(!S.includes(i))throw Error(`grantSpaceAccess: invalid permission "${i}" (expected one of ${S.join("|")})`);let l=H(g,a.principal_id,k,"grantSpaceAccess");if(!m(b))throw Error("grantSpaceAccess: shared cloud is not configured.");let n=I(d,j,"grantSpaceAccess"),o=q(b);try{let a=await o.upsert("shared_space_acl",{shared_space_id:n,org_id:k,principal_type:g,principal_id:l,permission:i,created_by:f?.user_id??null,updated_at:(0,e.nowIso)()},{onConflict:"shared_space_id,principal_type,principal_id"});c=Array.isArray(a)?a[0]:a}catch(a){throw(0,h.appendComplianceAudit)({user_id:f?.user_id,org_id:k,action:`${j}.shared.acl.grant.error`,action_target_id:d,action_target_type:j,status:"error",summary:`Failed to grant ${i} on ${j} ${d} to ${g}:${l}`,meta:{principal_type:g,principal_id:l,permission:i,error:a.message}}),a}return(0,h.appendComplianceAudit)({user_id:f?.user_id,org_id:k,action:`${j}.shared.acl.granted`,action_target_id:d,action_target_type:j,status:"success",summary:`Granted ${i} on ${j} ${d} to ${g}:${l}`,meta:{principal_type:g,principal_id:l,permission:i,cloud_space_id:n}}),c}async function K(a={},b={}){let{local_space_id:c,session:d,principal_type:e,space_type:f="project"}=a;if(!c)throw Error("revokeSpaceAccess: local_space_id is required");let g=a.org_id||d?.org_id;if(!g)throw Error("revokeSpaceAccess: org_id (or session.org_id) is required");t(f,"revokeSpaceAccess"),G(e,"revokeSpaceAccess",{writableOnly:!0});let i=H(e,a.principal_id,g,"revokeSpaceAccess");if(!m(b))throw Error("revokeSpaceAccess: shared cloud is not configured.");let j=I(c,f,"revokeSpaceAccess"),k=q(b),l=await k.delete("shared_space_acl",{filters:{shared_space_id:j,principal_type:e,principal_id:i}});return(0,h.appendComplianceAudit)({user_id:d?.user_id,org_id:g,action:`${f}.shared.acl.revoked`,action_target_id:c,action_target_type:f,status:"success",summary:`Revoked ${f} ${c} grant from ${e}:${i}`,meta:{principal_type:e,principal_id:i,cloud_space_id:j}}),{revoked:Array.isArray(l)?l.length:0,principal_type:e,principal_id:i}}async function L(a={},b={}){let{local_space_id:c,session:d,space_type:e="project"}=a;if(!c)throw Error("listSpaceAccess: local_space_id is required");if(!(a.org_id||d?.org_id))throw Error("listSpaceAccess: org_id (or session.org_id) is required");t(e,"listSpaceAccess");let f=u(c,e);if(!f||"published"!==f.status||!f.cloud_space_id)return[];if(!m(b))throw Error("listSpaceAccess: shared cloud is not configured.");return q(b).select("shared_space_acl",{filters:{shared_space_id:f.cloud_space_id},select:"*",limit:1e3})}async function M(a={},b={}){let{local_space_id:c,user_id:d,space_type:e="project",session:f}=a;if(!c)throw Error("resolveSpacePermission: local_space_id is required");t(e,"resolveSpacePermission");let g=a.org_id||f?.org_id,h=u(c,e);if(!h||"published"!==h.status)return null;let i=await L({local_space_id:c,space_type:e,org_id:g},b);return function({visibility:a,grants:b=[],userId:c,orgId:d}={}){let e=null,f=a=>{a&&T[a]&&(!e||T[a]>T[e])&&(e=a)};for(let e of("org"===a&&f("read"),b))e&&("user"===e.principal_type&&c&&e.principal_id===c?f(e.permission):"org"===e.principal_type&&(null==e.principal_id||e.principal_id===d)&&f(e.permission));return e}({visibility:h.visibility,grants:i,userId:d,orgId:g})}d()}catch(a){d(a)}})}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.id=9430,exports.ids=[9430],exports.modules={5043:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"40a002fde31c37c2706e3dc5cc112a9a59ba725daf":()=>e.$$RSC_SERVER_ACTION_0});var e=c(91845),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},6974:(a,b,c)=>{Promise.resolve().then(c.bind(c,35271))},35271:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/madarx-os/madarx-os/app/components/admin/project-switcher.jsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/madarx-os/madarx-os/app/components/admin/project-switcher.jsx","default")},86893:(a,b,c)=>{"use strict";c.d(b,{hI:()=>g,iN:()=>f,pp:()=>i,qs:()=>h});var d=c(75338),e=c(35271);function f({kicker:a="madarX OS v1.0",title:b,description:c,actions:f,hideProjectSwitcher:g,children:h}){return(0,d.jsxs)("main",{className:"admin-shell",children:[(0,d.jsxs)("header",{className:"admin-header",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"admin-kicker",children:a}),(0,d.jsx)("h1",{children:b}),c?(0,d.jsx)("p",{children:c}):null]}),(0,d.jsxs)("div",{className:"admin-header-actions",children:[g?null:(0,d.jsx)(e.default,{}),f]})]}),h]})}function g({label:a,value:b,tone:c}){return(0,d.jsxs)("div",{className:`admin-stat ${c||""}`,children:[(0,d.jsx)("b",{children:b}),(0,d.jsx)("span",{children:a})]})}function h({children:a,tone:b="neutral"}){return(0,d.jsx)("span",{className:`admin-pill ${b}`,children:a})}function i({title:a,children:b}){return(0,d.jsxs)("div",{className:"admin-empty",children:[(0,d.jsx)("b",{children:a}),(0,d.jsx)("p",{children:b})]})}},89670:(a,b,c)=>{Promise.resolve().then(c.bind(c,94657))},91845:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{$$RSC_SERVER_ACTION_0:()=>u,default:()=>p,dynamic:()=>q,runtime:()=>r});var e=c(75338),f=c(75879);c(68633);var g=c(16780),h=c(82161),i=c(86893),j=c(83963),k=c(60105),l=a([j,k]);[j,k]=l.then?(await l)():l;let q="force-dynamic",r="nodejs",s={executive:"Executive",manager:"Manager",team_lead:"Team Lead",individual_contributor:"Contributor"},t={executive:"mars",manager:"ready",team_lead:"warn",individual_contributor:"neutral"};function m(a=""){return a.split(/\s+/).map(a=>a[0]).filter(Boolean).slice(0,2).join("").toUpperCase()||"\xb7"}let u=async function(a){let b=String(a.get("agent_id")||"").trim();if(!b)return;let c=String(a.get("reports_to")||"").trim(),d={reports_to:""===c?null:c},e=String(a.get("role")||"").trim();e&&(d.role=e);let f=String(a.get("title")||"").trim();(f||a.has("title"))&&(d.title=f||null);try{(0,j.jN)(b,d)}catch(a){console.warn("updateAgentOrg failed",a?.message)}(0,g.revalidatePath)("/org"),(0,g.revalidatePath)("/agents"),(0,h.redirect)("/org")};function n({node:a,workloadById:b}){let c=function(a){if(a.role&&s[a.role])return a.role;let b=a.reports?.length||0;return b>=4?"executive":b>=2?"manager":1===b?"team_lead":"individual_contributor"}(a),d=s[c],f=t[c],g=a.reports?.length||0,h=b.get(a.id),j=Number(h?.active_tasks||0),k=Number(h?.blocked_tasks||0),l=Number(h?.completed_tasks||0),n=a.status||"created";return(0,e.jsxs)("article",{className:`org-card org-card--${c}`,"data-reports":g>0?"has":"none",children:[(0,e.jsxs)("div",{className:"org-card-head",children:[(0,e.jsx)("div",{className:"org-card-avatar","aria-hidden":"true",children:m(a.name)}),(0,e.jsxs)("div",{className:"org-card-identity",children:[(0,e.jsx)("div",{className:"org-card-name",children:a.name}),(0,e.jsx)("div",{className:"org-card-title",children:a.title||a.mission?.slice(0,64)||"No title set"})]})]}),(0,e.jsxs)("div",{className:"org-card-meta",children:[(0,e.jsx)(i.qs,{tone:f,children:d}),(0,e.jsx)(i.qs,{tone:"heartbeat ok"===n?"ready":"terminated"===n?"danger":"neutral",children:n}),g>0?(0,e.jsxs)(i.qs,{tone:"neutral",children:[g," report",1===g?"":"s"]}):null]}),(0,e.jsxs)("dl",{className:"org-card-stats",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("dt",{children:"Active"}),(0,e.jsx)("dd",{children:j})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("dt",{children:"Blocked"}),(0,e.jsx)("dd",{className:k?"is-warn":"",children:k})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("dt",{children:"Done"}),(0,e.jsx)("dd",{children:l})]})]})]})}function o({node:a,workloadById:b}){let c=(a.reports||[]).length>0;return(0,e.jsxs)("li",{className:"org-branch",children:[(0,e.jsx)(n,{node:a,workloadById:b}),c?(0,e.jsx)("ul",{className:"org-children",children:a.reports.map(a=>(0,e.jsx)(o,{node:a,workloadById:b},a.id))}):null]})}function p(){let a=(0,j.zP)(),b=(0,j.hC)(),c=(0,k.vc)(),d=new Map((b.workload||[]).map(a=>[a.agent_id,a])),f=c.filter(a=>c.some(b=>b.reports_to===a.id)).length,g=c.filter(a=>!a.reports_to&&a.id).length;return(0,e.jsxs)(i.iN,{title:"Org",description:"Company-style structure for your agent workforce. Set managers, define roles, and see workload at a glance.",children:[(0,e.jsxs)("section",{className:"admin-stats",children:[(0,e.jsx)(i.hI,{label:"Headcount",value:b.totals.active_agents}),(0,e.jsx)(i.hI,{label:"Leaders",value:f}),(0,e.jsx)(i.hI,{label:"Root nodes",value:g}),(0,e.jsx)(i.hI,{label:"Active tasks",value:b.totals.active_tasks})]}),(0,e.jsxs)("section",{className:"admin-panel",children:[(0,e.jsxs)("div",{className:"admin-panel-head",children:[(0,e.jsx)("span",{children:"Organisation chart"}),(0,e.jsx)("small",{children:"Top-down hierarchy. Each card shows role, status, and current workload."})]}),a.length?(0,e.jsx)("div",{className:"org-chart-scroll",children:(0,e.jsx)("ul",{className:"org-chart",children:a.map(a=>(0,e.jsx)(o,{node:a,workloadById:d},a.id))})}):(0,e.jsx)(i.pp,{title:"No agents yet",children:"Create an agent on the Agents page, then come back here to assign managers."})]}),(0,e.jsxs)("section",{className:"admin-grid reports-layout",children:[(0,e.jsxs)("div",{className:"admin-panel",children:[(0,e.jsxs)("div",{className:"admin-panel-head",children:[(0,e.jsx)("span",{children:"Reporting lines"}),(0,e.jsx)("small",{children:"Re-parent any agent. Cycles are blocked automatically."})]}),c.length?(0,e.jsx)("div",{className:"admin-card-list compact",children:c.map(a=>{let b=a.reports_to?c.find(b=>b.id===a.reports_to):null,d=c.filter(b=>b.id!==a.id),f=a.role&&s[a.role]?a.role:"individual_contributor";return(0,e.jsxs)("form",{action:u,className:"org-reporting-row",children:[(0,e.jsx)("input",{type:"hidden",name:"agent_id",value:a.id}),(0,e.jsxs)("div",{className:"org-reporting-identity",children:[(0,e.jsx)("div",{className:"org-card-avatar small","aria-hidden":"true",children:m(a.name)}),(0,e.jsxs)("div",{children:[(0,e.jsx)("div",{className:"org-reporting-name",children:a.name}),(0,e.jsx)("div",{className:"org-reporting-sub",children:b?`Reports to ${b.name}`:"Top of chain"})]})]}),(0,e.jsxs)("div",{className:"org-reporting-fields",children:[(0,e.jsxs)("label",{className:"org-reporting-field",children:[(0,e.jsx)("span",{children:"Title"}),(0,e.jsx)("input",{type:"text",name:"title",defaultValue:a.title||"",placeholder:"e.g. Marketing Manager"})]}),(0,e.jsxs)("label",{className:"org-reporting-field",children:[(0,e.jsx)("span",{children:"Role"}),(0,e.jsx)("select",{name:"role",defaultValue:f,children:Object.entries(s).map(([a,b])=>(0,e.jsx)("option",{value:a,children:b},a))})]}),(0,e.jsxs)("label",{className:"org-reporting-field",children:[(0,e.jsx)("span",{children:"Manager"}),(0,e.jsxs)("select",{name:"reports_to",defaultValue:a.reports_to||"",children:[(0,e.jsx)("option",{value:"",children:"— None (top of chain)"}),d.map(a=>(0,e.jsx)("option",{value:a.id,children:a.name},a.id))]})]}),(0,e.jsx)("button",{className:"admin-button",type:"submit",children:"Save"})]})]},a.id)})}):(0,e.jsx)(i.pp,{title:"No agents yet",children:"Create agents to start building your org."})]}),(0,e.jsxs)("div",{className:"admin-panel",children:[(0,e.jsxs)("div",{className:"admin-panel-head",children:[(0,e.jsx)("span",{children:"Workload by agent"}),(0,e.jsx)("small",{children:"Derived from active tasks."})]}),b.workload.length?(0,e.jsx)("div",{className:"admin-card-list compact",children:b.workload.map(a=>(0,e.jsxs)("div",{className:"admin-record compact",children:[(0,e.jsxs)("div",{className:"admin-record-top",children:[(0,e.jsx)("b",{children:a.agent_name||a.agent_id}),(0,e.jsxs)(i.qs,{tone:a.blocked_tasks?"danger":a.active_tasks?"ready":"neutral",children:[a.active_tasks," active"]})]}),(0,e.jsxs)("p",{children:[a.total_tasks," total \xb7 ",a.blocked_tasks," blocked \xb7 ",a.completed_tasks," complete"]})]},a.agent_id))}):(0,e.jsx)(i.pp,{title:"No workload data",children:"Assign tasks to see workload distribution."})]})]})]})}(0,f.A)(u,"40a002fde31c37c2706e3dc5cc112a9a59ba725daf",null),d()}catch(a){d(a)}})},94657:(a,b,c)=>{"use strict";c.d(b,{default:()=>f});var d=c(21124),e=c(38301);function f(){let[a,b]=(0,e.useState)([]),[c,f]=(0,e.useState)("");return(0,d.jsx)("div",{className:"project-switcher","data-project-switcher":!0,children:(0,d.jsxs)("select",{value:c,onChange:a=>{var b;f(b=a.target.value),b?localStorage.setItem("madarx.activeProjectId",b):localStorage.removeItem("madarx.activeProjectId"),window.dispatchEvent(new CustomEvent("madarx:project-change",{detail:{project_id:b||null}}))},"aria-label":"Active project",children:[(0,d.jsx)("option",{value:"",children:"All projects"}),a.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]})})}}};
|