@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.
Files changed (435) hide show
  1. package/LICENSE +21 -0
  2. package/dist/.admin-build/AdminApp.css +2 -0
  3. package/dist/.admin-build/AdminApp.js +77 -0
  4. package/dist/.admin-docs-build/AdminDocsApp.css +2 -0
  5. package/dist/.admin-docs-build/AdminDocsApp.js +45 -0
  6. package/dist/actions.d.ts +347 -0
  7. package/dist/actions.d.ts.map +1 -0
  8. package/dist/actions.js +661 -0
  9. package/dist/actions.js.map +1 -0
  10. package/dist/admin-assets/admin.7738f50720a8ed7b.css +2 -0
  11. package/dist/admin-assets/admin.8678cb61db34dc81.js +77 -0
  12. package/dist/admin-boot.d.ts +94 -0
  13. package/dist/admin-boot.d.ts.map +1 -0
  14. package/dist/admin-boot.js +139 -0
  15. package/dist/admin-boot.js.map +1 -0
  16. package/dist/admin-docs-content.d.ts +95 -0
  17. package/dist/admin-docs-content.d.ts.map +1 -0
  18. package/dist/admin-docs-content.js +463 -0
  19. package/dist/admin-docs-content.js.map +1 -0
  20. package/dist/admin-docs-ui.d.ts +11 -0
  21. package/dist/admin-docs-ui.d.ts.map +1 -0
  22. package/dist/admin-docs-ui.js +23 -0
  23. package/dist/admin-docs-ui.js.map +1 -0
  24. package/dist/admin-kit.d.ts +29 -0
  25. package/dist/admin-kit.js +1557 -0
  26. package/dist/admin-role.d.ts +8 -0
  27. package/dist/admin-role.d.ts.map +1 -0
  28. package/dist/admin-role.js +22 -0
  29. package/dist/admin-role.js.map +1 -0
  30. package/dist/admin-ui.d.ts +3 -0
  31. package/dist/admin-ui.d.ts.map +1 -0
  32. package/dist/admin-ui.js +16 -0
  33. package/dist/admin-ui.js.map +1 -0
  34. package/dist/agent-ai-chat.d.ts +127 -0
  35. package/dist/agent-ai-chat.d.ts.map +1 -0
  36. package/dist/agent-ai-chat.js +5975 -0
  37. package/dist/agent-ai-chat.js.map +1 -0
  38. package/dist/agent-chapter-archive.d.ts +214 -0
  39. package/dist/agent-chapter-archive.d.ts.map +1 -0
  40. package/dist/agent-chapter-archive.js +696 -0
  41. package/dist/agent-chapter-archive.js.map +1 -0
  42. package/dist/agent-chapter-search.d.ts +116 -0
  43. package/dist/agent-chapter-search.d.ts.map +1 -0
  44. package/dist/agent-chapter-search.js +605 -0
  45. package/dist/agent-chapter-search.js.map +1 -0
  46. package/dist/agent-chapter-tools.d.ts +45 -0
  47. package/dist/agent-chapter-tools.d.ts.map +1 -0
  48. package/dist/agent-chapter-tools.js +344 -0
  49. package/dist/agent-chapter-tools.js.map +1 -0
  50. package/dist/agent-chapters.d.ts +228 -0
  51. package/dist/agent-chapters.d.ts.map +1 -0
  52. package/dist/agent-chapters.js +737 -0
  53. package/dist/agent-chapters.js.map +1 -0
  54. package/dist/agent-data-parts.d.ts +167 -0
  55. package/dist/agent-data-parts.d.ts.map +1 -0
  56. package/dist/agent-data-parts.js +68 -0
  57. package/dist/agent-data-parts.js.map +1 -0
  58. package/dist/agent-errors.d.ts +41 -0
  59. package/dist/agent-errors.d.ts.map +1 -0
  60. package/dist/agent-errors.js +191 -0
  61. package/dist/agent-errors.js.map +1 -0
  62. package/dist/agent-follow-up-store.d.ts +273 -0
  63. package/dist/agent-follow-up-store.d.ts.map +1 -0
  64. package/dist/agent-follow-up-store.js +703 -0
  65. package/dist/agent-follow-up-store.js.map +1 -0
  66. package/dist/agent-follow-ups.d.ts +314 -0
  67. package/dist/agent-follow-ups.d.ts.map +1 -0
  68. package/dist/agent-follow-ups.js +840 -0
  69. package/dist/agent-follow-ups.js.map +1 -0
  70. package/dist/agent-memory.d.ts +323 -0
  71. package/dist/agent-memory.d.ts.map +1 -0
  72. package/dist/agent-memory.js +1270 -0
  73. package/dist/agent-memory.js.map +1 -0
  74. package/dist/agent-message-parts.d.ts +58 -0
  75. package/dist/agent-message-parts.d.ts.map +1 -0
  76. package/dist/agent-message-parts.js +163 -0
  77. package/dist/agent-message-parts.js.map +1 -0
  78. package/dist/agent-remote-mcp-credentials.d.ts +154 -0
  79. package/dist/agent-remote-mcp-credentials.d.ts.map +1 -0
  80. package/dist/agent-remote-mcp-credentials.js +287 -0
  81. package/dist/agent-remote-mcp-credentials.js.map +1 -0
  82. package/dist/agent-remote-mcp-crypto.d.ts +32 -0
  83. package/dist/agent-remote-mcp-crypto.d.ts.map +1 -0
  84. package/dist/agent-remote-mcp-crypto.js +101 -0
  85. package/dist/agent-remote-mcp-crypto.js.map +1 -0
  86. package/dist/agent-remote-mcp-install.d.ts +299 -0
  87. package/dist/agent-remote-mcp-install.d.ts.map +1 -0
  88. package/dist/agent-remote-mcp-install.js +785 -0
  89. package/dist/agent-remote-mcp-install.js.map +1 -0
  90. package/dist/agent-remote-mcp-oauth.d.ts +73 -0
  91. package/dist/agent-remote-mcp-oauth.d.ts.map +1 -0
  92. package/dist/agent-remote-mcp-oauth.js +344 -0
  93. package/dist/agent-remote-mcp-oauth.js.map +1 -0
  94. package/dist/agent-remote-mcp-transport.d.ts +46 -0
  95. package/dist/agent-remote-mcp-transport.d.ts.map +1 -0
  96. package/dist/agent-remote-mcp-transport.js +225 -0
  97. package/dist/agent-remote-mcp-transport.js.map +1 -0
  98. package/dist/agent-remote-mcp.d.ts +147 -0
  99. package/dist/agent-remote-mcp.d.ts.map +1 -0
  100. package/dist/agent-remote-mcp.js +681 -0
  101. package/dist/agent-remote-mcp.js.map +1 -0
  102. package/dist/agent-room-redaction.d.ts +66 -0
  103. package/dist/agent-room-redaction.d.ts.map +1 -0
  104. package/dist/agent-room-redaction.js +264 -0
  105. package/dist/agent-room-redaction.js.map +1 -0
  106. package/dist/agent-rooms.d.ts +209 -0
  107. package/dist/agent-rooms.d.ts.map +1 -0
  108. package/dist/agent-rooms.js +244 -0
  109. package/dist/agent-rooms.js.map +1 -0
  110. package/dist/agent-runtime.d.ts +541 -0
  111. package/dist/agent-runtime.d.ts.map +1 -0
  112. package/dist/agent-runtime.js +4260 -0
  113. package/dist/agent-runtime.js.map +1 -0
  114. package/dist/agent-skill-archive.d.ts +20 -0
  115. package/dist/agent-skill-archive.d.ts.map +1 -0
  116. package/dist/agent-skill-archive.js +316 -0
  117. package/dist/agent-skill-archive.js.map +1 -0
  118. package/dist/agent-skill-discovery.d.ts +96 -0
  119. package/dist/agent-skill-discovery.d.ts.map +1 -0
  120. package/dist/agent-skill-discovery.js +464 -0
  121. package/dist/agent-skill-discovery.js.map +1 -0
  122. package/dist/agent-skill-format.d.ts +57 -0
  123. package/dist/agent-skill-format.d.ts.map +1 -0
  124. package/dist/agent-skill-format.js +238 -0
  125. package/dist/agent-skill-format.js.map +1 -0
  126. package/dist/agent-skill-import.d.ts +64 -0
  127. package/dist/agent-skill-import.d.ts.map +1 -0
  128. package/dist/agent-skill-import.js +295 -0
  129. package/dist/agent-skill-import.js.map +1 -0
  130. package/dist/agent-skill-publish.d.ts +51 -0
  131. package/dist/agent-skill-publish.d.ts.map +1 -0
  132. package/dist/agent-skill-publish.js +136 -0
  133. package/dist/agent-skill-publish.js.map +1 -0
  134. package/dist/agent-skill-store.d.ts +252 -0
  135. package/dist/agent-skill-store.d.ts.map +1 -0
  136. package/dist/agent-skill-store.js +514 -0
  137. package/dist/agent-skill-store.js.map +1 -0
  138. package/dist/agent-skills.d.ts +85 -0
  139. package/dist/agent-skills.d.ts.map +1 -0
  140. package/dist/agent-skills.js +291 -0
  141. package/dist/agent-skills.js.map +1 -0
  142. package/dist/agent-transcript-pager.d.ts +77 -0
  143. package/dist/agent-transcript-pager.d.ts.map +1 -0
  144. package/dist/agent-transcript-pager.js +210 -0
  145. package/dist/agent-transcript-pager.js.map +1 -0
  146. package/dist/agent-user-data-parts.d.ts +20 -0
  147. package/dist/agent-user-data-parts.d.ts.map +1 -0
  148. package/dist/agent-user-data-parts.js +161 -0
  149. package/dist/agent-user-data-parts.js.map +1 -0
  150. package/dist/agent-user-transcript.d.ts +46 -0
  151. package/dist/agent-user-transcript.d.ts.map +1 -0
  152. package/dist/agent-user-transcript.js +106 -0
  153. package/dist/agent-user-transcript.js.map +1 -0
  154. package/dist/agent-voice-notes.d.ts +15 -0
  155. package/dist/agent-voice-notes.d.ts.map +1 -0
  156. package/dist/agent-voice-notes.js +17 -0
  157. package/dist/agent-voice-notes.js.map +1 -0
  158. package/dist/agent-wakes.d.ts +213 -0
  159. package/dist/agent-wakes.d.ts.map +1 -0
  160. package/dist/agent-wakes.js +534 -0
  161. package/dist/agent-wakes.js.map +1 -0
  162. package/dist/agent.d.ts +1780 -0
  163. package/dist/agent.d.ts.map +1 -0
  164. package/dist/agent.js +3123 -0
  165. package/dist/agent.js.map +1 -0
  166. package/dist/ai.d.ts +583 -0
  167. package/dist/ai.d.ts.map +1 -0
  168. package/dist/ai.js +1858 -0
  169. package/dist/ai.js.map +1 -0
  170. package/dist/app-manifest.d.ts +255 -0
  171. package/dist/app-manifest.d.ts.map +1 -0
  172. package/dist/app-manifest.js +372 -0
  173. package/dist/app-manifest.js.map +1 -0
  174. package/dist/app-users.d.ts +30 -0
  175. package/dist/app-users.d.ts.map +1 -0
  176. package/dist/app-users.js +91 -0
  177. package/dist/app-users.js.map +1 -0
  178. package/dist/audit-archive.d.ts +85 -0
  179. package/dist/audit-archive.d.ts.map +1 -0
  180. package/dist/audit-archive.js +178 -0
  181. package/dist/audit-archive.js.map +1 -0
  182. package/dist/audit.d.ts +54 -0
  183. package/dist/audit.d.ts.map +1 -0
  184. package/dist/audit.js +95 -0
  185. package/dist/audit.js.map +1 -0
  186. package/dist/auth-logger.d.ts +28 -0
  187. package/dist/auth-logger.d.ts.map +1 -0
  188. package/dist/auth-logger.js +53 -0
  189. package/dist/auth-logger.js.map +1 -0
  190. package/dist/auth-password-secret.d.ts +59 -0
  191. package/dist/auth-password-secret.d.ts.map +1 -0
  192. package/dist/auth-password-secret.js +409 -0
  193. package/dist/auth-password-secret.js.map +1 -0
  194. package/dist/auth-schema.d.ts +120 -0
  195. package/dist/auth-schema.d.ts.map +1 -0
  196. package/dist/auth-schema.js +285 -0
  197. package/dist/auth-schema.js.map +1 -0
  198. package/dist/auth.d.ts +321 -0
  199. package/dist/auth.d.ts.map +1 -0
  200. package/dist/auth.js +1562 -0
  201. package/dist/auth.js.map +1 -0
  202. package/dist/backup-archive.d.ts +257 -0
  203. package/dist/backup-archive.d.ts.map +1 -0
  204. package/dist/backup-archive.js +2068 -0
  205. package/dist/backup-archive.js.map +1 -0
  206. package/dist/backup-crypto.d.ts +313 -0
  207. package/dist/backup-crypto.d.ts.map +1 -0
  208. package/dist/backup-crypto.js +693 -0
  209. package/dist/backup-crypto.js.map +1 -0
  210. package/dist/backup-format.d.ts +200 -0
  211. package/dist/backup-format.d.ts.map +1 -0
  212. package/dist/backup-format.js +1247 -0
  213. package/dist/backup-format.js.map +1 -0
  214. package/dist/cli.d.ts +9 -0
  215. package/dist/cli.d.ts.map +1 -0
  216. package/dist/cli.js +15 -0
  217. package/dist/cli.js.map +1 -0
  218. package/dist/clock.d.ts +35 -0
  219. package/dist/clock.d.ts.map +1 -0
  220. package/dist/clock.js +83 -0
  221. package/dist/clock.js.map +1 -0
  222. package/dist/data-client.d.ts +187 -0
  223. package/dist/data-client.d.ts.map +1 -0
  224. package/dist/data-client.js +590 -0
  225. package/dist/data-client.js.map +1 -0
  226. package/dist/data-secrets.d.ts +164 -0
  227. package/dist/data-secrets.d.ts.map +1 -0
  228. package/dist/data-secrets.js +383 -0
  229. package/dist/data-secrets.js.map +1 -0
  230. package/dist/db.d.ts +453 -0
  231. package/dist/db.d.ts.map +1 -0
  232. package/dist/db.js +324 -0
  233. package/dist/db.js.map +1 -0
  234. package/dist/dev-activity.d.ts +48 -0
  235. package/dist/dev-activity.d.ts.map +1 -0
  236. package/dist/dev-activity.js +50 -0
  237. package/dist/dev-activity.js.map +1 -0
  238. package/dist/do.d.ts +429 -0
  239. package/dist/do.d.ts.map +1 -0
  240. package/dist/do.js +4526 -0
  241. package/dist/do.js.map +1 -0
  242. package/dist/email.d.ts +137 -0
  243. package/dist/email.d.ts.map +1 -0
  244. package/dist/email.js +527 -0
  245. package/dist/email.js.map +1 -0
  246. package/dist/generated/admin-assets.d.ts +16 -0
  247. package/dist/generated/admin-assets.d.ts.map +1 -0
  248. package/dist/generated/admin-assets.js +16 -0
  249. package/dist/generated/admin-assets.js.map +1 -0
  250. package/dist/generated/admin-docs-assets.d.ts +3 -0
  251. package/dist/generated/admin-docs-assets.d.ts.map +1 -0
  252. package/dist/generated/admin-docs-assets.js +3 -0
  253. package/dist/generated/admin-docs-assets.js.map +1 -0
  254. package/dist/handoff-consumer.d.ts +79 -0
  255. package/dist/handoff-consumer.d.ts.map +1 -0
  256. package/dist/handoff-consumer.js +300 -0
  257. package/dist/handoff-consumer.js.map +1 -0
  258. package/dist/handoff.d.ts +70 -0
  259. package/dist/handoff.d.ts.map +1 -0
  260. package/dist/handoff.js +228 -0
  261. package/dist/handoff.js.map +1 -0
  262. package/dist/host-auth.d.ts +47 -0
  263. package/dist/host-auth.d.ts.map +1 -0
  264. package/dist/host-auth.js +59 -0
  265. package/dist/host-auth.js.map +1 -0
  266. package/dist/host-user.d.ts +15 -0
  267. package/dist/host-user.d.ts.map +1 -0
  268. package/dist/host-user.js +23 -0
  269. package/dist/host-user.js.map +1 -0
  270. package/dist/html.d.ts +35 -0
  271. package/dist/html.d.ts.map +1 -0
  272. package/dist/html.js +634 -0
  273. package/dist/html.js.map +1 -0
  274. package/dist/http-error.d.ts +13 -0
  275. package/dist/http-error.d.ts.map +1 -0
  276. package/dist/http-error.js +15 -0
  277. package/dist/http-error.js.map +1 -0
  278. package/dist/imports.d.ts +219 -0
  279. package/dist/imports.d.ts.map +1 -0
  280. package/dist/imports.js +571 -0
  281. package/dist/imports.js.map +1 -0
  282. package/dist/index.d.ts +78 -0
  283. package/dist/index.d.ts.map +1 -0
  284. package/dist/index.js +76 -0
  285. package/dist/index.js.map +1 -0
  286. package/dist/inference-tape.d.ts +64 -0
  287. package/dist/inference-tape.d.ts.map +1 -0
  288. package/dist/inference-tape.js +278 -0
  289. package/dist/inference-tape.js.map +1 -0
  290. package/dist/internal.d.ts +15 -0
  291. package/dist/internal.d.ts.map +1 -0
  292. package/dist/internal.js +48 -0
  293. package/dist/internal.js.map +1 -0
  294. package/dist/jobs.d.ts +796 -0
  295. package/dist/jobs.d.ts.map +1 -0
  296. package/dist/jobs.js +538 -0
  297. package/dist/jobs.js.map +1 -0
  298. package/dist/json-schema.d.ts +91 -0
  299. package/dist/json-schema.d.ts.map +1 -0
  300. package/dist/json-schema.js +884 -0
  301. package/dist/json-schema.js.map +1 -0
  302. package/dist/knowledge.d.ts +33 -0
  303. package/dist/knowledge.d.ts.map +1 -0
  304. package/dist/knowledge.js +348 -0
  305. package/dist/knowledge.js.map +1 -0
  306. package/dist/local-dev-chrome.d.ts +29 -0
  307. package/dist/local-dev-chrome.d.ts.map +1 -0
  308. package/dist/local-dev-chrome.js +514 -0
  309. package/dist/local-dev-chrome.js.map +1 -0
  310. package/dist/local-dev-personas.d.ts +15 -0
  311. package/dist/local-dev-personas.d.ts.map +1 -0
  312. package/dist/local-dev-personas.js +46 -0
  313. package/dist/local-dev-personas.js.map +1 -0
  314. package/dist/mcp.d.ts +567 -0
  315. package/dist/mcp.d.ts.map +1 -0
  316. package/dist/mcp.js +2480 -0
  317. package/dist/mcp.js.map +1 -0
  318. package/dist/modules.d.ts +145 -0
  319. package/dist/modules.d.ts.map +1 -0
  320. package/dist/modules.js +164 -0
  321. package/dist/modules.js.map +1 -0
  322. package/dist/notification-client.d.ts +94 -0
  323. package/dist/notification-client.d.ts.map +1 -0
  324. package/dist/notification-client.js +127 -0
  325. package/dist/notification-client.js.map +1 -0
  326. package/dist/notifications.d.ts +447 -0
  327. package/dist/notifications.d.ts.map +1 -0
  328. package/dist/notifications.js +1625 -0
  329. package/dist/notifications.js.map +1 -0
  330. package/dist/operator-data-query.d.ts +117 -0
  331. package/dist/operator-data-query.d.ts.map +1 -0
  332. package/dist/operator-data-query.js +431 -0
  333. package/dist/operator-data-query.js.map +1 -0
  334. package/dist/operator-mcp.d.ts +63 -0
  335. package/dist/operator-mcp.d.ts.map +1 -0
  336. package/dist/operator-mcp.js +2828 -0
  337. package/dist/operator-mcp.js.map +1 -0
  338. package/dist/outbound-https.d.ts +24 -0
  339. package/dist/outbound-https.d.ts.map +1 -0
  340. package/dist/outbound-https.js +172 -0
  341. package/dist/outbound-https.js.map +1 -0
  342. package/dist/pitr.d.ts +60 -0
  343. package/dist/pitr.d.ts.map +1 -0
  344. package/dist/pitr.js +94 -0
  345. package/dist/pitr.js.map +1 -0
  346. package/dist/platform.d.ts +199 -0
  347. package/dist/platform.d.ts.map +1 -0
  348. package/dist/platform.js +196 -0
  349. package/dist/platform.js.map +1 -0
  350. package/dist/policies.d.ts +115 -0
  351. package/dist/policies.d.ts.map +1 -0
  352. package/dist/policies.js +158 -0
  353. package/dist/policies.js.map +1 -0
  354. package/dist/principal.d.ts +143 -0
  355. package/dist/principal.d.ts.map +1 -0
  356. package/dist/principal.js +174 -0
  357. package/dist/principal.js.map +1 -0
  358. package/dist/realtime.d.ts +280 -0
  359. package/dist/realtime.d.ts.map +1 -0
  360. package/dist/realtime.js +578 -0
  361. package/dist/realtime.js.map +1 -0
  362. package/dist/retrieval.d.ts +263 -0
  363. package/dist/retrieval.d.ts.map +1 -0
  364. package/dist/retrieval.js +602 -0
  365. package/dist/retrieval.js.map +1 -0
  366. package/dist/runtime-error-client.d.ts +10 -0
  367. package/dist/runtime-error-client.d.ts.map +1 -0
  368. package/dist/runtime-error-client.js +70 -0
  369. package/dist/runtime-error-client.js.map +1 -0
  370. package/dist/runtime-errors.d.ts +180 -0
  371. package/dist/runtime-errors.d.ts.map +1 -0
  372. package/dist/runtime-errors.js +572 -0
  373. package/dist/runtime-errors.js.map +1 -0
  374. package/dist/schema.d.ts +434 -0
  375. package/dist/schema.d.ts.map +1 -0
  376. package/dist/schema.js +232 -0
  377. package/dist/schema.js.map +1 -0
  378. package/dist/search.d.ts +216 -0
  379. package/dist/search.d.ts.map +1 -0
  380. package/dist/search.js +785 -0
  381. package/dist/search.js.map +1 -0
  382. package/dist/settings.d.ts +191 -0
  383. package/dist/settings.d.ts.map +1 -0
  384. package/dist/settings.js +478 -0
  385. package/dist/settings.js.map +1 -0
  386. package/dist/sql.d.ts +7 -0
  387. package/dist/sql.d.ts.map +1 -0
  388. package/dist/sql.js +30 -0
  389. package/dist/sql.js.map +1 -0
  390. package/dist/storage-client.d.ts +69 -0
  391. package/dist/storage-client.d.ts.map +1 -0
  392. package/dist/storage-client.js +469 -0
  393. package/dist/storage-client.js.map +1 -0
  394. package/dist/storage.d.ts +21 -0
  395. package/dist/storage.d.ts.map +1 -0
  396. package/dist/storage.js +82 -0
  397. package/dist/storage.js.map +1 -0
  398. package/dist/subject-domains.d.ts +15 -0
  399. package/dist/subject-domains.d.ts.map +1 -0
  400. package/dist/subject-domains.js +38 -0
  401. package/dist/subject-domains.js.map +1 -0
  402. package/dist/support.d.ts +132 -0
  403. package/dist/support.d.ts.map +1 -0
  404. package/dist/support.js +483 -0
  405. package/dist/support.js.map +1 -0
  406. package/dist/system-tables.d.ts +12 -0
  407. package/dist/system-tables.d.ts.map +1 -0
  408. package/dist/system-tables.js +225 -0
  409. package/dist/system-tables.js.map +1 -0
  410. package/dist/test.d.ts +57 -0
  411. package/dist/test.d.ts.map +1 -0
  412. package/dist/test.js +454 -0
  413. package/dist/test.js.map +1 -0
  414. package/dist/vite.d.ts +82 -0
  415. package/dist/vite.d.ts.map +1 -0
  416. package/dist/vite.js +82 -0
  417. package/dist/vite.js.map +1 -0
  418. package/dist/webpush-crypto.d.ts +39 -0
  419. package/dist/webpush-crypto.d.ts.map +1 -0
  420. package/dist/webpush-crypto.js +213 -0
  421. package/dist/webpush-crypto.js.map +1 -0
  422. package/dist/webpush-private.d.ts +11 -0
  423. package/dist/webpush-private.d.ts.map +1 -0
  424. package/dist/webpush-private.js +11 -0
  425. package/dist/webpush-private.js.map +1 -0
  426. package/dist/webpush.d.ts +86 -0
  427. package/dist/webpush.d.ts.map +1 -0
  428. package/dist/webpush.js +375 -0
  429. package/dist/webpush.js.map +1 -0
  430. package/dist/worker.d.ts +185 -0
  431. package/dist/worker.d.ts.map +1 -0
  432. package/dist/worker.js +13021 -0
  433. package/dist/worker.js.map +1 -0
  434. package/package.json +161 -8
  435. package/README.md +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pitr.d.ts","sourceRoot":"","sources":["../src/pitr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEzD,eAAO,MAAM,eAAe,QAA2B,CAAC;AACxD,eAAO,MAAM,2BAA2B,8GAAyG,CAAC;AAElJ,qBAAa,aAAc,SAAQ,KAAK;aAGpB,MAAM;gBADtB,OAAO,EAAE,MAAM,EACC,MAAM,SAAM;CAK/B;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,sBAAsB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAI7E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAMvG;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE;IAC5C,IAAI,EAAE,IAAI,CAAC,yBAAyB,EAAE,qBAAqB,GAAG,aAAa,GAAG,oBAAoB,CAAC,CAAC;IACpG,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,KAAK,EAAE,CAAC,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClI,GAAG,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBnF;AAED,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,EAC1D,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAO,GAC7E,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;;;;GAKG;AACH,wBAAsB,+BAA+B,CAAC,KAAK,EAAE;IAC3D,IAAI,EAAE,IAAI,CACR,yBAAyB,EACvB,qBAAqB,GACrB,oCAAoC,GACpC,aAAa,GACb,oBAAoB,CACvB,CAAC;CACH,GAAG,OAAO,CAAC;IACV,iBAAiB,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC,CAyBD"}
