@nodetool-ai/websocket 0.8.2 → 0.8.4-a24.1
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/README.md +5 -0
- package/dist/.nodetool-build-stamp +1 -1
- package/dist/agent/run-node-tool.d.ts.map +1 -1
- package/dist/agent/run-node-tool.js +11 -1
- package/dist/agent/run-node-tool.js.map +1 -1
- package/dist/chat-prediction-forwarder.d.ts +5 -3
- package/dist/chat-prediction-forwarder.d.ts.map +1 -1
- package/dist/chat-prediction-forwarder.js +6 -4
- package/dist/chat-prediction-forwarder.js.map +1 -1
- package/dist/chat-turn-registry.d.ts +2 -1
- package/dist/chat-turn-registry.d.ts.map +1 -1
- package/dist/chat-turn-registry.js +8 -1
- package/dist/chat-turn-registry.js.map +1 -1
- package/dist/collection-api.d.ts.map +1 -1
- package/dist/collection-api.js +3 -5
- package/dist/collection-api.js.map +1 -1
- package/dist/custom-providers.d.ts.map +1 -1
- package/dist/custom-providers.js +6 -1
- package/dist/custom-providers.js.map +1 -1
- package/dist/e2e-server.js +1 -1
- package/dist/e2e-server.js.map +1 -1
- package/dist/example-workflows.d.ts.map +1 -1
- package/dist/example-workflows.js +7 -1
- package/dist/example-workflows.js.map +1 -1
- package/dist/fake-runtime.d.ts +54 -8
- package/dist/fake-runtime.d.ts.map +1 -1
- package/dist/fake-runtime.js +228 -15
- package/dist/fake-runtime.js.map +1 -1
- package/dist/file-api.d.ts.map +1 -1
- package/dist/file-api.js +6 -8
- package/dist/file-api.js.map +1 -1
- package/dist/generation-recovery.d.ts.map +1 -1
- package/dist/generation-recovery.js +7 -4
- package/dist/generation-recovery.js.map +1 -1
- package/dist/headless-job-runner.d.ts.map +1 -1
- package/dist/headless-job-runner.js +8 -2
- package/dist/headless-job-runner.js.map +1 -1
- package/dist/http-api.d.ts +4 -2
- package/dist/http-api.d.ts.map +1 -1
- package/dist/http-api.js +67 -16
- package/dist/http-api.js.map +1 -1
- package/dist/http-body-schemas.d.ts +2 -0
- package/dist/http-body-schemas.d.ts.map +1 -1
- package/dist/http-body-schemas.js +8 -1
- package/dist/http-body-schemas.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/job-control.d.ts +8 -0
- package/dist/job-control.d.ts.map +1 -1
- package/dist/job-control.js +12 -0
- package/dist/job-control.js.map +1 -1
- package/dist/lib/admin.d.ts +7 -0
- package/dist/lib/admin.d.ts.map +1 -0
- package/dist/lib/admin.js +19 -0
- package/dist/lib/admin.js.map +1 -0
- package/dist/lib/app-instances-service.d.ts +35 -0
- package/dist/lib/app-instances-service.d.ts.map +1 -1
- package/dist/lib/app-instances-service.js +3 -4
- package/dist/lib/app-instances-service.js.map +1 -1
- package/dist/lib/app-project-export.d.ts +12 -0
- package/dist/lib/app-project-export.d.ts.map +1 -0
- package/dist/lib/app-project-export.js +42 -0
- package/dist/lib/app-project-export.js.map +1 -0
- package/dist/lib/applications-service.d.ts.map +1 -1
- package/dist/lib/applications-service.js +7 -2
- package/dist/lib/applications-service.js.map +1 -1
- package/dist/lib/asset-export.d.ts +7 -3
- package/dist/lib/asset-export.d.ts.map +1 -1
- package/dist/lib/asset-export.js +16 -8
- package/dist/lib/asset-export.js.map +1 -1
- package/dist/lib/asset-paths.d.ts +1 -1
- package/dist/lib/asset-paths.js +1 -1
- package/dist/lib/asset-response.d.ts.map +1 -1
- package/dist/lib/asset-response.js +13 -6
- package/dist/lib/asset-response.js.map +1 -1
- package/dist/lib/cloud-profile.d.ts +10 -0
- package/dist/lib/cloud-profile.d.ts.map +1 -0
- package/dist/lib/cloud-profile.js +13 -0
- package/dist/lib/cloud-profile.js.map +1 -0
- package/dist/lib/example-apps.d.ts +3 -0
- package/dist/lib/example-apps.d.ts.map +1 -1
- package/dist/lib/example-apps.js +3 -2
- package/dist/lib/example-apps.js.map +1 -1
- package/dist/lib/http-user-id.d.ts +2 -0
- package/dist/lib/http-user-id.d.ts.map +1 -0
- package/dist/lib/http-user-id.js +4 -0
- package/dist/lib/http-user-id.js.map +1 -0
- package/dist/lib/json-body.d.ts +11 -0
- package/dist/lib/json-body.d.ts.map +1 -0
- package/dist/lib/json-body.js +13 -0
- package/dist/lib/json-body.js.map +1 -0
- package/dist/lib/project-archive-host.d.ts +14 -0
- package/dist/lib/project-archive-host.d.ts.map +1 -0
- package/dist/lib/project-archive-host.js +24 -0
- package/dist/lib/project-archive-host.js.map +1 -0
- package/dist/lib/project-archive.d.ts +103 -0
- package/dist/lib/project-archive.d.ts.map +1 -0
- package/dist/lib/project-archive.js +610 -0
- package/dist/lib/project-archive.js.map +1 -0
- package/dist/lib/public-routes.d.ts +15 -0
- package/dist/lib/public-routes.d.ts.map +1 -1
- package/dist/lib/public-routes.js +27 -0
- package/dist/lib/public-routes.js.map +1 -1
- package/dist/lib/public-workflow-share.d.ts +12 -1
- package/dist/lib/public-workflow-share.d.ts.map +1 -1
- package/dist/lib/public-workflow-share.js +45 -2
- package/dist/lib/public-workflow-share.js.map +1 -1
- package/dist/lib/python-metadata-roots.d.ts +27 -0
- package/dist/lib/python-metadata-roots.d.ts.map +1 -0
- package/dist/lib/python-metadata-roots.js +92 -0
- package/dist/lib/python-metadata-roots.js.map +1 -0
- package/dist/lib/runtime-detection.d.ts +1 -1
- package/dist/lib/runtime-detection.d.ts.map +1 -1
- package/dist/lib/runtime-detection.js +2 -1
- package/dist/lib/runtime-detection.js.map +1 -1
- package/dist/lib/server-auth-token.d.ts +18 -0
- package/dist/lib/server-auth-token.d.ts.map +1 -0
- package/dist/lib/server-auth-token.js +28 -0
- package/dist/lib/server-auth-token.js.map +1 -0
- package/dist/lib/thumbnail.d.ts.map +1 -1
- package/dist/lib/thumbnail.js +3 -1
- package/dist/lib/thumbnail.js.map +1 -1
- package/dist/lib/timeline-bundle.d.ts +70 -0
- package/dist/lib/timeline-bundle.d.ts.map +1 -1
- package/dist/lib/timeline-bundle.js +28 -10
- package/dist/lib/timeline-bundle.js.map +1 -1
- package/dist/lib/timeline-media-export.d.ts +18 -0
- package/dist/lib/timeline-media-export.d.ts.map +1 -0
- package/dist/lib/timeline-media-export.js +66 -0
- package/dist/lib/timeline-media-export.js.map +1 -0
- package/dist/lib/timeline-premiere-import.d.ts +24 -0
- package/dist/lib/timeline-premiere-import.d.ts.map +1 -0
- package/dist/lib/timeline-premiere-import.js +112 -0
- package/dist/lib/timeline-premiere-import.js.map +1 -0
- package/dist/lib/timeline-premiere.d.ts +38 -0
- package/dist/lib/timeline-premiere.d.ts.map +1 -0
- package/dist/lib/timeline-premiere.js +87 -0
- package/dist/lib/timeline-premiere.js.map +1 -0
- package/dist/lib/zip-stream.d.ts +3 -0
- package/dist/lib/zip-stream.d.ts.map +1 -1
- package/dist/lib/zip-stream.js +6 -0
- package/dist/lib/zip-stream.js.map +1 -1
- package/dist/mcp-agent-tools.d.ts +48 -0
- package/dist/mcp-agent-tools.d.ts.map +1 -1
- package/dist/mcp-agent-tools.js +15 -2
- package/dist/mcp-agent-tools.js.map +1 -1
- package/dist/mcp-server.d.ts +7 -0
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +163 -16
- package/dist/mcp-server.js.map +1 -1
- package/dist/mcp-skill-prompts.d.ts +23 -0
- package/dist/mcp-skill-prompts.d.ts.map +1 -0
- package/dist/mcp-skill-prompts.js +91 -0
- package/dist/mcp-skill-prompts.js.map +1 -0
- package/dist/mcp-tool-deps.d.ts.map +1 -1
- package/dist/mcp-tool-deps.js +8 -1
- package/dist/mcp-tool-deps.js.map +1 -1
- package/dist/model-download-runtime.d.ts.map +1 -1
- package/dist/model-download-runtime.js +2 -1
- package/dist/model-download-runtime.js.map +1 -1
- package/dist/models-api.d.ts.map +1 -1
- package/dist/models-api.js +6 -2
- package/dist/models-api.js.map +1 -1
- package/dist/node-registry-setup.d.ts +8 -5
- package/dist/node-registry-setup.d.ts.map +1 -1
- package/dist/node-registry-setup.js +22 -10
- package/dist/node-registry-setup.js.map +1 -1
- package/dist/oauth-api.d.ts.map +1 -1
- package/dist/oauth-api.js +45 -23
- package/dist/oauth-api.js.map +1 -1
- package/dist/openai-api.d.ts.map +1 -1
- package/dist/openai-api.js +10 -2
- package/dist/openai-api.js.map +1 -1
- package/dist/pack-source.d.ts +15 -0
- package/dist/pack-source.d.ts.map +1 -0
- package/dist/pack-source.js +85 -0
- package/dist/pack-source.js.map +1 -0
- package/dist/plugins/websocket.d.ts.map +1 -1
- package/dist/plugins/websocket.js +31 -5
- package/dist/plugins/websocket.js.map +1 -1
- package/dist/routes/applications.d.ts +1 -0
- package/dist/routes/applications.d.ts.map +1 -1
- package/dist/routes/applications.js +24 -0
- package/dist/routes/applications.js.map +1 -1
- package/dist/routes/assets.d.ts.map +1 -1
- package/dist/routes/assets.js +31 -41
- package/dist/routes/assets.js.map +1 -1
- package/dist/routes/config.d.ts.map +1 -1
- package/dist/routes/config.js +6 -0
- package/dist/routes/config.js.map +1 -1
- package/dist/routes/documents.d.ts.map +1 -1
- package/dist/routes/documents.js +32 -1
- package/dist/routes/documents.js.map +1 -1
- package/dist/routes/fal-pricing-estimate.d.ts.map +1 -1
- package/dist/routes/fal-pricing-estimate.js +2 -0
- package/dist/routes/fal-pricing-estimate.js.map +1 -1
- package/dist/routes/files.d.ts.map +1 -1
- package/dist/routes/files.js +2 -0
- package/dist/routes/files.js.map +1 -1
- package/dist/routes/games.d.ts +38 -0
- package/dist/routes/games.d.ts.map +1 -0
- package/dist/routes/games.js +159 -0
- package/dist/routes/games.js.map +1 -0
- package/dist/routes/integrations.d.ts.map +1 -1
- package/dist/routes/integrations.js +22 -26
- package/dist/routes/integrations.js.map +1 -1
- package/dist/routes/js-scripts.d.ts +1 -1
- package/dist/routes/js-scripts.d.ts.map +1 -1
- package/dist/routes/js-scripts.js +1 -1
- package/dist/routes/js-scripts.js.map +1 -1
- package/dist/routes/kie-pricing.js +1 -1
- package/dist/routes/kie-pricing.js.map +1 -1
- package/dist/routes/nodes.d.ts.map +1 -1
- package/dist/routes/nodes.js +13 -1
- package/dist/routes/nodes.js.map +1 -1
- package/dist/routes/project-archive.d.ts +18 -0
- package/dist/routes/project-archive.d.ts.map +1 -0
- package/dist/routes/project-archive.js +98 -0
- package/dist/routes/project-archive.js.map +1 -0
- package/dist/routes/storage.d.ts.map +1 -1
- package/dist/routes/storage.js +2 -0
- package/dist/routes/storage.js.map +1 -1
- package/dist/routes/storyboards.d.ts.map +1 -1
- package/dist/routes/storyboards.js +6 -3
- package/dist/routes/storyboards.js.map +1 -1
- package/dist/routes/timelines.d.ts +8 -4
- package/dist/routes/timelines.d.ts.map +1 -1
- package/dist/routes/timelines.js +209 -16
- package/dist/routes/timelines.js.map +1 -1
- package/dist/screenshot-docs-seed.d.ts +24 -0
- package/dist/screenshot-docs-seed.d.ts.map +1 -0
- package/dist/screenshot-docs-seed.js +421 -0
- package/dist/screenshot-docs-seed.js.map +1 -0
- package/dist/screenshot-projects.d.ts.map +1 -1
- package/dist/screenshot-projects.js +9 -9
- package/dist/screenshot-projects.js.map +1 -1
- package/dist/screenshot-server.js +274 -17
- package/dist/screenshot-server.js.map +1 -1
- package/dist/sdk/sdk-node-type-inventory-service.d.ts +1 -1
- package/dist/sdk/sdk-node-type-inventory-service.d.ts.map +1 -1
- package/dist/sdk/sdk-node-type-inventory-service.js +4 -4
- package/dist/sdk/sdk-node-type-inventory-service.js.map +1 -1
- package/dist/sdk/sdk-v1-service.js +1 -1
- package/dist/sdk/sdk-v1-service.js.map +1 -1
- package/dist/server.d.ts +7 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1482 -1487
- package/dist/server.js.map +1 -1
- package/dist/session/chat-prompt.d.ts.map +1 -1
- package/dist/session/chat-prompt.js +6 -0
- package/dist/session/chat-prompt.js.map +1 -1
- package/dist/session/chat-turn.d.ts +10 -0
- package/dist/session/chat-turn.d.ts.map +1 -1
- package/dist/session/chat-turn.js +103 -20
- package/dist/session/chat-turn.js.map +1 -1
- package/dist/session/client-tool-gate.d.ts +23 -0
- package/dist/session/client-tool-gate.d.ts.map +1 -0
- package/dist/session/client-tool-gate.js +59 -0
- package/dist/session/client-tool-gate.js.map +1 -0
- package/dist/session/commands.d.ts +14 -0
- package/dist/session/commands.d.ts.map +1 -1
- package/dist/session/commands.js +113 -14
- package/dist/session/commands.js.map +1 -1
- package/dist/session/inference.d.ts +25 -2
- package/dist/session/inference.d.ts.map +1 -1
- package/dist/session/inference.js +105 -21
- package/dist/session/inference.js.map +1 -1
- package/dist/session/job-execution.d.ts +0 -1
- package/dist/session/job-execution.d.ts.map +1 -1
- package/dist/session/job-execution.js +43 -39
- package/dist/session/job-execution.js.map +1 -1
- package/dist/storage-api.d.ts +0 -4
- package/dist/storage-api.d.ts.map +1 -1
- package/dist/storage-api.js +3 -26
- package/dist/storage-api.js.map +1 -1
- package/dist/test-ui-server.d.ts +15 -3
- package/dist/test-ui-server.d.ts.map +1 -1
- package/dist/test-ui-server.js +74 -12
- package/dist/test-ui-server.js.map +1 -1
- package/dist/triggers/dispatcher.d.ts.map +1 -1
- package/dist/triggers/dispatcher.js +24 -4
- package/dist/triggers/dispatcher.js.map +1 -1
- package/dist/triggers/file-watch.d.ts +2 -2
- package/dist/triggers/file-watch.d.ts.map +1 -1
- package/dist/triggers/file-watch.js +44 -21
- package/dist/triggers/file-watch.js.map +1 -1
- package/dist/triggers/scheduler.d.ts.map +1 -1
- package/dist/triggers/scheduler.js +7 -5
- package/dist/triggers/scheduler.js.map +1 -1
- package/dist/trpc/error-formatter.d.ts.map +1 -1
- package/dist/trpc/error-formatter.js +2 -1
- package/dist/trpc/error-formatter.js.map +1 -1
- package/dist/trpc/routers/app-instances.d.ts +63 -0
- package/dist/trpc/routers/app-instances.d.ts.map +1 -1
- package/dist/trpc/routers/app-runs.d.ts +28 -0
- package/dist/trpc/routers/app-runs.d.ts.map +1 -1
- package/dist/trpc/routers/applications.d.ts +7 -0
- package/dist/trpc/routers/applications.d.ts.map +1 -1
- package/dist/trpc/routers/assets.d.ts +8 -0
- package/dist/trpc/routers/assets.d.ts.map +1 -1
- package/dist/trpc/routers/assets.js +16 -5
- package/dist/trpc/routers/assets.js.map +1 -1
- package/dist/trpc/routers/collections.d.ts.map +1 -1
- package/dist/trpc/routers/collections.js +16 -10
- package/dist/trpc/routers/collections.js.map +1 -1
- package/dist/trpc/routers/credits.d.ts.map +1 -1
- package/dist/trpc/routers/credits.js +11 -1
- package/dist/trpc/routers/credits.js.map +1 -1
- package/dist/trpc/routers/extension.d.ts +17 -3
- package/dist/trpc/routers/extension.d.ts.map +1 -1
- package/dist/trpc/routers/extension.js +40 -7
- package/dist/trpc/routers/extension.js.map +1 -1
- package/dist/trpc/routers/gameDraftHistory.d.ts +1 -2
- package/dist/trpc/routers/gameDraftHistory.d.ts.map +1 -1
- package/dist/trpc/routers/gameDraftHistory.js +1 -1
- package/dist/trpc/routers/gameDraftHistory.js.map +1 -1
- package/dist/trpc/routers/games.d.ts +20478 -24667
- package/dist/trpc/routers/games.d.ts.map +1 -1
- package/dist/trpc/routers/games.js +325 -143
- package/dist/trpc/routers/games.js.map +1 -1
- package/dist/trpc/routers/jobs.d.ts +7 -0
- package/dist/trpc/routers/jobs.d.ts.map +1 -1
- package/dist/trpc/routers/jobs.js +10 -3
- package/dist/trpc/routers/jobs.js.map +1 -1
- package/dist/trpc/routers/js-scripts.d.ts.map +1 -1
- package/dist/trpc/routers/js-scripts.js +18 -2
- package/dist/trpc/routers/js-scripts.js.map +1 -1
- package/dist/trpc/routers/messages.d.ts +10 -0
- package/dist/trpc/routers/messages.d.ts.map +1 -1
- package/dist/trpc/routers/messages.js +16 -2
- package/dist/trpc/routers/messages.js.map +1 -1
- package/dist/trpc/routers/models.d.ts.map +1 -1
- package/dist/trpc/routers/models.js +58 -37
- package/dist/trpc/routers/models.js.map +1 -1
- package/dist/trpc/routers/packs.d.ts.map +1 -1
- package/dist/trpc/routers/packs.js +19 -5
- package/dist/trpc/routers/packs.js.map +1 -1
- package/dist/trpc/routers/projects.d.ts +66 -2
- package/dist/trpc/routers/projects.d.ts.map +1 -1
- package/dist/trpc/routers/projects.js +19 -2
- package/dist/trpc/routers/projects.js.map +1 -1
- package/dist/trpc/routers/settings.d.ts.map +1 -1
- package/dist/trpc/routers/settings.js +30 -5
- package/dist/trpc/routers/settings.js.map +1 -1
- package/dist/trpc/routers/sketch.d.ts +30 -0
- package/dist/trpc/routers/sketch.d.ts.map +1 -1
- package/dist/trpc/routers/sketch.js +2 -2
- package/dist/trpc/routers/sketch.js.map +1 -1
- package/dist/trpc/routers/storyboards.d.ts +171 -1
- package/dist/trpc/routers/storyboards.d.ts.map +1 -1
- package/dist/trpc/routers/storyboards.js +8 -5
- package/dist/trpc/routers/storyboards.js.map +1 -1
- package/dist/trpc/routers/threads.d.ts.map +1 -1
- package/dist/trpc/routers/threads.js +11 -2
- package/dist/trpc/routers/threads.js.map +1 -1
- package/dist/trpc/routers/timeline.d.ts +379 -0
- package/dist/trpc/routers/timeline.d.ts.map +1 -1
- package/dist/trpc/routers/timeline.js +15 -2
- package/dist/trpc/routers/timeline.js.map +1 -1
- package/dist/trpc/routers/triggers.d.ts.map +1 -1
- package/dist/trpc/routers/triggers.js +18 -3
- package/dist/trpc/routers/triggers.js.map +1 -1
- package/dist/trpc/routers/users.d.ts +3 -2
- package/dist/trpc/routers/users.d.ts.map +1 -1
- package/dist/trpc/routers/users.js +25 -27
- package/dist/trpc/routers/users.js.map +1 -1
- package/dist/trpc/routers/worker.d.ts.map +1 -1
- package/dist/trpc/routers/worker.js +37 -14
- package/dist/trpc/routers/worker.js.map +1 -1
- package/dist/trpc/routers/workflows.d.ts +190 -0
- package/dist/trpc/routers/workflows.d.ts.map +1 -1
- package/dist/trpc/routers/workflows.js +56 -15
- package/dist/trpc/routers/workflows.js.map +1 -1
- package/dist/trpc/sandbox-coverage.d.ts.map +1 -1
- package/dist/trpc/sandbox-coverage.js +34 -0
- package/dist/trpc/sandbox-coverage.js.map +1 -1
- package/dist/websocket-client-session.d.ts +2 -2
- package/dist/websocket-client-session.d.ts.map +1 -1
- package/dist/websocket-client-session.js +9 -3
- package/dist/websocket-client-session.js.map +1 -1
- package/dist/worker-settings-env.d.ts +23 -0
- package/dist/worker-settings-env.d.ts.map +1 -0
- package/dist/worker-settings-env.js +47 -0
- package/dist/worker-settings-env.js.map +1 -0
- package/dist/workflow-interface-service.d.ts +7 -0
- package/dist/workflow-interface-service.d.ts.map +1 -1
- package/package.json +51 -46
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every skill the session's user can load, published as an MCP prompt.
|
|
3
|
+
*
|
|
4
|
+
* MCP has no system prompt, so the skill catalog the chat turn carries never
|
|
5
|
+
* reaches an MCP client, and a skill was only discoverable by writing an
|
|
6
|
+
* `execute_code` action that imports `list_skills`. A prompt is the MCP shape
|
|
7
|
+
* for "saved instructions the user picks": clients list them, and Claude Code
|
|
8
|
+
* offers each one as a slash command.
|
|
9
|
+
*
|
|
10
|
+
* Shipped skills are registered synchronously, so they are there before the
|
|
11
|
+
* client's first `prompts/list`. The user's own rows need the database, so they
|
|
12
|
+
* arrive a moment later and the SDK announces them with `list_changed`. A body
|
|
13
|
+
* is read when the prompt is requested, never cached, so an edited skill is
|
|
14
|
+
* served as it is now. Resolution matches `load_skill`: the user's row first,
|
|
15
|
+
* then the shipped skill.
|
|
16
|
+
*/
|
|
17
|
+
import { z } from "zod";
|
|
18
|
+
import { findSystemSkill, loadSystemSkills } from "@nodetool-ai/agents";
|
|
19
|
+
import { Skill } from "@nodetool-ai/models";
|
|
20
|
+
import { createLogger } from "@nodetool-ai/config";
|
|
21
|
+
const log = createLogger("nodetool.websocket.mcp-skill-prompts");
|
|
22
|
+
const argsSchema = {
|
|
23
|
+
request: z
|
|
24
|
+
.string()
|
|
25
|
+
.optional()
|
|
26
|
+
.describe("What to do with this skill. Optional.")
|
|
27
|
+
};
|
|
28
|
+
async function resolveSkill(userId, name) {
|
|
29
|
+
const row = await Skill.findByName(userId, name);
|
|
30
|
+
if (row)
|
|
31
|
+
return { name: row.name, content: row.content };
|
|
32
|
+
const shipped = findSystemSkill(name);
|
|
33
|
+
return shipped ? { name: shipped.name, content: shipped.content } : null;
|
|
34
|
+
}
|
|
35
|
+
function skillPromptText(name, content, request) {
|
|
36
|
+
const lines = [
|
|
37
|
+
`Follow the NodeTool skill "${name}" below. Act through the NodeTool MCP tools.`
|
|
38
|
+
];
|
|
39
|
+
const task = request?.trim();
|
|
40
|
+
if (task)
|
|
41
|
+
lines.push("", `Request: ${task}`);
|
|
42
|
+
lines.push("", content.trim());
|
|
43
|
+
return lines.join("\n");
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Register one prompt per skill. Returns when the user's rows are registered;
|
|
47
|
+
* the shipped skills are registered before it returns its promise.
|
|
48
|
+
*/
|
|
49
|
+
export function registerSkillPrompts(server, userId, reservedNames) {
|
|
50
|
+
const registered = new Map();
|
|
51
|
+
const register = (name, description) => {
|
|
52
|
+
if (reservedNames.has(name) || registered.has(name))
|
|
53
|
+
return;
|
|
54
|
+
const prompt = server.registerPrompt(name, { description, argsSchema }, async ({ request }) => {
|
|
55
|
+
const skill = await resolveSkill(userId, name);
|
|
56
|
+
if (!skill)
|
|
57
|
+
throw new Error(`No skill named "${name}".`);
|
|
58
|
+
return {
|
|
59
|
+
messages: [
|
|
60
|
+
{
|
|
61
|
+
role: "user",
|
|
62
|
+
content: {
|
|
63
|
+
type: "text",
|
|
64
|
+
text: skillPromptText(skill.name, skill.content, request)
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
registered.set(name, prompt);
|
|
71
|
+
};
|
|
72
|
+
for (const skill of loadSystemSkills()) {
|
|
73
|
+
register(skill.name, skill.description);
|
|
74
|
+
}
|
|
75
|
+
return Skill.listByUser(userId).then((rows) => {
|
|
76
|
+
for (const row of rows) {
|
|
77
|
+
// A user row that holds a shipped name wins, as in `list_skills`.
|
|
78
|
+
const shadowed = registered.get(row.name);
|
|
79
|
+
if (shadowed)
|
|
80
|
+
shadowed.update({ description: row.description });
|
|
81
|
+
else
|
|
82
|
+
register(row.name, row.description);
|
|
83
|
+
}
|
|
84
|
+
}, (error) => {
|
|
85
|
+
log.warn("Could not list the user's skills for MCP prompts", {
|
|
86
|
+
userId,
|
|
87
|
+
error: error instanceof Error ? error.message : String(error)
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=mcp-skill-prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-skill-prompts.js","sourceRoot":"","sources":["../src/mcp-skill-prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tool-deps.d.ts","sourceRoot":"","sources":["../src/mcp-tool-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAiBvB,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,cAAmB,GAC3B,sBAAsB,
|
|
1
|
+
{"version":3,"file":"mcp-tool-deps.d.ts","sourceRoot":"","sources":["../src/mcp-tool-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAiBvB,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,cAAmB,GAC3B,sBAAsB,CAwBxB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,GAAE,cAAmB,GAC3B,IAAI,CACL,qBAAqB,EACnB,UAAU,GACV,WAAW,GACX,mBAAmB,GACnB,eAAe,GACf,qBAAqB,GACrB,oBAAoB,CACvB,CAoBA"}
|
package/dist/mcp-tool-deps.js
CHANGED
|
@@ -35,7 +35,14 @@ export function createExampleWorkflowCatalog(options = {}) {
|
|
|
35
35
|
: all;
|
|
36
36
|
return limit === undefined ? filtered : filtered.slice(0, limit);
|
|
37
37
|
},
|
|
38
|
-
|
|
38
|
+
// The name is agent input, and `loadExampleGraph` joins it onto the
|
|
39
|
+
// examples directory as a path, so a separator would let `../` read any
|
|
40
|
+
// JSON file this process can reach. No shipped example is named that way.
|
|
41
|
+
get: async (packageName, exampleName) => {
|
|
42
|
+
if (/[\\/]/.test(exampleName))
|
|
43
|
+
return null;
|
|
44
|
+
return (loadExampleGraph(packageName || defaultExamplePackageName(options) || "nodetool-base", exampleName, options) ?? null);
|
|
45
|
+
}
|
|
39
46
|
};
|
|
40
47
|
}
|
|
41
48
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tool-deps.js","sourceRoot":"","sources":["../src/mcp-tool-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAKhE,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAE9B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,2EAA2E;AAC3E,SAAS,YAAY,CAAC,QAAiB,EAAE,KAAa;IACpD,MAAM,EAAE,GAAG,QAAmC,CAAC;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACpD,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAClE,MAAM,IAAI,GAAI,EAAE,CAAC,MAAM,CAA0B,IAAI,EAAE,CAAC;IACxD,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACpB,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACtD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,OAAO,GAAmB,EAAE;IAE5B,OAAO;QACL,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;YAC/B,MAAM,GAAG,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,MAAM;gBACrB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC1D,CAAC,CAAC,GAAG,CAAC;YACR,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACnE,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"mcp-tool-deps.js","sourceRoot":"","sources":["../src/mcp-tool-deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-download-runtime.d.ts","sourceRoot":"","sources":["../src/model-download-runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model-download-runtime.d.ts","sourceRoot":"","sources":["../src/model-download-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAE1E;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,IAAI,CAAC,CAqEf"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { importPack } from "@nodetool-ai/node-catalog";
|
|
1
2
|
/**
|
|
2
3
|
* Run the existing Transformers.js model download and normalize its per-file
|
|
3
4
|
* progress to the same shape as the Hugging Face and worker download paths.
|
|
4
5
|
* Transport adapters own the AbortController and decide how updates are sent.
|
|
5
6
|
*/
|
|
6
7
|
export async function runTransformersJsModelDownload(repoId, modelType, signal, onProgress) {
|
|
7
|
-
const tjs = await
|
|
8
|
+
const tjs = await importPack("transformers-js");
|
|
8
9
|
const fileTotals = new Map();
|
|
9
10
|
const completedFiles = new Set();
|
|
10
11
|
const emit = (status, error) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-download-runtime.js","sourceRoot":"","sources":["../src/model-download-runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model-download-runtime.js","sourceRoot":"","sources":["../src/model-download-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/models-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models-api.d.ts","sourceRoot":"","sources":["../src/models-api.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAuB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"models-api.d.ts","sourceRoot":"","sources":["../src/models-api.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAuB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CAkCnB;AAkBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,YAAY,EAAE,EACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,qBAAqC,GAC9C,YAAY,EAAE,CA+BhB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,GAAE,qBAAqC,GAC9C,MAAM,EAAE,CAeV;AAMD,uFAAuF;AACvF,UAAU,cAAc;IACtB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,mFAAmF;AACnF,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,GAAG,EAAE,oBAAoB,EACzB,SAAS,GAAE,MAEY,EACvB,MAAM,GAAE,MAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAwGf"}
|
package/dist/models-api.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getSecret as getStoredSecret } from "@nodetool-ai/models";
|
|
2
2
|
import { listRegisteredProviderIds, PythonProvider, registerProvider } from "@nodetool-ai/runtime";
|
|
3
|
-
import { resolveWorkerHfToken } from "@nodetool-ai/huggingface";
|
|
3
|
+
import { ALWAYS_IGNORE_PATTERNS, resolveWorkerHfToken } from "@nodetool-ai/huggingface";
|
|
4
4
|
import { modelRankings, rankedForTask } from "@nodetool-ai/model-pricing";
|
|
5
5
|
/**
|
|
6
6
|
* Register Python-only providers (HuggingFace Local, MLX) discovered
|
|
@@ -207,7 +207,11 @@ export async function relayWorkerDownload(socket, bridge, workerManager, msg, re
|
|
|
207
207
|
repo_id: repoId,
|
|
208
208
|
path: msg.path ?? null,
|
|
209
209
|
allow_patterns: msg.allow_patterns ?? null,
|
|
210
|
-
|
|
210
|
+
// A whole-repo worker download skips the framework exports a
|
|
211
|
+
// server-side download skips, so both fetch the same files.
|
|
212
|
+
ignore_patterns: msg.path
|
|
213
|
+
? (msg.ignore_patterns ?? null)
|
|
214
|
+
: [...(msg.ignore_patterns ?? []), ...ALWAYS_IGNORE_PATTERNS],
|
|
211
215
|
model_type: msg.model_type ?? null,
|
|
212
216
|
token
|
|
213
217
|
}, onProgress, requestId);
|
package/dist/models-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models-api.js","sourceRoot":"","sources":["../src/models-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,
|
|
1
|
+
{"version":3,"file":"models-api.js","sourceRoot":"","sources":["../src/models-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,aAAa,EACb,aAAa,EAEd,MAAM,4BAA4B,CAAC;AAIpC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAoB;IAEpB,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;QAChD,mEAAmE;QACnE,0EAA0E;QAC1E,wEAAwE;QACxE,yCAAyC;QACzC,MAAM,QAAQ,GACZ,IAAI,CAAC,EAAE,KAAK,aAAa,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QACd,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,SAAS;QAC7C,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,gBAAgB,CACd,QAAQ,EACR,cAAqB,EACrB;YACE,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,QAAQ;YACb,iBAAiB,EAAE,IAAI,CAAC,EAAE;YAC1B,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,GAAG,OAAO;SACX,EACD,EAAE,EACF;YACE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,YAAY;YACnC,WAAW,EAAE,IAAI,CAAC,YAAY,IAAI,QAAQ;SAC3C,CACF,CAAC;QACF,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,sBAAsB,GAA2B;IACrD,aAAa,EAAE,aAAa;IAC5B,cAAc,EAAE,aAAa;IAC7B,aAAa,EAAE,aAAa;IAC5B,cAAc,EAAE,aAAa;IAC7B,cAAc,EAAE,aAAa;IAC7B,kBAAkB,EAAE,aAAa;IACjC,cAAc,EAAE,WAAW;IAC3B,aAAa,EAAE,aAAa;CAC7B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAAoB,EACpB,IAAY,EACZ,QAAQ,GAA0B,aAAa;IAE/C,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC,CAC5D,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAEzB,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAC3B,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CACjD,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAAE,SAAS;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,KAAK,CAAC,OAAO;YACjB,IAAI;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAQ,GAA0B,aAAa;IAE/C,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4C,CAAC;IACxE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,KAAK,EAAE,SAAS;YAAE,SAAS;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CACnB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAC7D,MAAM,CAAC,iBAAiB,CACzB,CAAC;QACF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;SAC9B,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SAC/D,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAwBD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAsB,EACtB,MAAgC,EAChC,aAAwC,EACxC,GAAyB,EACzB,SAAS,GAAW,GAAG,CAAC,IAAI;IAC1B,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE;IACpC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EACvB,MAAM,GAAW,GAAG;IAEpB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IACjC,uEAAuE;IACvE,2EAA2E;IAC3E,iCAAiC;IACjC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,SAAS,CAAC;gBACb,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;gBACtB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;gBAClC,gBAAgB,EAAE,CAAC;gBACnB,WAAW,EAAE,CAAC;gBACd,gBAAgB,EAAE,CAAC;gBACnB,aAAa,EAAE,EAAE;gBACjB,WAAW,EAAE,CAAC;gBACd,KAAK;aACN,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,IAAI,CAAC,iDAAiD,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,eAAe,EAAE,CAAC;IACrD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,EAAE,CAAC;QACjD,IAAI,CAAC,sDAAsD,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,mCAAmC;IACnC,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,CAAC,GAAG,EAAE,EAAE,CAC/C,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAC7B,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,CAAC,MAA2B,EAAE,EAAE;YACjD,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC9B,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;QACH,CAAC,CAAC;QACF,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,uDAAuD,CAAC,CAAC;gBAC9D,OAAO;YACT,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClD,IAAI,CACF,sDAAsD,GAAG,CAAC,OAAO,EAAE,CACpE,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,MAAM,CAAC,YAAY,CACvB;gBACE,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,OAAO,EAAE,MAAM;gBACf,KAAK;aACN,EACD,UAAU,EACV,SAAS,CACV,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,CAAC,aAAa,CACxB;gBACE,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;gBACtB,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,IAAI;gBAC1C,6DAA6D;gBAC7D,4DAA4D;gBAC5D,eAAe,EAAE,GAAG,CAAC,IAAI;oBACvB,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC;oBAC/B,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,GAAG,sBAAsB,CAAC;gBAC/D,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;gBAClC,KAAK;aACN,EACD,UAAU,EACV,SAAS,CACV,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0EAA0E;QAC1E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -9,11 +9,13 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { NodeRegistry, type NodePackAvailabilityDiagnostic } from "@nodetool-ai/node-sdk";
|
|
11
11
|
import type { PythonNodeMetadata } from "@nodetool-ai/runtime";
|
|
12
|
+
import { type PackSource } from "./pack-source.js";
|
|
12
13
|
interface BootstrapLogger {
|
|
13
14
|
info: (msg: string) => void;
|
|
14
15
|
warn: (msg: string) => void;
|
|
15
16
|
}
|
|
16
|
-
interface BootstrapRegistryOptions {
|
|
17
|
+
export interface BootstrapRegistryOptions {
|
|
18
|
+
packSource?: PackSource;
|
|
17
19
|
/** Roots scanned for Python package metadata. */
|
|
18
20
|
metadataRoots?: string[];
|
|
19
21
|
metadataMaxDepth?: number;
|
|
@@ -24,6 +26,7 @@ interface BootstrapRegistryOptions {
|
|
|
24
26
|
log?: BootstrapLogger;
|
|
25
27
|
}
|
|
26
28
|
interface RegisterBuiltInNodesOptions {
|
|
29
|
+
packSource?: PackSource;
|
|
27
30
|
/**
|
|
28
31
|
* Per-pack enabled overrides keyed by pack id. Packs absent from the map
|
|
29
32
|
* keep their install default (`defaultEnabled` in the catalog — most packs
|
|
@@ -34,7 +37,7 @@ interface RegisterBuiltInNodesOptions {
|
|
|
34
37
|
enabledOverrides?: Record<string, boolean>;
|
|
35
38
|
log?: BootstrapLogger;
|
|
36
39
|
}
|
|
37
|
-
export declare function getUnavailableBuiltinPackDiagnostics(): NodePackAvailabilityDiagnostic[]
|
|
40
|
+
export declare function getUnavailableBuiltinPackDiagnostics(registry?: NodeRegistry): Promise<NodePackAvailabilityDiagnostic[]>;
|
|
38
41
|
interface PythonBridgeMetadataMergeResult {
|
|
39
42
|
total: number;
|
|
40
43
|
bridgeOnly: number;
|
|
@@ -50,11 +53,11 @@ interface PythonBridgeMetadataMergeResult {
|
|
|
50
53
|
*/
|
|
51
54
|
export declare function mergePythonBridgeMetadata(registry: NodeRegistry, metadata: readonly PythonNodeMetadata[]): PythonBridgeMetadataMergeResult;
|
|
52
55
|
/**
|
|
53
|
-
* Register the enabled first-party node packs into `registry
|
|
56
|
+
* Register the enabled first-party node packs into `registry`.
|
|
54
57
|
* Required packs and packs enabled by default or by the user load; the rest
|
|
55
58
|
* are skipped.
|
|
56
59
|
*/
|
|
57
|
-
export declare function registerBuiltInNodes(registry: NodeRegistry, options?: RegisterBuiltInNodesOptions): void
|
|
60
|
+
export declare function registerBuiltInNodes(registry: NodeRegistry, options?: RegisterBuiltInNodesOptions): Promise<void>;
|
|
58
61
|
/**
|
|
59
62
|
* Apply a built-in pack toggle to a live registry so the change takes effect
|
|
60
63
|
* without a server restart. Enabling re-runs the registrar (idempotent —
|
|
@@ -62,7 +65,7 @@ export declare function registerBuiltInNodes(registry: NodeRegistry, options?: R
|
|
|
62
65
|
* types attributed to that pack during registration, so packs sharing a namespace prefix
|
|
63
66
|
* with other packs are untouched.
|
|
64
67
|
*/
|
|
65
|
-
export declare function applyBuiltinPackEnabled(registry: NodeRegistry, id: string, enabled: boolean): void
|
|
68
|
+
export declare function applyBuiltinPackEnabled(registry: NodeRegistry, id: string, enabled: boolean): Promise<void>;
|
|
66
69
|
/** Drop optional node types that aren't available in cloud/production builds. */
|
|
67
70
|
export declare function applyProductionNodePolicy(registry: NodeRegistry, log?: BootstrapLogger): void;
|
|
68
71
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-registry-setup.d.ts","sourceRoot":"","sources":["../src/node-registry-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"node-registry-setup.d.ts","sourceRoot":"","sources":["../src/node-registry-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,YAAY,EAKZ,KAAK,8BAA8B,EAEpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAS/D,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI1E,UAAU,eAAe;IACvB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB;AAcD,UAAU,2BAA2B;IACnC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB;AAED,wBAAsB,oCAAoC,CACxD,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,8BAA8B,EAAE,CAAC,CAW3C;AAED,UAAU,+BAA+B;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GACtC,+BAA+B,CAuCjC;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,YAAY,EACtB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,iFAAiF;AACjF,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,YAAY,EACtB,GAAG,CAAC,EAAE,eAAe,GACpB,IAAI,CAIN;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,YAAY,EACtB,GAAG,CAAC,EAAE,eAAe,GACpB,IAAI,CAMN;AAmBD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,YAAY,CAAC,CA4BvB;AAGD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,sBAAsB,CAAC"}
|
|
@@ -7,11 +7,12 @@
|
|
|
7
7
|
* Previously each entrypoint registered its own subset, which caused nodes to
|
|
8
8
|
* be "present in serve but missing in MCP".
|
|
9
9
|
*/
|
|
10
|
-
import { NodeRegistry, loadInstalledPacks, readBuiltinPackOverrides } from "@nodetool-ai/node-sdk";
|
|
10
|
+
import { NodeRegistry, applyBuiltinNodePolicy, loadInstalledPacks, readBuiltinPackOverrides } from "@nodetool-ai/node-sdk";
|
|
11
11
|
import { BUILTIN_NODE_PACKS, CLOUD_PROFILE_ENV, NODE_ENV_VAR, isCloudProfileActive } from "@nodetool-ai/protocol";
|
|
12
12
|
import { setPackSnapshot } from "./pack-snapshot.js";
|
|
13
13
|
import { refreshSandboxCatalog } from "./sandbox-catalog.js";
|
|
14
|
-
import {
|
|
14
|
+
import { loadBundledPackSource } from "./pack-source.js";
|
|
15
|
+
const registrySources = new WeakMap();
|
|
15
16
|
function isProduction() {
|
|
16
17
|
return process.env["NODETOOL_ENV"] === "production";
|
|
17
18
|
}
|
|
@@ -19,10 +20,11 @@ function isProduction() {
|
|
|
19
20
|
function isCloudProfile() {
|
|
20
21
|
return isCloudProfileActive(process.env[CLOUD_PROFILE_ENV], process.env[NODE_ENV_VAR]);
|
|
21
22
|
}
|
|
22
|
-
export function getUnavailableBuiltinPackDiagnostics() {
|
|
23
|
+
export async function getUnavailableBuiltinPackDiagnostics(registry) {
|
|
24
|
+
const packSource = (registry && registrySources.get(registry)) ?? await loadBundledPackSource();
|
|
23
25
|
const overrides = isCloudProfile() ? undefined : readBuiltinPackOverrides();
|
|
24
26
|
return BUILTIN_NODE_PACKS.flatMap((pack) => {
|
|
25
|
-
const reason =
|
|
27
|
+
const reason = packSource.unavailableReason(pack, {
|
|
26
28
|
enabledOverrides: overrides,
|
|
27
29
|
cloudProfile: isCloudProfile(),
|
|
28
30
|
production: isProduction()
|
|
@@ -73,14 +75,16 @@ export function mergePythonBridgeMetadata(registry, metadata) {
|
|
|
73
75
|
};
|
|
74
76
|
}
|
|
75
77
|
/**
|
|
76
|
-
* Register the enabled first-party node packs into `registry
|
|
78
|
+
* Register the enabled first-party node packs into `registry`.
|
|
77
79
|
* Required packs and packs enabled by default or by the user load; the rest
|
|
78
80
|
* are skipped.
|
|
79
81
|
*/
|
|
80
|
-
export function registerBuiltInNodes(registry, options = {}) {
|
|
82
|
+
export async function registerBuiltInNodes(registry, options = {}) {
|
|
83
|
+
const packSource = options.packSource ?? await loadBundledPackSource();
|
|
84
|
+
registrySources.set(registry, packSource);
|
|
81
85
|
const overrides = options.enabledOverrides ??
|
|
82
86
|
(isCloudProfile() ? undefined : readBuiltinPackOverrides());
|
|
83
|
-
|
|
87
|
+
await packSource.register(registry, {
|
|
84
88
|
enabledOverrides: overrides,
|
|
85
89
|
cloudProfile: options.enabledOverrides === undefined && isCloudProfile(),
|
|
86
90
|
production: isProduction()
|
|
@@ -97,8 +101,9 @@ export function registerBuiltInNodes(registry, options = {}) {
|
|
|
97
101
|
* types attributed to that pack during registration, so packs sharing a namespace prefix
|
|
98
102
|
* with other packs are untouched.
|
|
99
103
|
*/
|
|
100
|
-
export function applyBuiltinPackEnabled(registry, id, enabled) {
|
|
101
|
-
|
|
104
|
+
export async function applyBuiltinPackEnabled(registry, id, enabled) {
|
|
105
|
+
const packSource = registrySources.get(registry) ?? await loadBundledPackSource();
|
|
106
|
+
await packSource.setEnabled(registry, id, enabled);
|
|
102
107
|
}
|
|
103
108
|
/** Drop optional node types that aren't available in cloud/production builds. */
|
|
104
109
|
export function applyProductionNodePolicy(registry, log) {
|
|
@@ -141,7 +146,14 @@ export async function bootstrapNodeRegistry(options = {}) {
|
|
|
141
146
|
roots: options.metadataRoots,
|
|
142
147
|
maxDepth: options.metadataMaxDepth ?? 8
|
|
143
148
|
});
|
|
144
|
-
|
|
149
|
+
const builtinOptions = {};
|
|
150
|
+
if (options.log) {
|
|
151
|
+
builtinOptions.log = options.log;
|
|
152
|
+
}
|
|
153
|
+
if (options.packSource) {
|
|
154
|
+
builtinOptions.packSource = options.packSource;
|
|
155
|
+
}
|
|
156
|
+
await registerBuiltInNodes(registry, builtinOptions);
|
|
145
157
|
if (options.loadPacks !== false) {
|
|
146
158
|
const loadOptions = {
|
|
147
159
|
onResult: (result) => logPackResult(result, options.log)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-registry-setup.js","sourceRoot":"","sources":["../src/node-registry-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,EAIzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"node-registry-setup.js","sourceRoot":"","sources":["../src/node-registry-setup.ts"],"names":[],"mappings":"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"}
|
package/dist/oauth-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-api.d.ts","sourceRoot":"","sources":["../src/oauth-api.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"oauth-api.d.ts","sourceRoot":"","sources":["../src/oauth-api.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoEH,wBAAgB,gBAAgB;;;EAM/B;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAID,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,eAAe,6BAAoC,CAAC;AAoxBjE,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB;YAEnB,MAAM;kBAAgB,MAAM;eAAa,MAAM;EACxD,CAAC;AAWJ;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAwBA;AAgBD,0EAA0E;AAC1E,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC,CAMpE;AA2RD,kEAAkE;AAClE,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM5D;AAkQD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,MAAM,GACtB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAyD1B"}
|
package/dist/oauth-api.js
CHANGED
|
@@ -10,6 +10,7 @@ import { createLogger, isAuthEnforced, isGoogleWorkspaceEnabled } from "@nodetoo
|
|
|
10
10
|
import { OAuthCredential, storeGoogleCredential, deleteGoogleCredentials, GOOGLE_CREDENTIAL_PROVIDER } from "@nodetool-ai/models";
|
|
11
11
|
import { OAuthClient, LocalCallbackServer, ClaudeCodeLogin, extractChatGptAccountId, CODEX_OAUTH_CLIENT_ID, CODEX_CALLBACK_PORT, CODEX_CALLBACK_PATH, DEFAULT_CODEX_OAUTH_CONFIG } from "@nodetool-ai/runtime/oauth";
|
|
12
12
|
import { clearProviderCache } from "@nodetool-ai/runtime";
|
|
13
|
+
import { isAdmin } from "./lib/admin.js";
|
|
13
14
|
import { isFiniteNumber, isNonEmptyString, isString } from "./lib/wire-values.js";
|
|
14
15
|
const logger = createLogger("nodetool.websocket.oauth");
|
|
15
16
|
// ── Constants ────────────────────────────────────────────────────────
|
|
@@ -941,6 +942,15 @@ async function handleOpenAIDisconnect(request, getUserId) {
|
|
|
941
942
|
// shared server (`isAuthEnforced()`) or when asked with `?manual=true`.
|
|
942
943
|
//
|
|
943
944
|
// The UI reflects success by polling `/api/oauth/claude/tokens`.
|
|
945
|
+
// The login is process-wide: every user's Claude Agent SDK traffic runs on it.
|
|
946
|
+
// So only an admin may start, finish or remove it, or read its plan details.
|
|
947
|
+
// Other users see only whether the server is connected.
|
|
948
|
+
/** Answers 403 unless the caller is an admin. */
|
|
949
|
+
async function refuseUnlessAdmin(getUserId) {
|
|
950
|
+
if (await isAdmin(getUserId()))
|
|
951
|
+
return null;
|
|
952
|
+
return errorResponse(403, "Only an admin can change this server's Claude login.");
|
|
953
|
+
}
|
|
944
954
|
/** The single in-flight login, so a re-click supersedes a stale listener. */
|
|
945
955
|
let activeClaudeLogin = null;
|
|
946
956
|
/** Abort and tear down any in-flight Claude login. Idempotent. */
|
|
@@ -952,9 +962,12 @@ export async function closeActiveClaudeLogin() {
|
|
|
952
962
|
active.abort.abort();
|
|
953
963
|
await active.pending.cancel().catch(() => { });
|
|
954
964
|
}
|
|
955
|
-
async function handleClaudeStart(request) {
|
|
965
|
+
async function handleClaudeStart(request, getUserId) {
|
|
956
966
|
if (request.method !== "GET")
|
|
957
967
|
return errorResponse(405, "Method not allowed");
|
|
968
|
+
const refused = await refuseUnlessAdmin(getUserId);
|
|
969
|
+
if (refused)
|
|
970
|
+
return refused;
|
|
958
971
|
const url = new URL(request.url);
|
|
959
972
|
const loginMethod = url.searchParams.get("login_method") === "console" ? "console" : "claude-ai";
|
|
960
973
|
// A shared server's users browse from their own machines, where the loopback
|
|
@@ -997,9 +1010,12 @@ async function handleClaudeStart(request) {
|
|
|
997
1010
|
});
|
|
998
1011
|
}
|
|
999
1012
|
/** Complete a started login from the `code#state` the console displayed. */
|
|
1000
|
-
async function handleClaudeComplete(request) {
|
|
1013
|
+
async function handleClaudeComplete(request, getUserId) {
|
|
1001
1014
|
if (request.method !== "POST")
|
|
1002
1015
|
return errorResponse(405, "Method not allowed");
|
|
1016
|
+
const refused = await refuseUnlessAdmin(getUserId);
|
|
1017
|
+
if (refused)
|
|
1018
|
+
return refused;
|
|
1003
1019
|
const active = activeClaudeLogin;
|
|
1004
1020
|
if (!active) {
|
|
1005
1021
|
return errorResponse(400, "No Claude login in progress. Start one and try again.");
|
|
@@ -1032,29 +1048,35 @@ async function handleClaudeComplete(request) {
|
|
|
1032
1048
|
* Connection status, shaped like the other providers' `tokens` responses so the
|
|
1033
1049
|
* shared `useOAuthConnection` hook works unchanged. There is at most one login.
|
|
1034
1050
|
*/
|
|
1035
|
-
async function handleClaudeTokens() {
|
|
1051
|
+
async function handleClaudeTokens(getUserId) {
|
|
1036
1052
|
const status = await new ClaudeCodeLogin().status();
|
|
1053
|
+
if (!status.connected)
|
|
1054
|
+
return jsonResponse({ tokens: [] });
|
|
1055
|
+
const token = {
|
|
1056
|
+
provider: "claude",
|
|
1057
|
+
scope: status.scopes.join(" "),
|
|
1058
|
+
expires_at: status.expiresAt != null ? new Date(status.expiresAt).toISOString() : null,
|
|
1059
|
+
expired: status.expired
|
|
1060
|
+
};
|
|
1061
|
+
if (!(await isAdmin(getUserId())))
|
|
1062
|
+
return jsonResponse({ tokens: [token] });
|
|
1037
1063
|
return jsonResponse({
|
|
1038
|
-
tokens:
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
expired: status.expired,
|
|
1047
|
-
subscription_type: status.subscriptionType,
|
|
1048
|
-
rate_limit_tier: status.rateLimitTier,
|
|
1049
|
-
credentials_path: status.credentialsPath
|
|
1050
|
-
}
|
|
1051
|
-
]
|
|
1052
|
-
: []
|
|
1064
|
+
tokens: [
|
|
1065
|
+
{
|
|
1066
|
+
...token,
|
|
1067
|
+
subscription_type: status.subscriptionType,
|
|
1068
|
+
rate_limit_tier: status.rateLimitTier,
|
|
1069
|
+
credentials_path: status.credentialsPath
|
|
1070
|
+
}
|
|
1071
|
+
]
|
|
1053
1072
|
});
|
|
1054
1073
|
}
|
|
1055
|
-
async function handleClaudeDisconnect(request) {
|
|
1074
|
+
async function handleClaudeDisconnect(request, getUserId) {
|
|
1056
1075
|
if (request.method !== "POST")
|
|
1057
1076
|
return errorResponse(405, "Method not allowed");
|
|
1077
|
+
const refused = await refuseUnlessAdmin(getUserId);
|
|
1078
|
+
if (refused)
|
|
1079
|
+
return refused;
|
|
1058
1080
|
await closeActiveClaudeLogin();
|
|
1059
1081
|
const removed = await new ClaudeCodeLogin().logout();
|
|
1060
1082
|
return jsonResponse({ success: true, removed: removed ? 1 : 0 });
|
|
@@ -1179,13 +1201,13 @@ export async function handleOAuthRequest(request, pathname, getUserId) {
|
|
|
1179
1201
|
return handleOpenAIDisconnect(request, getUserId);
|
|
1180
1202
|
// Claude subscription (Claude Agent SDK credentials)
|
|
1181
1203
|
case "/api/oauth/claude/start":
|
|
1182
|
-
return handleClaudeStart(request);
|
|
1204
|
+
return handleClaudeStart(request, getUserId);
|
|
1183
1205
|
case "/api/oauth/claude/complete":
|
|
1184
|
-
return handleClaudeComplete(request);
|
|
1206
|
+
return handleClaudeComplete(request, getUserId);
|
|
1185
1207
|
case "/api/oauth/claude/tokens":
|
|
1186
|
-
return handleClaudeTokens();
|
|
1208
|
+
return handleClaudeTokens(getUserId);
|
|
1187
1209
|
case "/api/oauth/claude/disconnect":
|
|
1188
|
-
return handleClaudeDisconnect(request);
|
|
1210
|
+
return handleClaudeDisconnect(request, getUserId);
|
|
1189
1211
|
// Google Workspace (token comes from the Supabase Google login)
|
|
1190
1212
|
case "/api/oauth/google/session":
|
|
1191
1213
|
return handleGoogleSession(request, getUserId);
|