@raybase/core 0.0.1 → 0.3.3
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/LICENSE +21 -0
- package/dist/.admin-build/AdminApp.css +2 -0
- package/dist/.admin-build/AdminApp.js +77 -0
- package/dist/.admin-docs-build/AdminDocsApp.css +2 -0
- package/dist/.admin-docs-build/AdminDocsApp.js +45 -0
- package/dist/actions.d.ts +347 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +661 -0
- package/dist/actions.js.map +1 -0
- package/dist/admin-assets/admin.7738f50720a8ed7b.css +2 -0
- package/dist/admin-assets/admin.8678cb61db34dc81.js +77 -0
- package/dist/admin-boot.d.ts +94 -0
- package/dist/admin-boot.d.ts.map +1 -0
- package/dist/admin-boot.js +139 -0
- package/dist/admin-boot.js.map +1 -0
- package/dist/admin-docs-content.d.ts +95 -0
- package/dist/admin-docs-content.d.ts.map +1 -0
- package/dist/admin-docs-content.js +463 -0
- package/dist/admin-docs-content.js.map +1 -0
- package/dist/admin-docs-ui.d.ts +11 -0
- package/dist/admin-docs-ui.d.ts.map +1 -0
- package/dist/admin-docs-ui.js +23 -0
- package/dist/admin-docs-ui.js.map +1 -0
- package/dist/admin-kit.d.ts +29 -0
- package/dist/admin-kit.js +1557 -0
- package/dist/admin-role.d.ts +8 -0
- package/dist/admin-role.d.ts.map +1 -0
- package/dist/admin-role.js +22 -0
- package/dist/admin-role.js.map +1 -0
- package/dist/admin-ui.d.ts +3 -0
- package/dist/admin-ui.d.ts.map +1 -0
- package/dist/admin-ui.js +16 -0
- package/dist/admin-ui.js.map +1 -0
- package/dist/agent-ai-chat.d.ts +127 -0
- package/dist/agent-ai-chat.d.ts.map +1 -0
- package/dist/agent-ai-chat.js +5975 -0
- package/dist/agent-ai-chat.js.map +1 -0
- package/dist/agent-chapter-archive.d.ts +214 -0
- package/dist/agent-chapter-archive.d.ts.map +1 -0
- package/dist/agent-chapter-archive.js +696 -0
- package/dist/agent-chapter-archive.js.map +1 -0
- package/dist/agent-chapter-search.d.ts +116 -0
- package/dist/agent-chapter-search.d.ts.map +1 -0
- package/dist/agent-chapter-search.js +605 -0
- package/dist/agent-chapter-search.js.map +1 -0
- package/dist/agent-chapter-tools.d.ts +45 -0
- package/dist/agent-chapter-tools.d.ts.map +1 -0
- package/dist/agent-chapter-tools.js +344 -0
- package/dist/agent-chapter-tools.js.map +1 -0
- package/dist/agent-chapters.d.ts +228 -0
- package/dist/agent-chapters.d.ts.map +1 -0
- package/dist/agent-chapters.js +737 -0
- package/dist/agent-chapters.js.map +1 -0
- package/dist/agent-data-parts.d.ts +167 -0
- package/dist/agent-data-parts.d.ts.map +1 -0
- package/dist/agent-data-parts.js +68 -0
- package/dist/agent-data-parts.js.map +1 -0
- package/dist/agent-errors.d.ts +41 -0
- package/dist/agent-errors.d.ts.map +1 -0
- package/dist/agent-errors.js +191 -0
- package/dist/agent-errors.js.map +1 -0
- package/dist/agent-follow-up-store.d.ts +273 -0
- package/dist/agent-follow-up-store.d.ts.map +1 -0
- package/dist/agent-follow-up-store.js +703 -0
- package/dist/agent-follow-up-store.js.map +1 -0
- package/dist/agent-follow-ups.d.ts +314 -0
- package/dist/agent-follow-ups.d.ts.map +1 -0
- package/dist/agent-follow-ups.js +840 -0
- package/dist/agent-follow-ups.js.map +1 -0
- package/dist/agent-memory.d.ts +323 -0
- package/dist/agent-memory.d.ts.map +1 -0
- package/dist/agent-memory.js +1270 -0
- package/dist/agent-memory.js.map +1 -0
- package/dist/agent-message-parts.d.ts +58 -0
- package/dist/agent-message-parts.d.ts.map +1 -0
- package/dist/agent-message-parts.js +163 -0
- package/dist/agent-message-parts.js.map +1 -0
- package/dist/agent-remote-mcp-credentials.d.ts +154 -0
- package/dist/agent-remote-mcp-credentials.d.ts.map +1 -0
- package/dist/agent-remote-mcp-credentials.js +287 -0
- package/dist/agent-remote-mcp-credentials.js.map +1 -0
- package/dist/agent-remote-mcp-crypto.d.ts +32 -0
- package/dist/agent-remote-mcp-crypto.d.ts.map +1 -0
- package/dist/agent-remote-mcp-crypto.js +101 -0
- package/dist/agent-remote-mcp-crypto.js.map +1 -0
- package/dist/agent-remote-mcp-install.d.ts +299 -0
- package/dist/agent-remote-mcp-install.d.ts.map +1 -0
- package/dist/agent-remote-mcp-install.js +785 -0
- package/dist/agent-remote-mcp-install.js.map +1 -0
- package/dist/agent-remote-mcp-oauth.d.ts +73 -0
- package/dist/agent-remote-mcp-oauth.d.ts.map +1 -0
- package/dist/agent-remote-mcp-oauth.js +344 -0
- package/dist/agent-remote-mcp-oauth.js.map +1 -0
- package/dist/agent-remote-mcp-transport.d.ts +46 -0
- package/dist/agent-remote-mcp-transport.d.ts.map +1 -0
- package/dist/agent-remote-mcp-transport.js +225 -0
- package/dist/agent-remote-mcp-transport.js.map +1 -0
- package/dist/agent-remote-mcp.d.ts +147 -0
- package/dist/agent-remote-mcp.d.ts.map +1 -0
- package/dist/agent-remote-mcp.js +681 -0
- package/dist/agent-remote-mcp.js.map +1 -0
- package/dist/agent-room-redaction.d.ts +66 -0
- package/dist/agent-room-redaction.d.ts.map +1 -0
- package/dist/agent-room-redaction.js +264 -0
- package/dist/agent-room-redaction.js.map +1 -0
- package/dist/agent-rooms.d.ts +209 -0
- package/dist/agent-rooms.d.ts.map +1 -0
- package/dist/agent-rooms.js +244 -0
- package/dist/agent-rooms.js.map +1 -0
- package/dist/agent-runtime.d.ts +541 -0
- package/dist/agent-runtime.d.ts.map +1 -0
- package/dist/agent-runtime.js +4260 -0
- package/dist/agent-runtime.js.map +1 -0
- package/dist/agent-skill-archive.d.ts +20 -0
- package/dist/agent-skill-archive.d.ts.map +1 -0
- package/dist/agent-skill-archive.js +316 -0
- package/dist/agent-skill-archive.js.map +1 -0
- package/dist/agent-skill-discovery.d.ts +96 -0
- package/dist/agent-skill-discovery.d.ts.map +1 -0
- package/dist/agent-skill-discovery.js +464 -0
- package/dist/agent-skill-discovery.js.map +1 -0
- package/dist/agent-skill-format.d.ts +57 -0
- package/dist/agent-skill-format.d.ts.map +1 -0
- package/dist/agent-skill-format.js +238 -0
- package/dist/agent-skill-format.js.map +1 -0
- package/dist/agent-skill-import.d.ts +64 -0
- package/dist/agent-skill-import.d.ts.map +1 -0
- package/dist/agent-skill-import.js +295 -0
- package/dist/agent-skill-import.js.map +1 -0
- package/dist/agent-skill-publish.d.ts +51 -0
- package/dist/agent-skill-publish.d.ts.map +1 -0
- package/dist/agent-skill-publish.js +136 -0
- package/dist/agent-skill-publish.js.map +1 -0
- package/dist/agent-skill-store.d.ts +252 -0
- package/dist/agent-skill-store.d.ts.map +1 -0
- package/dist/agent-skill-store.js +514 -0
- package/dist/agent-skill-store.js.map +1 -0
- package/dist/agent-skills.d.ts +85 -0
- package/dist/agent-skills.d.ts.map +1 -0
- package/dist/agent-skills.js +291 -0
- package/dist/agent-skills.js.map +1 -0
- package/dist/agent-transcript-pager.d.ts +77 -0
- package/dist/agent-transcript-pager.d.ts.map +1 -0
- package/dist/agent-transcript-pager.js +210 -0
- package/dist/agent-transcript-pager.js.map +1 -0
- package/dist/agent-user-data-parts.d.ts +20 -0
- package/dist/agent-user-data-parts.d.ts.map +1 -0
- package/dist/agent-user-data-parts.js +161 -0
- package/dist/agent-user-data-parts.js.map +1 -0
- package/dist/agent-user-transcript.d.ts +46 -0
- package/dist/agent-user-transcript.d.ts.map +1 -0
- package/dist/agent-user-transcript.js +106 -0
- package/dist/agent-user-transcript.js.map +1 -0
- package/dist/agent-voice-notes.d.ts +15 -0
- package/dist/agent-voice-notes.d.ts.map +1 -0
- package/dist/agent-voice-notes.js +17 -0
- package/dist/agent-voice-notes.js.map +1 -0
- package/dist/agent-wakes.d.ts +213 -0
- package/dist/agent-wakes.d.ts.map +1 -0
- package/dist/agent-wakes.js +534 -0
- package/dist/agent-wakes.js.map +1 -0
- package/dist/agent.d.ts +1780 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +3123 -0
- package/dist/agent.js.map +1 -0
- package/dist/ai.d.ts +583 -0
- package/dist/ai.d.ts.map +1 -0
- package/dist/ai.js +1858 -0
- package/dist/ai.js.map +1 -0
- package/dist/app-manifest.d.ts +255 -0
- package/dist/app-manifest.d.ts.map +1 -0
- package/dist/app-manifest.js +372 -0
- package/dist/app-manifest.js.map +1 -0
- package/dist/app-users.d.ts +30 -0
- package/dist/app-users.d.ts.map +1 -0
- package/dist/app-users.js +91 -0
- package/dist/app-users.js.map +1 -0
- package/dist/audit-archive.d.ts +85 -0
- package/dist/audit-archive.d.ts.map +1 -0
- package/dist/audit-archive.js +178 -0
- package/dist/audit-archive.js.map +1 -0
- package/dist/audit.d.ts +54 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +95 -0
- package/dist/audit.js.map +1 -0
- package/dist/auth-logger.d.ts +28 -0
- package/dist/auth-logger.d.ts.map +1 -0
- package/dist/auth-logger.js +53 -0
- package/dist/auth-logger.js.map +1 -0
- package/dist/auth-password-secret.d.ts +59 -0
- package/dist/auth-password-secret.d.ts.map +1 -0
- package/dist/auth-password-secret.js +409 -0
- package/dist/auth-password-secret.js.map +1 -0
- package/dist/auth-schema.d.ts +120 -0
- package/dist/auth-schema.d.ts.map +1 -0
- package/dist/auth-schema.js +285 -0
- package/dist/auth-schema.js.map +1 -0
- package/dist/auth.d.ts +321 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +1562 -0
- package/dist/auth.js.map +1 -0
- package/dist/backup-archive.d.ts +257 -0
- package/dist/backup-archive.d.ts.map +1 -0
- package/dist/backup-archive.js +2068 -0
- package/dist/backup-archive.js.map +1 -0
- package/dist/backup-crypto.d.ts +313 -0
- package/dist/backup-crypto.d.ts.map +1 -0
- package/dist/backup-crypto.js +693 -0
- package/dist/backup-crypto.js.map +1 -0
- package/dist/backup-format.d.ts +200 -0
- package/dist/backup-format.d.ts.map +1 -0
- package/dist/backup-format.js +1247 -0
- package/dist/backup-format.js.map +1 -0
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +15 -0
- package/dist/cli.js.map +1 -0
- package/dist/clock.d.ts +35 -0
- package/dist/clock.d.ts.map +1 -0
- package/dist/clock.js +83 -0
- package/dist/clock.js.map +1 -0
- package/dist/data-client.d.ts +187 -0
- package/dist/data-client.d.ts.map +1 -0
- package/dist/data-client.js +590 -0
- package/dist/data-client.js.map +1 -0
- package/dist/data-secrets.d.ts +164 -0
- package/dist/data-secrets.d.ts.map +1 -0
- package/dist/data-secrets.js +383 -0
- package/dist/data-secrets.js.map +1 -0
- package/dist/db.d.ts +453 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +324 -0
- package/dist/db.js.map +1 -0
- package/dist/dev-activity.d.ts +48 -0
- package/dist/dev-activity.d.ts.map +1 -0
- package/dist/dev-activity.js +50 -0
- package/dist/dev-activity.js.map +1 -0
- package/dist/do.d.ts +429 -0
- package/dist/do.d.ts.map +1 -0
- package/dist/do.js +4526 -0
- package/dist/do.js.map +1 -0
- package/dist/email.d.ts +137 -0
- package/dist/email.d.ts.map +1 -0
- package/dist/email.js +527 -0
- package/dist/email.js.map +1 -0
- package/dist/generated/admin-assets.d.ts +16 -0
- package/dist/generated/admin-assets.d.ts.map +1 -0
- package/dist/generated/admin-assets.js +16 -0
- package/dist/generated/admin-assets.js.map +1 -0
- package/dist/generated/admin-docs-assets.d.ts +3 -0
- package/dist/generated/admin-docs-assets.d.ts.map +1 -0
- package/dist/generated/admin-docs-assets.js +3 -0
- package/dist/generated/admin-docs-assets.js.map +1 -0
- package/dist/handoff-consumer.d.ts +79 -0
- package/dist/handoff-consumer.d.ts.map +1 -0
- package/dist/handoff-consumer.js +300 -0
- package/dist/handoff-consumer.js.map +1 -0
- package/dist/handoff.d.ts +70 -0
- package/dist/handoff.d.ts.map +1 -0
- package/dist/handoff.js +228 -0
- package/dist/handoff.js.map +1 -0
- package/dist/host-auth.d.ts +47 -0
- package/dist/host-auth.d.ts.map +1 -0
- package/dist/host-auth.js +59 -0
- package/dist/host-auth.js.map +1 -0
- package/dist/host-user.d.ts +15 -0
- package/dist/host-user.d.ts.map +1 -0
- package/dist/host-user.js +23 -0
- package/dist/host-user.js.map +1 -0
- package/dist/html.d.ts +35 -0
- package/dist/html.d.ts.map +1 -0
- package/dist/html.js +634 -0
- package/dist/html.js.map +1 -0
- package/dist/http-error.d.ts +13 -0
- package/dist/http-error.d.ts.map +1 -0
- package/dist/http-error.js +15 -0
- package/dist/http-error.js.map +1 -0
- package/dist/imports.d.ts +219 -0
- package/dist/imports.d.ts.map +1 -0
- package/dist/imports.js +571 -0
- package/dist/imports.js.map +1 -0
- package/dist/index.d.ts +78 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/inference-tape.d.ts +64 -0
- package/dist/inference-tape.d.ts.map +1 -0
- package/dist/inference-tape.js +278 -0
- package/dist/inference-tape.js.map +1 -0
- package/dist/internal.d.ts +15 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +48 -0
- package/dist/internal.js.map +1 -0
- package/dist/jobs.d.ts +796 -0
- package/dist/jobs.d.ts.map +1 -0
- package/dist/jobs.js +538 -0
- package/dist/jobs.js.map +1 -0
- package/dist/json-schema.d.ts +91 -0
- package/dist/json-schema.d.ts.map +1 -0
- package/dist/json-schema.js +884 -0
- package/dist/json-schema.js.map +1 -0
- package/dist/knowledge.d.ts +33 -0
- package/dist/knowledge.d.ts.map +1 -0
- package/dist/knowledge.js +348 -0
- package/dist/knowledge.js.map +1 -0
- package/dist/local-dev-chrome.d.ts +29 -0
- package/dist/local-dev-chrome.d.ts.map +1 -0
- package/dist/local-dev-chrome.js +514 -0
- package/dist/local-dev-chrome.js.map +1 -0
- package/dist/local-dev-personas.d.ts +15 -0
- package/dist/local-dev-personas.d.ts.map +1 -0
- package/dist/local-dev-personas.js +46 -0
- package/dist/local-dev-personas.js.map +1 -0
- package/dist/mcp.d.ts +567 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +2480 -0
- package/dist/mcp.js.map +1 -0
- package/dist/modules.d.ts +145 -0
- package/dist/modules.d.ts.map +1 -0
- package/dist/modules.js +164 -0
- package/dist/modules.js.map +1 -0
- package/dist/notification-client.d.ts +94 -0
- package/dist/notification-client.d.ts.map +1 -0
- package/dist/notification-client.js +127 -0
- package/dist/notification-client.js.map +1 -0
- package/dist/notifications.d.ts +447 -0
- package/dist/notifications.d.ts.map +1 -0
- package/dist/notifications.js +1625 -0
- package/dist/notifications.js.map +1 -0
- package/dist/operator-data-query.d.ts +117 -0
- package/dist/operator-data-query.d.ts.map +1 -0
- package/dist/operator-data-query.js +431 -0
- package/dist/operator-data-query.js.map +1 -0
- package/dist/operator-mcp.d.ts +63 -0
- package/dist/operator-mcp.d.ts.map +1 -0
- package/dist/operator-mcp.js +2828 -0
- package/dist/operator-mcp.js.map +1 -0
- package/dist/outbound-https.d.ts +24 -0
- package/dist/outbound-https.d.ts.map +1 -0
- package/dist/outbound-https.js +172 -0
- package/dist/outbound-https.js.map +1 -0
- package/dist/pitr.d.ts +60 -0
- package/dist/pitr.d.ts.map +1 -0
- package/dist/pitr.js +94 -0
- package/dist/pitr.js.map +1 -0
- package/dist/platform.d.ts +199 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +196 -0
- package/dist/platform.js.map +1 -0
- package/dist/policies.d.ts +115 -0
- package/dist/policies.d.ts.map +1 -0
- package/dist/policies.js +158 -0
- package/dist/policies.js.map +1 -0
- package/dist/principal.d.ts +143 -0
- package/dist/principal.d.ts.map +1 -0
- package/dist/principal.js +174 -0
- package/dist/principal.js.map +1 -0
- package/dist/realtime.d.ts +280 -0
- package/dist/realtime.d.ts.map +1 -0
- package/dist/realtime.js +578 -0
- package/dist/realtime.js.map +1 -0
- package/dist/retrieval.d.ts +263 -0
- package/dist/retrieval.d.ts.map +1 -0
- package/dist/retrieval.js +602 -0
- package/dist/retrieval.js.map +1 -0
- package/dist/runtime-error-client.d.ts +10 -0
- package/dist/runtime-error-client.d.ts.map +1 -0
- package/dist/runtime-error-client.js +70 -0
- package/dist/runtime-error-client.js.map +1 -0
- package/dist/runtime-errors.d.ts +180 -0
- package/dist/runtime-errors.d.ts.map +1 -0
- package/dist/runtime-errors.js +572 -0
- package/dist/runtime-errors.js.map +1 -0
- package/dist/schema.d.ts +434 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +232 -0
- package/dist/schema.js.map +1 -0
- package/dist/search.d.ts +216 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +785 -0
- package/dist/search.js.map +1 -0
- package/dist/settings.d.ts +191 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +478 -0
- package/dist/settings.js.map +1 -0
- package/dist/sql.d.ts +7 -0
- package/dist/sql.d.ts.map +1 -0
- package/dist/sql.js +30 -0
- package/dist/sql.js.map +1 -0
- package/dist/storage-client.d.ts +69 -0
- package/dist/storage-client.d.ts.map +1 -0
- package/dist/storage-client.js +469 -0
- package/dist/storage-client.js.map +1 -0
- package/dist/storage.d.ts +21 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +82 -0
- package/dist/storage.js.map +1 -0
- package/dist/subject-domains.d.ts +15 -0
- package/dist/subject-domains.d.ts.map +1 -0
- package/dist/subject-domains.js +38 -0
- package/dist/subject-domains.js.map +1 -0
- package/dist/support.d.ts +132 -0
- package/dist/support.d.ts.map +1 -0
- package/dist/support.js +483 -0
- package/dist/support.js.map +1 -0
- package/dist/system-tables.d.ts +12 -0
- package/dist/system-tables.d.ts.map +1 -0
- package/dist/system-tables.js +225 -0
- package/dist/system-tables.js.map +1 -0
- package/dist/test.d.ts +57 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +454 -0
- package/dist/test.js.map +1 -0
- package/dist/vite.d.ts +82 -0
- package/dist/vite.d.ts.map +1 -0
- package/dist/vite.js +82 -0
- package/dist/vite.js.map +1 -0
- package/dist/webpush-crypto.d.ts +39 -0
- package/dist/webpush-crypto.d.ts.map +1 -0
- package/dist/webpush-crypto.js +213 -0
- package/dist/webpush-crypto.js.map +1 -0
- package/dist/webpush-private.d.ts +11 -0
- package/dist/webpush-private.d.ts.map +1 -0
- package/dist/webpush-private.js +11 -0
- package/dist/webpush-private.js.map +1 -0
- package/dist/webpush.d.ts +86 -0
- package/dist/webpush.d.ts.map +1 -0
- package/dist/webpush.js +375 -0
- package/dist/webpush.js.map +1 -0
- package/dist/worker.d.ts +185 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +13021 -0
- package/dist/worker.js.map +1 -0
- package/package.json +161 -8
- package/README.md +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-remote-mcp-install.js","sourceRoot":"","sources":["../src/agent-remote-mcp-install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { SqlExecutor } from "./db.js";
|
|
2
|
+
import { type RemoteMcpSafeCredentialStatus } from "./agent-remote-mcp-credentials.js";
|
|
3
|
+
export type RemoteMcpOAuthDiscovery = {
|
|
4
|
+
resource: string;
|
|
5
|
+
protectedResourceMetadataUrl: string;
|
|
6
|
+
authorizationServers: string[];
|
|
7
|
+
selectedIssuer: string;
|
|
8
|
+
authorizationEndpoint: string;
|
|
9
|
+
tokenEndpoint: string;
|
|
10
|
+
registrationEndpoint: string | null;
|
|
11
|
+
scopesSupported: string[];
|
|
12
|
+
codeChallengeMethodsSupported: string[];
|
|
13
|
+
tokenEndpointAuthMethodsSupported: string[];
|
|
14
|
+
clientId: string | null;
|
|
15
|
+
};
|
|
16
|
+
export type RemoteMcpOAuthClientInput = {
|
|
17
|
+
clientId?: string;
|
|
18
|
+
clientSecret?: string;
|
|
19
|
+
redirectUri: string;
|
|
20
|
+
scopes?: string[];
|
|
21
|
+
};
|
|
22
|
+
export declare function discoverRemoteMcpOAuth(input: {
|
|
23
|
+
endpoint: string;
|
|
24
|
+
authorizationServer?: string;
|
|
25
|
+
clientId?: string;
|
|
26
|
+
fetcher?: typeof fetch;
|
|
27
|
+
signal?: AbortSignal;
|
|
28
|
+
}): Promise<RemoteMcpOAuthDiscovery>;
|
|
29
|
+
export declare function beginRemoteMcpOAuthConnect(input: {
|
|
30
|
+
control: SqlExecutor;
|
|
31
|
+
key: string;
|
|
32
|
+
serverName: string;
|
|
33
|
+
discovery: RemoteMcpOAuthDiscovery;
|
|
34
|
+
client: RemoteMcpOAuthClientInput;
|
|
35
|
+
actor: string;
|
|
36
|
+
fetcher?: typeof fetch;
|
|
37
|
+
signal?: AbortSignal;
|
|
38
|
+
}): Promise<{
|
|
39
|
+
authorizationUrl: string;
|
|
40
|
+
expiresAt: string;
|
|
41
|
+
targetGeneration: number;
|
|
42
|
+
status: RemoteMcpSafeCredentialStatus | null;
|
|
43
|
+
}>;
|
|
44
|
+
export declare function completeRemoteMcpOAuthCallback(input: {
|
|
45
|
+
control: SqlExecutor;
|
|
46
|
+
key: string;
|
|
47
|
+
state: string;
|
|
48
|
+
code: string;
|
|
49
|
+
actor?: string;
|
|
50
|
+
fetcher?: typeof fetch;
|
|
51
|
+
signal?: AbortSignal;
|
|
52
|
+
}): Promise<{
|
|
53
|
+
serverName: string;
|
|
54
|
+
status: RemoteMcpSafeCredentialStatus;
|
|
55
|
+
}>;
|
|
56
|
+
export declare function consumeRemoteMcpOAuthErrorCallback(input: {
|
|
57
|
+
control: SqlExecutor;
|
|
58
|
+
key: string;
|
|
59
|
+
state: string;
|
|
60
|
+
}): Promise<{
|
|
61
|
+
serverName: string;
|
|
62
|
+
}>;
|
|
63
|
+
export declare function refreshRemoteMcpOAuth(input: {
|
|
64
|
+
control: SqlExecutor;
|
|
65
|
+
key: string;
|
|
66
|
+
serverName: string;
|
|
67
|
+
actor?: string;
|
|
68
|
+
expectedRevision?: number;
|
|
69
|
+
fetcher?: typeof fetch;
|
|
70
|
+
signal?: AbortSignal;
|
|
71
|
+
}): Promise<RemoteMcpSafeCredentialStatus>;
|
|
72
|
+
export declare function bearerChallengeParameter(header: string | null, name: string): string | null;
|
|
73
|
+
//# sourceMappingURL=agent-remote-mcp-oauth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-remote-mcp-oauth.d.ts","sourceRoot":"","sources":["../src/agent-remote-mcp-oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
import { fetchOutboundHardened, validateOutboundHttpsUrl } from "./outbound-https.js";
|
|
2
|
+
import { RemoteMcpCredentialStore } from "./agent-remote-mcp-credentials.js";
|
|
3
|
+
import { randomRemoteMcpSecret, RemoteMcpCredentialError } from "./agent-remote-mcp-crypto.js";
|
|
4
|
+
import { randomId } from "./sql.js";
|
|
5
|
+
const metadataBytes = 64_000;
|
|
6
|
+
export async function discoverRemoteMcpOAuth(input) {
|
|
7
|
+
const endpoint = validateOutboundHttpsUrl(input.endpoint);
|
|
8
|
+
const challenge = await fetchOutboundHardened(endpoint, {
|
|
9
|
+
fetcher: input.fetcher, method: "POST", headers: { "content-type": "application/json", accept: "application/json" },
|
|
10
|
+
body: JSON.stringify({ jsonrpc: "2.0", id: randomId("mcp_oauth_probe"), method: "tools/list", params: {} }),
|
|
11
|
+
signal: input.signal, timeoutMs: 10_000, maxBytes: 16_000, maxRedirects: 0, allowedOrigins: [endpoint.origin]
|
|
12
|
+
});
|
|
13
|
+
if (challenge.response.status !== 401)
|
|
14
|
+
throw new Error("Remote MCP OAuth discovery expected a Bearer challenge");
|
|
15
|
+
const metadataUrlText = bearerChallengeParameter(challenge.response.headers.get("www-authenticate"), "resource_metadata");
|
|
16
|
+
if (!metadataUrlText)
|
|
17
|
+
throw new Error("Remote MCP Bearer challenge omitted resource_metadata");
|
|
18
|
+
const metadataUrl = validateOutboundHttpsUrl(metadataUrlText);
|
|
19
|
+
const resourceMetadata = await fetchJsonObject(metadataUrl, input.fetcher, input.signal);
|
|
20
|
+
if (resourceMetadata.resource !== endpoint.href)
|
|
21
|
+
throw new Error("Remote MCP protected resource metadata does not identify the configured endpoint");
|
|
22
|
+
const issuers = stringArray(resourceMetadata.authorization_servers).map((value) => validateOutboundHttpsUrl(value).href.replace(/\/$/, ""));
|
|
23
|
+
if (!issuers.length)
|
|
24
|
+
throw new Error("Remote MCP protected resource metadata listed no authorization server");
|
|
25
|
+
let selectedIssuer;
|
|
26
|
+
if (input.authorizationServer) {
|
|
27
|
+
const requested = validateOutboundHttpsUrl(input.authorizationServer).href.replace(/\/$/, "");
|
|
28
|
+
if (!issuers.includes(requested))
|
|
29
|
+
throw new Error("Selected authorization server is not listed by the protected resource");
|
|
30
|
+
selectedIssuer = requested;
|
|
31
|
+
}
|
|
32
|
+
else if (issuers.length === 1)
|
|
33
|
+
selectedIssuer = issuers[0];
|
|
34
|
+
else {
|
|
35
|
+
const error = new Error("Remote MCP resource lists multiple authorization servers; select one explicitly");
|
|
36
|
+
error.authorizationServers = issuers;
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
const issuer = validateOutboundHttpsUrl(selectedIssuer);
|
|
40
|
+
const metadataCandidates = [
|
|
41
|
+
new URL(`/.well-known/oauth-authorization-server${issuer.pathname === "/" ? "" : issuer.pathname}`, issuer.origin),
|
|
42
|
+
new URL(`${issuer.pathname.replace(/\/$/, "")}/.well-known/openid-configuration`, issuer.origin)
|
|
43
|
+
];
|
|
44
|
+
let authorizationMetadata = null;
|
|
45
|
+
for (const candidate of metadataCandidates) {
|
|
46
|
+
try {
|
|
47
|
+
authorizationMetadata = await fetchJsonObject(candidate, input.fetcher, input.signal);
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
catch { /* try OIDC metadata */ }
|
|
51
|
+
}
|
|
52
|
+
if (!authorizationMetadata)
|
|
53
|
+
throw new Error("Remote MCP authorization-server metadata could not be loaded");
|
|
54
|
+
const advertisedIssuer = typeof authorizationMetadata.issuer === "string" ? validateOutboundHttpsUrl(authorizationMetadata.issuer).href.replace(/\/$/, "") : "";
|
|
55
|
+
if (advertisedIssuer !== selectedIssuer)
|
|
56
|
+
throw new Error("Remote MCP authorization-server metadata issuer mismatch");
|
|
57
|
+
const authorizationEndpoint = exactEndpoint(authorizationMetadata.authorization_endpoint, "authorization_endpoint");
|
|
58
|
+
const tokenEndpoint = exactEndpoint(authorizationMetadata.token_endpoint, "token_endpoint");
|
|
59
|
+
const registrationEndpoint = authorizationMetadata.registration_endpoint === undefined ? null : exactEndpoint(authorizationMetadata.registration_endpoint, "registration_endpoint");
|
|
60
|
+
const codeChallengeMethodsSupported = stringArray(authorizationMetadata.code_challenge_methods_supported);
|
|
61
|
+
if (!codeChallengeMethodsSupported.includes("S256"))
|
|
62
|
+
throw new Error("Remote MCP authorization server does not support S256 PKCE");
|
|
63
|
+
const tokenEndpointAuthMethodsSupported = stringArray(authorizationMetadata.token_endpoint_auth_methods_supported);
|
|
64
|
+
return {
|
|
65
|
+
resource: endpoint.href,
|
|
66
|
+
protectedResourceMetadataUrl: metadataUrl.href,
|
|
67
|
+
authorizationServers: issuers,
|
|
68
|
+
selectedIssuer,
|
|
69
|
+
authorizationEndpoint,
|
|
70
|
+
tokenEndpoint,
|
|
71
|
+
registrationEndpoint,
|
|
72
|
+
scopesSupported: stringArray(authorizationMetadata.scopes_supported),
|
|
73
|
+
codeChallengeMethodsSupported,
|
|
74
|
+
tokenEndpointAuthMethodsSupported: tokenEndpointAuthMethodsSupported.length ? tokenEndpointAuthMethodsSupported : ["none"],
|
|
75
|
+
clientId: input.clientId ?? null
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
export async function beginRemoteMcpOAuthConnect(input) {
|
|
79
|
+
const store = new RemoteMcpCredentialStore(input.control, input.key);
|
|
80
|
+
const current = await store.status(input.serverName);
|
|
81
|
+
const generation = (current?.generation ?? 0) + 1;
|
|
82
|
+
const selectedClientId = input.client.clientId ?? input.discovery.clientId ?? undefined;
|
|
83
|
+
const registration = selectedClientId
|
|
84
|
+
? { clientId: selectedClientId, clientSecret: input.client.clientSecret, authMethod: chooseAuthMethod(input.discovery, Boolean(input.client.clientSecret)) }
|
|
85
|
+
: await registerClient(input.discovery, input.client.redirectUri, input.fetcher, input.signal);
|
|
86
|
+
const verifier = randomRemoteMcpSecret(48);
|
|
87
|
+
const challenge = await pkceChallenge(verifier);
|
|
88
|
+
const scopes = normalizeScopes(input.client.scopes, input.discovery.scopesSupported);
|
|
89
|
+
const pending = {
|
|
90
|
+
verifier,
|
|
91
|
+
redirectUri: validateCallbackUri(input.client.redirectUri),
|
|
92
|
+
resource: input.discovery.resource,
|
|
93
|
+
issuer: input.discovery.selectedIssuer,
|
|
94
|
+
tokenEndpoint: input.discovery.tokenEndpoint,
|
|
95
|
+
authorizationEndpoint: input.discovery.authorizationEndpoint,
|
|
96
|
+
scopes,
|
|
97
|
+
clientId: registration.clientId,
|
|
98
|
+
...(registration.clientSecret ? { clientSecret: registration.clientSecret } : {}),
|
|
99
|
+
authMethod: registration.authMethod
|
|
100
|
+
};
|
|
101
|
+
const state = await store.createPendingOAuth({ serverName: input.serverName, generation, pending, actor: input.actor });
|
|
102
|
+
const url = new URL(input.discovery.authorizationEndpoint);
|
|
103
|
+
url.searchParams.set("response_type", "code");
|
|
104
|
+
url.searchParams.set("client_id", registration.clientId);
|
|
105
|
+
url.searchParams.set("redirect_uri", pending.redirectUri);
|
|
106
|
+
url.searchParams.set("code_challenge", challenge);
|
|
107
|
+
url.searchParams.set("code_challenge_method", "S256");
|
|
108
|
+
url.searchParams.set("state", state.state);
|
|
109
|
+
url.searchParams.set("resource", input.discovery.resource);
|
|
110
|
+
if (scopes.length)
|
|
111
|
+
url.searchParams.set("scope", scopes.join(" "));
|
|
112
|
+
return { authorizationUrl: url.href, expiresAt: state.expiresAt, targetGeneration: generation, status: current };
|
|
113
|
+
}
|
|
114
|
+
export async function completeRemoteMcpOAuthCallback(input) {
|
|
115
|
+
if (!input.state || input.state.length > 1024 || !input.code || input.code.length > 4096)
|
|
116
|
+
throw new Error("Remote MCP OAuth callback parameters are invalid");
|
|
117
|
+
const store = new RemoteMcpCredentialStore(input.control, input.key);
|
|
118
|
+
const consumed = await store.consumePendingOAuth(input.state);
|
|
119
|
+
const current = await store.status(consumed.serverName);
|
|
120
|
+
if (consumed.generation !== (current?.generation ?? 0) + 1) {
|
|
121
|
+
throw new Error("Remote MCP OAuth connection was superseded by a newer credential change");
|
|
122
|
+
}
|
|
123
|
+
const token = await tokenRequest(consumed.pending, {
|
|
124
|
+
grant_type: "authorization_code",
|
|
125
|
+
code: input.code,
|
|
126
|
+
redirect_uri: consumed.pending.redirectUri,
|
|
127
|
+
code_verifier: consumed.pending.verifier,
|
|
128
|
+
resource: consumed.pending.resource
|
|
129
|
+
}, input.fetcher, input.signal);
|
|
130
|
+
const tokens = tokenPayload(consumed.pending, token);
|
|
131
|
+
const status = await store.writeOAuth({
|
|
132
|
+
serverName: consumed.serverName,
|
|
133
|
+
tokens,
|
|
134
|
+
actor: input.actor ?? "oauth-callback",
|
|
135
|
+
expectedRevision: current?.revision ?? 0
|
|
136
|
+
});
|
|
137
|
+
return { serverName: consumed.serverName, status };
|
|
138
|
+
}
|
|
139
|
+
export async function consumeRemoteMcpOAuthErrorCallback(input) {
|
|
140
|
+
if (!input.state || input.state.length > 1024)
|
|
141
|
+
throw new Error("Remote MCP OAuth callback parameters are invalid");
|
|
142
|
+
const consumed = await new RemoteMcpCredentialStore(input.control, input.key).consumePendingOAuth(input.state);
|
|
143
|
+
return { serverName: consumed.serverName };
|
|
144
|
+
}
|
|
145
|
+
export async function refreshRemoteMcpOAuth(input) {
|
|
146
|
+
const store = new RemoteMcpCredentialStore(input.control, input.key);
|
|
147
|
+
const current = await store.readOAuth(input.serverName);
|
|
148
|
+
if (input.expectedRevision !== undefined && current?.status.revision !== input.expectedRevision) {
|
|
149
|
+
throw new RemoteMcpCredentialError("Remote MCP OAuth credential changed before refresh");
|
|
150
|
+
}
|
|
151
|
+
if (!current || current.status.state !== "ready")
|
|
152
|
+
throw new Error("Remote MCP OAuth credential needs reconnection");
|
|
153
|
+
if (!current.tokens.refreshToken)
|
|
154
|
+
return store.markReauthRequired(input.serverName, input.actor, current.status.revision);
|
|
155
|
+
const owner = randomId("mcp_refresh");
|
|
156
|
+
const acquired = await store.acquireRefreshLease(input.serverName, current.status.revision, owner);
|
|
157
|
+
if (!acquired) {
|
|
158
|
+
const changed = await store.waitForRevisionChange(input.serverName, current.status.revision);
|
|
159
|
+
if (!changed || changed.revision === current.status.revision)
|
|
160
|
+
throw new Error("Remote MCP OAuth refresh is already in progress");
|
|
161
|
+
return changed;
|
|
162
|
+
}
|
|
163
|
+
try {
|
|
164
|
+
const pending = {
|
|
165
|
+
verifier: "", redirectUri: "", resource: current.tokens.resource, issuer: current.tokens.issuer,
|
|
166
|
+
tokenEndpoint: current.tokens.tokenEndpoint, authorizationEndpoint: "", scopes: current.tokens.scopes ?? [],
|
|
167
|
+
clientId: current.tokens.clientId, ...(current.tokens.clientSecret ? { clientSecret: current.tokens.clientSecret } : {}),
|
|
168
|
+
authMethod: current.tokens.authMethod
|
|
169
|
+
};
|
|
170
|
+
let response;
|
|
171
|
+
try {
|
|
172
|
+
response = await tokenRequest(pending, { grant_type: "refresh_token", refresh_token: current.tokens.refreshToken, resource: current.tokens.resource }, input.fetcher, input.signal);
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
if (error instanceof OAuthTokenError && error.terminal)
|
|
176
|
+
return store.markReauthRequired(input.serverName, input.actor, current.status.revision);
|
|
177
|
+
throw error;
|
|
178
|
+
}
|
|
179
|
+
const next = tokenPayload(pending, response, current.tokens.refreshToken);
|
|
180
|
+
return store.writeOAuth({ serverName: input.serverName, tokens: next, actor: input.actor ?? "runtime-refresh", expectedRevision: current.status.revision, refresh: true });
|
|
181
|
+
}
|
|
182
|
+
finally {
|
|
183
|
+
await store.releaseRefreshLease(input.serverName, current.status.revision, owner);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
class OAuthTokenError extends Error {
|
|
187
|
+
terminal;
|
|
188
|
+
constructor(message, terminal) {
|
|
189
|
+
super(message);
|
|
190
|
+
this.terminal = terminal;
|
|
191
|
+
this.name = "OAuthTokenError";
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
async function registerClient(discovery, redirectUri, fetcher, signal) {
|
|
195
|
+
if (!discovery.registrationEndpoint)
|
|
196
|
+
throw new Error("Remote MCP OAuth connection requires a pre-registered client_id");
|
|
197
|
+
const requestedMethod = discovery.tokenEndpointAuthMethodsSupported.includes("none") ? "none"
|
|
198
|
+
: discovery.tokenEndpointAuthMethodsSupported.includes("client_secret_basic") ? "client_secret_basic"
|
|
199
|
+
: discovery.tokenEndpointAuthMethodsSupported.includes("client_secret_post") ? "client_secret_post"
|
|
200
|
+
: null;
|
|
201
|
+
if (!requestedMethod)
|
|
202
|
+
throw new Error("Remote MCP OAuth authorization server advertises no supported client authentication method");
|
|
203
|
+
const result = await fetchJsonObject(discovery.registrationEndpoint, fetcher, signal, {
|
|
204
|
+
method: "POST",
|
|
205
|
+
headers: { "content-type": "application/json", accept: "application/json" },
|
|
206
|
+
body: JSON.stringify({ redirect_uris: [validateCallbackUri(redirectUri)], token_endpoint_auth_method: requestedMethod, grant_types: ["authorization_code", "refresh_token"], response_types: ["code"], client_name: "Raybase" })
|
|
207
|
+
});
|
|
208
|
+
if (typeof result.client_id !== "string" || !result.client_id)
|
|
209
|
+
throw new Error("Remote MCP dynamic client registration returned no client_id");
|
|
210
|
+
const method = result.token_endpoint_auth_method === "client_secret_basic" || result.token_endpoint_auth_method === "client_secret_post" || result.token_endpoint_auth_method === "none" ? result.token_endpoint_auth_method : requestedMethod;
|
|
211
|
+
const secret = typeof result.client_secret === "string" && result.client_secret ? result.client_secret : undefined;
|
|
212
|
+
if (method !== "none" && !secret)
|
|
213
|
+
throw new Error("Remote MCP dynamic client registration omitted the client secret");
|
|
214
|
+
return { clientId: result.client_id, ...(secret ? { clientSecret: secret } : {}), authMethod: method };
|
|
215
|
+
}
|
|
216
|
+
async function tokenRequest(pending, fields, fetcher, signal) {
|
|
217
|
+
const body = new URLSearchParams({ ...fields, client_id: pending.clientId });
|
|
218
|
+
const headers = new Headers({ "content-type": "application/x-www-form-urlencoded", accept: "application/json" });
|
|
219
|
+
if (pending.authMethod === "client_secret_basic") {
|
|
220
|
+
if (!pending.clientSecret)
|
|
221
|
+
throw new Error("Remote MCP OAuth client secret is unavailable");
|
|
222
|
+
headers.set("authorization", `Basic ${btoa(`${formEncode(pending.clientId)}:${formEncode(pending.clientSecret)}`)}`);
|
|
223
|
+
body.delete("client_id");
|
|
224
|
+
}
|
|
225
|
+
else if (pending.authMethod === "client_secret_post") {
|
|
226
|
+
if (!pending.clientSecret)
|
|
227
|
+
throw new Error("Remote MCP OAuth client secret is unavailable");
|
|
228
|
+
body.set("client_secret", pending.clientSecret);
|
|
229
|
+
}
|
|
230
|
+
const endpoint = validateOutboundHttpsUrl(pending.tokenEndpoint);
|
|
231
|
+
const fetched = await fetchOutboundHardened(endpoint, {
|
|
232
|
+
fetcher, method: "POST", headers, body, signal, timeoutMs: 15_000, maxBytes: metadataBytes, maxRedirects: 0,
|
|
233
|
+
allowedOrigins: [endpoint.origin], allowedContentTypes: ["application/json"]
|
|
234
|
+
});
|
|
235
|
+
let payload = {};
|
|
236
|
+
try {
|
|
237
|
+
payload = JSON.parse(new TextDecoder().decode(fetched.bytes));
|
|
238
|
+
}
|
|
239
|
+
catch { /* safe generic error below */ }
|
|
240
|
+
if (!fetched.response.ok || typeof payload.access_token !== "string") {
|
|
241
|
+
const code = typeof payload.error === "string" ? payload.error : "";
|
|
242
|
+
throw new OAuthTokenError("Remote MCP OAuth token endpoint rejected the request", ["invalid_grant", "invalid_client", "unauthorized_client"].includes(code));
|
|
243
|
+
}
|
|
244
|
+
if (typeof payload.token_type !== "string" || payload.token_type.toLowerCase() !== "bearer") {
|
|
245
|
+
throw new OAuthTokenError("Remote MCP OAuth token endpoint returned an unsupported token type", true);
|
|
246
|
+
}
|
|
247
|
+
return payload;
|
|
248
|
+
}
|
|
249
|
+
function formEncode(value) {
|
|
250
|
+
return new URLSearchParams({ value }).toString().slice("value=".length);
|
|
251
|
+
}
|
|
252
|
+
function tokenPayload(pending, payload, priorRefreshToken) {
|
|
253
|
+
const expiresIn = typeof payload.expires_in === "number" && Number.isFinite(payload.expires_in) ? Math.max(0, payload.expires_in) : null;
|
|
254
|
+
return {
|
|
255
|
+
accessToken: String(payload.access_token),
|
|
256
|
+
...(typeof payload.refresh_token === "string" ? { refreshToken: payload.refresh_token } : priorRefreshToken ? { refreshToken: priorRefreshToken } : {}),
|
|
257
|
+
clientId: pending.clientId,
|
|
258
|
+
...(pending.clientSecret ? { clientSecret: pending.clientSecret } : {}),
|
|
259
|
+
tokenEndpoint: pending.tokenEndpoint,
|
|
260
|
+
issuer: pending.issuer,
|
|
261
|
+
resource: pending.resource,
|
|
262
|
+
authMethod: pending.authMethod,
|
|
263
|
+
...(expiresIn !== null ? { expiresAt: new Date(Date.now() + expiresIn * 1000).toISOString() } : {}),
|
|
264
|
+
...(typeof payload.scope === "string" ? { scopes: payload.scope.split(/\s+/).filter(Boolean) } : pending.scopes.length ? { scopes: pending.scopes } : {}),
|
|
265
|
+
...(typeof payload.sub === "string" ? { subject: payload.sub } : {})
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
async function fetchJsonObject(urlValue, fetcher, signal, overrides = {}) {
|
|
269
|
+
const url = validateOutboundHttpsUrl(urlValue);
|
|
270
|
+
const fetched = await fetchOutboundHardened(url, {
|
|
271
|
+
fetcher, method: overrides.method ?? "GET", headers: overrides.headers ?? { accept: "application/json" }, body: overrides.body,
|
|
272
|
+
signal, timeoutMs: 10_000, maxBytes: metadataBytes, maxRedirects: 0, allowedOrigins: [url.origin], allowedContentTypes: ["application/json"]
|
|
273
|
+
});
|
|
274
|
+
if (!fetched.response.ok)
|
|
275
|
+
throw new Error(`Remote MCP OAuth metadata returned HTTP ${fetched.response.status}`);
|
|
276
|
+
try {
|
|
277
|
+
const parsed = JSON.parse(new TextDecoder().decode(fetched.bytes));
|
|
278
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
|
|
279
|
+
throw new Error("object");
|
|
280
|
+
return parsed;
|
|
281
|
+
}
|
|
282
|
+
catch {
|
|
283
|
+
throw new Error("Remote MCP OAuth metadata returned invalid JSON");
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
export function bearerChallengeParameter(header, name) {
|
|
287
|
+
if (!header)
|
|
288
|
+
return null;
|
|
289
|
+
const bearer = /(?:^|,)\s*Bearer(?:\s|$)/i.exec(header);
|
|
290
|
+
if (!bearer)
|
|
291
|
+
return null;
|
|
292
|
+
const bearerOffset = bearer.index + bearer[0].toLowerCase().lastIndexOf("bearer") + "bearer".length;
|
|
293
|
+
const parameters = header.slice(bearerOffset);
|
|
294
|
+
const pattern = new RegExp(`(?:^|,)\\s*${name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\s*=\\s*(?:\"((?:[^\"\\\\]|\\\\.)*)\"|([^,\\s]+))`, "i");
|
|
295
|
+
const match = pattern.exec(parameters);
|
|
296
|
+
if (!match)
|
|
297
|
+
return null;
|
|
298
|
+
return match[1] !== undefined ? match[1].replace(/\\(.)/g, "$1") : match[2] ?? null;
|
|
299
|
+
}
|
|
300
|
+
function exactEndpoint(value, field) {
|
|
301
|
+
if (typeof value !== "string")
|
|
302
|
+
throw new Error(`Remote MCP authorization metadata omitted ${field}`);
|
|
303
|
+
return validateOutboundHttpsUrl(value).href;
|
|
304
|
+
}
|
|
305
|
+
function stringArray(value) {
|
|
306
|
+
return Array.isArray(value) ? value.filter((item) => typeof item === "string") : [];
|
|
307
|
+
}
|
|
308
|
+
function chooseAuthMethod(discovery, hasSecret) {
|
|
309
|
+
const supported = discovery.tokenEndpointAuthMethodsSupported;
|
|
310
|
+
if (hasSecret && supported.includes("client_secret_basic"))
|
|
311
|
+
return "client_secret_basic";
|
|
312
|
+
if (hasSecret && supported.includes("client_secret_post"))
|
|
313
|
+
return "client_secret_post";
|
|
314
|
+
if (!hasSecret && supported.includes("none"))
|
|
315
|
+
return "none";
|
|
316
|
+
throw new Error("Remote MCP OAuth client authentication method is not supported by the authorization server");
|
|
317
|
+
}
|
|
318
|
+
function normalizeScopes(requested, supported) {
|
|
319
|
+
const scopes = Array.from(new Set((requested ?? []).map((item) => item.trim()).filter(Boolean)));
|
|
320
|
+
if (supported.length)
|
|
321
|
+
for (const scope of scopes)
|
|
322
|
+
if (!supported.includes(scope))
|
|
323
|
+
throw new Error(`Remote MCP OAuth scope ${scope} is not advertised`);
|
|
324
|
+
return scopes;
|
|
325
|
+
}
|
|
326
|
+
function validateCallbackUri(value) {
|
|
327
|
+
const url = new URL(value);
|
|
328
|
+
if (url.protocol !== "https:" && !(url.protocol === "http:" && ["localhost", "127.0.0.1", "[::1]"].includes(url.hostname))) {
|
|
329
|
+
throw new Error("Remote MCP OAuth callback must use HTTPS (or loopback HTTP for local development)");
|
|
330
|
+
}
|
|
331
|
+
if (url.username || url.password || url.hash || url.pathname !== "/api/agents/remote-mcp/oauth/callback") {
|
|
332
|
+
throw new Error("Remote MCP OAuth callback URI must use the fixed Raybase callback path");
|
|
333
|
+
}
|
|
334
|
+
return url.href;
|
|
335
|
+
}
|
|
336
|
+
async function pkceChallenge(verifier) {
|
|
337
|
+
const bytes = new TextEncoder().encode(verifier);
|
|
338
|
+
const digest = new Uint8Array(await crypto.subtle.digest("SHA-256", bytes));
|
|
339
|
+
let binary = "";
|
|
340
|
+
for (const byte of digest)
|
|
341
|
+
binary += String.fromCharCode(byte);
|
|
342
|
+
return btoa(binary).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, "");
|
|
343
|
+
}
|
|
344
|
+
//# sourceMappingURL=agent-remote-mcp-oauth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-remote-mcp-oauth.js","sourceRoot":"","sources":["../src/agent-remote-mcp-oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export type RemoteMcpTransportMode = "stateless" | "sessioned";
|
|
2
|
+
type Session = {
|
|
3
|
+
id: string;
|
|
4
|
+
generation: number;
|
|
5
|
+
protocolVersion: "2025-06-18";
|
|
6
|
+
};
|
|
7
|
+
export declare class RemoteMcpSessionCoordinator {
|
|
8
|
+
#private;
|
|
9
|
+
get(serverName: string, generation: number): Session | undefined;
|
|
10
|
+
set(serverName: string, session: Session): void;
|
|
11
|
+
evict(serverName: string): void;
|
|
12
|
+
singleFlight(serverName: string, generation: number, create: () => Promise<Session>): Promise<Session>;
|
|
13
|
+
}
|
|
14
|
+
export declare class RemoteMcpTransportError extends Error {
|
|
15
|
+
readonly httpStatus?: number | undefined;
|
|
16
|
+
readonly sessionLost: boolean;
|
|
17
|
+
readonly authorization?: RemoteMcpAuthorizationIdentity | undefined;
|
|
18
|
+
constructor(message: string, httpStatus?: number | undefined, sessionLost?: boolean, authorization?: RemoteMcpAuthorizationIdentity | undefined);
|
|
19
|
+
}
|
|
20
|
+
export type RemoteMcpAuthorization = {
|
|
21
|
+
header?: string;
|
|
22
|
+
generation: number;
|
|
23
|
+
revision?: number;
|
|
24
|
+
};
|
|
25
|
+
export type RemoteMcpAuthorizationIdentity = {
|
|
26
|
+
generation: number;
|
|
27
|
+
revision?: number;
|
|
28
|
+
};
|
|
29
|
+
export declare function remoteMcpRequest(input: {
|
|
30
|
+
serverName: string;
|
|
31
|
+
endpoint: string;
|
|
32
|
+
transport?: RemoteMcpTransportMode;
|
|
33
|
+
method: string;
|
|
34
|
+
params?: unknown;
|
|
35
|
+
authorization: () => Promise<RemoteMcpAuthorization>;
|
|
36
|
+
coordinator?: RemoteMcpSessionCoordinator;
|
|
37
|
+
fetcher?: typeof fetch;
|
|
38
|
+
signal?: AbortSignal;
|
|
39
|
+
timeoutMs?: number;
|
|
40
|
+
maxBytes?: number;
|
|
41
|
+
recoveryBudget?: {
|
|
42
|
+
sessionRecoveries: number;
|
|
43
|
+
};
|
|
44
|
+
}): Promise<unknown>;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=agent-remote-mcp-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-remote-mcp-transport.d.ts","sourceRoot":"","sources":["../src/agent-remote-mcp-transport.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,WAAW,CAAC;AAE/D,KAAK,OAAO,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,YAAY,CAAA;CAAE,CAAC;AAEjF,qBAAa,2BAA2B;;IAItC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAKhE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAC/C,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAE/B,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAQvG;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAG9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM;IAC5B,QAAQ,CAAC,WAAW;IACpB,QAAQ,CAAC,aAAa,CAAC,EAAE,8BAA8B;gBAHvD,OAAO,EAAE,MAAM,EACN,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,WAAW,UAAQ,EACnB,aAAa,CAAC,EAAE,8BAA8B,YAAA;CAK1D;AAED,MAAM,MAAM,sBAAsB,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAChG,MAAM,MAAM,8BAA8B,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvF,wBAAsB,gBAAgB,CAAC,KAAK,EAAE;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACrD,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD,GAAG,OAAO,CAAC,OAAO,CAAC,CAqCnB"}
|