@jlongo78/agent-spaces 0.10.0-beta.2 → 0.10.0-beta.4
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/build-manifest.json +2 -2
- package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/admin/users/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/analytics/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/cortex/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/network/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/terminal/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/terminal/pane/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/workspaces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.html +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.html +1 -1
- package/.next/standalone/.next/server/app/admin/users.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.html +1 -1
- package/.next/standalone/.next/server/app/analytics.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/admin/analytics/route.js +4 -2
- package/.next/standalone/.next/server/app/api/admin/analytics/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/admin/users/[id]/route.js +4 -2
- package/.next/standalone/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/admin/users/route.js +4 -2
- package/.next/standalone/.next/server/app/api/admin/users/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/analytics/overview/route.js +5 -4
- package/.next/standalone/.next/server/app/api/analytics/overview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/login/route.js +3 -2
- package/.next/standalone/.next/server/app/api/auth/login/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route.js +2 -2
- package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/me/route.js +3 -2
- package/.next/standalone/.next/server/app/api/auth/me/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/totp/setup/route.js +2 -2
- package/.next/standalone/.next/server/app/api/auth/totp/setup/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/totp/status/route.js +2 -2
- package/.next/standalone/.next/server/app/api/auth/totp/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/totp/verify/route.js +3 -2
- package/.next/standalone/.next/server/app/api/auth/totp/verify/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js +4 -3
- package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/benchmark/run/route.js +4 -3
- package/.next/standalone/.next/server/app/api/benchmark/run/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route.js +4 -3
- package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/benchmark/runs/route.js +4 -3
- package/.next/standalone/.next/server/app/api/benchmark/runs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/benchmark/status/route.js +4 -3
- package/.next/standalone/.next/server/app/api/benchmark/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/bulk/route.js +5 -4
- package/.next/standalone/.next/server/app/api/bulk/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/chat/route.js +4 -2
- package/.next/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/claude/usage/route.js +5 -4
- package/.next/standalone/.next/server/app/api/claude/usage/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/config/route.js +3 -3
- package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/context/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/context/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/curation/assess/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/curation/assess/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/curation/publish/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/curation/publish/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/curation/refine/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/curation/refine/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/curation/review/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/curation/review/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/curation/seed/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/curation/seed/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/export/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/export/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/federation/pending/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/federation/pending/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/federation/resolve/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/federation/resolve/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/federation/search/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/federation/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/federation/teach/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/federation/teach/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/graph/edges/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/graph/edges/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/graph/entities/[id]/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/graph/entities/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/graph/entities/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/graph/entities/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/graph/populate/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/graph/populate/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/import/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/import/status/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/import/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/ingest/bootstrap/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/ingest/bootstrap/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/ingest/status/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/ingest/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/knowledge/[id]/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/knowledge/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/knowledge/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/knowledge/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/lobes/[id]/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/lobes/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/lobes/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/lobes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/lobes/share/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/lobes/share/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route.js +3 -3
- package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route.js +3 -3
- package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/mcp/call/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/mcp/call/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/mcp/tools/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/mcp/tools/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/search/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/settings/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/settings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/status/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/timeline/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/timeline/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/usage/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/usage/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/workspace/[id]/context/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/workspace/[id]/context/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/events/route.js +5 -3
- package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/files/route.js +3 -2
- package/.next/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/folders/route.js +3 -3
- package/.next/standalone/.next/server/app/api/folders/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/connect-callback/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/connect-callback/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/connect-request/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/connect-request/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/connect-request/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/connect-request/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/discovered/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/discovered/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/handshake/route.js +4 -3
- package/.next/standalone/.next/server/app/api/network/handshake/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/health/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/health/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/identity/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/identity/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/keys/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/keys/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/keys/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/keys/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/nodes/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/nodes/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/nodes/check/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/nodes/check/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/nodes/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/nodes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/panes/[id]/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/panes/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/panes/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/panes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/projects/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/projects/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/proxy/[nodeId]/[...path]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/proxy/[nodeId]/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/search/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/sessions/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/terminal/token/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/terminal/token/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/workspaces/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/workspaces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/panes/[id]/diff/route.js +5 -4
- package/.next/standalone/.next/server/app/api/panes/[id]/diff/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/panes/[id]/route.js +5 -4
- package/.next/standalone/.next/server/app/api/panes/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/panes/route.js +5 -4
- package/.next/standalone/.next/server/app/api/panes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/route.js +5 -4
- package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/[...path]/route.js +3 -3
- package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/status/route.js +3 -3
- package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/search/route.js +6 -5
- package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/server-config/route.js +2 -2
- package/.next/standalone/.next/server/app/api/server-config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js +5 -3
- package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js +5 -4
- package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/route.js +5 -4
- package/.next/standalone/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/route.js +6 -5
- package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sync/route.js +4 -3
- package/.next/standalone/.next/server/app/api/sync/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tags/route.js +5 -4
- package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tier/route.js +4 -3
- package/.next/standalone/.next/server/app/api/tier/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/updates/route.js +2 -2
- package/.next/standalone/.next/server/app/api/updates/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/whisper/config/route.js +2 -2
- package/.next/standalone/.next/server/app/api/whisper/config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/whisper/route.js +2 -2
- package/.next/standalone/.next/server/app/api/whisper/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wizard/chat/route.js +3 -3
- package/.next/standalone/.next/server/app/api/wizard/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js +5 -3
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js +5 -3
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js +5 -3
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js +5 -3
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js +5 -4
- package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js +5 -4
- package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route.js +5 -4
- package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route.js +5 -4
- package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/route.js +6 -5
- package/.next/standalone/.next/server/app/api/workspaces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/cortex.html +1 -1
- package/.next/standalone/.next/server/app/cortex.rsc +2 -2
- package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap/cortex/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap/cortex.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/cortex.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/cortex.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/cortex.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/cortex.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/icon.png/route.js +2 -2
- package/.next/standalone/.next/server/app/icon.png/route.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/login.html +1 -1
- package/.next/standalone/.next/server/app/login.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/projects.html +1 -1
- package/.next/standalone/.next/server/app/m/projects.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/m/projects/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/m/projects.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/sessions.html +1 -1
- package/.next/standalone/.next/server/app/m/sessions.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/settings.html +1 -1
- package/.next/standalone/.next/server/app/m/settings.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/m/settings/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/m/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/terminal.html +1 -1
- package/.next/standalone/.next/server/app/m/terminal.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m.html +1 -1
- package/.next/standalone/.next/server/app/m.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/m/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.html +1 -1
- package/.next/standalone/.next/server/app/network.rsc +2 -2
- package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/network.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/network.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.html +1 -1
- package/.next/standalone/.next/server/app/projects.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.html +1 -1
- package/.next/standalone/.next/server/app/sessions.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/terminal.html +1 -1
- package/.next/standalone/.next/server/app/terminal.rsc +3 -3
- package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/terminal.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/terminal.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/vr/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/vr.html +1 -1
- package/.next/standalone/.next/server/app/vr.rsc +2 -2
- package/.next/standalone/.next/server/app/vr.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/vr.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/vr.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/vr.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/vr.segments/vr/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/vr.segments/vr.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.html +1 -1
- package/.next/standalone/.next/server/app/workspaces.rsc +2 -2
- package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspaces.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cf5ebdb._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0f15af1e._.js +78 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__107eab8a._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1094360c._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__118ea5e0._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__160e7c73._.js +5 -5
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__16d4da21._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1c542684._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1f23bae4._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1faefa3e._.js +19 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2145098e._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2748c76c._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2c08d908._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2e29b4bd._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__e3ecfd17._.js → [root-of-the-server]__34fd47d2._.js} +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__366b6cec._.js +78 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4d51508f._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5663673e._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__57e0cc31._.js +133 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__57ebbe63._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5d3345e4._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5ee7aa9d._.js +11 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__60caf825._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__65c9857f._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__678f6823._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__685c95d8._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__41d4d426._.js → [root-of-the-server]__69568dc2._.js} +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6a0bc4ae._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6b876561._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6e89713c._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6f713737._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__725f10f4._.js +78 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__785b0597._.js +38 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7c728bed._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7da958b5._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7daed406._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7f140e4b._.js +78 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__80d826f7._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__83a3c97b._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__84c15a0e._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__85c33341._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__88f3d920._.js +78 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8c916e85._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8deb2ae3._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8df5a740._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8f238bd9._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__955ab668._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9a061e91._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a04a87d5._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a803051f._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac0a9b09._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac3e37b6._.js +13 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__96685488._.js → [root-of-the-server]__add9e50d._.js} +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b57f4274._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b84b3426._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba8224a1._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd1c1d0d._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c1442c38._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c18bdab2._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c1efc6a8._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c697b87e._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c6dc43c6._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ccce7f4f._.js +78 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d92f347c._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__dac9e21e._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e3f9ddbc._.js +78 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e66fc05f._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e7add82c._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fa9a5ec0._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ff9f6af0._.js +42 -0
- package/.next/standalone/.next/server/chunks/_0142f96b._.js +3 -0
- package/.next/standalone/.next/server/chunks/_0ebd30d3._.js +3 -0
- package/.next/standalone/.next/server/chunks/_19a59078._.js +3 -0
- package/.next/standalone/.next/server/chunks/_1bc02021._.js +11 -0
- package/.next/standalone/.next/server/chunks/_1e381a28._.js +3 -0
- package/.next/standalone/.next/server/chunks/_2699eda7._.js +3 -0
- package/.next/standalone/.next/server/chunks/_2fd02f70._.js +3 -0
- package/.next/standalone/.next/server/chunks/_373d522f._.js +3 -0
- package/.next/standalone/.next/server/chunks/_43fc1196._.js +3 -0
- package/.next/standalone/.next/server/chunks/_48ec4374._.js +3 -0
- package/.next/standalone/.next/server/chunks/_563d9ecc._.js +3 -0
- package/.next/standalone/.next/server/chunks/_583f9ae2._.js +3 -0
- package/.next/standalone/.next/server/chunks/_5a167705._.js +3 -0
- package/.next/standalone/.next/server/chunks/_5a8cc3a5._.js +3 -0
- package/.next/standalone/.next/server/chunks/_5d894fb4._.js +3 -0
- package/.next/standalone/.next/server/chunks/_6bbf8264._.js +3 -0
- package/.next/standalone/.next/server/chunks/_6c4bcec1._.js +3 -0
- package/.next/standalone/.next/server/chunks/_7a29d111._.js +3 -0
- package/.next/standalone/.next/server/chunks/_7d3bab25._.js +3 -0
- package/.next/standalone/.next/server/chunks/_7ed4d1a4._.js +3 -0
- package/.next/standalone/.next/server/chunks/_8072d20c._.js +3 -0
- package/.next/standalone/.next/server/chunks/_81b87c01._.js +3 -0
- package/.next/standalone/.next/server/chunks/_881b7b28._.js +3 -0
- package/.next/standalone/.next/server/chunks/_902a1d56._.js +3 -0
- package/.next/standalone/.next/server/chunks/_96258f1c._.js +3 -0
- package/.next/standalone/.next/server/chunks/_96f79f8f._.js +3 -0
- package/.next/standalone/.next/server/chunks/_a0379bc2._.js +3 -0
- package/.next/standalone/.next/server/chunks/_a0f604e8._.js +3 -0
- package/.next/standalone/.next/server/chunks/_a959b121._.js +3 -0
- package/.next/standalone/.next/server/chunks/_a975011f._.js +3 -0
- package/.next/standalone/.next/server/chunks/_aa956b66._.js +3 -0
- package/.next/standalone/.next/server/chunks/_ad7e7d57._.js +3 -0
- package/.next/standalone/.next/server/chunks/_aebf2285._.js +3 -0
- package/.next/standalone/.next/server/chunks/_b259dda0._.js +36 -0
- package/.next/standalone/.next/server/chunks/_b7c60fdc._.js +3 -0
- package/.next/standalone/.next/server/chunks/_bd23ddeb._.js +3 -0
- package/.next/standalone/.next/server/chunks/_cd02dfbe._.js +3 -0
- package/.next/standalone/.next/server/chunks/_d3ecca80._.js +3 -0
- package/.next/standalone/.next/server/chunks/_d48dfa43._.js +11 -0
- package/.next/standalone/.next/server/chunks/_dba648d6._.js +3 -0
- package/.next/standalone/.next/server/chunks/_df42ac6e._.js +3 -0
- package/.next/standalone/.next/server/chunks/_dfe0e460._.js +42 -0
- package/.next/standalone/.next/server/chunks/_ead2734e._.js +3 -0
- package/.next/standalone/.next/server/chunks/_eb4efd0a._.js +3 -0
- package/.next/standalone/.next/server/chunks/_eb66a871._.js +3 -0
- package/.next/standalone/.next/server/chunks/_ef715efd._.js +3 -0
- package/.next/standalone/.next/server/chunks/_f361a656._.js +3 -0
- package/.next/standalone/.next/server/chunks/_f54ddbf4._.js +3 -0
- package/.next/standalone/.next/server/chunks/_fe2866f2._.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_4c408326.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_5603adbc.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7180f8ad.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_b6be66d9.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f7054fd7.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__66aca5d4._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_terminal_page_tsx_de5e8d85._.js +1 -1
- package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__90eeddae._.js +1 -1
- package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__ca3f649e._.js +1 -1
- package/.next/standalone/.next/server/middleware-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +2 -2
- package/.next/standalone/.next/static/chunks/{732b7502f82e7c37.css → 044decb96250e420.css} +1 -1
- package/.next/standalone/.next/static/chunks/{23a9627a951672ed.js → 8b53c673e79b82f1.js} +3 -3
- package/.next/standalone/bin/scrub-standalone.js +5 -0
- package/.next/standalone/bin/spaces-dev.js +13 -3
- package/.next/standalone/bin/spaces.js +25 -4
- package/.next/standalone/package-lock.json +2 -2
- package/.next/standalone/package.json +3 -2
- package/.next/standalone/src/app/(desktop)/terminal/page.tsx +22 -1
- package/.next/standalone/src/app/api/network/discovered/route.ts +2 -2
- package/.next/standalone/src/app/api/network/nodes/check/route.ts +2 -2
- package/.next/standalone/src/app/api/network/nodes/route.ts +2 -2
- package/.next/standalone/src/app/api/server-config/route.ts +9 -18
- package/.next/standalone/src/lib/admin/api/analytics.ts +1 -8
- package/.next/standalone/src/lib/admin/api/users.ts +1 -8
- package/.next/standalone/src/lib/admin/api/usersById.ts +1 -8
- package/.next/standalone/src/lib/auth/guard.ts +46 -0
- package/.next/standalone/src/lib/auth/index.ts +1 -0
- package/.next/standalone/src/lib/db/queries.ts +11 -1
- package/.next/standalone/src/lib/network/api/discovered.ts +4 -1
- package/.next/standalone/src/lib/network/api/identity.ts +6 -0
- package/.next/standalone/src/lib/network/api/keys.ts +6 -0
- package/.next/standalone/src/lib/network/api/keysById.ts +3 -0
- package/.next/standalone/src/lib/network/api/nodes.ts +49 -3
- package/.next/standalone/src/lib/network/api/nodesById.ts +5 -0
- package/.next/standalone/src/lib/network/api/nodesCheck.ts +4 -1
- package/.next/standalone/src/lib/network/api/proxy.ts +5 -0
- package/.next/standalone/src/middleware.ts +24 -10
- package/.next/standalone/tsconfig.tsbuildinfo +1 -1
- package/bin/scrub-standalone.js +5 -0
- package/bin/spaces-dev.js +13 -3
- package/bin/spaces.js +25 -4
- package/package.json +3 -2
- package/.next/standalone/.next/server/chunks/[externals]_next_dist_b89b5a39._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0153ac12._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__01a4559c._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__029ab763._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__037992dc._.js +0 -141
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__06bb204a._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fd17dcf._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__107439ea._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__12dff461._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__13eb511a._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__141c8d34._.js +0 -172
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__151efd48._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__16c141c2._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__17fee60c._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1a525be8._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1aea45f5._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1cb4ee6b._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1e25d3db._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1f7566a3._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__20382bee._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2082a624._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2091a7ed._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__24525ae7._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__284b02fc._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2a1a1d0f._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2cf17888._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__323ae5c9._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__34db98f7._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__39efba69._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3aeedc57._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3bbe9d04._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3c2324ba._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__40df3f5d._.js +0 -172
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__42a3fe3c._.js +0 -141
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__42d5d5be._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__49821b61._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__49f58cee._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4b9c38dc._.js +0 -141
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4c0ee9c7._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__530862c6._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__55504160._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__599f26fe._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5efa69f5._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__60483ece._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__61135659._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__66331034._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6887294d._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6b9396b4._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6cfd7062._.js +0 -166
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6e8d89e2._.js +0 -149
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6f5b3cfe._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__71d5b087._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__76434a8e._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__798bafa7._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7b873fdb._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7d73f791._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7dc76d0e._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__80a85d1f._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__81f2a9b7._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__82f11618._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__834efefe._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__853663ea._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__861f2472._.js +0 -172
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__882d0924._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__88959e7f._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8b6c05dc._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__912a22a4._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__93d21ad1._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__94532b09._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__97e87518._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9c13c8d0._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9cb13212._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9d315363._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9ec369db._.js +0 -13
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9f09ade5._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9f986ad2._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a35913cf._.js +0 -172
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a3641117._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a76c75a0._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a934c48d._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9431ac6._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__aa3381a4._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ab1cc16c._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ab22ca4f._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac20d518._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__aee3bf91._.js +0 -172
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b1114936._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b15ade1f._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b2bc7a81._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b51446e5._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba344563._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c3b2e20c._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ca93ae79._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cf4a76c0._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d20bed9e._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d2d59054._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d4f1c0c0._.js +0 -38
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d6de7a45._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__da33b519._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__dc820e44._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e1058e69._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e1dfb4d4._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e3606cd1._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e55b6fc5._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e6555dc3._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e65c3971._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ea9e2d75._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ec37cbee._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f3c19e4b._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f445bd01._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f7b0b4da._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fb4c016b._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fd86530e._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fef9b1ec._.js +0 -133
- package/.next/standalone/docs/plans/2026-02-24-multi-agent-sessions-design.md +0 -133
- package/.next/standalone/docs/plans/2026-02-24-multi-agent-sessions-plan.md +0 -959
- package/.next/standalone/docs/plans/2026-03-07-service-command-design.md +0 -146
- package/.next/standalone/docs/plans/2026-03-07-service-command-plan.md +0 -254
- package/.next/standalone/docs/plans/2026-04-23-consolidate-addons-design.md +0 -212
- package/.next/standalone/docs/plans/2026-04-23-consolidate-addons-plan.md +0 -1509
- package/.next/standalone/docs/superpowers/plans/2026-03-12-spaces-cortex.md +0 -5270
- package/.next/standalone/docs/superpowers/plans/2026-03-13-cortex-wiring.md +0 -1387
- package/.next/standalone/docs/superpowers/plans/2026-03-14-cortex-v2-entity-graph.md +0 -1923
- package/.next/standalone/docs/superpowers/plans/2026-03-14-cortex-v2-knowledge-evolution.md +0 -1113
- package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-boundary-engine.md +0 -853
- package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-context-engine.md +0 -1274
- package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-signal-ingestion.md +0 -933
- package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-lobes.md +0 -1080
- package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-v2-gravity-system.md +0 -768
- package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-v2-ui.md +0 -1108
- package/.next/standalone/docs/superpowers/plans/2026-03-18-cortex-ui-integration.md +0 -1846
- package/.next/standalone/docs/superpowers/plans/2026-03-19-vr-phase1-shell.md +0 -1639
- package/.next/standalone/docs/superpowers/plans/2026-03-27-dockview-pane-layout.md +0 -98
- package/.next/standalone/docs/superpowers/plans/2026-04-21-workspace-todos.md +0 -1097
- package/.next/standalone/docs/superpowers/plans/2026-04-22-claude-usage-display.md +0 -749
- package/.next/standalone/docs/superpowers/specs/2026-03-11-universe-view-design.md +0 -320
- package/.next/standalone/docs/superpowers/specs/2026-03-12-spaces-brain-design.md +0 -720
- package/.next/standalone/docs/superpowers/specs/2026-03-13-cortex-wiring-design.md +0 -268
- package/.next/standalone/docs/superpowers/specs/2026-03-14-cortex-v2-design.md +0 -623
- package/.next/standalone/docs/superpowers/specs/2026-03-16-cortex-lobes-design.md +0 -263
- package/.next/standalone/docs/superpowers/specs/2026-03-16-cortex-v2-ui-design.md +0 -240
- package/.next/standalone/docs/superpowers/specs/2026-03-16-pane-ux-design.md +0 -77
- package/.next/standalone/docs/superpowers/specs/2026-03-18-cortex-ui-integration-design.md +0 -341
- package/.next/standalone/docs/superpowers/specs/2026-03-19-vr-phase1-shell-design.md +0 -288
- package/.next/standalone/docs/superpowers/specs/2026-03-27-pane-diff-review-and-project-wizard-design.md +0 -322
- package/.next/standalone/docs/superpowers/specs/2026-04-21-workspace-todos-design.md +0 -180
- package/.next/standalone/docs/superpowers/specs/2026-04-22-claude-usage-display-design.md +0 -183
- /package/.next/standalone/.next/static/{Y9EeSGuSi-8qpkLvIBy0a → mimGB6C_ZmJMiVnOe9tqZ}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{Y9EeSGuSi-8qpkLvIBy0a → mimGB6C_ZmJMiVnOe9tqZ}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/.next/static/{Y9EeSGuSi-8qpkLvIBy0a → mimGB6C_ZmJMiVnOe9tqZ}/_ssgManifest.js +0 -0
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
# Claude Usage Display — Design
|
|
2
|
-
|
|
3
|
-
**Status:** draft
|
|
4
|
-
**Owner:** jlongo
|
|
5
|
-
**Last updated:** 2026-04-22
|
|
6
|
-
|
|
7
|
-
## Overview
|
|
8
|
-
|
|
9
|
-
A compact global readout of Anthropic plan-usage rate limits (the same data Claude Code's `/usage` command shows), mounted in the terminal page header. Surfaces how much of the user's 5-hour and 7-day rate-limit windows has been consumed, so they can judge whether to launch another Claude pane or throttle back. Data is pulled from Anthropic's `/api/oauth/usage` endpoint using the OAuth access token that Claude Code has already stored on disk.
|
|
10
|
-
|
|
11
|
-
**Explicitly not in scope (v1):**
|
|
12
|
-
- OAuth token refresh (passive — if access token is expired, the widget shows a "sign in via Claude Code" hint).
|
|
13
|
-
- Per-pane / per-session usage breakdown (the Anthropic endpoint is account-wide).
|
|
14
|
-
- Historical usage graphs.
|
|
15
|
-
- Non-Claude-AI auth modes (API keys, Bedrock, Vertex). If the user isn't a Claude.ai subscriber with a local OAuth token, the widget hides.
|
|
16
|
-
|
|
17
|
-
## User-facing behavior
|
|
18
|
-
|
|
19
|
-
- Enter any workspace on `/terminal`.
|
|
20
|
-
- If at least one pane in the active workspace has `agentType === 'claude'`, a compact usage strip appears in the header, to the right of the workspace selector and pane-count text.
|
|
21
|
-
- The strip shows three thin progress bars side-by-side:
|
|
22
|
-
- **5h** — 5-hour rolling window (all models).
|
|
23
|
-
- **Opus** — 7-day Opus window.
|
|
24
|
-
- **Sonnet** — 7-day Sonnet window.
|
|
25
|
-
- Each bar fills left-to-right with a percent label. Color: green ≤ 70%, amber 70-90%, red > 90%.
|
|
26
|
-
- Hover any bar → tooltip `Resets in 2h 14m`.
|
|
27
|
-
- If `extra_usage.is_enabled` and `used_credits > 0`, a small `+$X overage` badge appears to the right.
|
|
28
|
-
- Click the strip → a popover expands showing all five rate-limit windows (5h, 7d overall, 7d Opus, 7d Sonnet, 7d OAuth-apps) plus the full overage block. Layout mirrors Claude Code's `/usage` settings tab. Click outside to dismiss.
|
|
29
|
-
- If the access token is missing or expired, the strip renders dimmed with a single label `sign in via Claude Code` and a subtle icon. No error toast.
|
|
30
|
-
- If the Anthropic endpoint returns 4xx/5xx or times out, the strip hides silently (no noisy failure).
|
|
31
|
-
|
|
32
|
-
## Architecture
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
UI (terminal page header)
|
|
36
|
-
└── <ClaudeUsageStrip /> (src/components/claude/claude-usage-strip.tsx)
|
|
37
|
-
└── useClaudeUsage() (polls /api/claude/usage every 60s)
|
|
38
|
-
└── GET /api/claude/usage (src/app/api/claude/usage/route.ts)
|
|
39
|
-
├── reads ~/.claude/.credentials.json (claudeAiOauth field)
|
|
40
|
-
├── checks expiresAt — returns 401 if expired
|
|
41
|
-
├── calls https://api.anthropic.com/api/oauth/usage
|
|
42
|
-
│ with Bearer <accessToken>, User-Agent "claude-code/<ver>"
|
|
43
|
-
└── caches 30s in-memory (keyed by accessToken prefix)
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
Data flow: every 60s the component calls the route; the route returns a cached `Utilization` object (30s TTL) or fetches fresh. Either way the component gets the same JSON shape and renders.
|
|
47
|
-
|
|
48
|
-
## Key files
|
|
49
|
-
|
|
50
|
-
| Path | Role |
|
|
51
|
-
|---|---|
|
|
52
|
-
| `src/lib/claude/credentials.ts` | New. Reads `~/.claude/.credentials.json` and extracts the `claudeAiOauth` tokens with an expiry check. |
|
|
53
|
-
| `src/lib/claude/usage.ts` | New. Thin wrapper: given an access token, calls Anthropic's `/api/oauth/usage` and returns `Utilization`. In-memory 30s cache. |
|
|
54
|
-
| `src/app/api/claude/usage/route.ts` | New. `GET` handler that wires credentials → usage → JSON response. Handles missing/expired token with structured error shapes. |
|
|
55
|
-
| `src/types/claude.ts` | Modify. Add `Utilization`, `RateLimit`, `ExtraUsage`, `UsageResponse` types. |
|
|
56
|
-
| `src/hooks/use-claude-usage.ts` | New. React hook — polls the route, exposes `{ data, error, loading }`. Skips polling when `enabled: false`. |
|
|
57
|
-
| `src/components/claude/claude-usage-strip.tsx` | New. The compact 3-bar strip + expanded popover. |
|
|
58
|
-
| `src/app/(desktop)/terminal/page.tsx` | Modify. Mount `<ClaudeUsageStrip />` in header; pass `hasClaudePane` flag so it only renders when relevant. |
|
|
59
|
-
| `docs/features/claude-usage.md` | New. Feature doc. |
|
|
60
|
-
|
|
61
|
-
## Data model
|
|
62
|
-
|
|
63
|
-
No DB changes. All transient state; no persistence beyond the in-memory cache in the API route.
|
|
64
|
-
|
|
65
|
-
### TypeScript types
|
|
66
|
-
|
|
67
|
-
```ts
|
|
68
|
-
// src/types/claude.ts (append)
|
|
69
|
-
|
|
70
|
-
export interface RateLimit {
|
|
71
|
-
utilization: number | null; // 0-100
|
|
72
|
-
resets_at: string | null; // ISO 8601
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export interface ExtraUsage {
|
|
76
|
-
is_enabled: boolean;
|
|
77
|
-
monthly_limit: number | null;
|
|
78
|
-
used_credits: number | null;
|
|
79
|
-
utilization: number | null;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
export interface Utilization {
|
|
83
|
-
five_hour?: RateLimit | null;
|
|
84
|
-
seven_day?: RateLimit | null;
|
|
85
|
-
seven_day_oauth_apps?: RateLimit | null;
|
|
86
|
-
seven_day_opus?: RateLimit | null;
|
|
87
|
-
seven_day_sonnet?: RateLimit | null;
|
|
88
|
-
extra_usage?: ExtraUsage | null;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export type UsageResponse =
|
|
92
|
-
| { status: 'ok'; data: Utilization }
|
|
93
|
-
| { status: 'unauthenticated' }
|
|
94
|
-
| { status: 'expired' }
|
|
95
|
-
| { status: 'upstream_error' };
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### Credentials file shape (read-only, owned by Claude Code)
|
|
99
|
-
|
|
100
|
-
```json
|
|
101
|
-
{
|
|
102
|
-
"claudeAiOauth": {
|
|
103
|
-
"accessToken": "...",
|
|
104
|
-
"refreshToken": "...",
|
|
105
|
-
"expiresAt": 1735678800000,
|
|
106
|
-
"scopes": ["..."]
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
Path: `$CLAUDE_CONFIG_DIR/.credentials.json` where `CLAUDE_CONFIG_DIR` defaults to `~/.claude`. Mode 0600. Spaces reads it with `fs.readFile`; if the file is missing, unreadable, or malformed, treat as unauthenticated.
|
|
112
|
-
|
|
113
|
-
## APIs / contracts
|
|
114
|
-
|
|
115
|
-
### Internal endpoint: `GET /api/claude/usage`
|
|
116
|
-
|
|
117
|
-
**Response shapes (all JSON, content-type `application/json`):**
|
|
118
|
-
|
|
119
|
-
- `200` `{ status: "ok", data: Utilization }` — happy path.
|
|
120
|
-
- `200` `{ status: "unauthenticated" }` — credentials file missing or no `claudeAiOauth` block. Not a 4xx because this is an expected state, not a client error.
|
|
121
|
-
- `200` `{ status: "expired" }` — access token is past `expiresAt`.
|
|
122
|
-
- `200` `{ status: "upstream_error" }` — Anthropic endpoint returned non-2xx or timed out.
|
|
123
|
-
|
|
124
|
-
Auth: piggybacks on `withUser`/`getAuthUser` like every other `/api/*` route. No new gate.
|
|
125
|
-
|
|
126
|
-
**Caching:** in-memory `Map<tokenPrefix, { fetchedAt, data }>`. Hit if `Date.now() - fetchedAt < 30_000`. `tokenPrefix` is the first 16 chars of `accessToken` (enough to distinguish, avoids holding full tokens in a non-secure cache). Cache is process-local; it resets on server restart.
|
|
127
|
-
|
|
128
|
-
**Upstream call:**
|
|
129
|
-
- Method: `GET`
|
|
130
|
-
- URL: `https://api.anthropic.com/api/oauth/usage`
|
|
131
|
-
- Headers: `Authorization: Bearer <accessToken>`, `Content-Type: application/json`, `User-Agent: claude-code/<version-from-package-json>` (Anthropic uses the UA to classify the client; mimicking Claude Code is intentional here since we're reading the same account data).
|
|
132
|
-
- Timeout: 5 seconds via `AbortController`.
|
|
133
|
-
|
|
134
|
-
### External call
|
|
135
|
-
|
|
136
|
-
- **Anthropic `/api/oauth/usage`** — see above. No secret of our own; we use the user's own OAuth access token.
|
|
137
|
-
|
|
138
|
-
## Configuration & environment
|
|
139
|
-
|
|
140
|
-
- `CLAUDE_CONFIG_DIR` — respected (defaults to `~/.claude`). Same env var Claude Code uses.
|
|
141
|
-
- No feature flag, no tier gate. Community-tier feature.
|
|
142
|
-
- No changes to env-var requirements for Spaces.
|
|
143
|
-
|
|
144
|
-
## How to run / test locally
|
|
145
|
-
|
|
146
|
-
```bash
|
|
147
|
-
npm install
|
|
148
|
-
npm run build
|
|
149
|
-
npm start
|
|
150
|
-
# visit http://localhost:3457/terminal, enter a workspace, add a Claude pane
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
Manual QA:
|
|
154
|
-
|
|
155
|
-
1. With a valid OAuth session (you can run Claude Code once to produce `.credentials.json`): open a workspace, add a Claude pane, verify the usage strip appears in the header. Percentages should match what `/usage` shows inside Claude Code.
|
|
156
|
-
2. Hover each bar → tooltip shows `Resets in …` timing.
|
|
157
|
-
3. Click the strip → popover expands with all windows + overage block.
|
|
158
|
-
4. Delete the Claude pane (only shell panes left) → strip hides.
|
|
159
|
-
5. Expired token simulation: edit `.credentials.json` to set `claudeAiOauth.expiresAt` to a past timestamp; reload — strip shows "sign in via Claude Code".
|
|
160
|
-
6. Missing credentials: temporarily move `.credentials.json` aside; reload — strip hides (or shows sign-in hint per UI state).
|
|
161
|
-
7. Offline simulation: disconnect network; within a minute the strip should silently hide (`upstream_error` state), then reappear when connectivity returns.
|
|
162
|
-
|
|
163
|
-
Automated: none for v1. The behavior is I/O-heavy (file read + remote call) and doesn't benefit from unit tests; the repo convention is to skip route tests for this shape of work.
|
|
164
|
-
|
|
165
|
-
## Known quirks & decisions
|
|
166
|
-
|
|
167
|
-
- **Passive refresh.** We do not refresh the OAuth access token when it expires. Claude Code owns the refresh lifecycle and also writes to `.credentials.json`; duplicating that logic risks racing Claude Code over the same file. Users refresh by running any Claude Code command (or `/login`).
|
|
168
|
-
- **User-Agent mimicry.** The Anthropic endpoint expects a Claude-Code-shaped UA. We send `claude-code/<ver>` where `<ver>` comes from a constant in `src/lib/claude/usage.ts` (bumped manually if upstream ever changes expectations). This is not a secret; it's classification data.
|
|
169
|
-
- **Account-wide data, rendered once.** Even though the widget is UX-scoped to "when a Claude pane is present," the data is account-wide and identical across all panes. Rendering once in the header, not per-pane, is intentional honesty.
|
|
170
|
-
- **30s server cache + 60s client poll.** Means the UI can be up to 90s stale at the outer bound; acceptable for rate-limit windows that move in hours.
|
|
171
|
-
- **Token prefix as cache key.** Using a 16-char prefix of `accessToken` rather than a full hash because the user ID isn't handy in this path. Collisions are theoretically possible but effectively nil.
|
|
172
|
-
- **Graceful degradation.** Every failure mode (missing file, expired token, bad JSON, upstream error, timeout) resolves to one of four structured `UsageResponse` statuses — the UI renders accordingly. No exceptions bubble to the user.
|
|
173
|
-
- **Direct-to-main workflow.** Per repo convention.
|
|
174
|
-
|
|
175
|
-
## Open questions / TODOs
|
|
176
|
-
|
|
177
|
-
- [ ] Active refresh — mirror Claude Code's `/oauth/token` refresh dance to keep the widget live past access-token expiry. Deferred per v1 scope.
|
|
178
|
-
- [ ] Per-model detail on hover (messages/tokens sent toward each window) — Anthropic doesn't currently expose this via `/api/oauth/usage`, would need a different endpoint.
|
|
179
|
-
- [ ] Local-JSONL-based "session cost so far" complement — different data source, different feature. Could coexist.
|
|
180
|
-
|
|
181
|
-
## Changelog
|
|
182
|
-
|
|
183
|
-
- 2026-04-22 — Initial design.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|