package/dist/pitr.js ADDED
@@ -0,0 +1,94 @@
1
+ export const pitrRetentionMs = 30 * 24 * 60 * 60 * 1000;
2
+ export const localPitrUnavailableMessage = "Point-in-time restore is only available in production — local development has no durable change log.";
3
+ export class PitrHttpError extends Error {
4
+ status;
5
+ constructor(message, status = 400) {
6
+ super(message);
7
+ this.status = status;
8
+ this.name = "PitrHttpError";
9
+ }
10
+ }
11
+ export function pitrUnavailableReason(env) {
12
+ if (env.RAYBASE_ENV === "local")
13
+ return localPitrUnavailableMessage;
14
+ if (!env.RAYBASE_DATA)
15
+ return "RAYBASE_DATA Durable Object binding is missing";
16
+ return null;
17
+ }
18
+ export function validatePitrTimestamp(input, now = Date.now()) {
19
+ const epochMs = new Date(input).getTime();
20
+ if (!Number.isFinite(epochMs))
21
+ throw new PitrHttpError("Restore timestamp is required");
22
+ if (epochMs > now)
23
+ throw new PitrHttpError("Restore time cannot be in the future.");
24
+ if (epochMs < now - pitrRetentionMs)
25
+ throw new PitrHttpError("Restore points are only available for the last 30 days.");
26
+ return { epochMs, iso: new Date(epochMs).toISOString() };
27
+ }
28
+ export async function applyPitrRestore(input) {
29
+ const undoCandidate = await input.stub.pitrCurrentBookmark();
30
+ const restoredAt = (input.now ?? (() => new Date()))().toISOString();
31
+ const state = {
32
+ undoBookmark: undoCandidate,
33
+ restoredTo: input.restoredTo,
34
+ restoredAt,
35
+ actorId: input.actorId,
36
+ bookmark: input.bookmark
37
+ };
38
+ await input.saveState(state);
39
+ await input.audit({
40
+ bookmark: input.bookmark,
41
+ restoredTo: input.restoredTo,
42
+ undoBookmark: undoCandidate,
43
+ undoOf: input.undoOf
44
+ });
45
+ const undoBookmark = await input.stub.pitrRestore(input.bookmark);
46
+ await input.saveState({ ...state, undoBookmark });
47
+ await input.stub.pitrRestartToApply().catch(() => undefined);
48
+ return { undoBookmark, restoredTo: input.restoredTo, restoredAt };
49
+ }
50
+ export async function waitForPitrRestart(stubFactory, options = {}) {
51
+ try {
52
+ await stubFactory().ping();
53
+ return;
54
+ }
55
+ catch {
56
+ await (options.delay ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms))))(options.retryDelayMs ?? 500);
57
+ }
58
+ try {
59
+ await stubFactory().ping();
60
+ }
61
+ catch {
62
+ throw new PitrHttpError("Restore was applied but the database has not come back yet — refresh in a few seconds.", 502);
63
+ }
64
+ }
65
+ /**
66
+ * Recover an interrupted multi-batch format-2 restore from its pre-apply PITR
67
+ * bookmark. Marking the journal first makes every crash boundary idempotent:
68
+ * a subsequent maintenance entry repeats the same bookmark request while
69
+ * normal reads and writes remain gated.
70
+ */
71
+ export async function recoverInterruptedBackupRestore(input) {
72
+ const status = await input.stub.backupRestoreStatus();
73
+ if (!status.active) {
74
+ return {
75
+ recoveryRequested: false,
76
+ operationId: status.operationId,
77
+ undoBookmark: status.undoBookmark
78
+ };
79
+ }
80
+ if (!status.operationId || !status.undoBookmark) {
81
+ throw new PitrHttpError("Restore maintenance is active but its PITR undo bookmark is missing.", 503);
82
+ }
83
+ await input.stub.markBackupRestoreRollbackRequested({
84
+ operationId: status.operationId
85
+ });
86
+ await input.stub.pitrRestore(status.undoBookmark);
87
+ await input.stub.pitrRestartToApply().catch(() => undefined);
88
+ return {
89
+ recoveryRequested: true,
90
+ operationId: status.operationId,
91
+ undoBookmark: status.undoBookmark
92
+ };
93
+ }
94
+ //# sourceMappingURL=pitr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pitr.js","sourceRoot":"","sources":["../src/pitr.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,CAAC,MAAM,2BAA2B,GAAG,sGAAsG,CAAC;AAElJ,MAAM,OAAO,aAAc,SAAQ,KAAK;IAGpB;IAFlB,YACE,OAAe,EACC,SAAS,GAAG;QAE5B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,WAAM,GAAN,MAAM,CAAM;QAG5B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAeD,MAAM,UAAU,qBAAqB,CAAC,GAAwB;IAC5D,IAAI,GAAG,CAAC,WAAW,KAAK,OAAO;QAAE,OAAO,2BAA2B,CAAC;IACpE,IAAI,CAAC,GAAG,CAAC,YAAY;QAAE,OAAO,gDAAgD,CAAC;IAC/E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACnE,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,+BAA+B,CAAC,CAAC;IACxF,IAAI,OAAO,GAAG,GAAG;QAAE,MAAM,IAAI,aAAa,CAAC,uCAAuC,CAAC,CAAC;IACpF,IAAI,OAAO,GAAG,GAAG,GAAG,eAAe;QAAE,MAAM,IAAI,aAAa,CAAC,yDAAyD,CAAC,CAAC;IACxH,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAStC;IACC,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7D,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;IACrE,MAAM,KAAK,GAAqB;QAC9B,YAAY,EAAE,aAAa;QAC3B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU;QACV,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC;IAEF,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,KAAK,CAAC,KAAK,CAAC;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,YAAY,EAAE,aAAa;QAC3B,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClE,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IAClD,MAAM,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAA0D,EAC1D,UAA4E,EAAE;IAE9E,IAAI,CAAC;QACH,MAAM,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAC3B,OAAO;IACT,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC;IACpH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,aAAa,CAAC,wFAAwF,EAAE,GAAG,CAAC,CAAC;IACzH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,KAQrD;IAKC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO;YACL,iBAAiB,EAAE,KAAK;YACxB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAChD,MAAM,IAAI,aAAa,CACrB,sEAAsE,EACtE,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC;QAClD,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;IACH,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7D,OAAO;QACL,iBAAiB,EAAE,IAAI;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,199 @@
1
+ import type { DataContext } from "./data-client.js";
2
+ import type { DoMigration, RaybaseDatabaseObjectStub, RaybaseDatabaseRuntime, RaybaseDbEnv } from "./db.js";
3
+ import type { RaybaseUser } from "./policies.js";
4
+ import type { ResolvedRealtimeConfig } from "./realtime.js";
5
+ import type { RaybaseSchema, RaybaseSystemTable } from "./schema.js";
6
+ import type { RaybaseDevPersona } from "./local-dev-personas.js";
7
+ import type { RaybaseHostIdentity } from "./host-auth.js";
8
+ export declare class RaybaseRuntimeProfileConfigurationError extends Error {
9
+ readonly code: "RAYBASE_RUNTIME_PROFILE_CONFIGURATION";
10
+ constructor(message: string);
11
+ }
12
+ export type RaybaseRuntimeClaims = {
13
+ scopeId?: string | null;
14
+ identityId?: string | null;
15
+ policySubjectId?: string | null;
16
+ membershipId?: string | null;
17
+ organizationId?: string | null;
18
+ appId?: string | null;
19
+ [key: string]: unknown;
20
+ };
21
+ export type RaybasePersistedRuntimeClaims = Record<string, unknown> & {
22
+ scopeId?: string;
23
+ organizationId?: string;
24
+ appId?: string;
25
+ };
26
+ export type RaybaseRuntimeSubjects = {
27
+ identityId: string;
28
+ policySubjectId: string;
29
+ membershipId?: string | null;
30
+ };
31
+ export type RaybaseRuntimeScope = {
32
+ scopeId: string;
33
+ subjects?: RaybaseRuntimeSubjects;
34
+ organizationId?: string | null;
35
+ appId?: string | null;
36
+ claims?: RaybaseRuntimeClaims;
37
+ };
38
+ export type RaybaseResourcePurpose = "files" | "agent-transcript" | "backup" | "audit" | "retrieval" | "agent-history" | (string & {});
39
+ export type RaybaseResourceAddress = {
40
+ purpose: RaybaseResourcePurpose;
41
+ scope?: RaybaseRuntimeScope | null;
42
+ segments?: readonly string[];
43
+ };
44
+ export type RaybaseRuntimeResourceProfile = {
45
+ objectKey?(address: RaybaseResourceAddress): string;
46
+ assertObjectKey?(address: RaybaseResourceAddress & {
47
+ key: string;
48
+ }): void;
49
+ vectorizeNamespace?(address: Omit<RaybaseResourceAddress, "segments">): string | Promise<string>;
50
+ };
51
+ export type RaybaseRuntimeSubjectProfile = {
52
+ identitySubjectId?(user: RaybaseUser): string;
53
+ policySubjectId?(user: RaybaseUser): string;
54
+ };
55
+ export type RaybaseRuntimeRecipient = {
56
+ subjectId: string;
57
+ email?: string | null;
58
+ name?: string | null;
59
+ role?: string | null;
60
+ };
61
+ export type RaybaseRuntimeRecipientQuery = {
62
+ kind: "user";
63
+ subjectId: string;
64
+ } | {
65
+ kind: "role";
66
+ role: string;
67
+ } | {
68
+ kind: "operator";
69
+ role?: string | null;
70
+ };
71
+ export type RaybaseEnsureLocalDevPersona<Env extends object = object> = (persona: RaybaseDevPersona, request: Request, env: Env, scope: RaybaseRuntimeScope | null) => Promise<RaybaseUser>;
72
+ export type RaybaseRuntimeDirectoryProfile<Env extends object = object> = {
73
+ /**
74
+ * Local-development-only directory operation. First-party layered runtimes
75
+ * provision/project the configured persona in their identity owner without
76
+ * mutating the selected app store. Implementations must be idempotent for the
77
+ * same persona and opaque runtime scope.
78
+ */
79
+ ensureLocalDevPersona?: RaybaseEnsureLocalDevPersona<Env>;
80
+ resolvePolicySubject?(subjectId: string, env: Env, scope?: RaybaseRuntimeScope | null): Promise<RaybaseUser | null>;
81
+ notificationRecipients?(query: RaybaseRuntimeRecipientQuery, env: Env, scope?: RaybaseRuntimeScope | null): Promise<RaybaseRuntimeRecipient[]>;
82
+ };
83
+ export type RaybaseRuntimeScopeResolver<Env extends object = object> = {
84
+ fromRequest?(request: Request, env: Env, input?: {
85
+ user?: RaybaseUser | null;
86
+ session?: unknown;
87
+ }): RaybaseRuntimeScope | null | Promise<RaybaseRuntimeScope | null>;
88
+ fromClaims?(env: Env, claims: RaybaseRuntimeClaims): RaybaseRuntimeScope | null | Promise<RaybaseRuntimeScope | null>;
89
+ /**
90
+ * Projects the current runtime scope into persisted work. Core deliberately
91
+ * leaves queue payloads unchanged; first-party layered runtimes stamp the
92
+ * immutable scope needed to reconstruct the same store at consume time.
93
+ */
94
+ toClaims?(env: Env, scope: RaybaseRuntimeScope): RaybaseRuntimeClaims;
95
+ /**
96
+ * Enumerates scopes for requestless scheduled work. Core has one default
97
+ * scope; layered runtimes may resolve their own immutable scope IDs.
98
+ */
99
+ scheduled?(env: Env): Iterable<RaybaseRuntimeScope> | AsyncIterable<RaybaseRuntimeScope> | Promise<Iterable<RaybaseRuntimeScope> | AsyncIterable<RaybaseRuntimeScope>>;
100
+ };
101
+ export type RaybaseRuntimeSession = {
102
+ user: RaybaseUser;
103
+ session: Record<string, unknown>;
104
+ headers?: Headers;
105
+ };
106
+ export type RaybaseRuntimeSessionProfile<Env extends object = object> = {
107
+ resolve(request: Request, env: Env, input?: {
108
+ scope?: RaybaseRuntimeScope | null;
109
+ }): RaybaseRuntimeSession | null | Promise<RaybaseRuntimeSession | null>;
110
+ /**
111
+ * Turns a person the app's `hostAuth` vouched for into this runtime's
112
+ * session. Core calls it only where it would use `hostAuth` itself: on agent
113
+ * routes, after the app's `resolve` hook returned an identity and `resolve`
114
+ * above found no session. A profile that resolves its own sessions but
115
+ * leaves this out ignores `hostAuth`, because it owns identity and Core's
116
+ * own host users would mean nothing to it.
117
+ */
118
+ host?(input: {
119
+ request: Request;
120
+ env: Env;
121
+ scope: RaybaseRuntimeScope | null;
122
+ provider: string;
123
+ identity: RaybaseHostIdentity;
124
+ }): RaybaseRuntimeSession | null | Promise<RaybaseRuntimeSession | null>;
125
+ };
126
+ export type RaybaseRuntimeDatabaseProfile = {
127
+ create<const Schema extends RaybaseSchema>(env: RaybaseDbEnv, schema: Schema, appMigrations?: DoMigration[], options?: {
128
+ realtime?: ResolvedRealtimeConfig;
129
+ afterMutation?: DataContext["afterMutation"];
130
+ systemTables?: RaybaseSystemTable[];
131
+ controlSystemTables?: RaybaseSystemTable[];
132
+ }): RaybaseDatabaseRuntime<Schema>;
133
+ dataStub?(env: RaybaseDbEnv): RaybaseDatabaseObjectStub;
134
+ };
135
+ export type RaybaseRuntimeDurableObjectProfile = {
136
+ /**
137
+ * Resolves the stable name passed to the Agent chat namespace. Core returns
138
+ * the existing instance key byte-for-byte.
139
+ */
140
+ agentConversationName?(input: {
141
+ scope?: RaybaseRuntimeScope | null;
142
+ instanceKey: string;
143
+ agentName: string;
144
+ conversationId: string;
145
+ }): string;
146
+ };
147
+ export type RaybaseRuntimeProfile<Env extends object = object> = {
148
+ name: string;
149
+ database?: RaybaseRuntimeDatabaseProfile;
150
+ durableObjects?: RaybaseRuntimeDurableObjectProfile;
151
+ resources?: RaybaseRuntimeResourceProfile;
152
+ subjects?: RaybaseRuntimeSubjectProfile;
153
+ directory?: RaybaseRuntimeDirectoryProfile<Env>;
154
+ scope?: RaybaseRuntimeScopeResolver<Env>;
155
+ session?: RaybaseRuntimeSessionProfile<Env>;
156
+ /** First-party scoped distributions may expose a scoped settings layer. */
157
+ settings?: {
158
+ allowScopedDefinitions?: boolean;
159
+ appId?(env: Env): string;
160
+ };
161
+ /** Lets a first-party shell own fleet-wide maintenance orchestration. */
162
+ maintenance?: {
163
+ auditArchive?: boolean;
164
+ backups?: boolean;
165
+ };
166
+ };
167
+ /** Closed single-tenant runtime used by the normal Core app constructor. */
168
+ export declare const raybaseCoreRuntimeProfile: RaybaseRuntimeProfile<object>;
169
+ export declare function bindRaybaseRuntimeProfile<Env extends object>(env: Env, profile: RaybaseRuntimeProfile<Env>): Env;
170
+ export declare function raybaseRuntimeProfile(env: unknown): RaybaseRuntimeProfile | null;
171
+ export declare function raybaseRuntimeSettingsAppId<Env extends object>(env: Env): string;
172
+ export declare function bindRaybaseRuntimeScope<Env extends object>(env: Env, scope: RaybaseRuntimeScope): Env;
173
+ /** Records the runtime env a data Durable Object executor was built for. */
174
+ export declare function bindRaybaseExecutorEnv<Executor extends object>(executor: Executor, env: object): Executor;
175
+ /**
176
+ * The runtime env a store executor such as an action's `ctx.control` was built
177
+ * for, so a first-party layer can tell which scope it belongs to.
178
+ */
179
+ export declare function raybaseExecutorEnv(executor: unknown): object | null;
180
+ export declare function raybaseRuntimeScope(env: unknown): RaybaseRuntimeScope | null;
181
+ export declare function createRaybaseRuntimeEnv<Env extends object>(env: Env, profile: RaybaseRuntimeProfile<Env>, scope?: RaybaseRuntimeScope | null): Env;
182
+ export declare function identitySubjectId(user: RaybaseUser): string;
183
+ export declare function runtimeIdentitySubjectId(env: unknown, user: RaybaseUser): string;
184
+ export declare function runtimePolicySubjectId(env: unknown, user: RaybaseUser): string;
185
+ export declare function resolveRaybaseRuntimeScopeFromClaims<Env extends object>(env: Env, claims: RaybaseRuntimeClaims): Promise<RaybaseRuntimeScope>;
186
+ export declare function raybaseRuntimeScopeClaims(env: unknown): RaybasePersistedRuntimeClaims;
187
+ export declare function mergeRaybaseRuntimeClaims<T extends Record<string, unknown>>(message: T, claims: RaybaseRuntimeClaims): T & RaybasePersistedRuntimeClaims;
188
+ export declare function withRaybaseRuntimeClaims<T extends Record<string, unknown>>(env: unknown, message: T): T & RaybasePersistedRuntimeClaims;
189
+ export declare function raybaseVectorizeNamespace(env: unknown, purpose: RaybaseResourcePurpose, scope?: RaybaseRuntimeScope | null, fallback?: string): Promise<string>;
190
+ export declare function raybaseObjectKey(env: unknown, purpose: RaybaseResourcePurpose, segments: readonly string[], scope?: RaybaseRuntimeScope | null, fallback?: () => string): string;
191
+ export declare function assertRaybaseObjectKey(env: unknown, purpose: RaybaseResourcePurpose, key: string, scope?: RaybaseRuntimeScope | null): void;
192
+ export declare function raybaseAddressSegment(value: string): string;
193
+ export declare function raybaseAgentConversationName(env: unknown, input: {
194
+ instanceKey: string;
195
+ agentName: string;
196
+ conversationId: string;
197
+ scope?: RaybaseRuntimeScope | null;
198
+ }): string;
199
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,196 @@
1
+ import { defaultSettingsAppId } from "./settings.js";
2
+ export class RaybaseRuntimeProfileConfigurationError extends Error {
3
+ code = "RAYBASE_RUNTIME_PROFILE_CONFIGURATION";
4
+ constructor(message) {
5
+ super(message);
6
+ this.name = "RaybaseRuntimeProfileConfigurationError";
7
+ }
8
+ }
9
+ const runtimeProfiles = new WeakMap();
10
+ const runtimeScopes = new WeakMap();
11
+ const executorEnvs = new WeakMap();
12
+ const runtimeProfileSymbol = Symbol.for("@raybase/core.runtime-profile");
13
+ const runtimeScopeSymbol = Symbol.for("@raybase/core.runtime-scope");
14
+ const executorEnvSymbol = Symbol.for("@raybase/core.executor-env");
15
+ /** Closed single-tenant runtime used by the normal Core app constructor. */
16
+ export const raybaseCoreRuntimeProfile = {
17
+ name: "raybase-core",
18
+ scope: {
19
+ fromRequest() {
20
+ return { scopeId: "default" };
21
+ },
22
+ fromClaims(_env, claims) {
23
+ return { scopeId: "default", claims };
24
+ },
25
+ scheduled() {
26
+ return [{ scopeId: "default" }];
27
+ }
28
+ },
29
+ durableObjects: {
30
+ agentConversationName({ instanceKey }) {
31
+ return instanceKey;
32
+ }
33
+ },
34
+ settings: {
35
+ appId() {
36
+ return defaultSettingsAppId;
37
+ }
38
+ }
39
+ };
40
+ export function bindRaybaseRuntimeProfile(env, profile) {
41
+ const current = runtimeProfiles.get(env);
42
+ if (current && current !== profile && current.name !== profile.name) {
43
+ throw new Error(`Raybase runtime environment is already bound to profile ${current.name}`);
44
+ }
45
+ runtimeProfiles.set(env, profile);
46
+ Object.defineProperty(env, runtimeProfileSymbol, {
47
+ configurable: true,
48
+ value: profile
49
+ });
50
+ return env;
51
+ }
52
+ export function raybaseRuntimeProfile(env) {
53
+ if (!env || typeof env !== "object")
54
+ return null;
55
+ return runtimeProfiles.get(env)
56
+ ?? env[runtimeProfileSymbol]
57
+ ?? null;
58
+ }
59
+ export function raybaseRuntimeSettingsAppId(env) {
60
+ const profile = raybaseRuntimeProfile(env);
61
+ return profile?.settings?.appId?.(env) ?? defaultSettingsAppId;
62
+ }
63
+ export function bindRaybaseRuntimeScope(env, scope) {
64
+ runtimeScopes.set(env, scope);
65
+ Object.defineProperty(env, runtimeScopeSymbol, {
66
+ configurable: true,
67
+ value: scope
68
+ });
69
+ return env;
70
+ }
71
+ /** Records the runtime env a data Durable Object executor was built for. */
72
+ export function bindRaybaseExecutorEnv(executor, env) {
73
+ executorEnvs.set(executor, env);
74
+ Object.defineProperty(executor, executorEnvSymbol, { configurable: true, value: env });
75
+ return executor;
76
+ }
77
+ /**
78
+ * The runtime env a store executor such as an action's `ctx.control` was built
79
+ * for, so a first-party layer can tell which scope it belongs to.
80
+ */
81
+ export function raybaseExecutorEnv(executor) {
82
+ if (!executor || typeof executor !== "object")
83
+ return null;
84
+ return executorEnvs.get(executor)
85
+ ?? executor[executorEnvSymbol]
86
+ ?? null;
87
+ }
88
+ export function raybaseRuntimeScope(env) {
89
+ if (!env || typeof env !== "object")
90
+ return null;
91
+ return runtimeScopes.get(env)
92
+ ?? env[runtimeScopeSymbol]
93
+ ?? null;
94
+ }
95
+ export function createRaybaseRuntimeEnv(env, profile, scope) {
96
+ const scoped = Object.create(env);
97
+ bindRaybaseRuntimeProfile(scoped, profile);
98
+ // Explicit null means "new root entry point": do not inherit a stale scope
99
+ // from an environment object reused by a Worker test/runtime. Omitting the
100
+ // argument preserves scope through nested first-party composition.
101
+ const inheritedScope = arguments.length >= 3 ? scope : raybaseRuntimeScope(env);
102
+ if (inheritedScope) {
103
+ bindRaybaseRuntimeScope(scoped, inheritedScope);
104
+ }
105
+ else if (arguments.length >= 3) {
106
+ // Shadow any scope symbol inherited through Object.create(env).
107
+ Object.defineProperty(scoped, runtimeScopeSymbol, {
108
+ configurable: true,
109
+ value: null
110
+ });
111
+ }
112
+ return scoped;
113
+ }
114
+ export function identitySubjectId(user) {
115
+ return user.id;
116
+ }
117
+ export function runtimeIdentitySubjectId(env, user) {
118
+ return raybaseRuntimeProfile(env)?.subjects?.identitySubjectId?.(user) ?? identitySubjectId(user);
119
+ }
120
+ export function runtimePolicySubjectId(env, user) {
121
+ return raybaseRuntimeProfile(env)?.subjects?.policySubjectId?.(user) ?? user.id;
122
+ }
123
+ export async function resolveRaybaseRuntimeScopeFromClaims(env, claims) {
124
+ const profile = raybaseRuntimeProfile(env);
125
+ const resolved = await profile?.scope?.fromClaims?.(env, claims);
126
+ if (resolved)
127
+ return resolved;
128
+ const scopeId = claims.scopeId ?? claims.organizationId ?? "default";
129
+ return {
130
+ scopeId,
131
+ organizationId: claims.organizationId ?? null,
132
+ appId: claims.appId ?? null,
133
+ claims,
134
+ ...(claims.identityId && claims.policySubjectId
135
+ ? {
136
+ subjects: {
137
+ identityId: claims.identityId,
138
+ policySubjectId: claims.policySubjectId,
139
+ membershipId: claims.membershipId ?? null
140
+ }
141
+ }
142
+ : {})
143
+ };
144
+ }
145
+ export function raybaseRuntimeScopeClaims(env) {
146
+ const scope = raybaseRuntimeScope(env);
147
+ const resolver = raybaseRuntimeProfile(env)?.scope;
148
+ if (!scope || !resolver?.toClaims || !env || typeof env !== "object")
149
+ return {};
150
+ return Object.fromEntries(Object.entries(resolver.toClaims(env, scope))
151
+ .filter(([, value]) => value !== null && value !== undefined));
152
+ }
153
+ export function mergeRaybaseRuntimeClaims(message, claims) {
154
+ for (const key of ["scopeId", "organizationId", "appId"]) {
155
+ const messageValue = message[key];
156
+ const claimValue = claims[key];
157
+ if (messageValue !== undefined
158
+ && messageValue !== null
159
+ && claimValue !== undefined
160
+ && claimValue !== null
161
+ && messageValue !== claimValue) {
162
+ throw new Error(`Refusing to enqueue Raybase work for a different runtime ${key}`);
163
+ }
164
+ }
165
+ const persistedClaims = Object.fromEntries(Object.entries(claims).filter(([, value]) => value !== null && value !== undefined));
166
+ return { ...message, ...persistedClaims };
167
+ }
168
+ export function withRaybaseRuntimeClaims(env, message) {
169
+ return mergeRaybaseRuntimeClaims(message, raybaseRuntimeScopeClaims(env));
170
+ }
171
+ export async function raybaseVectorizeNamespace(env, purpose, scope, fallback = "default") {
172
+ return await raybaseRuntimeProfile(env)?.resources?.vectorizeNamespace?.({ purpose, scope }) ?? fallback;
173
+ }
174
+ export function raybaseObjectKey(env, purpose, segments, scope, fallback) {
175
+ const address = { purpose, scope, segments };
176
+ const resolved = raybaseRuntimeProfile(env)?.resources?.objectKey?.(address);
177
+ if (resolved)
178
+ return resolved;
179
+ if (fallback)
180
+ return fallback();
181
+ return segments.map(raybaseAddressSegment).join("/");
182
+ }
183
+ export function assertRaybaseObjectKey(env, purpose, key, scope) {
184
+ raybaseRuntimeProfile(env)?.resources?.assertObjectKey?.({ purpose, scope, key });
185
+ }
186
+ export function raybaseAddressSegment(value) {
187
+ return encodeURIComponent(value);
188
+ }
189
+ export function raybaseAgentConversationName(env, input) {
190
+ const scope = input.scope === undefined ? raybaseRuntimeScope(env) : input.scope;
191
+ return raybaseRuntimeProfile(env)?.durableObjects?.agentConversationName?.({
192
+ ...input,
193
+ scope
194
+ }) ?? input.instanceKey;
195
+ }
196
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ import type { RaybaseAdminRole } from "./admin-role.js";
2
+ import type { RaybasePrincipal } from "./principal.js";
3
+ export type BuiltInRole = "user";
4
+ export type RaybaseRole = BuiltInRole | (string & {});
5
+ export type RaybaseDefinedRoles<Roles extends readonly string[] = readonly string[]> = Roles & {
6
+ readonly __raybaseRolesBrand: unique symbol;
7
+ };
8
+ export type RaybaseDefinedRoleName<Roles extends readonly string[]> = BuiltInRole | Roles[number];
9
+ export type RaybaseUser = {
10
+ /** Policy subject. Core users omit membershipId, so this remains the user id. */
11
+ id: string;
12
+ /** Stable person/identity subject. First-party layered runtimes may project it explicitly. */
13
+ identityId?: string;
14
+ /** Scoped policy subject. Core leaves this unset; Pro supplies its membership id. */
15
+ membershipId?: string;
16
+ /** Opaque runtime scope metadata. Core leaves this unset. */
17
+ organizationId?: string;
18
+ email: string;
19
+ name: string;
20
+ operatorRole?: RaybaseAdminRole;
21
+ /** First-party layered runtimes may retain their shell-level role projection. */
22
+ role?: RaybaseRole;
23
+ /** First-party layered runtimes may expose an operator grant without changing Core auth. */
24
+ operatorGrant?: "owner" | "operator";
25
+ appRoles?: RaybaseRole[];
26
+ emailVerified?: boolean;
27
+ disabled?: boolean;
28
+ };
29
+ export declare function policySubjectId(user: RaybaseUser): string;
30
+ export type PolicyContext = {
31
+ user: RaybaseUser;
32
+ /** Server-owned acting principal. Browser clients can never construct this context. */
33
+ principal?: RaybasePrincipal;
34
+ row?: Record<string, unknown> | null;
35
+ newRow?: Record<string, unknown> | null;
36
+ action: "read" | "create" | "update" | "delete";
37
+ adminOverride?: boolean;
38
+ };
39
+ export type PolicyExpression = {
40
+ kind: "allowAll";
41
+ } | {
42
+ kind: "denyAll";
43
+ } | {
44
+ kind: "role";
45
+ role: RaybaseRole;
46
+ } | {
47
+ kind: "owns";
48
+ column: string;
49
+ } | {
50
+ kind: "servicePrincipal";
51
+ service: string;
52
+ } | {
53
+ kind: "operator";
54
+ } | {
55
+ kind: "anyOf";
56
+ policies: PolicyExpression[];
57
+ } | {
58
+ kind: "allOf";
59
+ policies: PolicyExpression[];
60
+ } | {
61
+ kind: "not";
62
+ policy: PolicyExpression;
63
+ };
64
+ export type ReadPolicyScope = "allowed" | "denied" | "row_dependent";
65
+ export type SerializedPolicyExpression = {
66
+ kind: "allowAll";
67
+ } | {
68
+ kind: "denyAll";
69
+ } | {
70
+ kind: "role";
71
+ role: RaybaseRole;
72
+ } | {
73
+ kind: "owns";
74
+ column: string;
75
+ } | {
76
+ kind: "servicePrincipal";
77
+ service: string;
78
+ } | {
79
+ kind: "operator";
80
+ } | {
81
+ kind: "anyOf";
82
+ policies: SerializedPolicyExpression[];
83
+ } | {
84
+ kind: "allOf";
85
+ policies: SerializedPolicyExpression[];
86
+ } | {
87
+ kind: "not";
88
+ policy: SerializedPolicyExpression;
89
+ };
90
+ export declare function defineRoles<const Roles extends readonly string[]>(roles: Roles): RaybaseDefinedRoles<Roles>;
91
+ export declare function role<const Roles extends readonly string[]>(roles: RaybaseDefinedRoles<Roles>, roleName: RaybaseDefinedRoleName<Roles>): PolicyExpression;
92
+ export declare function role(roleName: RaybaseRole): PolicyExpression;
93
+ export declare function owns(column: string): PolicyExpression;
94
+ export declare function fromService(service: string): PolicyExpression;
95
+ export declare function operator(): PolicyExpression;
96
+ export declare function anyOf(...policies: PolicyExpression[]): PolicyExpression;
97
+ export declare function allOf(...policies: PolicyExpression[]): PolicyExpression;
98
+ export declare function not(policy: PolicyExpression): PolicyExpression;
99
+ export declare const allowAll: Readonly<{
100
+ readonly kind: "allowAll";
101
+ }>;
102
+ export declare const denyAll: Readonly<{
103
+ readonly kind: "denyAll";
104
+ }>;
105
+ export declare function serializePolicyExpression(policy: PolicyExpression | undefined): SerializedPolicyExpression | undefined;
106
+ export declare function roleAllows(userRole: RaybaseRole, required: RaybaseRole): boolean;
107
+ export declare function evaluatePolicy(policy: PolicyExpression | undefined, ctx: PolicyContext): boolean;
108
+ /**
109
+ * Reduce a read policy using only principal-level context. This deliberately
110
+ * does not inspect a row: `row_dependent` means the normal row policy still
111
+ * needs to be applied by the caller.
112
+ */
113
+ export declare function classifyReadPolicy(policy: PolicyExpression | undefined, ctx: Pick<PolicyContext, "user" | "principal" | "adminOverride">): ReadPolicyScope;
114
+ export declare function describePolicy(policy: PolicyExpression | undefined): string;
115
+ //# sourceMappingURL=policies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../src/policies.ts"],"names":[],"mappings":"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"}