@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
|
@@ -51,8 +51,8 @@ function PortField({
|
|
|
51
51
|
|
|
52
52
|
return (
|
|
53
53
|
<div className="space-y-1">
|
|
54
|
-
<label className="text-xs font-medium text-foreground">{label}</label>
|
|
55
|
-
<p className="text-2xs text-muted-foreground">{hint}</p>
|
|
54
|
+
{label && <label className="text-xs font-medium text-foreground">{label}</label>}
|
|
55
|
+
{hint && <p className="text-2xs text-muted-foreground">{hint}</p>}
|
|
56
56
|
<input
|
|
57
57
|
type="number" min={1024} max={65535} value={value}
|
|
58
58
|
onChange={handleChange}
|
|
@@ -107,46 +107,33 @@ function RestartOverlay({ message, sub }: { message: string; sub?: string }) {
|
|
|
107
107
|
);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
/* ──
|
|
111
|
-
|
|
112
|
-
export default function ServerPortsCard({ m }: { m: Record<string, any> }) {
|
|
113
|
-
// Loaded from /api/settings
|
|
114
|
-
const [origWebPort, setOrigWebPort] = useState<number>(0);
|
|
115
|
-
const [origMcpPort, setOrigMcpPort] = useState<number>(0);
|
|
116
|
-
|
|
117
|
-
const [webPort, setWebPort] = useState<number>(0);
|
|
118
|
-
const [mcpPort, setMcpPort] = useState<number>(0);
|
|
119
|
-
|
|
120
|
-
const [webStatus, setWebStatus] = useState<PortStatus>(EMPTY_STATUS);
|
|
121
|
-
const [mcpStatus, setMcpStatus] = useState<PortStatus>(EMPTY_STATUS);
|
|
110
|
+
/* ── WebPortSection ────────────────────────────────────────────── */
|
|
122
111
|
|
|
112
|
+
export default function WebPortSection({ m }: { m: Record<string, any> }) {
|
|
113
|
+
const [origPort, setOrigPort] = useState<number>(0);
|
|
114
|
+
const [port, setPort] = useState<number>(0);
|
|
115
|
+
const [status, setStatus] = useState<PortStatus>(EMPTY_STATUS);
|
|
123
116
|
const [updating, setUpdating] = useState(false);
|
|
124
117
|
const [overlayMsg, setOverlayMsg] = useState<string | null>(null);
|
|
125
118
|
const [overlaySub, setOverlaySub] = useState<string | undefined>(undefined);
|
|
126
119
|
const pollRef = useRef<ReturnType<typeof setInterval>>(undefined);
|
|
127
120
|
|
|
128
|
-
// Load current ports from API
|
|
129
121
|
useEffect(() => {
|
|
130
|
-
apiFetch<{ port?: number
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
setOrigMcpPort(mp); setMcpPort(mp);
|
|
122
|
+
apiFetch<{ port?: number }>('/api/settings').then(d => {
|
|
123
|
+
const p = d.port || 3456;
|
|
124
|
+
setOrigPort(p);
|
|
125
|
+
setPort(p);
|
|
135
126
|
}).catch(() => {});
|
|
136
127
|
}, []);
|
|
137
128
|
|
|
138
129
|
useEffect(() => () => clearInterval(pollRef.current), []);
|
|
139
130
|
|
|
140
|
-
const hasChanges =
|
|
141
|
-
const
|
|
142
|
-
const
|
|
143
|
-
const webChanged = webPort !== origWebPort;
|
|
144
|
-
const mcpChanged = mcpPort !== origMcpPort;
|
|
131
|
+
const hasChanges = port !== origPort;
|
|
132
|
+
const portInvalid = port < 1024 || port > 65535;
|
|
133
|
+
const portUnavailable = status.checking || (status.available === false && !status.isSelf);
|
|
145
134
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
const setStatus = which === 'web' ? setWebStatus : setMcpStatus;
|
|
149
|
-
if (port < 1024 || port > 65535) {
|
|
135
|
+
const checkPort = useCallback(async (p: number) => {
|
|
136
|
+
if (p < 1024 || p > 65535) {
|
|
150
137
|
setStatus({ ...EMPTY_STATUS, available: false, invalid: true });
|
|
151
138
|
return;
|
|
152
139
|
}
|
|
@@ -155,7 +142,7 @@ export default function ServerPortsCard({ m }: { m: Record<string, any> }) {
|
|
|
155
142
|
const res = await apiFetch<CheckPortResult>('/api/setup/check-port', {
|
|
156
143
|
method: 'POST',
|
|
157
144
|
headers: { 'Content-Type': 'application/json' },
|
|
158
|
-
body: JSON.stringify({ port }),
|
|
145
|
+
body: JSON.stringify({ port: p }),
|
|
159
146
|
});
|
|
160
147
|
setStatus({
|
|
161
148
|
checking: false,
|
|
@@ -168,131 +155,74 @@ export default function ServerPortsCard({ m }: { m: Record<string, any> }) {
|
|
|
168
155
|
}
|
|
169
156
|
}, []);
|
|
170
157
|
|
|
171
|
-
// Update handler
|
|
172
158
|
const handleUpdate = async () => {
|
|
173
|
-
if (!hasChanges ||
|
|
159
|
+
if (!hasChanges || portInvalid || portUnavailable || updating) return;
|
|
174
160
|
|
|
175
161
|
setUpdating(true);
|
|
176
162
|
try {
|
|
177
|
-
//
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
163
|
+
// Final availability check
|
|
164
|
+
const res = await apiFetch<CheckPortResult>('/api/setup/check-port', {
|
|
165
|
+
method: 'POST',
|
|
166
|
+
headers: { 'Content-Type': 'application/json' },
|
|
167
|
+
body: JSON.stringify({ port }),
|
|
168
|
+
});
|
|
169
|
+
if (!res.available && !res.isSelf) {
|
|
170
|
+
setStatus({
|
|
171
|
+
checking: false,
|
|
172
|
+
available: false,
|
|
173
|
+
isSelf: false,
|
|
174
|
+
suggestion: res.suggestion ?? null,
|
|
188
175
|
});
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
setStatus({
|
|
193
|
-
checking: false,
|
|
194
|
-
available: false,
|
|
195
|
-
isSelf: false,
|
|
196
|
-
suggestion: res.suggestion ?? null,
|
|
197
|
-
});
|
|
198
|
-
setUpdating(false);
|
|
199
|
-
toast.error(m.portInUse(port));
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
176
|
+
setUpdating(false);
|
|
177
|
+
toast.error(m.portInUse(port));
|
|
178
|
+
return;
|
|
202
179
|
}
|
|
203
180
|
|
|
204
|
-
//
|
|
181
|
+
// Save port
|
|
205
182
|
await apiFetch('/api/settings', {
|
|
206
183
|
method: 'POST',
|
|
207
184
|
headers: { 'Content-Type': 'application/json' },
|
|
208
|
-
body: JSON.stringify({
|
|
209
|
-
port: webPort,
|
|
210
|
-
mcpPort,
|
|
211
|
-
}),
|
|
185
|
+
body: JSON.stringify({ port }),
|
|
212
186
|
});
|
|
213
187
|
|
|
214
|
-
//
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
setOverlayMsg(m.portWebRestarting);
|
|
218
|
-
setOverlaySub(m.portRedirecting);
|
|
188
|
+
// Full restart — Web port changed
|
|
189
|
+
setOverlayMsg(m.portWebRestarting);
|
|
190
|
+
setOverlaySub(m.portRedirecting);
|
|
219
191
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
192
|
+
try {
|
|
193
|
+
await apiFetch('/api/restart', { method: 'POST' });
|
|
194
|
+
} catch {
|
|
195
|
+
// Expected: server dies before response completes
|
|
196
|
+
}
|
|
225
197
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
setOverlayMsg(null);
|
|
233
|
-
setUpdating(false);
|
|
234
|
-
toast.error(m.portRestartTimeout);
|
|
235
|
-
return;
|
|
236
|
-
}
|
|
237
|
-
try {
|
|
238
|
-
const res = await fetch(`${newOrigin}/api/health`, { signal: AbortSignal.timeout(2000) });
|
|
239
|
-
if (res.ok) {
|
|
240
|
-
clearInterval(pollRef.current);
|
|
241
|
-
// Redirect to new port
|
|
242
|
-
window.location.href = newOrigin;
|
|
243
|
-
}
|
|
244
|
-
} catch {
|
|
245
|
-
// Server not up yet, keep polling
|
|
246
|
-
}
|
|
247
|
-
}, 1500);
|
|
248
|
-
} else if (mcpChanged) {
|
|
249
|
-
// MCP-only restart
|
|
250
|
-
setOverlayMsg(m.portMcpRestarting);
|
|
251
|
-
try {
|
|
252
|
-
await apiFetch('/api/mcp/restart', { method: 'POST' });
|
|
253
|
-
} catch {
|
|
198
|
+
// Poll new port for health
|
|
199
|
+
const newOrigin = `${window.location.protocol}//${window.location.hostname}:${port}`;
|
|
200
|
+
const deadline = Date.now() + 30_000;
|
|
201
|
+
pollRef.current = setInterval(async () => {
|
|
202
|
+
if (Date.now() > deadline) {
|
|
203
|
+
clearInterval(pollRef.current);
|
|
254
204
|
setOverlayMsg(null);
|
|
255
205
|
setUpdating(false);
|
|
256
|
-
toast.error(m.
|
|
206
|
+
toast.error(m.portRestartTimeout);
|
|
257
207
|
return;
|
|
258
208
|
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
pollRef.current = setInterval(async () => {
|
|
263
|
-
if (Date.now() > deadline) {
|
|
209
|
+
try {
|
|
210
|
+
const r = await fetch(`${newOrigin}/api/health`, { signal: AbortSignal.timeout(2000) });
|
|
211
|
+
if (r.ok) {
|
|
264
212
|
clearInterval(pollRef.current);
|
|
265
|
-
|
|
266
|
-
setUpdating(false);
|
|
267
|
-
toast.error(m.portRestartTimeout);
|
|
268
|
-
return;
|
|
269
|
-
}
|
|
270
|
-
try {
|
|
271
|
-
const s = await apiFetch<{ running: boolean; port: number }>('/api/mcp/status', { timeout: 3000 });
|
|
272
|
-
if (s.running) {
|
|
273
|
-
clearInterval(pollRef.current);
|
|
274
|
-
setOverlayMsg(null);
|
|
275
|
-
setUpdating(false);
|
|
276
|
-
setOrigMcpPort(mcpPort);
|
|
277
|
-
toast.success(m.portUpdateSuccess);
|
|
278
|
-
}
|
|
279
|
-
} catch {
|
|
280
|
-
// keep polling
|
|
213
|
+
window.location.href = newOrigin;
|
|
281
214
|
}
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
toast.success(m.portUpdateSuccess);
|
|
287
|
-
}
|
|
215
|
+
} catch {
|
|
216
|
+
// Server not up yet
|
|
217
|
+
}
|
|
218
|
+
}, 1500);
|
|
288
219
|
} catch {
|
|
289
220
|
setUpdating(false);
|
|
290
221
|
toast.error(m.portUpdateFailed);
|
|
291
222
|
}
|
|
292
223
|
};
|
|
293
224
|
|
|
294
|
-
|
|
295
|
-
if (origWebPort === 0) return null;
|
|
225
|
+
if (origPort === 0) return null;
|
|
296
226
|
|
|
297
227
|
return (
|
|
298
228
|
<>
|
|
@@ -302,34 +232,20 @@ export default function ServerPortsCard({ m }: { m: Record<string, any> }) {
|
|
|
302
232
|
<Monitor size={14} className="text-muted-foreground" />
|
|
303
233
|
</div>
|
|
304
234
|
<div className="flex-1 min-w-0">
|
|
305
|
-
<h3 className="text-sm font-semibold text-foreground">{m.
|
|
306
|
-
<p className="text-2xs text-muted-foreground">{m.
|
|
235
|
+
<h3 className="text-sm font-semibold text-foreground">{m.webPortLabel}</h3>
|
|
236
|
+
<p className="text-2xs text-muted-foreground">{m.webPortHint}</p>
|
|
307
237
|
</div>
|
|
308
238
|
</div>
|
|
309
|
-
<div className="px-4 pb-4 space-y-
|
|
239
|
+
<div className="px-4 pb-4 space-y-3">
|
|
310
240
|
<PortField
|
|
311
|
-
label=
|
|
312
|
-
value={
|
|
313
|
-
status={
|
|
241
|
+
label="" hint=""
|
|
242
|
+
value={port} onChange={v => { setPort(v); setStatus(EMPTY_STATUS); }}
|
|
243
|
+
status={status} onCheckPort={checkPort} m={m}
|
|
314
244
|
/>
|
|
315
|
-
<PortField
|
|
316
|
-
label={m.mcpPortLabel} hint={m.mcpPortHint}
|
|
317
|
-
value={mcpPort} onChange={v => { setMcpPort(v); setMcpStatus(EMPTY_STATUS); }}
|
|
318
|
-
status={mcpStatus} onCheckPort={p => checkPort(p, 'mcp')} m={m}
|
|
319
|
-
/>
|
|
320
|
-
|
|
321
|
-
{/* Conflict warning */}
|
|
322
|
-
{portConflict && (
|
|
323
|
-
<p className="text-xs flex items-center gap-1.5 text-[var(--amber)]">
|
|
324
|
-
<AlertTriangle size={12} /> {m.portConflict}
|
|
325
|
-
</p>
|
|
326
|
-
)}
|
|
327
|
-
|
|
328
|
-
{/* Update button */}
|
|
329
245
|
<button
|
|
330
246
|
type="button"
|
|
331
247
|
onClick={handleUpdate}
|
|
332
|
-
disabled={!hasChanges ||
|
|
248
|
+
disabled={!hasChanges || portInvalid || portUnavailable || updating}
|
|
333
249
|
className="w-full py-2 rounded-lg text-xs font-medium transition-colors
|
|
334
250
|
bg-[var(--amber)] text-[var(--amber-foreground)]
|
|
335
251
|
hover:opacity-90
|
|
@@ -341,7 +257,6 @@ export default function ServerPortsCard({ m }: { m: Record<string, any> }) {
|
|
|
341
257
|
</div>
|
|
342
258
|
</div>
|
|
343
259
|
|
|
344
|
-
{/* Full-screen restart overlay */}
|
|
345
260
|
{overlayMsg && <RestartOverlay message={overlayMsg} sub={overlaySub} />}
|
|
346
261
|
</>
|
|
347
262
|
);
|
|
@@ -18,6 +18,18 @@ export interface AgentSettings {
|
|
|
18
18
|
export interface SettingsData {
|
|
19
19
|
ai: AiSettings;
|
|
20
20
|
agent?: AgentSettings;
|
|
21
|
+
embedding?: {
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
baseUrl: string;
|
|
24
|
+
apiKey: string;
|
|
25
|
+
model: string;
|
|
26
|
+
};
|
|
27
|
+
embeddingStatus?: {
|
|
28
|
+
enabled: boolean;
|
|
29
|
+
ready: boolean;
|
|
30
|
+
building: boolean;
|
|
31
|
+
docCount: number;
|
|
32
|
+
};
|
|
21
33
|
mindRoot: string;
|
|
22
34
|
webPassword?: string;
|
|
23
35
|
authToken?: string; // masked: first-xxxx-••••-last pattern
|
|
@@ -5,7 +5,7 @@ import { type ProviderId } from '@/lib/agent/providers';
|
|
|
5
5
|
import { type Provider, generateProviderId } from '@/lib/custom-endpoints';
|
|
6
6
|
|
|
7
7
|
export type TestState = 'idle' | 'testing' | 'ok' | 'error';
|
|
8
|
-
export type ErrorCode = 'auth_error' | 'model_not_found' | 'rate_limited' | 'network_error' | 'unknown';
|
|
8
|
+
export type ErrorCode = 'auth_error' | 'model_not_found' | 'endpoint_error' | 'rate_limited' | 'network_error' | 'unknown';
|
|
9
9
|
|
|
10
10
|
export interface TestResult {
|
|
11
11
|
state: TestState;
|
|
@@ -78,7 +78,7 @@ export function useCustomProviderForm({
|
|
|
78
78
|
body: JSON.stringify(
|
|
79
79
|
initial?.id
|
|
80
80
|
? { provider: initial.id, apiKey, model, baseUrl }
|
|
81
|
-
: { protocol, apiKey, model, baseUrl },
|
|
81
|
+
: { provider: protocol, apiKey, model, baseUrl, baseProviderId: protocol },
|
|
82
82
|
),
|
|
83
83
|
});
|
|
84
84
|
const json = await res.json();
|
|
@@ -75,16 +75,60 @@ npm install -g @geminilight/mindos
|
|
|
75
75
|
|
|
76
76
|
---
|
|
77
77
|
|
|
78
|
+
## Retrieval strategy
|
|
79
|
+
|
|
80
|
+
When retrieving knowledge, use **two paths in parallel**, then filter before deep-reading:
|
|
81
|
+
|
|
82
|
+
### Path 1: Directory scan (by name/structure)
|
|
83
|
+
|
|
84
|
+
Browse the KB tree and **look at file names and directory names**. Titles often reveal content without reading. If a user asks about "authentication", and you see `Decisions/auth-jwt-vs-session.md`, that's a strong candidate — read it directly, no search needed.
|
|
85
|
+
|
|
86
|
+
- After bootstrap, scan the tree for paths whose names relate to the query topic.
|
|
87
|
+
- Pay attention to directory semantics: `Decisions/`, `Projects/`, `Workflows/`, `Resources/` etc. each imply what kind of content lives there.
|
|
88
|
+
- If the KB is small (<50 files), a quick tree scan may be faster and more reliable than search.
|
|
89
|
+
|
|
90
|
+
### Path 2: Full-text search (by content)
|
|
91
|
+
|
|
92
|
+
Use `search` for content that can't be guessed from file names alone.
|
|
93
|
+
|
|
94
|
+
- Craft queries from the user's actual words. If the user says "那个很慢的接口", search for "慢 接口" or "性能 API".
|
|
95
|
+
- One well-targeted search is better than 4 vague ones. Only add a second search if the first returned <3 results or if the topic has obvious alternate terms (e.g., Chinese + English).
|
|
96
|
+
- **Do NOT** mechanically fire 2-4 searches every time. Think first, search precisely.
|
|
97
|
+
|
|
98
|
+
### Filter: snippet triage before full read
|
|
99
|
+
|
|
100
|
+
Search results include a **snippet** and a **BM25 score**. Use them to decide what to read:
|
|
101
|
+
|
|
102
|
+
- **High score + snippet clearly on-topic** → read full file.
|
|
103
|
+
- **Medium score + snippet partially relevant** → read full file only if no better candidates exist.
|
|
104
|
+
- **Low score or snippet off-topic** → skip. Do not read every search result.
|
|
105
|
+
- Aim to read **1-3 files** deeply, not 10 files superficially.
|
|
106
|
+
|
|
107
|
+
### Combined example
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
User: "之前关于数据库选型的讨论"
|
|
111
|
+
|
|
112
|
+
Step 1 (tree scan): See "Decisions/database-postgres-vs-mongo.md" → strong match by name.
|
|
113
|
+
Step 2 (search): search("数据库选型") → returns 5 results.
|
|
114
|
+
Step 3 (triage): Result #1 snippet mentions "PostgreSQL vs MongoDB 对比" (score 18.3) → read.
|
|
115
|
+
Result #2 snippet mentions "数据库连接池配置" (score 4.1) → skip, off-topic.
|
|
116
|
+
Result #3 snippet mentions "选型会议纪要" (score 12.7) → read.
|
|
117
|
+
Step 4 (answer): Cite from the 2-3 files actually read.
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
78
122
|
## NEVER do (hard-won pitfalls)
|
|
79
123
|
|
|
80
124
|
- **NEVER write to the KB root** unless explicitly told. Root is for governance files only. New content goes under the most fitting subdirectory.
|
|
81
125
|
- **NEVER assume directory names.** Infer from the actual bootstrap tree — the KB may use Chinese names or flat layout.
|
|
82
126
|
- **NEVER use full-file overwrite for a small edit.** Use `mindos file edit-section` or `mindos file insert-heading` for targeted changes. Full rewrites destroy git diffs.
|
|
83
|
-
- **NEVER search with a single keyword.** Fire 2-4 parallel searches (synonyms, abbreviations, Chinese/English variants).
|
|
84
127
|
- **NEVER modify `INSTRUCTION.md` or `README.md` without confirmation.** Governance docs — treat as high-sensitivity.
|
|
85
128
|
- **NEVER create a file without checking siblings.** Read 1-2 files in the target directory to learn local style.
|
|
86
129
|
- **NEVER leave orphan references.** After rename/move, check backlinks and update every referring file.
|
|
87
130
|
- **NEVER skip routing confirmation for multi-file writes.** The user's mental model may differ from yours.
|
|
131
|
+
- **NEVER read every search result.** Use snippet + score to triage. Only deep-read files that are clearly relevant.
|
|
88
132
|
|
|
89
133
|
---
|
|
90
134
|
|
|
@@ -119,7 +119,7 @@ export function useAcpDetection(): AcpDetectionState {
|
|
|
119
119
|
if (!cancelled) setLoading(false);
|
|
120
120
|
});
|
|
121
121
|
|
|
122
|
-
return () => { cancelled = true; };
|
|
122
|
+
return () => { cancelled = true; inflight.current = false; };
|
|
123
123
|
}, [trigger]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
124
124
|
|
|
125
125
|
return { installedAgents, notInstalledAgents, loading, error, refresh };
|
|
@@ -79,7 +79,7 @@ export function useAcpRegistry(): AcpRegistryState {
|
|
|
79
79
|
if (!cancelled) setLoading(false);
|
|
80
80
|
});
|
|
81
81
|
|
|
82
|
-
return () => { cancelled = true; };
|
|
82
|
+
return () => { cancelled = true; inflight.current = false; };
|
|
83
83
|
}, [trigger]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
84
84
|
|
|
85
85
|
return { agents, loading, error, retry };
|
|
@@ -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
|
}
|
|
@@ -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';
|
|
@@ -100,37 +100,8 @@ export interface AcpSessionInfo {
|
|
|
100
100
|
updatedAt?: string;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
/* ── JSON-RPC (ACP uses JSON-RPC 2.0 over stdio) ─────────────────────── */
|
|
104
|
-
|
|
105
|
-
export interface AcpJsonRpcRequest {
|
|
106
|
-
jsonrpc: '2.0';
|
|
107
|
-
id: string | number;
|
|
108
|
-
method: string;
|
|
109
|
-
params?: Record<string, unknown>;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
export interface AcpJsonRpcResponse {
|
|
113
|
-
jsonrpc: '2.0';
|
|
114
|
-
id: string | number | null;
|
|
115
|
-
result?: unknown;
|
|
116
|
-
error?: AcpJsonRpcError;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
export interface AcpJsonRpcError {
|
|
120
|
-
code: number;
|
|
121
|
-
message: string;
|
|
122
|
-
data?: unknown;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
103
|
/* ── Prompt ────────────────────────────────────────────────────────────── */
|
|
126
104
|
|
|
127
|
-
export interface AcpPromptRequest {
|
|
128
|
-
sessionId: string;
|
|
129
|
-
prompt: AcpContentBlock[];
|
|
130
|
-
context?: { cwd?: string };
|
|
131
|
-
stream?: boolean;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
105
|
export interface AcpPromptResponse {
|
|
135
106
|
sessionId: string;
|
|
136
107
|
text: string;
|
|
@@ -13,6 +13,8 @@ export interface PlatformDef {
|
|
|
13
13
|
icon: string;
|
|
14
14
|
fields: PlatformField[];
|
|
15
15
|
guide?: string;
|
|
16
|
+
guideUrl?: string;
|
|
17
|
+
editHint?: string;
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
export type PlatformStatus = {
|
|
@@ -33,9 +35,11 @@ export const PLATFORMS: PlatformDef[] = [
|
|
|
33
35
|
{
|
|
34
36
|
id: 'feishu', name: 'Feishu', icon: '🐦',
|
|
35
37
|
guide: '1. open.feishu.cn → Create App\n2. Credentials page → copy App ID & Secret\n3. Enable Bot capability + add permissions',
|
|
38
|
+
guideUrl: 'https://open.feishu.cn/',
|
|
39
|
+
editHint: 'Need to update credentials? Edit and save below — MindOS will reconnect automatically.',
|
|
36
40
|
fields: [
|
|
37
|
-
{ key: 'app_id', label: 'App ID', placeholder: '
|
|
38
|
-
{ key: 'app_secret', label: 'App Secret', placeholder: '
|
|
41
|
+
{ key: 'app_id', label: 'App ID', placeholder: 'CLI_XXXXXXXXXXXXXXXXX', hint: 'From Credentials page on open.feishu.cn' },
|
|
42
|
+
{ key: 'app_secret', label: 'App Secret', placeholder: 'XXXXXXXXXXXXXXXXXXXXXXXX', hint: 'Keep this secret — do not share' },
|
|
39
43
|
],
|
|
40
44
|
},
|
|
41
45
|
{
|
|
@@ -18,7 +18,7 @@ export async function extractPdfText(file: File): Promise<string> {
|
|
|
18
18
|
body: JSON.stringify({ name: file.name, dataBase64 }),
|
|
19
19
|
});
|
|
20
20
|
|
|
21
|
-
let payload: { text?: string; extracted?:
|
|
21
|
+
let payload: { text?: string; extracted?: 'success' | 'empty' | 'error'; extractionError?: string; error?: string } = {};
|
|
22
22
|
try {
|
|
23
23
|
payload = await res.json();
|
|
24
24
|
} catch {
|
|
@@ -29,5 +29,9 @@ export async function extractPdfText(file: File): Promise<string> {
|
|
|
29
29
|
throw new Error(payload.error || `PDF extraction failed (${res.status})`);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
if (payload.extracted === 'error') {
|
|
33
|
+
throw new Error(payload.extractionError || 'Failed to parse PDF');
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return payload.extracted === 'success' ? (payload.text || '') : '';
|
|
33
37
|
}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wiki-app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.70",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "wiki-app",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.6.70",
|
|
10
10
|
"hasInstallScript": true,
|
|
11
11
|
"dependencies": {
|
|
12
|
+
"@agentclientprotocol/sdk": "^0.18.2",
|
|
12
13
|
"@base-ui/react": "^1.2.0",
|
|
13
14
|
"@codemirror/lang-markdown": "^6.5.0",
|
|
14
15
|
"@codemirror/state": "^6.5.4",
|
|
@@ -91,6 +92,15 @@
|
|
|
91
92
|
"wait-on": "^8.0.1"
|
|
92
93
|
}
|
|
93
94
|
},
|
|
95
|
+
"node_modules/@agentclientprotocol/sdk": {
|
|
96
|
+
"version": "0.18.2",
|
|
97
|
+
"resolved": "https://registry.npmmirror.com/@agentclientprotocol/sdk/-/sdk-0.18.2.tgz",
|
|
98
|
+
"integrity": "sha512-l/o9NKvUc00GPa6RFJ4AccQq2O/PAf83xQ75mThHuL3H571iN4+PEdwnTBez67sS8Nv2aSA373xCZ5CbTXEwzA==",
|
|
99
|
+
"license": "Apache-2.0",
|
|
100
|
+
"peerDependencies": {
|
|
101
|
+
"zod": "^3.25.0 || ^4.0.0"
|
|
102
|
+
}
|
|
103
|
+
},
|
|
94
104
|
"node_modules/@alloc/quick-lru": {
|
|
95
105
|
"version": "5.2.0",
|
|
96
106
|
"dev": true,
|