@raybase/core 0.0.2 → 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,225 @@
|
|
|
1
|
+
import { fetchOutboundHardened } from "./outbound-https.js";
|
|
2
|
+
import { randomId } from "./sql.js";
|
|
3
|
+
export class RemoteMcpSessionCoordinator {
|
|
4
|
+
#sessions = new Map();
|
|
5
|
+
#initializing = new Map();
|
|
6
|
+
get(serverName, generation) {
|
|
7
|
+
const session = this.#sessions.get(serverName);
|
|
8
|
+
return session?.generation === generation ? session : undefined;
|
|
9
|
+
}
|
|
10
|
+
set(serverName, session) { this.#sessions.set(serverName, session); }
|
|
11
|
+
evict(serverName) { this.#sessions.delete(serverName); }
|
|
12
|
+
singleFlight(serverName, generation, create) {
|
|
13
|
+
const key = `${serverName}:${generation}`;
|
|
14
|
+
const active = this.#initializing.get(key);
|
|
15
|
+
if (active)
|
|
16
|
+
return active;
|
|
17
|
+
const pending = create().finally(() => this.#initializing.delete(key));
|
|
18
|
+
this.#initializing.set(key, pending);
|
|
19
|
+
return pending;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export class RemoteMcpTransportError extends Error {
|
|
23
|
+
httpStatus;
|
|
24
|
+
sessionLost;
|
|
25
|
+
authorization;
|
|
26
|
+
constructor(message, httpStatus, sessionLost = false, authorization) {
|
|
27
|
+
super(message);
|
|
28
|
+
this.httpStatus = httpStatus;
|
|
29
|
+
this.sessionLost = sessionLost;
|
|
30
|
+
this.authorization = authorization;
|
|
31
|
+
this.name = "RemoteMcpTransportError";
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export async function remoteMcpRequest(input) {
|
|
35
|
+
const coordinator = input.coordinator ?? new RemoteMcpSessionCoordinator();
|
|
36
|
+
const mode = input.transport ?? "stateless";
|
|
37
|
+
const budget = input.recoveryBudget ?? { sessionRecoveries: 0 };
|
|
38
|
+
for (;;) {
|
|
39
|
+
const initialAuth = await input.authorization();
|
|
40
|
+
try {
|
|
41
|
+
let session;
|
|
42
|
+
let requestAuth = initialAuth;
|
|
43
|
+
if (mode === "sessioned") {
|
|
44
|
+
const cachedSession = coordinator.get(input.serverName, initialAuth.generation);
|
|
45
|
+
session = cachedSession ?? await coordinator.singleFlight(input.serverName, initialAuth.generation, () => initializeSession({ ...input, generation: initialAuth.generation, coordinator }));
|
|
46
|
+
if (session.generation !== initialAuth.generation) {
|
|
47
|
+
coordinator.evict(input.serverName);
|
|
48
|
+
throw new RemoteMcpTransportError("Remote MCP credential generation changed during session initialization");
|
|
49
|
+
}
|
|
50
|
+
if (!cachedSession) {
|
|
51
|
+
requestAuth = await input.authorization();
|
|
52
|
+
if (requestAuth.generation !== session.generation) {
|
|
53
|
+
coordinator.evict(input.serverName);
|
|
54
|
+
throw new RemoteMcpTransportError("Remote MCP credential generation changed before the request");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return await postJsonRpc({ ...input, auth: requestAuth, session, expectResponse: true });
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
if (mode === "sessioned" && error instanceof RemoteMcpTransportError && error.sessionLost && budget.sessionRecoveries === 0) {
|
|
62
|
+
budget.sessionRecoveries += 1;
|
|
63
|
+
coordinator.evict(input.serverName);
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
async function initializeSession(input) {
|
|
71
|
+
const initializeAuth = await input.authorization();
|
|
72
|
+
if (initializeAuth.generation !== input.generation) {
|
|
73
|
+
throw new RemoteMcpTransportError("Remote MCP credential generation changed before session initialization");
|
|
74
|
+
}
|
|
75
|
+
const initialized = await postJsonRpc({
|
|
76
|
+
...input,
|
|
77
|
+
auth: initializeAuth,
|
|
78
|
+
transport: "sessioned",
|
|
79
|
+
method: "initialize",
|
|
80
|
+
params: {
|
|
81
|
+
protocolVersion: "2025-06-18",
|
|
82
|
+
capabilities: {},
|
|
83
|
+
clientInfo: { name: "raybase-core", version: "1" }
|
|
84
|
+
},
|
|
85
|
+
expectResponse: true,
|
|
86
|
+
captureSession: true
|
|
87
|
+
});
|
|
88
|
+
const result = initialized.value && typeof initialized.value === "object" && !Array.isArray(initialized.value)
|
|
89
|
+
? initialized.value : null;
|
|
90
|
+
if (result?.protocolVersion !== "2025-06-18")
|
|
91
|
+
throw new RemoteMcpTransportError("Remote MCP server negotiated an unsupported protocol version");
|
|
92
|
+
const capabilities = result.capabilities && typeof result.capabilities === "object" ? result.capabilities : null;
|
|
93
|
+
if (!capabilities || !("tools" in capabilities))
|
|
94
|
+
throw new RemoteMcpTransportError("Remote MCP server did not advertise tools capability");
|
|
95
|
+
const sessionId = initialized.sessionId;
|
|
96
|
+
if (!sessionId)
|
|
97
|
+
throw new RemoteMcpTransportError("Remote MCP server did not return Mcp-Session-Id");
|
|
98
|
+
const session = { id: sessionId, generation: initializeAuth.generation, protocolVersion: "2025-06-18" };
|
|
99
|
+
const notifyAuth = await input.authorization();
|
|
100
|
+
if (notifyAuth.generation !== initializeAuth.generation)
|
|
101
|
+
throw new RemoteMcpTransportError("Remote MCP credential generation changed during session initialization");
|
|
102
|
+
await postJsonRpc({
|
|
103
|
+
...input,
|
|
104
|
+
transport: "sessioned",
|
|
105
|
+
method: "notifications/initialized",
|
|
106
|
+
params: {},
|
|
107
|
+
session,
|
|
108
|
+
auth: notifyAuth,
|
|
109
|
+
expectResponse: false
|
|
110
|
+
});
|
|
111
|
+
input.coordinator.set(input.serverName, session);
|
|
112
|
+
return session;
|
|
113
|
+
}
|
|
114
|
+
async function postJsonRpc(input) {
|
|
115
|
+
const id = input.expectResponse ? randomId("mcp_rpc") : undefined;
|
|
116
|
+
const headers = new Headers({
|
|
117
|
+
"content-type": "application/json",
|
|
118
|
+
accept: "application/json, text/event-stream",
|
|
119
|
+
"mcp-protocol-version": "2025-06-18"
|
|
120
|
+
});
|
|
121
|
+
if (input.auth.header)
|
|
122
|
+
headers.set("authorization", input.auth.header);
|
|
123
|
+
if (input.session)
|
|
124
|
+
headers.set("mcp-session-id", input.session.id);
|
|
125
|
+
const payload = { jsonrpc: "2.0", method: input.method, params: input.params ?? {} };
|
|
126
|
+
if (id)
|
|
127
|
+
payload.id = id;
|
|
128
|
+
let fetched;
|
|
129
|
+
try {
|
|
130
|
+
fetched = await fetchOutboundHardened(input.endpoint, {
|
|
131
|
+
fetcher: input.fetcher,
|
|
132
|
+
method: "POST",
|
|
133
|
+
headers,
|
|
134
|
+
body: JSON.stringify(payload),
|
|
135
|
+
signal: input.signal,
|
|
136
|
+
timeoutMs: Math.min(Math.max(input.timeoutMs ?? 10_000, 100), 60_000),
|
|
137
|
+
maxBytes: Math.min(Math.max(input.maxBytes ?? 256_000, 1), 2_000_000),
|
|
138
|
+
maxRedirects: 0,
|
|
139
|
+
allowedOrigins: [new URL(input.endpoint).origin]
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
throw new RemoteMcpTransportError(error instanceof Error && error.message.includes("timed out") ? "Remote MCP request timed out" : "Remote MCP request failed");
|
|
144
|
+
}
|
|
145
|
+
const { response, bytes } = fetched;
|
|
146
|
+
const sessionLost = Boolean(input.session) && (response.status === 404 || (response.status === 400 && isSessionNotFound(bytes)));
|
|
147
|
+
if (!response.ok)
|
|
148
|
+
throw new RemoteMcpTransportError(`Remote MCP server returned HTTP ${response.status}`, response.status, sessionLost, { generation: input.auth.generation, ...(input.auth.revision === undefined ? {} : { revision: input.auth.revision }) });
|
|
149
|
+
if (!input.expectResponse)
|
|
150
|
+
return undefined;
|
|
151
|
+
const sessionId = input.captureSession ? validateSessionId(response.headers.get("mcp-session-id")) : undefined;
|
|
152
|
+
const contentType = response.headers.get("content-type")?.split(";", 1)[0]?.trim().toLowerCase();
|
|
153
|
+
const decoded = new TextDecoder().decode(bytes);
|
|
154
|
+
let message;
|
|
155
|
+
if (contentType === "application/json")
|
|
156
|
+
message = parseJson(decoded);
|
|
157
|
+
else if (contentType === "text/event-stream")
|
|
158
|
+
message = parseSse(decoded, id);
|
|
159
|
+
else
|
|
160
|
+
throw new RemoteMcpTransportError(`Remote MCP response content type ${contentType || "(missing)"} is not supported`, response.status);
|
|
161
|
+
const record = message && typeof message === "object" && !Array.isArray(message) ? message : null;
|
|
162
|
+
if (!record || record.jsonrpc !== "2.0" || record.id !== id)
|
|
163
|
+
throw new RemoteMcpTransportError("Remote MCP response did not match the outstanding JSON-RPC request", response.status);
|
|
164
|
+
if (record.error !== undefined)
|
|
165
|
+
throw new RemoteMcpTransportError("Remote MCP server returned a JSON-RPC error", response.status);
|
|
166
|
+
const value = record.result;
|
|
167
|
+
return input.captureSession ? { value, sessionId } : value;
|
|
168
|
+
}
|
|
169
|
+
function parseJson(text) {
|
|
170
|
+
try {
|
|
171
|
+
const value = JSON.parse(text);
|
|
172
|
+
if (Array.isArray(value))
|
|
173
|
+
throw new Error("batch");
|
|
174
|
+
return value;
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
throw new RemoteMcpTransportError("Remote MCP server returned invalid JSON");
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
function parseSse(text, expectedId) {
|
|
181
|
+
if (text.length > 2_000_000)
|
|
182
|
+
throw new RemoteMcpTransportError("Remote MCP SSE response is too large");
|
|
183
|
+
const normalized = text.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
|
184
|
+
let notifications = 0;
|
|
185
|
+
for (const block of normalized.split("\n\n")) {
|
|
186
|
+
const data = [];
|
|
187
|
+
for (const line of block.split("\n")) {
|
|
188
|
+
if (!line || line.startsWith(":"))
|
|
189
|
+
continue;
|
|
190
|
+
const colon = line.indexOf(":");
|
|
191
|
+
const field = colon === -1 ? line : line.slice(0, colon);
|
|
192
|
+
const value = colon === -1 ? "" : line.slice(colon + 1).replace(/^ /, "");
|
|
193
|
+
if (field === "data")
|
|
194
|
+
data.push(value);
|
|
195
|
+
}
|
|
196
|
+
if (!data.length)
|
|
197
|
+
continue;
|
|
198
|
+
const message = parseJson(data.join("\n"));
|
|
199
|
+
const record = message && typeof message === "object" && !Array.isArray(message) ? message : null;
|
|
200
|
+
if (!record)
|
|
201
|
+
throw new RemoteMcpTransportError("Remote MCP SSE data is not a JSON-RPC object");
|
|
202
|
+
if (record.id === expectedId)
|
|
203
|
+
return message;
|
|
204
|
+
if (record.id !== undefined)
|
|
205
|
+
throw new RemoteMcpTransportError("Remote MCP SSE response used the wrong JSON-RPC id");
|
|
206
|
+
if (record.method !== undefined && ++notifications > 64)
|
|
207
|
+
throw new RemoteMcpTransportError("Remote MCP SSE response contained too many notifications");
|
|
208
|
+
if (record.method !== undefined && !String(record.method).startsWith("notifications/")) {
|
|
209
|
+
throw new RemoteMcpTransportError("Remote MCP server-to-client requests are not supported");
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
throw new RemoteMcpTransportError("Remote MCP SSE stream ended without the outstanding response");
|
|
213
|
+
}
|
|
214
|
+
function validateSessionId(value) {
|
|
215
|
+
if (value === null)
|
|
216
|
+
return undefined;
|
|
217
|
+
if (!/^[\x21-\x7e]{1,256}$/.test(value))
|
|
218
|
+
throw new RemoteMcpTransportError("Remote MCP server returned an invalid Mcp-Session-Id");
|
|
219
|
+
return value;
|
|
220
|
+
}
|
|
221
|
+
function isSessionNotFound(bytes) {
|
|
222
|
+
const text = new TextDecoder().decode(bytes).toLowerCase();
|
|
223
|
+
return text.length <= 4096 && /(?:session (?:not found|expired|unknown)|invalid session)/.test(text);
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=agent-remote-mcp-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-remote-mcp-transport.js","sourceRoot":"","sources":["../src/agent-remote-mcp-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { type ActionPolicyExpression, type RaybaseActionAnnotations, type RaybaseActionAudience } from "./actions.js";
|
|
2
|
+
import type { RaybaseAgent } from "./agent.js";
|
|
3
|
+
import type { AgentRuntimeInvocation, AgentRuntimeTool } from "./agent-runtime.js";
|
|
4
|
+
import type { RaybaseAgentPrincipal, RaybaseAIEnv } from "./ai.js";
|
|
5
|
+
import type { SqlExecutor } from "./db.js";
|
|
6
|
+
import type { JsonSchemaObject } from "./json-schema.js";
|
|
7
|
+
import { type RaybaseSchema, type RaybaseSystemTable } from "./schema.js";
|
|
8
|
+
import { RemoteMcpSessionCoordinator, type RemoteMcpTransportMode } from "./agent-remote-mcp-transport.js";
|
|
9
|
+
export type RaybaseRemoteMcpCredential = {
|
|
10
|
+
type: "env";
|
|
11
|
+
envVar: string;
|
|
12
|
+
scheme?: "bearer" | "raw";
|
|
13
|
+
} | {
|
|
14
|
+
/**
|
|
15
|
+
* A runtime-installed server's credential *reference*. The name is the
|
|
16
|
+
* only thing stored; the value lives where secrets already live
|
|
17
|
+
* (`wrangler secret put` deployed, `.dev.vars` locally). The name space
|
|
18
|
+
* is closed on purpose — an installed server can never be pointed at an
|
|
19
|
+
* arbitrary application binding.
|
|
20
|
+
*/
|
|
21
|
+
type: "secret";
|
|
22
|
+
name: string;
|
|
23
|
+
scheme?: "bearer" | "raw";
|
|
24
|
+
} | {
|
|
25
|
+
type: "none";
|
|
26
|
+
} | {
|
|
27
|
+
type: "oauth";
|
|
28
|
+
controlPlaneKey: string;
|
|
29
|
+
};
|
|
30
|
+
/** The closed shape a runtime-installed server's secret name must have. */
|
|
31
|
+
export declare const remoteMcpSecretNamePattern: RegExp;
|
|
32
|
+
/** The conventional secret name for an installed server, e.g. `weather` → `RAYBASE_MCP_WEATHER_TOKEN`. */
|
|
33
|
+
export declare function remoteMcpSecretNameFor(serverName: string): string;
|
|
34
|
+
export type RaybaseRemoteMcpToolDescriptor = {
|
|
35
|
+
description: string;
|
|
36
|
+
inputSchema: JsonSchemaObject;
|
|
37
|
+
annotations?: Pick<RaybaseActionAnnotations, "readOnlyHint" | "destructiveHint" | "idempotentHint">;
|
|
38
|
+
policy?: ActionPolicyExpression;
|
|
39
|
+
audience?: RaybaseActionAudience;
|
|
40
|
+
timeoutMs?: number;
|
|
41
|
+
maxResultBytes?: number;
|
|
42
|
+
redactionKeys?: string[];
|
|
43
|
+
};
|
|
44
|
+
export type RaybaseRemoteMcpServer = {
|
|
45
|
+
name: string;
|
|
46
|
+
endpoint: string;
|
|
47
|
+
credentials?: RaybaseRemoteMcpCredential;
|
|
48
|
+
transport?: RemoteMcpTransportMode;
|
|
49
|
+
tools: Record<string, RaybaseRemoteMcpToolDescriptor>;
|
|
50
|
+
};
|
|
51
|
+
export type RaybaseRemoteMcpStoredCredential = {
|
|
52
|
+
type: "stored";
|
|
53
|
+
serverName: string;
|
|
54
|
+
};
|
|
55
|
+
export type RaybaseRemoteMcpRuntimeServer = Omit<RaybaseRemoteMcpServer, "credentials"> & {
|
|
56
|
+
credentials?: RaybaseRemoteMcpCredential | RaybaseRemoteMcpStoredCredential;
|
|
57
|
+
};
|
|
58
|
+
export type RaybaseRemoteMcpServerDefinition = RaybaseRemoteMcpServer;
|
|
59
|
+
export type RaybaseRemoteMcpServerCollectionDefinition = Omit<RaybaseRemoteMcpServer, "name"> & {
|
|
60
|
+
name?: string;
|
|
61
|
+
};
|
|
62
|
+
export type RaybaseRemoteMcpServers = Record<string, RaybaseRemoteMcpServer>;
|
|
63
|
+
export type RaybaseRemoteMcpServerDefinitions = Record<string, RaybaseRemoteMcpServer | RaybaseRemoteMcpServerCollectionDefinition>;
|
|
64
|
+
export type RaybaseAgentRemoteMcpBinding = {
|
|
65
|
+
server: RaybaseRemoteMcpRuntimeServer;
|
|
66
|
+
tools: string[];
|
|
67
|
+
};
|
|
68
|
+
export type RaybaseAgentRemoteMcpToolBinding = {
|
|
69
|
+
server: RaybaseRemoteMcpRuntimeServer;
|
|
70
|
+
toolName: string;
|
|
71
|
+
descriptor: RaybaseRemoteMcpToolDescriptor;
|
|
72
|
+
modelToolName: string;
|
|
73
|
+
};
|
|
74
|
+
export type RaybaseRemoteMcpServerSummary = {
|
|
75
|
+
name: string;
|
|
76
|
+
endpointHost: string;
|
|
77
|
+
toolNames: string[];
|
|
78
|
+
credentialRefs: string[];
|
|
79
|
+
};
|
|
80
|
+
export type RaybaseAgentRemoteMcpBindingSummary = {
|
|
81
|
+
agentName: string;
|
|
82
|
+
serverName: string;
|
|
83
|
+
toolNames: string[];
|
|
84
|
+
modelToolNames: string[];
|
|
85
|
+
};
|
|
86
|
+
export type RaybaseRemoteMcpCallStatus = "ok" | "denied" | "timeout" | "error";
|
|
87
|
+
export declare const raybaseRemoteMcpSystemTables: RaybaseSystemTable[];
|
|
88
|
+
export declare function defineRemoteMcpServer(definition: RaybaseRemoteMcpServerDefinition): RaybaseRemoteMcpServer;
|
|
89
|
+
export declare function defineRemoteMcpServers(definitions: RaybaseRemoteMcpServerDefinitions): RaybaseRemoteMcpServers;
|
|
90
|
+
export declare function validateAgentRemoteMcpBindings<Env, Schema extends RaybaseSchema = RaybaseSchema>(agent: Pick<RaybaseAgent<Env, Schema>, "name" | "remoteMcpServers">): void;
|
|
91
|
+
export declare function agentRemoteMcpToolBindings<Env, Schema extends RaybaseSchema = RaybaseSchema>(agent: Pick<RaybaseAgent<Env, Schema>, "name" | "remoteMcpServers">): RaybaseAgentRemoteMcpToolBinding[];
|
|
92
|
+
/**
|
|
93
|
+
* Model-facing tools for one set of bindings. Callers pass the code-declared
|
|
94
|
+
* set by default; the runtime-installed resolver passes the installed set so
|
|
95
|
+
* both sources produce byte-identical tool shapes.
|
|
96
|
+
*/
|
|
97
|
+
export declare function agentRemoteMcpRuntimeTools<Env extends RaybaseAIEnv, Schema extends RaybaseSchema = RaybaseSchema>(input: AgentRuntimeInvocation<Env, Schema>, bindings?: RaybaseAgentRemoteMcpToolBinding[]): AgentRuntimeTool[];
|
|
98
|
+
export declare function remoteMcpServerSummaries(servers: RaybaseRemoteMcpRuntimeServer[]): RaybaseRemoteMcpServerSummary[];
|
|
99
|
+
export declare function agentRemoteMcpBindingSummaries<Env, Schema extends RaybaseSchema = RaybaseSchema>(agents: Array<Pick<RaybaseAgent<Env, Schema>, "name" | "remoteMcpServers">>): RaybaseAgentRemoteMcpBindingSummary[];
|
|
100
|
+
export declare function remoteMcpModelToolName(serverName: string, toolName: string): string;
|
|
101
|
+
export declare function validateRemoteMcpEndpoint(endpoint: string): void;
|
|
102
|
+
export declare function callRemoteMcpTool(input: {
|
|
103
|
+
organizationId?: string | null;
|
|
104
|
+
server: RaybaseRemoteMcpRuntimeServer;
|
|
105
|
+
toolName: string;
|
|
106
|
+
descriptor: RaybaseRemoteMcpToolDescriptor;
|
|
107
|
+
args: unknown;
|
|
108
|
+
env?: unknown;
|
|
109
|
+
control?: SqlExecutor;
|
|
110
|
+
sessionCoordinator?: RemoteMcpSessionCoordinator;
|
|
111
|
+
fetcher?: typeof fetch;
|
|
112
|
+
signal?: AbortSignal;
|
|
113
|
+
}): Promise<{
|
|
114
|
+
ok: true;
|
|
115
|
+
server: string;
|
|
116
|
+
tool: string;
|
|
117
|
+
result: unknown;
|
|
118
|
+
truncated: boolean;
|
|
119
|
+
}>;
|
|
120
|
+
export declare function recordAgentRemoteMcpEvent(control: SqlExecutor | undefined, event: {
|
|
121
|
+
agentName: string;
|
|
122
|
+
conversationId: string;
|
|
123
|
+
runId: string;
|
|
124
|
+
requestId: string;
|
|
125
|
+
toolCallId: string;
|
|
126
|
+
principal: RaybaseAgentPrincipal;
|
|
127
|
+
organizationId?: string | null;
|
|
128
|
+
serverName: string;
|
|
129
|
+
remoteToolName: string;
|
|
130
|
+
modelToolName: string;
|
|
131
|
+
endpoint: string;
|
|
132
|
+
arguments: unknown;
|
|
133
|
+
resultStatus: RaybaseRemoteMcpCallStatus;
|
|
134
|
+
result?: unknown;
|
|
135
|
+
httpStatus?: number | null;
|
|
136
|
+
latencyMs: number;
|
|
137
|
+
error?: string | null;
|
|
138
|
+
}): Promise<void>;
|
|
139
|
+
export declare class RemoteMcpRuntimeError extends Error {
|
|
140
|
+
readonly status: RaybaseRemoteMcpCallStatus;
|
|
141
|
+
readonly httpStatus?: number | undefined;
|
|
142
|
+
readonly remoteError?: unknown | undefined;
|
|
143
|
+
constructor(message: string, status: RaybaseRemoteMcpCallStatus, httpStatus?: number | undefined, remoteError?: unknown | undefined);
|
|
144
|
+
}
|
|
145
|
+
export declare function validateRemoteMcpToolName(name: string, serverName: string): void;
|
|
146
|
+
export declare function resolveRemoteMcpCredential(credential: RaybaseRemoteMcpCredential | undefined, env: unknown): string | undefined;
|
|
147
|
+
//# sourceMappingURL=agent-remote-mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-remote-mcp.d.ts","sourceRoot":"","sources":["../src/agent-remote-mcp.ts"],"names":[],"mappings":"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"}
|