@geminilight/mindos 0.6.67 → 0.6.70
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/_standalone/.mindos-build-version +1 -1
- package/_standalone/.next/BUILD_ID +1 -1
- package/_standalone/.next/app-path-routes-manifest.json +26 -25
- package/_standalone/.next/build-manifest.json +3 -3
- package/_standalone/.next/cache/.previewinfo +1 -1
- package/_standalone/.next/cache/.rscinfo +1 -1
- package/_standalone/.next/cache/config.json +3 -3
- package/_standalone/.next/prerender-manifest.json +3 -3
- package/_standalone/.next/react-loadable-manifest.json +7 -7
- package/_standalone/.next/routes-manifest.json +6 -0
- package/_standalone/.next/server/app/.well-known/agent-card.json/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/_global-error.html +2 -2
- package/_standalone/.next/server/app/_global-error.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/_standalone/.next/server/app/_not-found/page.js +1 -1
- package/_standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/agents/[agentKey]/page.js +1 -1
- package/_standalone/.next/server/app/agents/[agentKey]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/agents/[agentKey]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/agents/page.js +1 -1
- package/_standalone/.next/server/app/agents/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/agents/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/delegations/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/discover/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/config/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/detect/route.js +1 -1
- package/_standalone/.next/server/app/api/acp/detect/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/install/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/registry/route.js +1 -1
- package/_standalone/.next/server/app/api/acp/registry/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/session/route.js +1 -1
- package/_standalone/.next/server/app/api/acp/session/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/acp/session/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agent-activity/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agents/copy-skill/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/agents/copy-skill/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agents/custom/detect/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agents/custom/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/ask/route.js +17 -17
- package/_standalone/.next/server/app/api/ask/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/ask/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/ask-sessions/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/auth/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/backlinks/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/backlinks/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/bootstrap/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/bootstrap/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/changes/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/channels/verify/route.js +1 -0
- package/_standalone/.next/server/app/api/channels/verify/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/channels/verify/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/connect/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/export/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/export/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/extract-pdf/route.js +2 -2
- package/_standalone/.next/server/app/api/extract-pdf/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/import/route.js +1 -1
- package/_standalone/.next/server/app/api/file/import/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/file/import/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/raw/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/file/raw/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/file/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/git/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/graph/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/graph/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/im/config/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/im/status/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/im/test/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/inbox/clip/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/inbox/clip/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/init/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/lint/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/lint/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/agents/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/mcp/agents/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/direct-tools/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/install/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/install-skill/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/restart/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/uninstall/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/monitoring/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/monitoring/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/recent-files/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/recent-files/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/search/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/list-models/route.js +1 -1
- package/_standalone/.next/server/app/api/settings/list-models/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/reset-token/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/route.js +1 -1
- package/_standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/test-key/route.js +1 -1
- package/_standalone/.next/server/app/api/settings/test-key/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/check-path/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/check-port/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/generate-token/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/ls/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/space-overview/route.js +2 -2
- package/_standalone/.next/server/app/api/space-overview/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/space-overview/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/sync/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/tree-version/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/tree-version/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/uninstall/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/update-check/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/update-status/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/changelog/page.js +1 -1
- package/_standalone/.next/server/app/changelog/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/changelog/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/changes/page.js +1 -1
- package/_standalone/.next/server/app/changes/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/changes/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/echo/[segment]/page.js +1 -1
- package/_standalone/.next/server/app/echo/[segment]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/echo/[segment]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/echo/page.js +1 -1
- package/_standalone/.next/server/app/echo/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/echo/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/explore/page.js +1 -1
- package/_standalone/.next/server/app/explore/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/explore/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/help/page.js +1 -1
- package/_standalone/.next/server/app/help/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/inbox/history/page.js +1 -1
- package/_standalone/.next/server/app/inbox/history/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/inbox/history/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/login/page.js +1 -1
- package/_standalone/.next/server/app/login/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/page.js +1 -1
- package/_standalone/.next/server/app/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/setup/page.js +1 -1
- package/_standalone/.next/server/app/setup/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/trash/page.js +3 -3
- package/_standalone/.next/server/app/trash/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/trash/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/view/[...path]/page.js +3 -3
- package/_standalone/.next/server/app/view/[...path]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/view/[...path]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/wiki/page.js +1 -1
- package/_standalone/.next/server/app/wiki/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/wiki/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app-paths-manifest.json +26 -25
- package/_standalone/.next/server/chunks/3437.js +2 -2
- package/_standalone/.next/server/chunks/5299.js +1 -0
- package/_standalone/.next/server/chunks/6022.js +39 -39
- package/_standalone/.next/server/chunks/6133.js +54 -0
- package/_standalone/.next/server/chunks/6539.js +1 -1
- package/_standalone/.next/server/chunks/8326.js +1 -0
- package/_standalone/.next/server/chunks/8388.js +5 -3
- package/_standalone/.next/server/chunks/953.js +6 -4
- package/_standalone/.next/server/chunks/9938.js +24 -0
- package/_standalone/.next/server/middleware-build-manifest.js +1 -1
- package/_standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/_standalone/.next/server/pages/500.html +2 -2
- package/_standalone/.next/server/server-reference-manifest.js +1 -1
- package/_standalone/.next/server/server-reference-manifest.json +1 -1
- package/_standalone/.next/static/chunks/1814.8a1fef15856dce84.js +1 -0
- package/_standalone/.next/static/chunks/2654-e07c692d6c99f25b.js +1 -0
- package/_standalone/.next/static/chunks/{2935.7d75923daaf448d3.js → 2935.9b08eeade3644806.js} +1 -1
- package/_standalone/.next/static/chunks/3269.a7343771e3f0ff58.js +48 -0
- package/_standalone/.next/static/chunks/3637.2b2697198968d83f.js +1 -0
- package/_standalone/.next/static/chunks/{5550-b7c97fc13628db15.js → 4327-d70a8d457e2d03fe.js} +1 -1
- package/_standalone/.next/static/chunks/48-c88ea6a2a45f15b4.js +28 -0
- package/_standalone/.next/static/chunks/5581-6d403608b5dfb20b.js +29 -0
- package/_standalone/.next/static/chunks/6902-edc5c487c696bd0b.js +3 -0
- package/_standalone/.next/static/chunks/808.72eb7bdd399e9a24.js +1 -0
- package/_standalone/.next/static/chunks/app/.well-known/agent-card.json/{route-e0c1e2c67572781c.js → route-930dfa67e2789df5.js} +1 -1
- package/_standalone/.next/static/chunks/app/_global-error/{page-e0c1e2c67572781c.js → page-930dfa67e2789df5.js} +1 -1
- package/_standalone/.next/static/chunks/app/agents/page-3dc2bf2f6bc7334c.js +1 -0
- package/_standalone/.next/static/chunks/app/api/a2a/agents/{route-e0c1e2c67572781c.js → route-930dfa67e2789df5.js} +1 -1
- package/_standalone/.next/static/chunks/app/api/a2a/delegations/{route-e0c1e2c67572781c.js → route-930dfa67e2789df5.js} +1 -1
- package/_standalone/.next/static/chunks/app/api/a2a/discover/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/a2a/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/config/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/detect/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/install/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/registry/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/session/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/agent-activity/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/agents/copy-skill/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/agents/custom/detect/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/agents/custom/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/ask/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/ask-sessions/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/auth/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/backlinks/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/bootstrap/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/changes/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/channels/verify/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/connect/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/export/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/extract-pdf/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/file/import/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/file/raw/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/file/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/files/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/git/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/graph/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/health/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/im/config/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/im/status/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/im/test/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/inbox/clip/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/inbox/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/init/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/lint/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/agents/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/direct-tools/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/install/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/install-skill/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/restart/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/status/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/tools/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/uninstall/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/monitoring/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/recent-files/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/restart/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/search/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/list-models/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/reset-token/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/test-key/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/check-path/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/check-port/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/generate-token/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/ls/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/skills/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/space-overview/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/sync/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/tree-version/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/uninstall/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/update/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/update-check/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/update-status/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/workflows/route-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/changes/page-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/echo/[segment]/page-75a6330292613587.js +157 -0
- package/_standalone/.next/static/chunks/app/echo/page-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/{layout-9bb19a959ffb87ac.js → layout-8aa53b34ef34a246.js} +28 -28
- package/_standalone/.next/static/chunks/app/loading-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/{page-c3be6477dbcf182d.js → page-318332501426ef5b.js} +1 -1
- package/_standalone/.next/static/chunks/app/trash/page-17bd5aedcfea9b65.js +1 -0
- package/_standalone/.next/static/chunks/app/view/[...path]/loading-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/app/view/[...path]/page-d5c37c41c556013d.js +12 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-930dfa67e2789df5.js +1 -0
- package/_standalone/.next/static/chunks/webpack-1c2d44f6d86f3986.js +1 -0
- package/_standalone/.next/static/css/a8cadde78aea8585.css +1 -0
- package/_standalone/.next/static/ixCTELNH6V05Z00pC6ZMO/_buildManifest.js +1 -0
- package/_standalone/.next/trace +72 -71
- package/_standalone/.next/types/routes.d.ts +2 -1
- package/_standalone/.next/types/validator.ts +9 -0
- package/_standalone/MINDOS_ARCHITECTURE_DIAGRAM.md +488 -0
- package/_standalone/MINDOS_EXPLORATION_SUMMARY.md +229 -0
- package/_standalone/MINDOS_INFRASTRUCTURE_ANALYSIS.md +732 -0
- package/_standalone/__tests__/acp/agent-descriptors.test.ts +101 -3
- package/_standalone/__tests__/acp/registry.test.ts +34 -5
- package/_standalone/__tests__/acp/session.test.ts +346 -167
- package/_standalone/__tests__/agent/provider-endpoints.test.ts +70 -0
- package/_standalone/__tests__/api/channels-verify.test.ts +75 -0
- package/_standalone/__tests__/api/extract-pdf.test.ts +265 -0
- package/_standalone/__tests__/api/test-key.test.ts +15 -3
- package/_standalone/__tests__/channel-mgmt.test.js +11 -0
- package/_standalone/__tests__/components/breadcrumb-header-ux.test.ts +14 -0
- package/_standalone/__tests__/components/header-toc-vertical-alignment.test.ts +23 -0
- package/_standalone/__tests__/components/table-of-contents-header-layout.test.ts +15 -0
- package/_standalone/__tests__/components/view-page-header-layout.test.ts +13 -0
- package/_standalone/__tests__/components/view-page-header-scroll-stability.test.ts +34 -0
- package/_standalone/__tests__/core/hybrid-search.test.ts +109 -0
- package/_standalone/components/Breadcrumb.tsx +10 -10
- package/_standalone/components/FindInPage.tsx +1 -1
- package/_standalone/components/MarkdownView.tsx +4 -0
- package/_standalone/components/Panel.tsx +17 -10
- package/_standalone/components/TableOfContents.tsx +9 -9
- package/_standalone/components/agents/AgentsContentChannelDetail.tsx +168 -54
- package/_standalone/components/agents/AgentsContentChannels.tsx +22 -22
- package/_standalone/components/ask/AskContent.tsx +68 -28
- package/_standalone/components/ask/AskHeader.tsx +6 -2
- package/_standalone/components/ask/ProviderModelCapsule.tsx +11 -9
- package/_standalone/components/ask/SessionHistoryPanel.tsx +398 -0
- package/_standalone/components/panels/AgentsPanel.tsx +8 -1
- package/_standalone/components/settings/AiTab.tsx +5 -1
- package/_standalone/components/settings/KnowledgeTab.tsx +92 -1
- package/_standalone/components/settings/McpConnectGuides.tsx +4 -0
- package/_standalone/components/settings/McpPortSection.tsx +207 -0
- package/_standalone/components/settings/McpTab.tsx +1 -5
- package/_standalone/components/settings/TestButton.tsx +1 -0
- package/_standalone/components/settings/{ServerPortsCard.tsx → WebPortSection.tsx} +66 -151
- package/_standalone/components/settings/types.ts +12 -0
- package/_standalone/components/settings/useCustomProviderForm.ts +2 -2
- package/_standalone/data/skills/mindos/SKILL.md +45 -1
- package/_standalone/hooks/useAcpDetection.ts +1 -1
- package/_standalone/hooks/useAcpRegistry.ts +1 -1
- package/_standalone/hooks/useFileImport.ts +7 -2
- package/_standalone/hooks/useFileUpload.ts +17 -10
- package/_standalone/lib/acp/index.ts +4 -6
- package/_standalone/lib/acp/types.ts +0 -29
- package/_standalone/lib/im/platforms.ts +6 -2
- package/_standalone/lib/pdf-extract.ts +6 -2
- package/_standalone/package-lock.json +12 -2
- package/_standalone/package.json +2 -1
- package/_standalone/tsconfig.tsbuildinfo +1 -1
- package/app/MINDOS_ARCHITECTURE_DIAGRAM.md +488 -0
- package/app/MINDOS_EXPLORATION_SUMMARY.md +229 -0
- package/app/MINDOS_INFRASTRUCTURE_ANALYSIS.md +732 -0
- package/app/app/api/acp/detect/route.ts +9 -15
- package/app/app/api/channels/verify/route.ts +54 -0
- package/app/app/api/extract-pdf/route.ts +17 -3
- package/app/app/api/settings/list-models/route.ts +40 -44
- package/app/app/api/settings/route.ts +16 -0
- package/app/app/api/settings/test-key/route.ts +5 -2
- package/app/app/view/[...path]/ViewPageClient.tsx +1 -1
- package/app/components/Breadcrumb.tsx +10 -10
- package/app/components/DirView.tsx +1 -1
- package/app/components/FindInPage.tsx +1 -1
- package/app/components/InboxView.tsx +2 -2
- package/app/components/MarkdownView.tsx +4 -0
- package/app/components/Panel.tsx +17 -10
- package/app/components/TableOfContents.tsx +9 -9
- package/app/components/agents/AgentsContentChannelDetail.tsx +168 -54
- package/app/components/agents/AgentsContentChannels.tsx +22 -22
- package/app/components/ask/AskContent.tsx +68 -28
- package/app/components/ask/AskHeader.tsx +6 -2
- package/app/components/ask/ProviderModelCapsule.tsx +11 -9
- package/app/components/ask/SessionHistoryPanel.tsx +398 -0
- package/app/components/panels/AgentsPanel.tsx +8 -1
- package/app/components/settings/AiTab.tsx +5 -1
- package/app/components/settings/KnowledgeTab.tsx +92 -1
- package/app/components/settings/McpConnectGuides.tsx +4 -0
- package/app/components/settings/McpPortSection.tsx +207 -0
- package/app/components/settings/McpTab.tsx +1 -5
- package/app/components/settings/TestButton.tsx +1 -0
- package/app/components/settings/{ServerPortsCard.tsx → WebPortSection.tsx} +66 -151
- package/app/components/settings/types.ts +12 -0
- package/app/components/settings/useCustomProviderForm.ts +2 -2
- package/app/data/skills/mindos/SKILL.md +45 -1
- package/app/hooks/useAcpDetection.ts +1 -1
- package/app/hooks/useAcpRegistry.ts +1 -1
- package/app/hooks/useFileImport.ts +7 -2
- package/app/hooks/useFileUpload.ts +17 -10
- package/app/lib/acp/agent-descriptors.ts +69 -29
- package/app/lib/acp/index.ts +4 -6
- package/app/lib/acp/registry.ts +43 -47
- package/app/lib/acp/session.ts +253 -517
- package/app/lib/acp/subprocess.ts +249 -414
- package/app/lib/acp/types.ts +0 -29
- package/app/lib/agent/model.ts +20 -4
- package/app/lib/agent/non-streaming.ts +37 -20
- package/app/lib/agent/providers.ts +31 -0
- package/app/lib/agent/tools.ts +5 -3
- package/app/lib/core/embedding-index.ts +285 -0
- package/app/lib/core/embedding-provider.ts +164 -0
- package/app/lib/core/hybrid-search.ts +160 -0
- package/app/lib/core/search.ts +11 -21
- package/app/lib/i18n/modules/ai-chat.ts +26 -0
- package/app/lib/i18n/modules/panels.ts +14 -0
- package/app/lib/i18n/modules/settings.ts +2 -0
- package/app/lib/im/platforms.ts +6 -2
- package/app/lib/im/verify.ts +94 -0
- package/app/lib/pdf-extract.ts +6 -2
- package/app/lib/settings.ts +23 -0
- package/app/package.json +2 -1
- package/bin/cli.js +3 -1
- package/bin/commands/channel.js +342 -0
- package/bin/commands/update.js +11 -4
- package/bin/lib/build.js +34 -16
- package/bin/lib/channel-config.js +168 -0
- package/bin/lib/channel-constants.js +88 -0
- package/bin/lib/channel-mgmt.js +244 -0
- package/bin/lib/channel-prompts.js +72 -0
- package/bin/lib/channel-validate.js +57 -0
- package/bin/lib/safe-rm.js +165 -0
- package/package.json +1 -1
- package/skills/mindos/SKILL.md +45 -1
- package/_standalone/.next/server/chunks/1750.js +0 -1
- package/_standalone/.next/server/chunks/8947.js +0 -52
- package/_standalone/.next/static/0JtsgqDZLSJ6MrIZIV6gC/_buildManifest.js +0 -1
- package/_standalone/.next/static/chunks/1814.a79b84d37df75c43.js +0 -1
- package/_standalone/.next/static/chunks/3637.38c4f28d8f698e0e.js +0 -1
- package/_standalone/.next/static/chunks/4351-9ab695985bb808ad.js +0 -1
- package/_standalone/.next/static/chunks/476.463546c195b89cce.js +0 -48
- package/_standalone/.next/static/chunks/5133-3779d65f4fdfb041.js +0 -30
- package/_standalone/.next/static/chunks/5581-4dd3d32f6e8606ec.js +0 -29
- package/_standalone/.next/static/chunks/5998.7bd28de9747440b5.js +0 -1
- package/_standalone/.next/static/chunks/app/agents/page-4c0637183e46c8d3.js +0 -1
- package/_standalone/.next/static/chunks/app/api/a2a/discover/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/a2a/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/acp/config/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/acp/detect/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/acp/install/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/acp/registry/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/acp/session/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/agent-activity/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/agents/copy-skill/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/agents/custom/detect/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/agents/custom/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/ask/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/ask-sessions/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/auth/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/backlinks/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/bootstrap/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/changes/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/connect/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/export/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/extract-pdf/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/file/import/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/file/raw/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/file/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/files/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/git/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/graph/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/health/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/im/config/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/im/status/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/im/test/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/inbox/clip/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/inbox/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/init/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/lint/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/agents/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/direct-tools/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/install/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/install-skill/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/restart/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/status/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/tools/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/mcp/uninstall/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/monitoring/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/recent-files/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/restart/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/search/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/settings/list-models/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/settings/reset-token/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/settings/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/settings/test-key/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/setup/check-path/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/setup/check-port/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/setup/generate-token/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/setup/ls/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/setup/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/skills/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/space-overview/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/sync/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/tree-version/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/uninstall/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/update/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/update-check/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/update-status/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/api/workflows/route-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/changes/page-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/echo/[segment]/page-5333ab47257fab7f.js +0 -159
- package/_standalone/.next/static/chunks/app/echo/page-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/loading-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/trash/page-bebb28bf472cf691.js +0 -1
- package/_standalone/.next/static/chunks/app/view/[...path]/loading-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/app/view/[...path]/page-dd5698f3df138835.js +0 -12
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-e0c1e2c67572781c.js +0 -1
- package/_standalone/.next/static/chunks/webpack-043f40ef7816d8c4.js +0 -1
- package/_standalone/.next/static/css/8b1f248d6540e52f.css +0 -1
- package/_standalone/lib/core/__tests__/synonym-dict.test.ts +0 -82
- package/app/lib/core/__tests__/synonym-dict.test.ts +0 -82
- package/app/lib/core/synonym-dict.ts +0 -139
- /package/_standalone/.next/static/{0JtsgqDZLSJ6MrIZIV6gC → ixCTELNH6V05Z00pC6ZMO}/_ssgManifest.js +0 -0
|
@@ -57,8 +57,13 @@ async function extractPdfText(file: File): Promise<string> {
|
|
|
57
57
|
const err = await res.json().catch(() => ({}));
|
|
58
58
|
throw new Error((err as { error?: string }).error || 'PDF extraction failed');
|
|
59
59
|
}
|
|
60
|
-
const data = await res.json() as { text?: string; extracted?:
|
|
61
|
-
if (
|
|
60
|
+
const data = await res.json() as { text?: string; extracted?: 'success' | 'empty' | 'error'; extractionError?: string };
|
|
61
|
+
if (data.extracted === 'error') {
|
|
62
|
+
throw new Error(data.extractionError || 'Failed to parse PDF');
|
|
63
|
+
}
|
|
64
|
+
if (data.extracted !== 'success' || !data.text) {
|
|
65
|
+
throw new Error('No text extracted from PDF');
|
|
66
|
+
}
|
|
62
67
|
return data.text;
|
|
63
68
|
}
|
|
64
69
|
|
|
@@ -22,10 +22,6 @@ function uint8ToBase64(bytes: Uint8Array): string {
|
|
|
22
22
|
return btoa(binary);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
/**
|
|
26
|
-
* Extract text from a PDF file via the backend API.
|
|
27
|
-
* Returns a LocalAttachment with `status` reflecting the outcome.
|
|
28
|
-
*/
|
|
29
25
|
async function extractPdfToAttachment(file: File): Promise<LocalAttachment> {
|
|
30
26
|
const name = file.name;
|
|
31
27
|
|
|
@@ -41,7 +37,8 @@ async function extractPdfToAttachment(file: File): Promise<LocalAttachment> {
|
|
|
41
37
|
|
|
42
38
|
let payload: {
|
|
43
39
|
text?: string;
|
|
44
|
-
extracted?:
|
|
40
|
+
extracted?: 'success' | 'empty' | 'error';
|
|
41
|
+
extractionError?: string;
|
|
45
42
|
error?: string;
|
|
46
43
|
truncated?: boolean;
|
|
47
44
|
totalChars?: number;
|
|
@@ -57,27 +54,37 @@ async function extractPdfToAttachment(file: File): Promise<LocalAttachment> {
|
|
|
57
54
|
throw new Error(payload.error || `PDF extraction failed (${res.status})`);
|
|
58
55
|
}
|
|
59
56
|
|
|
60
|
-
|
|
57
|
+
// Handle extraction error state
|
|
58
|
+
if (payload.extracted === 'error') {
|
|
59
|
+
return {
|
|
60
|
+
name,
|
|
61
|
+
content: `[PDF: ${name}] Failed to extract text from this PDF.`,
|
|
62
|
+
status: 'error',
|
|
63
|
+
error: payload.extractionError || 'PDF extraction failed (unable to parse PDF)',
|
|
64
|
+
};
|
|
65
|
+
}
|
|
61
66
|
|
|
62
|
-
|
|
67
|
+
// Handle empty PDF (no extraction error, but no text)
|
|
68
|
+
const text = payload.extracted === 'success' ? (payload.text || '') : '';
|
|
69
|
+
if (!text) {
|
|
63
70
|
return {
|
|
64
71
|
name,
|
|
65
72
|
content: `[PDF: ${name}] Could not extract readable text (possibly scanned/image PDF).`,
|
|
66
73
|
status: 'error',
|
|
67
|
-
error: '
|
|
74
|
+
error: 'No extractable text found — PDF may be scanned, image-only, or have no text content',
|
|
68
75
|
};
|
|
69
76
|
}
|
|
70
77
|
|
|
71
78
|
const att: LocalAttachment = {
|
|
72
79
|
name,
|
|
73
|
-
content: `[PDF TEXT EXTRACTED: ${name}]\n\n${
|
|
80
|
+
content: `[PDF TEXT EXTRACTED: ${name}]\n\n${text}`,
|
|
74
81
|
status: 'success',
|
|
75
82
|
};
|
|
76
83
|
|
|
77
84
|
if (payload.truncated && payload.totalChars) {
|
|
78
85
|
att.truncatedInfo = {
|
|
79
86
|
totalChars: payload.totalChars,
|
|
80
|
-
includedChars:
|
|
87
|
+
includedChars: text.length,
|
|
81
88
|
totalPages: payload.pagesParsed ?? 0,
|
|
82
89
|
};
|
|
83
90
|
}
|
|
@@ -50,45 +50,45 @@ export interface ResolvedAgentCommand {
|
|
|
50
50
|
enabled: boolean;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
/* ── Aliases ───────────────────────────────────────────────────────────── */
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Maps alternative agent IDs to their canonical ID in AGENT_DESCRIPTORS.
|
|
57
|
+
* This eliminates full duplicate entries while maintaining backward compatibility.
|
|
58
|
+
*/
|
|
59
|
+
export const AGENT_ALIASES: Record<string, string> = {
|
|
60
|
+
'gemini-cli': 'gemini',
|
|
61
|
+
'claude-code': 'claude',
|
|
62
|
+
'claude-acp': 'claude',
|
|
63
|
+
'codebuddy': 'codebuddy-code',
|
|
64
|
+
'codex': 'codex-acp',
|
|
65
|
+
'pi-acp': 'pi',
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
/** Resolve an agent ID to its canonical form (idempotent for canonical IDs). */
|
|
69
|
+
export function resolveAlias(agentId: string): string {
|
|
70
|
+
return AGENT_ALIASES[agentId] ?? agentId;
|
|
71
|
+
}
|
|
72
|
+
|
|
53
73
|
/* ── Canonical Descriptors ─────────────────────────────────────────────── */
|
|
54
74
|
|
|
55
75
|
/**
|
|
56
76
|
* All known ACP agents with their detection binary, launch command, and install hint.
|
|
57
|
-
*
|
|
77
|
+
* Only canonical entries — aliases are handled by AGENT_ALIASES above.
|
|
58
78
|
*/
|
|
59
79
|
export const AGENT_DESCRIPTORS: Record<string, AcpAgentDescriptor> = {
|
|
60
|
-
// Gemini CLI — Google's AI coding agent
|
|
61
80
|
'gemini': { binary: 'gemini', cmd: 'gemini', args: ['--experimental-acp'], installCmd: 'npm install -g @google/gemini-cli',
|
|
62
81
|
displayName: 'Gemini CLI',
|
|
63
82
|
description: 'Google Gemini 驱动的编程智能体。支持多文件编辑、代码审查、调试和项目级重构,原生集成 Google 搜索实时查询技术文档。' },
|
|
64
|
-
'gemini-cli': { binary: 'gemini', cmd: 'gemini', args: ['--experimental-acp'], installCmd: 'npm install -g @google/gemini-cli',
|
|
65
|
-
displayName: 'Gemini CLI',
|
|
66
|
-
description: 'Google Gemini 驱动的编程智能体。支持多文件编辑、代码审查、调试和项目级重构,原生集成 Google 搜索实时查询技术文档。' },
|
|
67
|
-
// Claude Code — Anthropic's AI coding agent
|
|
68
83
|
'claude': { binary: 'claude', cmd: 'npx', args: ['--yes', '@agentclientprotocol/claude-agent-acp'], installCmd: 'npm install -g @anthropic-ai/claude-code',
|
|
69
84
|
displayName: 'Claude Code',
|
|
70
85
|
description: 'Anthropic Claude 驱动的编程智能体。擅长复杂推理、长上下文理解和安全代码生成,支持多文件编辑与 agentic 工作流。' },
|
|
71
|
-
'claude-code': { binary: 'claude', cmd: 'npx', args: ['--yes', '@agentclientprotocol/claude-agent-acp'], installCmd: 'npm install -g @anthropic-ai/claude-code',
|
|
72
|
-
displayName: 'Claude Code',
|
|
73
|
-
description: 'Anthropic Claude 驱动的编程智能体。擅长复杂推理、长上下文理解和安全代码生成,支持多文件编辑与 agentic 工作流。' },
|
|
74
|
-
'claude-acp': { binary: 'claude', cmd: 'npx', args: ['--yes', '@agentclientprotocol/claude-agent-acp'], installCmd: 'npm install -g @anthropic-ai/claude-code',
|
|
75
|
-
displayName: 'Claude Code',
|
|
76
|
-
description: 'Anthropic Claude 驱动的编程智能体。擅长复杂推理、长上下文理解和安全代码生成,支持多文件编辑与 agentic 工作流。' },
|
|
77
|
-
// CodeBuddy Code — Tencent Cloud's AI coding agent
|
|
78
86
|
'codebuddy-code': { binary: 'codebuddy', cmd: 'codebuddy', args: ['--acp'], installCmd: 'npm install -g @tencent-ai/codebuddy-code',
|
|
79
87
|
displayName: 'CodeBuddy Code',
|
|
80
88
|
description: '腾讯云智能编程助手。基于混元大模型,支持代码补全、生成、审查和多文件重构,深度理解中文语境,适配国内开发生态。' },
|
|
81
|
-
'codebuddy': { binary: 'codebuddy', cmd: 'codebuddy', args: ['--acp'], installCmd: 'npm install -g @tencent-ai/codebuddy-code',
|
|
82
|
-
displayName: 'CodeBuddy Code',
|
|
83
|
-
description: '腾讯云智能编程助手。基于混元大模型,支持代码补全、生成、审查和多文件重构,深度理解中文语境,适配国内开发生态。' },
|
|
84
|
-
// Codex — OpenAI's coding agent
|
|
85
89
|
'codex-acp': { binary: 'codex', cmd: 'codex', args: [], installCmd: 'npm install -g @openai/codex',
|
|
86
90
|
displayName: 'Codex',
|
|
87
91
|
description: 'OpenAI Codex 编程智能体。基于 GPT 系列模型,擅长代码生成、自动化任务和多语言编程支持。' },
|
|
88
|
-
'codex': { binary: 'codex', cmd: 'codex', args: [], installCmd: 'npm install -g @openai/codex',
|
|
89
|
-
displayName: 'Codex',
|
|
90
|
-
description: 'OpenAI Codex 编程智能体。基于 GPT 系列模型,擅长代码生成、自动化任务和多语言编程支持。' },
|
|
91
|
-
// Cursor — AI-first code editor agent
|
|
92
92
|
'cursor': { binary: 'cursor', cmd: 'cursor', args: [],
|
|
93
93
|
displayName: 'Cursor',
|
|
94
94
|
description: 'Cursor AI 编程智能体。AI-first 代码编辑器的 CLI 模式,支持上下文感知的代码编辑、Tab 补全和多文件协同修改。' },
|
|
@@ -113,9 +113,6 @@ export const AGENT_DESCRIPTORS: Record<string, AcpAgentDescriptor> = {
|
|
|
113
113
|
'pi': { binary: 'pi', cmd: 'pi', args: [],
|
|
114
114
|
displayName: 'Pi Agent',
|
|
115
115
|
description: 'Pi Agent 编程智能体。轻量级终端编程助手。' },
|
|
116
|
-
'pi-acp': { binary: 'pi', cmd: 'pi', args: [],
|
|
117
|
-
displayName: 'Pi Agent',
|
|
118
|
-
description: 'Pi Agent 编程智能体。轻量级终端编程助手。' },
|
|
119
116
|
'auggie': { binary: 'auggie', cmd: 'auggie', args: [],
|
|
120
117
|
displayName: 'Auggie',
|
|
121
118
|
description: 'Augment Code 编程智能体。支持代码理解、生成和全仓库上下文感知。' },
|
|
@@ -147,7 +144,7 @@ export function resolveAgentCommand(
|
|
|
147
144
|
registryEntry?: AcpRegistryEntry,
|
|
148
145
|
userOverride?: AcpAgentOverride,
|
|
149
146
|
): ResolvedAgentCommand {
|
|
150
|
-
const descriptor = AGENT_DESCRIPTORS[agentId];
|
|
147
|
+
const descriptor = AGENT_DESCRIPTORS[resolveAlias(agentId)];
|
|
151
148
|
const enabled = userOverride?.enabled !== false;
|
|
152
149
|
|
|
153
150
|
// Layer 1: User override
|
|
@@ -220,22 +217,65 @@ function registryToCommand(entry: AcpRegistryEntry): { cmd: string; args: string
|
|
|
220
217
|
|
|
221
218
|
/** Get the binary name for detection (used by detect endpoint). */
|
|
222
219
|
export function getDescriptorBinary(agentId: string): string | undefined {
|
|
223
|
-
return AGENT_DESCRIPTORS[agentId]?.binary;
|
|
220
|
+
return AGENT_DESCRIPTORS[resolveAlias(agentId)]?.binary;
|
|
224
221
|
}
|
|
225
222
|
|
|
226
223
|
/** Get the install command for UI display. */
|
|
227
224
|
export function getDescriptorInstallCmd(agentId: string): string | undefined {
|
|
228
|
-
return AGENT_DESCRIPTORS[agentId]?.installCmd;
|
|
225
|
+
return AGENT_DESCRIPTORS[resolveAlias(agentId)]?.installCmd;
|
|
229
226
|
}
|
|
230
227
|
|
|
231
228
|
/** Get curated display name (overrides registry name if available). */
|
|
232
229
|
export function getDescriptorDisplayName(agentId: string): string | undefined {
|
|
233
|
-
return AGENT_DESCRIPTORS[agentId]?.displayName;
|
|
230
|
+
return AGENT_DESCRIPTORS[resolveAlias(agentId)]?.displayName;
|
|
234
231
|
}
|
|
235
232
|
|
|
236
233
|
/** Get curated description (overrides registry description if available). */
|
|
237
234
|
export function getDescriptorDescription(agentId: string): string | undefined {
|
|
238
|
-
return AGENT_DESCRIPTORS[agentId]?.description;
|
|
235
|
+
return AGENT_DESCRIPTORS[resolveAlias(agentId)]?.description;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/* ── Detection ─────────────────────────────────────────────────────────── */
|
|
239
|
+
|
|
240
|
+
/** Agent info needed for local binary detection (no CDN dependency). */
|
|
241
|
+
export interface DetectableAgent {
|
|
242
|
+
id: string;
|
|
243
|
+
name: string;
|
|
244
|
+
binary: string;
|
|
245
|
+
installCmd?: string;
|
|
246
|
+
description?: string;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Return the canonical list of agents for local detection.
|
|
251
|
+
* Pure local data — no CDN fetch, no async, no network dependency.
|
|
252
|
+
*/
|
|
253
|
+
export function getDetectableAgents(): DetectableAgent[] {
|
|
254
|
+
return Object.entries(AGENT_DESCRIPTORS).map(([id, desc]) => ({
|
|
255
|
+
id,
|
|
256
|
+
name: desc.displayName ?? id,
|
|
257
|
+
binary: desc.binary,
|
|
258
|
+
installCmd: desc.installCmd,
|
|
259
|
+
description: desc.description,
|
|
260
|
+
}));
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Look up user override for an agent, checking canonical ID, alias → canonical,
|
|
265
|
+
* and reverse alias (canonical → any alias) so users can configure with any name.
|
|
266
|
+
*/
|
|
267
|
+
export function findUserOverride(
|
|
268
|
+
agentId: string,
|
|
269
|
+
overrides?: Record<string, AcpAgentOverride>,
|
|
270
|
+
): AcpAgentOverride | undefined {
|
|
271
|
+
if (!overrides) return undefined;
|
|
272
|
+
if (overrides[agentId]) return overrides[agentId];
|
|
273
|
+
const canonical = resolveAlias(agentId);
|
|
274
|
+
if (canonical !== agentId && overrides[canonical]) return overrides[canonical];
|
|
275
|
+
for (const [alias, target] of Object.entries(AGENT_ALIASES)) {
|
|
276
|
+
if (target === agentId && overrides[alias]) return overrides[alias];
|
|
277
|
+
}
|
|
278
|
+
return undefined;
|
|
239
279
|
}
|
|
240
280
|
|
|
241
281
|
/** Parse and validate acpAgents config from raw settings JSON. */
|
package/app/lib/acp/index.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export { fetchAcpRegistry, getAcpAgents, findAcpAgent, clearRegistryCache } from './registry';
|
|
2
|
-
export {
|
|
2
|
+
export { spawnAndConnect, spawnAcpAgent, killAgent, killAllAgents, getProcess, getActiveProcesses } from './subprocess';
|
|
3
3
|
export { createSession, createSessionFromEntry, loadSession, listSessions, prompt, promptStream, cancelPrompt, setMode, setConfigOption, closeSession, getSession, getActiveSessions, closeAllSessions } from './session';
|
|
4
4
|
export { bridgeA2aToAcp, bridgeAcpResponseToA2a, bridgeAcpUpdatesToA2a } from './bridge';
|
|
5
5
|
export { acpTools } from './acp-tools';
|
|
6
|
+
export { AGENT_DESCRIPTORS, AGENT_ALIASES, resolveAlias, findUserOverride, getDetectableAgents } from './agent-descriptors';
|
|
6
7
|
export { ACP_ERRORS } from './types';
|
|
7
8
|
export type {
|
|
8
9
|
AcpAgentCapabilities,
|
|
@@ -16,10 +17,6 @@ export type {
|
|
|
16
17
|
AcpSessionState,
|
|
17
18
|
AcpSession,
|
|
18
19
|
AcpSessionInfo,
|
|
19
|
-
AcpJsonRpcRequest,
|
|
20
|
-
AcpJsonRpcResponse,
|
|
21
|
-
AcpJsonRpcError,
|
|
22
|
-
AcpPromptRequest,
|
|
23
20
|
AcpPromptResponse,
|
|
24
21
|
AcpUpdateType,
|
|
25
22
|
AcpSessionUpdate,
|
|
@@ -37,4 +34,5 @@ export type {
|
|
|
37
34
|
AcpRegistry,
|
|
38
35
|
AcpTransportType,
|
|
39
36
|
} from './types';
|
|
40
|
-
export type { AcpProcess,
|
|
37
|
+
export type { AcpProcess, AcpClientCallbacks, AcpConnection } from './subprocess';
|
|
38
|
+
export type { AcpAgentDescriptor, AcpAgentOverride, ResolvedAgentCommand, DetectableAgent } from './agent-descriptors';
|
package/app/lib/acp/registry.ts
CHANGED
|
@@ -10,57 +10,31 @@
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import type { AcpRegistry, AcpRegistryEntry } from './types';
|
|
13
|
-
import { AGENT_DESCRIPTORS, getDescriptorDisplayName, getDescriptorDescription } from './agent-descriptors';
|
|
13
|
+
import { AGENT_DESCRIPTORS, getDescriptorDisplayName, getDescriptorDescription, resolveAlias } from './agent-descriptors';
|
|
14
14
|
|
|
15
15
|
/* ── Constants ─────────────────────────────────────────────────────────── */
|
|
16
16
|
|
|
17
17
|
const REGISTRY_URL = 'https://cdn.agentclientprotocol.com/registry/v1/latest/registry.json';
|
|
18
|
-
const CACHE_TTL_MS = 60 * 60 * 1000; //
|
|
19
|
-
const FETCH_TIMEOUT_MS =
|
|
18
|
+
const CACHE_TTL_MS = 7 * 24 * 60 * 60 * 1000; // 7 days — registry updates very rarely
|
|
19
|
+
const FETCH_TIMEOUT_MS = 3_000;
|
|
20
20
|
|
|
21
21
|
/* ── Built-in Registry (from AGENT_DESCRIPTORS) ────────────────────────── */
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Generate a baseline registry from the local AGENT_DESCRIPTORS.
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* We deduplicate by binary name — e.g. 'gemini' and 'gemini-cli' both map
|
|
29
|
-
* to binary 'gemini', so we only keep the canonical entry (shorter ID or
|
|
30
|
-
* the one matching the CDN convention).
|
|
25
|
+
* AGENT_DESCRIPTORS contains only canonical entries (aliases are in AGENT_ALIASES),
|
|
26
|
+
* so no deduplication is needed.
|
|
31
27
|
*/
|
|
32
28
|
function buildBuiltinRegistry(): AcpRegistryEntry[] {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
'
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const seen = new Set<string>();
|
|
43
|
-
const entries: AcpRegistryEntry[] = [];
|
|
44
|
-
|
|
45
|
-
for (const [id, desc] of Object.entries(AGENT_DESCRIPTORS)) {
|
|
46
|
-
// Skip alias entries — only keep the canonical ID for each binary
|
|
47
|
-
const canonical = CANONICAL_IDS[desc.binary];
|
|
48
|
-
if (canonical && canonical !== id) continue;
|
|
49
|
-
if (seen.has(desc.binary)) continue;
|
|
50
|
-
seen.add(desc.binary);
|
|
51
|
-
|
|
52
|
-
entries.push({
|
|
53
|
-
id,
|
|
54
|
-
name: desc.displayName ?? id,
|
|
55
|
-
description: desc.description ?? '',
|
|
56
|
-
transport: desc.cmd === 'npx' ? 'npx' : 'stdio',
|
|
57
|
-
command: desc.cmd,
|
|
58
|
-
args: desc.args,
|
|
59
|
-
packageName: desc.installCmd?.match(/npm install -g (.+)/)?.[1],
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return entries;
|
|
29
|
+
return Object.entries(AGENT_DESCRIPTORS).map(([id, desc]) => ({
|
|
30
|
+
id,
|
|
31
|
+
name: desc.displayName ?? id,
|
|
32
|
+
description: desc.description ?? '',
|
|
33
|
+
transport: (desc.cmd === 'npx' ? 'npx' : 'stdio') as AcpRegistryEntry['transport'],
|
|
34
|
+
command: desc.cmd,
|
|
35
|
+
args: desc.args,
|
|
36
|
+
packageName: desc.installCmd?.match(/npm install -g (.+)/)?.[1],
|
|
37
|
+
}));
|
|
64
38
|
}
|
|
65
39
|
|
|
66
40
|
let builtinAgents: AcpRegistryEntry[] | null = null;
|
|
@@ -78,7 +52,7 @@ let cachedRegistry: AcpRegistry | null = null;
|
|
|
78
52
|
|
|
79
53
|
/**
|
|
80
54
|
* Fetch the ACP registry from the CDN and merge with built-in entries.
|
|
81
|
-
* Caches for
|
|
55
|
+
* Caches for 7 days. Falls back to built-in registry if CDN is unreachable.
|
|
82
56
|
*/
|
|
83
57
|
export async function fetchAcpRegistry(): Promise<AcpRegistry> {
|
|
84
58
|
// Return cached if still valid
|
|
@@ -119,15 +93,36 @@ export async function fetchAcpRegistry(): Promise<AcpRegistry> {
|
|
|
119
93
|
}
|
|
120
94
|
}
|
|
121
95
|
|
|
122
|
-
/**
|
|
96
|
+
/**
|
|
97
|
+
* Merge built-in and CDN registries.
|
|
98
|
+
* - Same ID: keep built-in core fields, supplement with CDN metadata (tags, homepage, version)
|
|
99
|
+
* - CDN alias of built-in entry: skip (avoids duplicate agents in UI)
|
|
100
|
+
* - New CDN-only entry: add as-is
|
|
101
|
+
*/
|
|
123
102
|
function mergeRegistries(builtin: AcpRegistryEntry[], cdn: AcpRegistryEntry[]): AcpRegistryEntry[] {
|
|
124
103
|
const byId = new Map<string, AcpRegistryEntry>();
|
|
125
104
|
|
|
126
|
-
// Start with built-in
|
|
127
105
|
for (const entry of builtin) byId.set(entry.id, entry);
|
|
128
106
|
|
|
129
|
-
|
|
130
|
-
|
|
107
|
+
for (const cdnEntry of cdn) {
|
|
108
|
+
const existing = byId.get(cdnEntry.id);
|
|
109
|
+
const canonicalId = resolveAlias(cdnEntry.id);
|
|
110
|
+
const canonicalExisting = canonicalId !== cdnEntry.id ? byId.get(canonicalId) : undefined;
|
|
111
|
+
|
|
112
|
+
if (existing) {
|
|
113
|
+
// Same ID in both — keep built-in core, supplement with CDN metadata
|
|
114
|
+
byId.set(cdnEntry.id, {
|
|
115
|
+
...existing,
|
|
116
|
+
tags: cdnEntry.tags ?? existing.tags,
|
|
117
|
+
homepage: cdnEntry.homepage ?? existing.homepage,
|
|
118
|
+
version: cdnEntry.version ?? existing.version,
|
|
119
|
+
});
|
|
120
|
+
} else if (canonicalExisting) {
|
|
121
|
+
// CDN entry is an alias of a built-in entry — skip to avoid duplicates
|
|
122
|
+
} else {
|
|
123
|
+
byId.set(cdnEntry.id, cdnEntry);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
131
126
|
|
|
132
127
|
return Array.from(byId.values());
|
|
133
128
|
}
|
|
@@ -146,11 +141,12 @@ export async function getAcpAgents(): Promise<AcpRegistryEntry[]> {
|
|
|
146
141
|
}
|
|
147
142
|
|
|
148
143
|
/**
|
|
149
|
-
* Find a specific ACP agent by ID.
|
|
144
|
+
* Find a specific ACP agent by ID (supports alias resolution).
|
|
150
145
|
*/
|
|
151
146
|
export async function findAcpAgent(id: string): Promise<AcpRegistryEntry | null> {
|
|
152
147
|
const agents = await getAcpAgents();
|
|
153
|
-
|
|
148
|
+
const canonical = resolveAlias(id);
|
|
149
|
+
return agents.find(a => a.id === id || a.id === canonical) ?? null;
|
|
154
150
|
}
|
|
155
151
|
|
|
156
152
|
/**
|