@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,372 @@
|
|
|
1
|
+
export const raybaseAppManifestVersion = 1;
|
|
2
|
+
export function parseRaybaseAppManifest(value, expectedProduct) {
|
|
3
|
+
if (!isRecord(value))
|
|
4
|
+
throw new Error("Raybase app manifest must be a JSON object.");
|
|
5
|
+
if (value.manifestVersion !== raybaseAppManifestVersion) {
|
|
6
|
+
throw new Error(`Raybase app manifest manifestVersion must be ${raybaseAppManifestVersion}.`);
|
|
7
|
+
}
|
|
8
|
+
if (typeof value.product !== "string" || !value.product)
|
|
9
|
+
throw new Error("Raybase app manifest product must be a non-empty string.");
|
|
10
|
+
if (expectedProduct && value.product !== expectedProduct) {
|
|
11
|
+
throw new Error(`Raybase app manifest product must be ${JSON.stringify(expectedProduct)}.`);
|
|
12
|
+
}
|
|
13
|
+
if (typeof value.generatedAt !== "string" || !Number.isFinite(Date.parse(value.generatedAt))) {
|
|
14
|
+
throw new Error("Raybase app manifest generatedAt must be an ISO timestamp.");
|
|
15
|
+
}
|
|
16
|
+
if (!isRecord(value.app))
|
|
17
|
+
throw new Error("Raybase app manifest app must be an object.");
|
|
18
|
+
if (value.app.appName !== undefined && typeof value.app.appName !== "string")
|
|
19
|
+
throw new Error("Raybase app manifest app.appName must be a string.");
|
|
20
|
+
requireStringArray(value.roles, "roles");
|
|
21
|
+
requireStringArray(value.routes, "routes", (route, index) => {
|
|
22
|
+
if (!isRecord(route) || typeof route.path !== "string" || typeof route.source !== "string") {
|
|
23
|
+
throw new Error(`Raybase app manifest routes[${index}] must contain string path and source fields.`);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
requireStringArray(value.devUsers, "devUsers", (persona, index) => {
|
|
27
|
+
if (!isRecord(persona) || typeof persona.name !== "string" || typeof persona.email !== "string" || typeof persona.role !== "string") {
|
|
28
|
+
throw new Error(`Raybase app manifest devUsers[${index}] must contain string name, email, and role fields.`);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
if (!isRecord(value.tables))
|
|
32
|
+
throw new Error("Raybase app manifest tables must be an object.");
|
|
33
|
+
for (const [key, rawTable] of Object.entries(value.tables))
|
|
34
|
+
validateTable(key, rawTable);
|
|
35
|
+
if (!isRecord(value.runtime))
|
|
36
|
+
throw new Error("Raybase app manifest runtime must be an object.");
|
|
37
|
+
if (typeof value.runtime.hasAppMigrations !== "boolean" || typeof value.runtime.hasStorage !== "boolean") {
|
|
38
|
+
throw new Error("Raybase app manifest runtime flags must be booleans.");
|
|
39
|
+
}
|
|
40
|
+
requireStringArray(value.runtime.expectedBindings, "runtime.expectedBindings");
|
|
41
|
+
if (!isRecord(value.actions))
|
|
42
|
+
throw new Error("Raybase app manifest actions must be an object.");
|
|
43
|
+
requireStringArray(value.actions.names, "actions.names");
|
|
44
|
+
validateActionDescriptors(value.actions.descriptors, "actions.descriptors");
|
|
45
|
+
for (const field of ["agents", "agentSkills", "modules"]) {
|
|
46
|
+
if (!Array.isArray(value[field]))
|
|
47
|
+
throw new Error(`Raybase app manifest ${field} must be an array.`);
|
|
48
|
+
}
|
|
49
|
+
for (const field of ["api", "mcp", "remoteMcp", "jobs", "notifications", "retrieval", "search", "ai"]) {
|
|
50
|
+
if (!isRecord(value[field]))
|
|
51
|
+
throw new Error(`Raybase app manifest ${field} must be an object.`);
|
|
52
|
+
}
|
|
53
|
+
validateActionRoutes(value.api.actionRoutes);
|
|
54
|
+
validateMcpActionTools(value.mcp.actionTools);
|
|
55
|
+
value.agents.forEach(validateAgent);
|
|
56
|
+
value.agentSkills.forEach(validateAgentSkill);
|
|
57
|
+
validateRemoteMcp(value.remoteMcp);
|
|
58
|
+
requireStringArray(value.jobs.names, "jobs.names");
|
|
59
|
+
if (typeof value.jobs.hasSchedules !== "boolean")
|
|
60
|
+
throw new Error("Raybase app manifest jobs.hasSchedules must be a boolean.");
|
|
61
|
+
if (value.jobs.limits !== undefined)
|
|
62
|
+
validateJobLimits(value.jobs.limits);
|
|
63
|
+
if (typeof value.notifications.enabled !== "boolean")
|
|
64
|
+
throw new Error("Raybase app manifest notifications.enabled must be a boolean.");
|
|
65
|
+
requireStringArray(value.notifications.channelNames, "notifications.channelNames");
|
|
66
|
+
requireStringArray(value.notifications.inboundNames, "notifications.inboundNames");
|
|
67
|
+
requireStringArray(value.retrieval.indexNames, "retrieval.indexNames");
|
|
68
|
+
requireStringArray(value.search.indexNames, "search.indexNames");
|
|
69
|
+
if (value.ai.selectedProvider !== null && typeof value.ai.selectedProvider !== "string") {
|
|
70
|
+
throw new Error("Raybase app manifest ai.selectedProvider must be a string or null.");
|
|
71
|
+
}
|
|
72
|
+
if (!Array.isArray(value.ai.inferenceProviders))
|
|
73
|
+
throw new Error("Raybase app manifest ai.inferenceProviders must be an array.");
|
|
74
|
+
if (value.guide !== undefined)
|
|
75
|
+
validateGuide(value.guide);
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
export function decodeRaybaseDevManifest(encoded, expectedProduct) {
|
|
79
|
+
if (typeof encoded !== "string" || !encoded)
|
|
80
|
+
throw new Error("RAYBASE_DEV_MANIFEST is missing.");
|
|
81
|
+
let bytes;
|
|
82
|
+
try {
|
|
83
|
+
if (!/^[A-Za-z0-9_-]+$/.test(encoded))
|
|
84
|
+
throw new Error("invalid alphabet");
|
|
85
|
+
const base64 = encoded.replaceAll("-", "+").replaceAll("_", "/").padEnd(Math.ceil(encoded.length / 4) * 4, "=");
|
|
86
|
+
const binary = atob(base64);
|
|
87
|
+
bytes = Uint8Array.from(binary, (character) => character.charCodeAt(0));
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
throw new Error(`RAYBASE_DEV_MANIFEST is not valid base64url: ${error instanceof Error ? error.message : String(error)}`);
|
|
91
|
+
}
|
|
92
|
+
let json;
|
|
93
|
+
try {
|
|
94
|
+
json = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
throw new Error(`RAYBASE_DEV_MANIFEST is not valid UTF-8: ${error instanceof Error ? error.message : String(error)}`);
|
|
98
|
+
}
|
|
99
|
+
let parsed;
|
|
100
|
+
try {
|
|
101
|
+
parsed = JSON.parse(json);
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
throw new Error(`RAYBASE_DEV_MANIFEST is not valid JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
105
|
+
}
|
|
106
|
+
return parseRaybaseAppManifest(parsed, expectedProduct);
|
|
107
|
+
}
|
|
108
|
+
function validateTable(key, value) {
|
|
109
|
+
if (!isRecord(value) || typeof value.name !== "string")
|
|
110
|
+
throw new Error(`Raybase app manifest tables.${key} must be a table object.`);
|
|
111
|
+
if (!isRecord(value.columns))
|
|
112
|
+
throw new Error(`Raybase app manifest tables.${key}.columns must be an object.`);
|
|
113
|
+
for (const [columnName, rawColumn] of Object.entries(value.columns)) {
|
|
114
|
+
if (!isRecord(rawColumn) || !["id", "text", "longText", "integer", "real", "boolean", "datetime", "date", "json", "ref", "secret"].includes(rawColumn.kind)) {
|
|
115
|
+
throw new Error(`Raybase app manifest tables.${key}.columns.${columnName} is invalid.`);
|
|
116
|
+
}
|
|
117
|
+
for (const flag of ["required", "primaryKey", "unique"]) {
|
|
118
|
+
if (typeof rawColumn[flag] !== "boolean")
|
|
119
|
+
throw new Error(`Raybase app manifest tables.${key}.columns.${columnName}.${flag} must be a boolean.`);
|
|
120
|
+
}
|
|
121
|
+
if (rawColumn.enumValues !== undefined)
|
|
122
|
+
requireStringArray(rawColumn.enumValues, `tables.${key}.columns.${columnName}.enumValues`);
|
|
123
|
+
if (rawColumn.reference !== undefined && typeof rawColumn.reference !== "string")
|
|
124
|
+
throw new Error(`Raybase app manifest tables.${key}.columns.${columnName}.reference must be a string.`);
|
|
125
|
+
if (rawColumn.lifecycle !== undefined)
|
|
126
|
+
validateLifecycle(key, columnName, rawColumn.lifecycle);
|
|
127
|
+
}
|
|
128
|
+
if (!isRecord(value.policies))
|
|
129
|
+
throw new Error(`Raybase app manifest tables.${key}.policies must be an object.`);
|
|
130
|
+
for (const [action, policy] of Object.entries(value.policies)) {
|
|
131
|
+
if (!["read", "create", "update", "delete"].includes(action) || !validPolicy(policy)) {
|
|
132
|
+
throw new Error(`Raybase app manifest tables.${key}.policies.${action} is invalid.`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
requireStringArray(value.invariants, `tables.${key}.invariants`);
|
|
136
|
+
}
|
|
137
|
+
function validateLifecycle(table, column, value) {
|
|
138
|
+
if (!isRecord(value))
|
|
139
|
+
throw new Error(`Raybase app manifest tables.${table}.columns.${column}.lifecycle must be an object.`);
|
|
140
|
+
requireStringArray(value.states, `tables.${table}.columns.${column}.lifecycle.states`);
|
|
141
|
+
if (value.states.length === 0 || new Set(value.states).size !== value.states.length)
|
|
142
|
+
throw new Error(`Raybase app manifest tables.${table}.columns.${column}.lifecycle.states must be non-empty and unique.`);
|
|
143
|
+
if (typeof value.initial !== "string" || !value.states.includes(value.initial))
|
|
144
|
+
throw new Error(`Raybase app manifest tables.${table}.columns.${column}.lifecycle.initial is invalid.`);
|
|
145
|
+
if (!isRecord(value.transitions))
|
|
146
|
+
throw new Error(`Raybase app manifest tables.${table}.columns.${column}.lifecycle.transitions must be an object.`);
|
|
147
|
+
const states = value.states;
|
|
148
|
+
if (Object.keys(value.transitions).some((state) => !states.includes(state))) {
|
|
149
|
+
throw new Error(`Raybase app manifest tables.${table}.columns.${column}.lifecycle.transitions contains an undeclared source.`);
|
|
150
|
+
}
|
|
151
|
+
for (const state of states) {
|
|
152
|
+
requireStringArray(value.transitions[state], `tables.${table}.columns.${column}.lifecycle.transitions.${state}`);
|
|
153
|
+
if (value.transitions[state].some((target) => !states.includes(target))) {
|
|
154
|
+
throw new Error(`Raybase app manifest tables.${table}.columns.${column}.lifecycle.transitions.${state} contains an undeclared target.`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
function validPolicy(value) {
|
|
159
|
+
if (!isRecord(value) || typeof value.kind !== "string")
|
|
160
|
+
return false;
|
|
161
|
+
if (["allowAll", "denyAll", "operator"].includes(value.kind))
|
|
162
|
+
return true;
|
|
163
|
+
if (value.kind === "role")
|
|
164
|
+
return typeof value.role === "string";
|
|
165
|
+
if (value.kind === "owns")
|
|
166
|
+
return typeof value.column === "string";
|
|
167
|
+
if (value.kind === "servicePrincipal")
|
|
168
|
+
return typeof value.service === "string";
|
|
169
|
+
if (value.kind === "anyOf" || value.kind === "allOf")
|
|
170
|
+
return Array.isArray(value.policies) && value.policies.every(validPolicy);
|
|
171
|
+
if (value.kind === "not")
|
|
172
|
+
return validPolicy(value.policy);
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
function validateActionDescriptors(value, field) {
|
|
176
|
+
if (!Array.isArray(value) || !value.every(validActionDescriptor)) {
|
|
177
|
+
throw new Error(`Raybase app manifest ${field} must be an array of action descriptor objects.`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
function validActionDescriptor(value) {
|
|
181
|
+
if (!isRecord(value))
|
|
182
|
+
return false;
|
|
183
|
+
if (value.name !== undefined && typeof value.name !== "string")
|
|
184
|
+
return false;
|
|
185
|
+
if (value.policy !== undefined && !validPolicy(value.policy))
|
|
186
|
+
return false;
|
|
187
|
+
if (value.requiredInputKeys !== undefined && !isStringArray(value.requiredInputKeys))
|
|
188
|
+
return false;
|
|
189
|
+
if (value.hasOutputSchema !== undefined && typeof value.hasOutputSchema !== "boolean")
|
|
190
|
+
return false;
|
|
191
|
+
if (value.annotations !== undefined && !isRecord(value.annotations))
|
|
192
|
+
return false;
|
|
193
|
+
if (value.resource !== undefined) {
|
|
194
|
+
if (!isRecord(value.resource))
|
|
195
|
+
return false;
|
|
196
|
+
if (value.resource.name !== undefined && typeof value.resource.name !== "string")
|
|
197
|
+
return false;
|
|
198
|
+
if (value.resource.operation !== undefined && typeof value.resource.operation !== "string")
|
|
199
|
+
return false;
|
|
200
|
+
if (value.resource.inputRefs !== undefined) {
|
|
201
|
+
if (!isRecord(value.resource.inputRefs))
|
|
202
|
+
return false;
|
|
203
|
+
for (const reference of Object.values(value.resource.inputRefs)) {
|
|
204
|
+
if (!isRecord(reference))
|
|
205
|
+
return false;
|
|
206
|
+
if (reference.resource !== undefined && typeof reference.resource !== "string")
|
|
207
|
+
return false;
|
|
208
|
+
if (reference.kind !== undefined && typeof reference.kind !== "string")
|
|
209
|
+
return false;
|
|
210
|
+
if (reference.required !== undefined && typeof reference.required !== "boolean")
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
217
|
+
function validateActionRoutes(value) {
|
|
218
|
+
if (!Array.isArray(value))
|
|
219
|
+
throw new Error("Raybase app manifest api.actionRoutes must be an array.");
|
|
220
|
+
value.forEach((route, index) => {
|
|
221
|
+
if (!isRecord(route) || typeof route.path !== "string" || typeof route.actionName !== "string") {
|
|
222
|
+
throw new Error(`Raybase app manifest api.actionRoutes[${index}] must contain string path and actionName fields.`);
|
|
223
|
+
}
|
|
224
|
+
if (route.hasOutputSchema !== undefined && typeof route.hasOutputSchema !== "boolean")
|
|
225
|
+
throw new Error(`Raybase app manifest api.actionRoutes[${index}].hasOutputSchema must be a boolean.`);
|
|
226
|
+
if (route.policy !== undefined && !validPolicy(route.policy))
|
|
227
|
+
throw new Error(`Raybase app manifest api.actionRoutes[${index}].policy must be a policy expression.`);
|
|
228
|
+
if (route.audience !== undefined && typeof route.audience !== "string" && !isStringArray(route.audience))
|
|
229
|
+
throw new Error(`Raybase app manifest api.actionRoutes[${index}].audience must be a string or array.`);
|
|
230
|
+
if (route.rowAuthorization !== undefined) {
|
|
231
|
+
if (!isRecord(route.rowAuthorization) || typeof route.rowAuthorization.table !== "string" || !["read", "create", "update", "delete"].includes(route.rowAuthorization.action)) {
|
|
232
|
+
throw new Error(`Raybase app manifest api.actionRoutes[${index}].rowAuthorization is invalid.`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
function validateMcpActionTools(value) {
|
|
238
|
+
if (!Array.isArray(value))
|
|
239
|
+
throw new Error("Raybase app manifest mcp.actionTools must be an array.");
|
|
240
|
+
value.forEach((tool, index) => {
|
|
241
|
+
if (!isRecord(tool) || typeof tool.toolName !== "string" || !validActionDescriptor(tool.action)) {
|
|
242
|
+
throw new Error(`Raybase app manifest mcp.actionTools[${index}] is invalid.`);
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
function validateAgent(value, index) {
|
|
247
|
+
if (!isRecord(value))
|
|
248
|
+
throw new Error(`Raybase app manifest agents[${index}] must be an object.`);
|
|
249
|
+
for (const field of ["name", "title", "moduleId"]) {
|
|
250
|
+
if (value[field] !== undefined && typeof value[field] !== "string")
|
|
251
|
+
throw new Error(`Raybase app manifest agents[${index}].${field} must be a string.`);
|
|
252
|
+
}
|
|
253
|
+
for (const field of ["skillNames", "actionNames"]) {
|
|
254
|
+
if (value[field] !== undefined && !isStringArray(value[field]))
|
|
255
|
+
throw new Error(`Raybase app manifest agents[${index}].${field} must be an array.`);
|
|
256
|
+
}
|
|
257
|
+
if (value.actionDescriptors !== undefined)
|
|
258
|
+
validateActionDescriptors(value.actionDescriptors, `agents[${index}].actionDescriptors`);
|
|
259
|
+
if (value.promptHeadMaxChars !== undefined && (!Number.isInteger(value.promptHeadMaxChars) || Number(value.promptHeadMaxChars) < 1)) {
|
|
260
|
+
throw new Error(`Raybase app manifest agents[${index}].promptHeadMaxChars must be a positive integer.`);
|
|
261
|
+
}
|
|
262
|
+
for (const field of ["promptHeadStaticChars", "promptBandCount"]) {
|
|
263
|
+
if (value[field] !== undefined && (!Number.isInteger(value[field]) || Number(value[field]) < 0)) {
|
|
264
|
+
throw new Error(`Raybase app manifest agents[${index}].${field} must be a non-negative integer.`);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
if (value.promptHeadMaxCharsExplicit !== undefined && typeof value.promptHeadMaxCharsExplicit !== "boolean") {
|
|
268
|
+
throw new Error(`Raybase app manifest agents[${index}].promptHeadMaxCharsExplicit must be a boolean.`);
|
|
269
|
+
}
|
|
270
|
+
if (value.promptHeadOnOverflow !== undefined && value.promptHeadOnOverflow !== "truncate" && value.promptHeadOnOverflow !== "error") {
|
|
271
|
+
throw new Error(`Raybase app manifest agents[${index}].promptHeadOnOverflow is invalid.`);
|
|
272
|
+
}
|
|
273
|
+
if (value.retention !== undefined && !isRecord(value.retention))
|
|
274
|
+
throw new Error(`Raybase app manifest agents[${index}].retention must be an object.`);
|
|
275
|
+
if (isRecord(value.retention)) {
|
|
276
|
+
if (value.retention.onExpiry !== undefined && !["archive", "delete"].includes(value.retention.onExpiry))
|
|
277
|
+
throw new Error(`Raybase app manifest agents[${index}].retention.onExpiry is invalid.`);
|
|
278
|
+
if (value.retention.transcripts !== undefined && !["archive", "discard", "keep-hot"].includes(value.retention.transcripts))
|
|
279
|
+
throw new Error(`Raybase app manifest agents[${index}].retention.transcripts is invalid.`);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
function validateAgentSkill(value, index) {
|
|
283
|
+
if (!isRecord(value))
|
|
284
|
+
throw new Error(`Raybase app manifest agentSkills[${index}] must be an object.`);
|
|
285
|
+
for (const field of ["name", "namespace", "title"]) {
|
|
286
|
+
if (value[field] !== undefined && typeof value[field] !== "string")
|
|
287
|
+
throw new Error(`Raybase app manifest agentSkills[${index}].${field} must be a string.`);
|
|
288
|
+
}
|
|
289
|
+
for (const field of ["hasGuidance", "ephemeral"]) {
|
|
290
|
+
if (value[field] !== undefined && typeof value[field] !== "boolean")
|
|
291
|
+
throw new Error(`Raybase app manifest agentSkills[${index}].${field} must be a boolean.`);
|
|
292
|
+
}
|
|
293
|
+
if (value.maxChars !== undefined && (typeof value.maxChars !== "number" || !Number.isFinite(value.maxChars) || value.maxChars <= 0))
|
|
294
|
+
throw new Error(`Raybase app manifest agentSkills[${index}].maxChars must be a positive number.`);
|
|
295
|
+
if (value.actionNames !== undefined && !isStringArray(value.actionNames))
|
|
296
|
+
throw new Error(`Raybase app manifest agentSkills[${index}].actionNames must be an array.`);
|
|
297
|
+
if (value.limits !== undefined && !isRecord(value.limits))
|
|
298
|
+
throw new Error(`Raybase app manifest agentSkills[${index}].limits must be an object.`);
|
|
299
|
+
}
|
|
300
|
+
function validateRemoteMcp(value) {
|
|
301
|
+
for (const field of ["servers", "agentBindings"]) {
|
|
302
|
+
if (!Array.isArray(value[field]))
|
|
303
|
+
throw new Error(`Raybase app manifest remoteMcp.${field} must be an array.`);
|
|
304
|
+
}
|
|
305
|
+
value.servers.forEach((server, index) => {
|
|
306
|
+
if (!isRecord(server))
|
|
307
|
+
throw new Error(`Raybase app manifest remoteMcp.servers[${index}] must be an object.`);
|
|
308
|
+
for (const field of ["name", "endpointHost"])
|
|
309
|
+
if (server[field] !== undefined && typeof server[field] !== "string")
|
|
310
|
+
throw new Error(`Raybase app manifest remoteMcp.servers[${index}].${field} must be a string.`);
|
|
311
|
+
for (const field of ["toolNames", "credentialRefs"])
|
|
312
|
+
if (server[field] !== undefined && !isStringArray(server[field]))
|
|
313
|
+
throw new Error(`Raybase app manifest remoteMcp.servers[${index}].${field} must be an array.`);
|
|
314
|
+
});
|
|
315
|
+
value.agentBindings.forEach((binding, index) => {
|
|
316
|
+
if (!isRecord(binding))
|
|
317
|
+
throw new Error(`Raybase app manifest remoteMcp.agentBindings[${index}] must be an object.`);
|
|
318
|
+
for (const field of ["agentName", "serverName"])
|
|
319
|
+
if (binding[field] !== undefined && typeof binding[field] !== "string")
|
|
320
|
+
throw new Error(`Raybase app manifest remoteMcp.agentBindings[${index}].${field} must be a string.`);
|
|
321
|
+
for (const field of ["toolNames", "modelToolNames"])
|
|
322
|
+
if (binding[field] !== undefined && !isStringArray(binding[field]))
|
|
323
|
+
throw new Error(`Raybase app manifest remoteMcp.agentBindings[${index}].${field} must be an array.`);
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
function validateGuide(value) {
|
|
327
|
+
if (!isRecord(value))
|
|
328
|
+
throw new Error("Raybase app manifest guide must be an object.");
|
|
329
|
+
for (const field of ["enabled", "hasExplicitCorpus"])
|
|
330
|
+
if (value[field] !== undefined && typeof value[field] !== "boolean")
|
|
331
|
+
throw new Error(`Raybase app manifest guide.${field} must be a boolean.`);
|
|
332
|
+
if (value.corpusDocumentCount !== undefined && typeof value.corpusDocumentCount !== "number")
|
|
333
|
+
throw new Error("Raybase app manifest guide.corpusDocumentCount must be a number.");
|
|
334
|
+
if (value.agentName !== undefined && typeof value.agentName !== "string")
|
|
335
|
+
throw new Error("Raybase app manifest guide.agentName must be a string.");
|
|
336
|
+
if (value.mode !== undefined && !["actions", "knowledge-only", "implicit"].includes(value.mode))
|
|
337
|
+
throw new Error("Raybase app manifest guide.mode is invalid.");
|
|
338
|
+
for (const field of ["actionNames", "explicitActionNames"])
|
|
339
|
+
if (value[field] !== undefined && !isStringArray(value[field]))
|
|
340
|
+
throw new Error(`Raybase app manifest guide.${field} must be an array.`);
|
|
341
|
+
}
|
|
342
|
+
function validateJobLimits(value) {
|
|
343
|
+
if (!Array.isArray(value))
|
|
344
|
+
throw new Error("Raybase app manifest jobs.limits must be an array.");
|
|
345
|
+
value.forEach((entry, index) => {
|
|
346
|
+
const isCount = (count) => count === undefined || (typeof count === "number" && Number.isInteger(count) && count > 0);
|
|
347
|
+
if (!isRecord(entry) || typeof entry.name !== "string" || !isCount(entry.max) || !isCount(entry.perKeyMax)) {
|
|
348
|
+
throw new Error(`Raybase app manifest jobs.limits[${index}] must contain a string name and positive integer max/perKeyMax.`);
|
|
349
|
+
}
|
|
350
|
+
const rate = entry.rateLimit;
|
|
351
|
+
if (rate !== undefined && (!isRecord(rate) || typeof rate.perSecond !== "number" || !isCount(rate.burst) || typeof rate.keyed !== "boolean")) {
|
|
352
|
+
throw new Error(`Raybase app manifest jobs.limits[${index}].rateLimit must contain perSecond, burst, and keyed.`);
|
|
353
|
+
}
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
function requireStringArray(value, field, itemValidator) {
|
|
357
|
+
if (!Array.isArray(value))
|
|
358
|
+
throw new Error(`Raybase app manifest ${field} must be an array.`);
|
|
359
|
+
if (itemValidator) {
|
|
360
|
+
value.forEach(itemValidator);
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
if (!value.every((item) => typeof item === "string"))
|
|
364
|
+
throw new Error(`Raybase app manifest ${field} must contain only strings.`);
|
|
365
|
+
}
|
|
366
|
+
function isStringArray(value) {
|
|
367
|
+
return Array.isArray(value) && value.every((item) => typeof item === "string");
|
|
368
|
+
}
|
|
369
|
+
function isRecord(value) {
|
|
370
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
371
|
+
}
|
|
372
|
+
//# sourceMappingURL=app-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-manifest.js","sourceRoot":"","sources":["../src/app-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { SqlExecutor } from "./db.js";
|
|
2
|
+
import type { RaybaseRole } from "./policies.js";
|
|
3
|
+
export type RaybaseAppUser = {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
email: string;
|
|
7
|
+
appRoles: RaybaseRole[];
|
|
8
|
+
disabled: boolean;
|
|
9
|
+
};
|
|
10
|
+
export type ListAppUsersOptions = {
|
|
11
|
+
appRoles?: RaybaseRole | readonly RaybaseRole[];
|
|
12
|
+
search?: string;
|
|
13
|
+
limit?: number;
|
|
14
|
+
offset?: number;
|
|
15
|
+
includeDisabled?: boolean;
|
|
16
|
+
};
|
|
17
|
+
export type ListAppUsersResult = {
|
|
18
|
+
users: RaybaseAppUser[];
|
|
19
|
+
total: number;
|
|
20
|
+
limit: number;
|
|
21
|
+
offset: number;
|
|
22
|
+
};
|
|
23
|
+
export type GetAppUserOptions = {
|
|
24
|
+
appRoles?: RaybaseRole | readonly RaybaseRole[];
|
|
25
|
+
includeDisabled?: boolean;
|
|
26
|
+
};
|
|
27
|
+
export declare function listAppUsers(db: SqlExecutor, options?: ListAppUsersOptions): Promise<ListAppUsersResult>;
|
|
28
|
+
export declare function getAppUserById(db: SqlExecutor, id: string, options?: GetAppUserOptions): Promise<RaybaseAppUser | null>;
|
|
29
|
+
export declare function getAppUserByEmail(db: SqlExecutor, email: string, options?: GetAppUserOptions): Promise<RaybaseAppUser | null>;
|
|
30
|
+
//# sourceMappingURL=app-users.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-users.d.ts","sourceRoot":"","sources":["../src/app-users.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,WAAW,EAAE,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,WAAW,EAAE,CAAC;IAChD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAuEF,wBAAsB,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAmBlH;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAKjI;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAKvI"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { parseStoredAppRoles } from "./auth.js";
|
|
2
|
+
import { isHostUserId } from "./host-user.js";
|
|
3
|
+
const defaultAppUserLimit = 20;
|
|
4
|
+
const maxAppUserLimit = 100;
|
|
5
|
+
function clampLimit(value) {
|
|
6
|
+
if (typeof value !== "number" || !Number.isFinite(value))
|
|
7
|
+
return defaultAppUserLimit;
|
|
8
|
+
return Math.min(maxAppUserLimit, Math.max(1, Math.trunc(value)));
|
|
9
|
+
}
|
|
10
|
+
function clampOffset(value) {
|
|
11
|
+
if (typeof value !== "number" || !Number.isFinite(value))
|
|
12
|
+
return 0;
|
|
13
|
+
return Math.max(0, Math.trunc(value));
|
|
14
|
+
}
|
|
15
|
+
function requestedAppRoles(appRoles) {
|
|
16
|
+
if (!appRoles)
|
|
17
|
+
return [];
|
|
18
|
+
const raw = Array.isArray(appRoles) ? appRoles : [appRoles];
|
|
19
|
+
const roles = raw.map((role) => String(role ?? "").trim()).filter(Boolean);
|
|
20
|
+
return Array.from(new Set(roles));
|
|
21
|
+
}
|
|
22
|
+
function hasRequestedAppRole(user, appRoles) {
|
|
23
|
+
return appRoles.length === 0 || appRoles.some((role) => user.appRoles.includes(role));
|
|
24
|
+
}
|
|
25
|
+
function isDisabled(value) {
|
|
26
|
+
if (value === true || value === 1)
|
|
27
|
+
return true;
|
|
28
|
+
if (typeof value === "string") {
|
|
29
|
+
const normalized = value.trim().toLowerCase();
|
|
30
|
+
return normalized === "1" || normalized === "true";
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
function appUserFromRow(row) {
|
|
35
|
+
return {
|
|
36
|
+
id: String(row.id),
|
|
37
|
+
name: String(row.name ?? row.email ?? ""),
|
|
38
|
+
email: String(row.email ?? ""),
|
|
39
|
+
// Host users always hold the plain user role, whatever the row says.
|
|
40
|
+
appRoles: isHostUserId(row.id) ? ["user"] : parseStoredAppRoles(row.appRoles),
|
|
41
|
+
disabled: isDisabled(row.banned)
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function visibleAppUser(user, options) {
|
|
45
|
+
if (!options.includeDisabled && user.disabled)
|
|
46
|
+
return false;
|
|
47
|
+
return hasRequestedAppRole(user, options.appRoles);
|
|
48
|
+
}
|
|
49
|
+
function sqlLikePattern(value) {
|
|
50
|
+
return `%${value.replace(/[\\%_]/g, (char) => `\\${char}`)}%`;
|
|
51
|
+
}
|
|
52
|
+
function searchWhere(search, params) {
|
|
53
|
+
const term = String(search ?? "").trim();
|
|
54
|
+
if (!term)
|
|
55
|
+
return "";
|
|
56
|
+
const pattern = sqlLikePattern(term);
|
|
57
|
+
params.push(pattern, pattern);
|
|
58
|
+
return ` WHERE (LOWER("name") LIKE LOWER(?) ESCAPE '\\' OR LOWER("email") LIKE LOWER(?) ESCAPE '\\')`;
|
|
59
|
+
}
|
|
60
|
+
export async function listAppUsers(db, options = {}) {
|
|
61
|
+
const limit = clampLimit(options.limit);
|
|
62
|
+
const offset = clampOffset(options.offset);
|
|
63
|
+
const params = [];
|
|
64
|
+
const where = searchWhere(options.search, params);
|
|
65
|
+
const appRoles = requestedAppRoles(options.appRoles);
|
|
66
|
+
const rows = await db.all(`SELECT "id", "name", "email", "appRoles", "banned" FROM "_auth_users"${where} ORDER BY LOWER("name") ASC, LOWER("email") ASC, "id" ASC`, params);
|
|
67
|
+
const users = rows
|
|
68
|
+
.map(appUserFromRow)
|
|
69
|
+
.filter((user) => visibleAppUser(user, { appRoles, includeDisabled: options.includeDisabled }));
|
|
70
|
+
return {
|
|
71
|
+
users: users.slice(offset, offset + limit),
|
|
72
|
+
total: users.length,
|
|
73
|
+
limit,
|
|
74
|
+
offset
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export async function getAppUserById(db, id, options = {}) {
|
|
78
|
+
const row = await db.first(`SELECT "id", "name", "email", "appRoles", "banned" FROM "_auth_users" WHERE "id" = ?`, [id]);
|
|
79
|
+
if (!row)
|
|
80
|
+
return null;
|
|
81
|
+
const user = appUserFromRow(row);
|
|
82
|
+
return visibleAppUser(user, { appRoles: requestedAppRoles(options.appRoles), includeDisabled: options.includeDisabled }) ? user : null;
|
|
83
|
+
}
|
|
84
|
+
export async function getAppUserByEmail(db, email, options = {}) {
|
|
85
|
+
const row = await db.first(`SELECT "id", "name", "email", "appRoles", "banned" FROM "_auth_users" WHERE LOWER("email") = LOWER(?)`, [email]);
|
|
86
|
+
if (!row)
|
|
87
|
+
return null;
|
|
88
|
+
const user = appUserFromRow(row);
|
|
89
|
+
return visibleAppUser(user, { appRoles: requestedAppRoles(options.appRoles), includeDisabled: options.includeDisabled }) ? user : null;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=app-users.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-users.js","sourceRoot":"","sources":["../src/app-users.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { RaybaseAuthEnv } from "./auth.js";
|
|
2
|
+
export { sha256Hex } from "./internal.js";
|
|
3
|
+
export declare const auditArchiveContentType = "application/x-ndjson; charset=utf-8";
|
|
4
|
+
export type AuditArchiveRow = {
|
|
5
|
+
id: string;
|
|
6
|
+
actorId: string | null;
|
|
7
|
+
action: string;
|
|
8
|
+
targetType: string;
|
|
9
|
+
targetId: string | null;
|
|
10
|
+
metadata: string | null;
|
|
11
|
+
createdAt: string;
|
|
12
|
+
};
|
|
13
|
+
export type AuditArchiveMetadata = {
|
|
14
|
+
windowStart: string;
|
|
15
|
+
windowEnd: string;
|
|
16
|
+
objectKey: string;
|
|
17
|
+
rowCount: number;
|
|
18
|
+
firstCreatedAt: string | null;
|
|
19
|
+
lastCreatedAt: string | null;
|
|
20
|
+
sha256: string;
|
|
21
|
+
};
|
|
22
|
+
export type PrepareAuditArchiveInput = {
|
|
23
|
+
windowStart: string;
|
|
24
|
+
windowEnd: string;
|
|
25
|
+
limitBytes?: number;
|
|
26
|
+
};
|
|
27
|
+
export type PreparedAuditArchive = {
|
|
28
|
+
empty: true;
|
|
29
|
+
windowStart: string;
|
|
30
|
+
windowEnd: string;
|
|
31
|
+
} | ({
|
|
32
|
+
empty: false;
|
|
33
|
+
body?: string;
|
|
34
|
+
alreadyArchived?: true;
|
|
35
|
+
} & AuditArchiveMetadata);
|
|
36
|
+
export type ConfirmAuditArchiveInput = AuditArchiveMetadata;
|
|
37
|
+
export type PruneAuditArchiveInput = {
|
|
38
|
+
windowStart: string;
|
|
39
|
+
windowEnd: string;
|
|
40
|
+
objectKey: string;
|
|
41
|
+
sha256: string;
|
|
42
|
+
};
|
|
43
|
+
export type AuditArchiveRunResult = {
|
|
44
|
+
ok: true;
|
|
45
|
+
skipped: true;
|
|
46
|
+
reason: "disabled" | "missing-r2-binding" | "no-eligible-window" | "empty-window";
|
|
47
|
+
archived: false;
|
|
48
|
+
pruned: false;
|
|
49
|
+
} | ({
|
|
50
|
+
ok: true;
|
|
51
|
+
skipped: false;
|
|
52
|
+
archived: true;
|
|
53
|
+
pruned: true;
|
|
54
|
+
} & AuditArchiveMetadata);
|
|
55
|
+
export type RaybaseAuditArchiveEnv = RaybaseAuthEnv & {
|
|
56
|
+
RAYBASE_AUDIT_ARCHIVE?: R2Bucket;
|
|
57
|
+
RAYBASE_AUDIT_ARCHIVE_ENABLED?: string;
|
|
58
|
+
RAYBASE_AUDIT_HOT_DAYS?: string;
|
|
59
|
+
};
|
|
60
|
+
type ArchiveWindow = {
|
|
61
|
+
windowStart: string;
|
|
62
|
+
windowEnd: string;
|
|
63
|
+
};
|
|
64
|
+
type AuditArchiveStub = {
|
|
65
|
+
first<T extends Record<string, unknown> = Record<string, unknown>>(sql: string, params?: unknown[]): Promise<T | null>;
|
|
66
|
+
prepareAuditArchive(input: PrepareAuditArchiveInput): Promise<PreparedAuditArchive>;
|
|
67
|
+
confirmAuditArchive(input: ConfirmAuditArchiveInput): Promise<{
|
|
68
|
+
ok: true;
|
|
69
|
+
}>;
|
|
70
|
+
pruneAuditArchive(input: PruneAuditArchiveInput): Promise<{
|
|
71
|
+
ok: true;
|
|
72
|
+
}>;
|
|
73
|
+
};
|
|
74
|
+
export declare function validateAuditArchiveWindow(input: {
|
|
75
|
+
windowStart: string;
|
|
76
|
+
windowEnd: string;
|
|
77
|
+
}, now?: Date): ArchiveWindow;
|
|
78
|
+
export declare function auditArchiveObjectKey(windowStart: string): string;
|
|
79
|
+
export declare function isoToSqliteTimestamp(value: string): string;
|
|
80
|
+
export declare function serializeAuditArchiveRows(rows: readonly AuditArchiveRow[]): string;
|
|
81
|
+
export declare function auditArchiveEnabled(value: string | undefined): boolean;
|
|
82
|
+
export declare function parseAuditHotDays(value: string | undefined): number;
|
|
83
|
+
export declare function nextAuditArchiveWindow(stub: Pick<AuditArchiveStub, "first">, now?: Date, hotDays?: number): Promise<ArchiveWindow | null>;
|
|
84
|
+
export declare function archiveAuditToR2(env: RaybaseAuditArchiveEnv): Promise<AuditArchiveRunResult>;
|
|
85
|
+
//# sourceMappingURL=audit-archive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-archive.d.ts","sourceRoot":"","sources":["../src/audit-archive.ts"],"names":[],"mappings":"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"}
|