madarx 2.17.0 → 2.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +536 -536
- package/.next/standalone/.next/app-path-routes-manifest.json +68 -68
- package/.next/standalone/.next/build-manifest.json +5 -5
- package/.next/standalone/.next/prerender-manifest.json +15 -15
- package/.next/standalone/.next/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +2 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +4 -4
- package/.next/standalone/.next/server/app/activity/page.js +1 -1
- package/.next/standalone/.next/server/app/activity/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/activity/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/page.js +4 -4
- package/.next/standalone/.next/server/app/admin/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/agents/[id]/page.js +4 -4
- package/.next/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/agents/page.js +1 -1
- package/.next/standalone/.next/server/app/agents/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/activity/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/audit-export/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/share-links/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-memory/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/log/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-runs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/active-run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/chain/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/memory/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/reports/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/skills/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/create/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/ops/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/approvals/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/approvals/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/acl/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/protect/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/raw/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/[id]/share-link/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/artifacts/upload/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/audit/list/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/audit/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/config/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/join-bootstrap/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/brand/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/brand/share/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/sessions/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/config/env/route.js +1 -1
- package/.next/standalone/.next/server/app/api/config/env/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/[service]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/[service]/verify/route.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/[service]/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/move/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/[linkId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/[id]/share-link/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/import/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/spaces/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/[id]/blob/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/[id]/transcribe/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/files/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/disk/folders/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/since/[cursor]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/stream/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/fs/create-folder/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/fs/pick-folder/route.js +2 -2
- package/.next/standalone/.next/server/app/api/fs/pick-folder/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/blueprint/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/diagnostic/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/governance/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/interview/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/pilot/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/quarterly/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/[id]/setup-package/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/engagements/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/interviews/[id]/responses/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/interviews/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/setup-packages/[id]/apply/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hail/setup-packages/validate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/heartbeat/tick/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/heartbeat/worker/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/help/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hermes/jobs/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/hermes/jobs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/integrations/google/callback/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/integrations/google/oauth/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/marketplace/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/marketplace/open-design/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/marketplace/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/import-roots/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/portfolio/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/chunks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/diligence/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/import/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/[id]/publish/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mines/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/missions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/onboarding/blueprint/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/onboarding/launch/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orchestrator/command/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orchestrator/stream/route.js +13 -13
- package/.next/standalone/.next/server/app/api/orchestrator/stream/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orchestrator/upload/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/org/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/invites/[inviteId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/invites/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/role/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/members/[userId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/members/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/invites/pending/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/join/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/join-complete/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/orgs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/printing-press/clis/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/printing-press/install/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/printing-press/security-mode/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/privacy/config/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/privacy/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/share-link/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/override/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/retry/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/[id]/stages/[stageId]/submit/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/[slug]/settings/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/definitions/validate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/processes/start-and-route/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[slug]/library/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[slug]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/approve-claude-run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/claude-code-dry-run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/competitor-report/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/engine-ping/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/runs/marketing-plan/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/schedules/upsert/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/secrets/[name]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/secrets/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/settings/trust-mode/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/otp/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/space/[token]/otp/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/space/[token]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/share/space/[token]/verify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/[id]/acl/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/publish/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/shared/spaces/unpublish/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/state/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/system/update/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/active-run/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/attachments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/[itemId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/checklist/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/checkout/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/children/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/comments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/live-runs/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/release/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tool-allowlists/[id]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tool-allowlists/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tool-egress/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/[name]/approve/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/[name]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tools/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/transcripts/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/providers/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/context/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/session/route.js +2 -2
- package/.next/standalone/.next/server/app/api/voice/realtime/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/tool-result/route.js +2 -2
- package/.next/standalone/.next/server/app/api/voice/realtime/tool-result/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/tools/route.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/realtime/tools/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/voice/tts/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/allowlist/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/disconnect/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/messages/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/qr/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/send/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/whatsapp/status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/approvals/page.js +2 -2
- package/.next/standalone/.next/server/app/approvals/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/approvals/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/architecture/page.js +1 -1
- package/.next/standalone/.next/server/app/architecture/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/architecture/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/architecture.html +2 -2
- package/.next/standalone/.next/server/app/architecture.rsc +4 -4
- package/.next/standalone/.next/server/app/audit/live/page.js +1 -1
- package/.next/standalone/.next/server/app/audit/live/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/live/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/audit/page.js +1 -1
- package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/brand/page.js +1 -1
- package/.next/standalone/.next/server/app/brand/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/brand/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/brand.html +2 -1
- package/.next/standalone/.next/server/app/brand.rsc +4 -4
- package/.next/standalone/.next/server/app/disk/page.js +1 -1
- package/.next/standalone/.next/server/app/disk/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/disk/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/federated-ai/page.js +1 -1
- package/.next/standalone/.next/server/app/federated-ai/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/federated-ai/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/federated-ai.html +2 -2
- package/.next/standalone/.next/server/app/federated-ai.rsc +4 -4
- package/.next/standalone/.next/server/app/hail/[id]/governance/page.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/governance/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/governance/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/interview/page.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/interview/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/interview/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/page.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/setup/page.js +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/setup/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/hail/[id]/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hail/page.js +2 -2
- package/.next/standalone/.next/server/app/hail/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/hail/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/help/[slug]/page.js +1 -1
- package/.next/standalone/.next/server/app/help/[slug]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/help/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/help/page.js +1 -1
- package/.next/standalone/.next/server/app/help/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +2 -2
- package/.next/standalone/.next/server/app/index.rsc +5 -5
- package/.next/standalone/.next/server/app/join/page.js +1 -1
- package/.next/standalone/.next/server/app/join/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/join/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/join.html +1 -1
- package/.next/standalone/.next/server/app/join.rsc +4 -4
- package/.next/standalone/.next/server/app/login/page.js +1 -1
- package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/marketplace/page.js +4 -4
- package/.next/standalone/.next/server/app/marketplace/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/marketplace/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/mines/[projectId]/page.js +1 -1
- package/.next/standalone/.next/server/app/mines/[projectId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/mines/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/mines/[projectId]/results/page.js +1 -1
- package/.next/standalone/.next/server/app/mines/[projectId]/results/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/mines/[projectId]/results/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/mines/page.js +1 -1
- package/.next/standalone/.next/server/app/mines/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/mines/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/missions/page.js +2 -2
- package/.next/standalone/.next/server/app/missions/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/org/page.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/org/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/onboarding/org/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/page.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding.html +2 -2
- package/.next/standalone/.next/server/app/onboarding.rsc +4 -4
- package/.next/standalone/.next/server/app/org/page.js +1 -1
- package/.next/standalone/.next/server/app/org/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/org/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/page.js +5 -5
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/[slug]/log/page.js +1 -1
- package/.next/standalone/.next/server/app/projects/[slug]/log/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/[slug]/log/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/[slug]/page.js +1 -1
- package/.next/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/new/page.js +3 -3
- package/.next/standalone/.next/server/app/projects/new/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/new.html +2 -2
- package/.next/standalone/.next/server/app/projects/new.rsc +5 -5
- package/.next/standalone/.next/server/app/projects/page.js +34 -24
- package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/reports/[file]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/reports/page.js +1 -1
- package/.next/standalone/.next/server/app/reports/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/reports/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/runtime/page.js +1 -1
- package/.next/standalone/.next/server/app/runtime/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/runtime/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/schedules/page.js +2 -2
- package/.next/standalone/.next/server/app/schedules/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/schedules/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/account/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/account/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/account/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/advanced/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/advanced/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/appearance/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/appearance/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/appearance/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/brand/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/brand/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/brand/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/brand.html +2 -2
- package/.next/standalone/.next/server/app/settings/brand.rsc +5 -5
- package/.next/standalone/.next/server/app/settings/connectors/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/connectors/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/connectors/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/engines/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/engines/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/engines/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/onboarding/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/onboarding/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/onboarding.html +2 -2
- package/.next/standalone/.next/server/app/settings/onboarding.rsc +5 -5
- package/.next/standalone/.next/server/app/settings/organization/page.js +2 -2
- package/.next/standalone/.next/server/app/settings/organization/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/organization/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/runtime/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/runtime/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/runtime/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/team/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/team/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/team/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/tools/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/tools/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/tools/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +2 -2
- package/.next/standalone/.next/server/app/settings.rsc +5 -5
- package/.next/standalone/.next/server/app/share/[token]/page.js +1 -1
- package/.next/standalone/.next/server/app/share/[token]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/share/space/[token]/page.js +1 -1
- package/.next/standalone/.next/server/app/share/space/[token]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/share/space/[token]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/tasks/[id]/page.js +2 -2
- package/.next/standalone/.next/server/app/tasks/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/tasks/page.js +2 -2
- package/.next/standalone/.next/server/app/tasks/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/team/[agentId]/page.js +1 -1
- package/.next/standalone/.next/server/app/team/[agentId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/team/[agentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/team/page.js +1 -1
- package/.next/standalone/.next/server/app/team/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/team/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/tools/page.js +1 -1
- package/.next/standalone/.next/server/app/tools/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/whatsapp/page.js +1 -1
- package/.next/standalone/.next/server/app/whatsapp/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/whatsapp/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/whatsapp.html +2 -2
- package/.next/standalone/.next/server/app/whatsapp.rsc +4 -4
- package/.next/standalone/.next/server/app/workflows/[caseId]/page.js +1 -1
- package/.next/standalone/.next/server/app/workflows/[caseId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workflows/[caseId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workflows/new/[caseId]/page.js +1 -1
- package/.next/standalone/.next/server/app/workflows/new/[caseId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workflows/new/[caseId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workflows/new/definition/page.js +1 -1
- package/.next/standalone/.next/server/app/workflows/new/definition/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workflows/new/definition/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workflows/page.js +1 -1
- package/.next/standalone/.next/server/app/workflows/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workflows/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workflows/share/[caseId]/page.js +1 -1
- package/.next/standalone/.next/server/app/workflows/share/[caseId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workflows/share/[caseId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +68 -68
- package/.next/standalone/.next/server/chunks/1648.js +1 -1
- package/.next/standalone/.next/server/chunks/1699.js +35 -18
- package/.next/standalone/.next/server/chunks/{3806.js → 3379.js} +1 -1
- package/.next/standalone/.next/server/chunks/4804.js +1 -1
- package/.next/standalone/.next/server/chunks/6059.js +1 -1
- package/.next/standalone/.next/server/chunks/{9195.js → 9483.js} +1 -1
- package/.next/standalone/.next/server/functions-config-manifest.json +45 -45
- package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/standalone/.next/server/pages/404.html +2 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/494-02cf75066d25e8ac.js +1 -0
- package/.next/standalone/.next/static/chunks/8217.9459315d921fdd61.js +1 -0
- package/.next/{static/chunks/app/agents/[id]/page-e4bcb0ace2900a11.js → standalone/.next/static/chunks/app/agents/[id]/page-fd263522f6c29653.js} +1 -1
- package/.next/{static/chunks/app/agents/page-47a00aa58327a35e.js → standalone/.next/static/chunks/app/agents/page-5860869c305cc54b.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/layout-457acc50d33a5e0e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/login/page-69e66f7316e3aaf2.js +1 -0
- package/.next/standalone/.next/static/chunks/app/marketplace/page-b21a9b2946742aa4.js +1 -0
- package/.next/standalone/.next/static/chunks/app/page-9a013fdb2983cbf4.js +1 -0
- package/.next/standalone/.next/static/chunks/app/projects/page-3d7140091264933a.js +1 -0
- package/.next/standalone/.next/static/chunks/app/settings/layout-fd443bfa8cac181e.js +1 -0
- package/.next/standalone/.next/static/chunks/webpack-e4f2cfb4ad98f256.js +1 -0
- package/.next/standalone/.next/static/css/31fb2fdadf8f1c6b.css +1 -0
- package/.next/standalone/CHANGELOG.md +25 -0
- package/.next/standalone/package.json +1 -1
- package/.next/static/chunks/494-02cf75066d25e8ac.js +1 -0
- package/.next/static/chunks/8217.9459315d921fdd61.js +1 -0
- package/.next/{standalone/.next/static/chunks/app/agents/[id]/page-e4bcb0ace2900a11.js → static/chunks/app/agents/[id]/page-fd263522f6c29653.js} +1 -1
- package/.next/{standalone/.next/static/chunks/app/agents/page-47a00aa58327a35e.js → static/chunks/app/agents/page-5860869c305cc54b.js} +1 -1
- package/.next/static/chunks/app/layout-457acc50d33a5e0e.js +1 -0
- package/.next/static/chunks/app/login/page-69e66f7316e3aaf2.js +1 -0
- package/.next/static/chunks/app/marketplace/page-b21a9b2946742aa4.js +1 -0
- package/.next/static/chunks/app/page-9a013fdb2983cbf4.js +1 -0
- package/.next/static/chunks/app/projects/page-3d7140091264933a.js +1 -0
- package/.next/static/chunks/app/settings/layout-fd443bfa8cac181e.js +1 -0
- package/.next/static/chunks/webpack-e4f2cfb4ad98f256.js +1 -0
- package/.next/static/css/31fb2fdadf8f1c6b.css +1 -0
- package/CHANGELOG.md +25 -0
- package/CLAUDE.md +1 -1
- package/README.md +1 -1
- package/ai-docs/key-constraints.md +9 -1
- package/app/agents/agent-events-bus.js +11 -1
- package/app/api/connections/[service]/verify/route.js +29 -1
- package/app/api/fs/pick-folder/route.js +13 -11
- package/app/api/orchestrator/stream/route.js +92 -9
- package/app/api/voice/realtime/session/route.js +4 -0
- package/app/components/app-topbar.jsx +265 -28
- package/app/components/dashboard/chat-panel.jsx +54 -5
- package/app/components/dashboard/thinking-disclosure.jsx +59 -0
- package/app/components/dashboard/tool-steps.js +9 -0
- package/app/components/dashboard/use-main-agent-stream.js +2 -0
- package/app/components/dashboard/use-realtime-voice.js +33 -5
- package/app/components/dashboard/use-stream-command.js +29 -2
- package/app/components/dashboard/voice-panel.jsx +148 -36
- package/app/components/ui/marketplace/install-toggle.jsx +44 -9
- package/app/globals.css +148 -8
- package/app/login/login-client.jsx +23 -5
- package/app/marketplace/connection-setup-modal.jsx +31 -1
- package/app/marketplace/connection-setup-steps/api-key-step.jsx +20 -3
- package/app/marketplace/install-toast.jsx +1 -1
- package/app/marketplace/marketplace-row.jsx +8 -1
- package/app/marketplace/marketplace-shell.jsx +78 -7
- package/app/marketplace/workflow-card.jsx +2 -1
- package/lib/agent-config.js +7 -0
- package/lib/agent-engines.js +182 -21
- package/lib/auth-config.js +24 -8
- package/lib/claude.js +19 -2
- package/lib/cli/doctor.js +25 -0
- package/lib/connection-seeds.js +1 -1
- package/lib/engine-verbosity.js +42 -0
- package/lib/env-file.js +3 -0
- package/lib/pick-folder-authz.js +15 -0
- package/lib/realtime-openai.js +49 -1
- package/lib/tools/adapters/browser-session.js +37 -8
- package/lib/tools/adapters/github.js +47 -5
- package/lib/tools/adapters/skill-bridge.js +146 -0
- package/lib/tools/registry.js +40 -4
- package/lib/voice/context.js +1 -1
- package/lib/voice/tools.js +34 -2
- package/package.json +1 -1
- package/scripts/migrate-auth-v1.mjs +92 -0
- package/.next/standalone/.next/static/chunks/3054-451abdd7b9afc2ac.js +0 -1
- package/.next/standalone/.next/static/chunks/8217.0beb0a316c7ad5d8.js +0 -1
- package/.next/standalone/.next/static/chunks/app/layout-b7e1918b9125641e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/login/page-d2298bc1803944ae.js +0 -1
- package/.next/standalone/.next/static/chunks/app/marketplace/page-0b7d3a6309302de3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/page-887ef6f96897f78a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/projects/page-739d4cc74824d336.js +0 -1
- package/.next/standalone/.next/static/chunks/app/settings/layout-08f6b30132b26dd1.js +0 -1
- package/.next/standalone/.next/static/chunks/webpack-f916d679fe38a701.js +0 -1
- package/.next/standalone/.next/static/css/2587cd46c922a6d8.css +0 -1
- package/.next/static/chunks/3054-451abdd7b9afc2ac.js +0 -1
- package/.next/static/chunks/8217.0beb0a316c7ad5d8.js +0 -1
- package/.next/static/chunks/app/layout-b7e1918b9125641e.js +0 -1
- package/.next/static/chunks/app/login/page-d2298bc1803944ae.js +0 -1
- package/.next/static/chunks/app/marketplace/page-0b7d3a6309302de3.js +0 -1
- package/.next/static/chunks/app/page-887ef6f96897f78a.js +0 -1
- package/.next/static/chunks/app/projects/page-739d4cc74824d336.js +0 -1
- package/.next/static/chunks/app/settings/layout-08f6b30132b26dd1.js +0 -1
- package/.next/static/chunks/webpack-f916d679fe38a701.js +0 -1
- package/.next/static/css/2587cd46c922a6d8.css +0 -1
- /package/.next/standalone/.next/static/{ZxaTPKGC9lESQlvHfrHgp → -FRz43s1H_LZFhx24FvnL}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{ZxaTPKGC9lESQlvHfrHgp → -FRz43s1H_LZFhx24FvnL}/_ssgManifest.js +0 -0
- /package/.next/static/{ZxaTPKGC9lESQlvHfrHgp → -FRz43s1H_LZFhx24FvnL}/_buildManifest.js +0 -0
- /package/.next/static/{ZxaTPKGC9lESQlvHfrHgp → -FRz43s1H_LZFhx24FvnL}/_ssgManifest.js +0 -0
|
@@ -59,11 +59,24 @@ export default function LoginClient({ authMode, nextPath = '/', errorCode = '',
|
|
|
59
59
|
return () => { alive = false; };
|
|
60
60
|
}, [authMode]);
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
//
|
|
64
|
-
//
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
// Until the runtime config fetch lands, optimistically treat a supabase-mode
|
|
63
|
+
// server as configured (the common case) so a healthy server doesn't flash the
|
|
64
|
+
// setup form. Once cfg loads it is the source of truth.
|
|
65
|
+
const supabaseConfigured = cfg
|
|
66
|
+
? Boolean(cfg.supabaseUrl && cfg.supabaseAnonKey)
|
|
67
|
+
: !isLocalServer;
|
|
68
|
+
// The server's resolved auth mode (cfg wins once loaded; prop is the SSR seed).
|
|
69
|
+
const effectiveAuthMode = cfg?.authMode || authMode;
|
|
70
|
+
// Team mode is ON but Supabase has no resolvable credentials — a dead-end the
|
|
71
|
+
// operator must be able to fix from the UI (see renderTeam banner + form).
|
|
72
|
+
const supabaseMisconfigured = Boolean(cfg && effectiveAuthMode === 'supabase' && !supabaseConfigured);
|
|
73
|
+
// Show the sign-in form ONLY when Supabase creds actually resolve. In supabase
|
|
74
|
+
// mode WITHOUT creds we deliberately fall through to the Create-team config
|
|
75
|
+
// form (renderCreateTeam) instead of a sign-in box that can never succeed —
|
|
76
|
+
// otherwise the operator is stranded with no UI path to enter credentials.
|
|
77
|
+
// forceSupabase (?supabase=1) still needs real creds to sign in, so it no
|
|
78
|
+
// longer forces the form open.
|
|
79
|
+
const showSignIn = supabaseConfigured;
|
|
67
80
|
|
|
68
81
|
async function resetToLocal() {
|
|
69
82
|
if (!recoveryToken.trim()) { setMessage('Enter the recovery token to switch.'); return; }
|
|
@@ -299,6 +312,11 @@ export default function LoginClient({ authMode, nextPath = '/', errorCode = '',
|
|
|
299
312
|
return (
|
|
300
313
|
<>
|
|
301
314
|
<div className="login-card-head"><p>Secure access</p><h2>{showSignIn ? 'Sign in to your team' : 'Set up your team'}</h2></div>
|
|
315
|
+
{supabaseMisconfigured ? (
|
|
316
|
+
<div className="login-message login-message--warn">
|
|
317
|
+
Team mode is on, but Supabase isn’t configured on this server yet. Enter your project details below to finish setup — or switch to <b>Personal</b> to use this device locally.
|
|
318
|
+
</div>
|
|
319
|
+
) : null}
|
|
302
320
|
{message ? <div className="login-message">{message}</div> : null}
|
|
303
321
|
{showSignIn ? renderSignIn() : renderCreateTeam()}
|
|
304
322
|
|
|
@@ -25,6 +25,7 @@ function StatusPill({ status }) {
|
|
|
25
25
|
|
|
26
26
|
function labelForWarningField(field) {
|
|
27
27
|
if (field === 'SUPABASE_ACCESS_TOKEN') return 'Personal access token';
|
|
28
|
+
if (field === 'GITHUB_TOKEN') return 'Token';
|
|
28
29
|
return field || 'Optional field';
|
|
29
30
|
}
|
|
30
31
|
function labelForWarningReason(reason) {
|
|
@@ -34,6 +35,16 @@ function labelForWarningReason(reason) {
|
|
|
34
35
|
return reason || 'unknown';
|
|
35
36
|
}
|
|
36
37
|
|
|
38
|
+
// Some warnings mean "saved fine, but heads-up" rather than "could not verify".
|
|
39
|
+
// Return a complete sentence for those; null falls back to the generic copy.
|
|
40
|
+
function warningMessage(warning) {
|
|
41
|
+
if (!warning) return null;
|
|
42
|
+
if (warning.reason === 'owner_only_access') {
|
|
43
|
+
return 'Connected, but this token can only see your own repos. To read org or shared repos, grant the token access to them (and authorize SAML SSO if the org requires it), then rotate the key.';
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
|
|
37
48
|
export default function ConnectionSetupModal({ open, onClose, connection, prefillScope }) {
|
|
38
49
|
const router = useRouter();
|
|
39
50
|
const [stage, setStage] = React.useState(STAGES.BENEFIT);
|
|
@@ -256,7 +267,9 @@ export default function ConnectionSetupModal({ open, onClose, connection, prefil
|
|
|
256
267
|
)}
|
|
257
268
|
{warning ? (
|
|
258
269
|
<p className="connection-setup-warning">
|
|
259
|
-
<b>
|
|
270
|
+
<b>Heads up:</b>{' '}
|
|
271
|
+
{warningMessage(warning)
|
|
272
|
+
|| `${labelForWarningField(warning.field)} could not be verified (${labelForWarningReason(warning.reason)}). Other credentials were saved.`}
|
|
260
273
|
</p>
|
|
261
274
|
) : null}
|
|
262
275
|
{unlocks.length ? (
|
|
@@ -278,6 +291,23 @@ export default function ConnectionSetupModal({ open, onClose, connection, prefil
|
|
|
278
291
|
>
|
|
279
292
|
Disconnect
|
|
280
293
|
</button>
|
|
294
|
+
<button
|
|
295
|
+
type="button"
|
|
296
|
+
className="admin-button secondary"
|
|
297
|
+
onClick={() => {
|
|
298
|
+
// Rotate: clear any previous input and return to the setup
|
|
299
|
+
// form. Re-submitting a new key rotates the active secret at
|
|
300
|
+
// the same scope via the existing verify path.
|
|
301
|
+
setCredentials({});
|
|
302
|
+
setError(null);
|
|
303
|
+
setHint(null);
|
|
304
|
+
setWarning(null);
|
|
305
|
+
setStage(STAGES.SETUP);
|
|
306
|
+
}}
|
|
307
|
+
disabled={busy}
|
|
308
|
+
>
|
|
309
|
+
Rotate key
|
|
310
|
+
</button>
|
|
281
311
|
<button
|
|
282
312
|
type="button"
|
|
283
313
|
className="admin-button"
|
|
@@ -51,14 +51,25 @@ export default function ApiKeyStep({
|
|
|
51
51
|
onChange({ ...credentials, [name]: value });
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
const
|
|
55
|
-
.filter(f => f.required)
|
|
56
|
-
.
|
|
54
|
+
const missingRequired = fields
|
|
55
|
+
.filter(f => f.required && String(credentials[f.name] || '').trim().length === 0)
|
|
56
|
+
.map(f => f.label || f.name);
|
|
57
|
+
const allRequiredPresent = missingRequired.length === 0;
|
|
57
58
|
|
|
58
59
|
const scopeReady = scope.scope === 'global'
|
|
59
60
|
|| (scope.scope === 'project' && Boolean(scope.project_id))
|
|
60
61
|
|| (scope.scope === 'agent' && Boolean(scope.agent_id));
|
|
61
62
|
|
|
63
|
+
// Explain why Connect is disabled so users don't get stuck (e.g. Resend
|
|
64
|
+
// needs both the API key AND the From email — missing either blocks submit).
|
|
65
|
+
const disabledReason = busy
|
|
66
|
+
? null
|
|
67
|
+
: !allRequiredPresent
|
|
68
|
+
? `Enter ${missingRequired.join(' and ')} to continue.`
|
|
69
|
+
: !scopeReady
|
|
70
|
+
? 'Choose where to store this connection to continue.'
|
|
71
|
+
: null;
|
|
72
|
+
|
|
62
73
|
return (
|
|
63
74
|
<form className="connection-setup-step connection-setup-step-form" onSubmit={handleSubmit}>
|
|
64
75
|
<p className="connection-setup-intro">
|
|
@@ -88,6 +99,7 @@ export default function ApiKeyStep({
|
|
|
88
99
|
value={credentials[field.name] || ''}
|
|
89
100
|
onChange={e => setField(field.name, e.target.value)}
|
|
90
101
|
disabled={busy}
|
|
102
|
+
aria-required={field.required ? 'true' : undefined}
|
|
91
103
|
/>
|
|
92
104
|
{field.help_text || field.help_url ? (
|
|
93
105
|
<small className="connection-setup-field-help">
|
|
@@ -110,6 +122,10 @@ export default function ApiKeyStep({
|
|
|
110
122
|
</p>
|
|
111
123
|
) : null}
|
|
112
124
|
|
|
125
|
+
{disabledReason ? (
|
|
126
|
+
<p className="connection-setup-disabled-hint" role="status">{disabledReason}</p>
|
|
127
|
+
) : null}
|
|
128
|
+
|
|
113
129
|
<div className="connection-setup-actions">
|
|
114
130
|
<button
|
|
115
131
|
type="button"
|
|
@@ -123,6 +139,7 @@ export default function ApiKeyStep({
|
|
|
123
139
|
type="submit"
|
|
124
140
|
className="admin-button"
|
|
125
141
|
disabled={busy || !allRequiredPresent || !scopeReady}
|
|
142
|
+
title={disabledReason || undefined}
|
|
126
143
|
>
|
|
127
144
|
{busy ? 'Verifying…' : 'Connect'}
|
|
128
145
|
</button>
|
|
@@ -5,7 +5,7 @@ import { usePathname, useRouter, useSearchParams } from 'next/navigation';
|
|
|
5
5
|
|
|
6
6
|
// Maps the post-action query state to banner copy. Keep the slug interpolation
|
|
7
7
|
// generic — `name` is whatever the server action echoes back via ?slug=.
|
|
8
|
-
function describe(state, name) {
|
|
8
|
+
export function describe(state, name) {
|
|
9
9
|
const label = name ? `"${name}"` : 'item';
|
|
10
10
|
if (state === 'installed') {
|
|
11
11
|
return {
|
|
@@ -25,7 +25,12 @@ import WorkflowCard from './workflow-card.jsx';
|
|
|
25
25
|
* currentKind?: string,
|
|
26
26
|
* }} props
|
|
27
27
|
*/
|
|
28
|
-
export default function MarketplaceRow({ item, toggleAction, onBundleClick, onConnectionClick, connectionStatus, connectionPrefill, currentKind }) {
|
|
28
|
+
export default function MarketplaceRow({ item, toggleAction, installItem, onBundleClick, onConnectionClick, connectionStatus, connectionPrefill, currentKind }) {
|
|
29
|
+
// Client-mode toggle handler: flips install state in place via the shell's
|
|
30
|
+
// installItem (fetch → PUT /api/marketplace/[id]), avoiding a full-page reload.
|
|
31
|
+
const onToggle = typeof installItem === 'function'
|
|
32
|
+
? (nextInstalled) => installItem(item, nextInstalled)
|
|
33
|
+
: undefined;
|
|
29
34
|
const isTool = item.kind === 'tool';
|
|
30
35
|
const isSkill = item.kind === 'skill';
|
|
31
36
|
const isBundle = item.kind === 'bundle';
|
|
@@ -51,6 +56,7 @@ export default function MarketplaceRow({ item, toggleAction, onBundleClick, onCo
|
|
|
51
56
|
<WorkflowCard
|
|
52
57
|
item={item}
|
|
53
58
|
toggleAction={toggleAction}
|
|
59
|
+
onToggle={onToggle}
|
|
54
60
|
currentKind={currentKind}
|
|
55
61
|
/>
|
|
56
62
|
);
|
|
@@ -123,6 +129,7 @@ export default function MarketplaceRow({ item, toggleAction, onBundleClick, onCo
|
|
|
123
129
|
) : (
|
|
124
130
|
<InstallToggle
|
|
125
131
|
action={toggleAction}
|
|
132
|
+
onToggle={onToggle}
|
|
126
133
|
itemId={item.id}
|
|
127
134
|
installed={installed}
|
|
128
135
|
available={available}
|
|
@@ -7,7 +7,7 @@ import MarketplaceSearch from './marketplace-search.jsx';
|
|
|
7
7
|
import MarketplaceRow from './marketplace-row.jsx';
|
|
8
8
|
import ImportFromGithubModal from './import-from-github-modal.jsx';
|
|
9
9
|
import ConnectionSetupModal from './connection-setup-modal.jsx';
|
|
10
|
-
import InstallToast from './install-toast.jsx';
|
|
10
|
+
import InstallToast, { describe } from './install-toast.jsx';
|
|
11
11
|
|
|
12
12
|
const KIND_OPTIONS = ['all', 'connection', 'tool', 'skill', 'bundle', 'agent', 'workflow'];
|
|
13
13
|
|
|
@@ -95,6 +95,68 @@ export default function MarketplaceShell({
|
|
|
95
95
|
const [bundleModal, setBundleModal] = useState({ open: false, slug: null });
|
|
96
96
|
const [connectionModal, setConnectionModal] = useState({ open: false, item: null });
|
|
97
97
|
|
|
98
|
+
// Live copy of the server-rendered items so install toggles can update a card
|
|
99
|
+
// in place (no full-page navigation). Re-sync when the server re-renders.
|
|
100
|
+
const [liveItems, setLiveItems] = useState(items);
|
|
101
|
+
useEffect(() => { setLiveItems(items); }, [items]);
|
|
102
|
+
|
|
103
|
+
// Controlled toast for in-place installs (the query-param <InstallToast/>
|
|
104
|
+
// still handles the server-action / import redirect path).
|
|
105
|
+
const [toast, setToast] = useState(null);
|
|
106
|
+
useEffect(() => {
|
|
107
|
+
if (!toast) return undefined;
|
|
108
|
+
const t = setTimeout(() => setToast(null), 3800);
|
|
109
|
+
return () => clearTimeout(t);
|
|
110
|
+
}, [toast]);
|
|
111
|
+
|
|
112
|
+
function patchItem(id, patch) {
|
|
113
|
+
setLiveItems(prev => prev.map(it => (it.id === id ? { ...it, ...patch } : it)));
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// In-place install/uninstall. Optimistically flips the card, calls the
|
|
117
|
+
// existing JSON route, reconciles with the authoritative item, and rolls back
|
|
118
|
+
// on failure. No router navigation → no scroll reset / full refresh.
|
|
119
|
+
async function installItem(item, nextInstalled) {
|
|
120
|
+
const id = item.id;
|
|
121
|
+
const prevInstalled = Boolean(item.installed);
|
|
122
|
+
patchItem(id, { installed: nextInstalled }); // optimistic
|
|
123
|
+
let toastKey = 0;
|
|
124
|
+
try {
|
|
125
|
+
const res = await fetch(`/api/marketplace/${encodeURIComponent(id)}`, {
|
|
126
|
+
method: 'PUT',
|
|
127
|
+
headers: { 'content-type': 'application/json' },
|
|
128
|
+
body: JSON.stringify({ installed: nextInstalled }),
|
|
129
|
+
});
|
|
130
|
+
const data = await res.json().catch(() => ({}));
|
|
131
|
+
|
|
132
|
+
if (!res.ok) {
|
|
133
|
+
patchItem(id, { installed: prevInstalled }); // rollback
|
|
134
|
+
setToast({ state: 'error', slug: item.slug, key: ++toastKey });
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (data.deferred) {
|
|
138
|
+
patchItem(id, { installed: prevInstalled }); // bundle never actually installs
|
|
139
|
+
setToast({ state: 'deferred', slug: item.slug, key: ++toastKey });
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
if (data.setup_required) {
|
|
143
|
+
patchItem(id, { installed: prevInstalled });
|
|
144
|
+
setToast({ state: 'setup_required', slug: item.slug, key: ++toastKey });
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
// Reconcile with the server's authoritative item shape when provided.
|
|
148
|
+
if (data.item && typeof data.item === 'object') {
|
|
149
|
+
patchItem(id, data.item);
|
|
150
|
+
} else {
|
|
151
|
+
patchItem(id, { installed: nextInstalled });
|
|
152
|
+
}
|
|
153
|
+
setToast({ state: nextInstalled ? 'installed' : 'uninstalled', slug: item.slug, key: ++toastKey });
|
|
154
|
+
} catch {
|
|
155
|
+
patchItem(id, { installed: prevInstalled }); // rollback on network error
|
|
156
|
+
setToast({ state: 'error', slug: item.slug, key: ++toastKey });
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
98
160
|
// Deep-link prefill for the connection modal. Read once on mount so the
|
|
99
161
|
// user lands on the right card with the right scope preselected when
|
|
100
162
|
// arriving from "/agents/[id] → Connect another service".
|
|
@@ -129,17 +191,17 @@ export default function MarketplaceShell({
|
|
|
129
191
|
const categoryCounts = useMemo(() => {
|
|
130
192
|
const counts = {};
|
|
131
193
|
const scope = activeKind === 'all'
|
|
132
|
-
?
|
|
133
|
-
:
|
|
194
|
+
? liveItems
|
|
195
|
+
: liveItems.filter(item => item.kind === activeKind);
|
|
134
196
|
for (const item of scope) {
|
|
135
197
|
if (!item.category) continue;
|
|
136
198
|
counts[item.category] = (counts[item.category] || 0) + 1;
|
|
137
199
|
}
|
|
138
200
|
return counts;
|
|
139
|
-
}, [
|
|
201
|
+
}, [liveItems, activeKind]);
|
|
140
202
|
|
|
141
203
|
const filtered = useMemo(() => {
|
|
142
|
-
let list =
|
|
204
|
+
let list = liveItems;
|
|
143
205
|
if (activeKind !== 'all') {
|
|
144
206
|
list = list.filter(item => item.kind === activeKind);
|
|
145
207
|
}
|
|
@@ -154,13 +216,21 @@ export default function MarketplaceShell({
|
|
|
154
216
|
.sort((a, b) => rankItem(b, q) - rankItem(a, q));
|
|
155
217
|
}
|
|
156
218
|
return list;
|
|
157
|
-
}, [
|
|
219
|
+
}, [liveItems, activeKind, activeCategory, query]);
|
|
158
220
|
|
|
159
|
-
const installedCount =
|
|
221
|
+
const installedCount = liveItems.filter(item => item.installed).length;
|
|
222
|
+
const toastCopy = toast ? describe(toast.state, toast.slug) : null;
|
|
160
223
|
|
|
161
224
|
return (
|
|
162
225
|
<div className="mkt-page">
|
|
163
226
|
<InstallToast />
|
|
227
|
+
{toastCopy ? (
|
|
228
|
+
<div className={`mkt-toast ${toastCopy.tone}`} role="status" aria-live="polite" key={toast.key}>
|
|
229
|
+
<span>{toastCopy.eyebrow}</span>
|
|
230
|
+
<p>{toastCopy.text}</p>
|
|
231
|
+
<button type="button" onClick={() => setToast(null)} aria-label="Dismiss notification">×</button>
|
|
232
|
+
</div>
|
|
233
|
+
) : null}
|
|
164
234
|
<section className="mkt-stats">
|
|
165
235
|
<div className="mkt-stat">
|
|
166
236
|
<b>{counts.all}</b>
|
|
@@ -225,6 +295,7 @@ export default function MarketplaceShell({
|
|
|
225
295
|
key={item.id}
|
|
226
296
|
item={item}
|
|
227
297
|
toggleAction={toggleAction}
|
|
298
|
+
installItem={installItem}
|
|
228
299
|
onBundleClick={() => setBundleModal({ open: true, slug: item.slug })}
|
|
229
300
|
onConnectionClick={() => setConnectionModal({ open: true, item })}
|
|
230
301
|
connectionStatus={item.kind === 'connection' ? summarizeConnectionClient(item) : null}
|
|
@@ -33,7 +33,7 @@ function summarizeStages(stageKinds) {
|
|
|
33
33
|
* currentKind?: string,
|
|
34
34
|
* }} props
|
|
35
35
|
*/
|
|
36
|
-
export default function WorkflowCard({ item, toggleAction, currentKind }) {
|
|
36
|
+
export default function WorkflowCard({ item, toggleAction, onToggle, currentKind }) {
|
|
37
37
|
const installed = Boolean(item.installed);
|
|
38
38
|
const workflow = item.workflow || {};
|
|
39
39
|
|
|
@@ -65,6 +65,7 @@ export default function WorkflowCard({ item, toggleAction, currentKind }) {
|
|
|
65
65
|
</span>
|
|
66
66
|
<InstallToggle
|
|
67
67
|
action={toggleAction}
|
|
68
|
+
onToggle={onToggle}
|
|
68
69
|
itemId={item.id}
|
|
69
70
|
installed={installed}
|
|
70
71
|
available={true}
|
package/lib/agent-config.js
CHANGED
|
@@ -92,6 +92,13 @@ TOOL_SELF_MANAGEMENT
|
|
|
92
92
|
- If the tool exists but is disabled, call install_tool to enable it. Tools rated irreversible_external will gate on operator approval — surface that to the principal.
|
|
93
93
|
- After enabling a tool, immediately use it to complete the task.
|
|
94
94
|
|
|
95
|
+
BROWSER_CONTROL
|
|
96
|
+
- When asked to open, visit, or navigate a real web page and then read it, click, type, or search on it, drive a real browser — do NOT refuse and do NOT settle for web_fetch (which cannot click or run JavaScript-heavy pages).
|
|
97
|
+
- Use browser_open to load the URL, browser_act to click/fill/type/press/scroll, browser_extract to read the rendered result, and browser_screenshot to capture it. The page persists across calls so you can chain open → act → extract.
|
|
98
|
+
- These interactive browser tools start disabled. If a browser_* call is unavailable, call install_tool to enable it first, then proceed — exactly as TOOL_SELF_MANAGEMENT describes. Do not tell the principal you cannot browse; enable the tool and do it.
|
|
99
|
+
- When the principal explicitly wants to WATCH the browser live (a visible window, "open the browser so I can see", "connect chrome"), use skill_bridge_run with skill="connect-chrome" or skill="browse" — it drives the real visible GStack browser. This tool ALWAYS asks for owner approval before each run (it crosses the local CLI boundary); surface that one approval, then proceed. For silent/background automation prefer the headless browser_* tools instead.
|
|
100
|
+
- This applies identically whether the request arrives by voice or typed chat — voice runs through this same brain and toolset.
|
|
101
|
+
|
|
95
102
|
ARTIFACT_LIFECYCLE
|
|
96
103
|
- When asked to build a UI, page, interface, web component, landing page, dashboard, or any visual output — use generate_ui. Never use create_artifact for HTML or UI work.
|
|
97
104
|
- When the principal refines, extends, or follows up on a previous artifact, use update_artifact with the existing artifact_id — do NOT create a new artifact.
|