@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,464 @@
1
+ import { isGzip, isZip, readAgentSkillArchive } from "./agent-skill-archive.js";
2
+ import { AgentSkillValidationError, normalizeSkillPackage, normalizeSkillPath, parseSkillMd, validateOpenAgentSkillName } from "./agent-skill-format.js";
3
+ import { findAgentSkill, getAgentSkillUpload } from "./agent-skill-store.js";
4
+ import { sha256Hex, stableJson } from "./internal.js";
5
+ import { fetchOutboundHardened, validateOutboundHttpsUrl, validateOutboundOrigin } from "./outbound-https.js";
6
+ export const agentSkillsDiscoverySchemaUri = "https://schemas.agentskills.io/discovery/0.2.0/schema.json";
7
+ export async function discoverAgentSkills(options) {
8
+ try {
9
+ validateSourceDescriptor(options.source);
10
+ let raw;
11
+ if (options.source.kind === "manifest-url" || options.source.kind === "website")
12
+ raw = await discoverHttpManifest(options);
13
+ else if (options.source.kind === "direct-url")
14
+ raw = await discoverDirect(options);
15
+ else if (options.source.kind === "github")
16
+ raw = await discoverGithub(options);
17
+ else
18
+ raw = await discoverUpload(options);
19
+ const withConflicts = await attachConflicts(raw.candidates, options.agentName, options.control);
20
+ return finalizeDiscovery({ ...raw, candidates: withConflicts }, options.requestedNames);
21
+ }
22
+ catch (error) {
23
+ const typed = typedError(error);
24
+ return {
25
+ status: "invalid",
26
+ sourceKind: options.source.kind,
27
+ sourceDigest: "",
28
+ classification: options.source.kind === "manifest-url" || options.source.kind === "website" ? "managed-manifest" : "unmanaged-scan",
29
+ candidates: [], totalCandidates: 0, truncated: false, invalidRequestedNames: [], warnings: [], error: typed
30
+ };
31
+ }
32
+ }
33
+ function validateSourceDescriptor(source) {
34
+ if (!source || typeof source !== "object")
35
+ throw discoveryError("invalid_source", "Skill source descriptor is required");
36
+ if (source.kind === "github") {
37
+ if (source.manifestPath && source.path)
38
+ throw discoveryError("invalid_source", "GitHub manifestPath and path are mutually exclusive");
39
+ if ((source.discovery ?? "auto") === "manifest" && source.path)
40
+ throw discoveryError("invalid_source", "GitHub path cannot be combined with manifest discovery");
41
+ if (source.manifestPath)
42
+ normalizeRepoPath(source.manifestPath);
43
+ if (source.path)
44
+ normalizeRepoPath(source.path);
45
+ }
46
+ }
47
+ async function discoverHttpManifest(options) {
48
+ const source = options.source;
49
+ const supplied = validateOutboundHttpsUrl(source.url);
50
+ const indexUrl = source.kind === "website" ? `${supplied.origin}/.well-known/agent-skills/index.json` : supplied.href;
51
+ const allowed = [new URL(indexUrl).origin, ...(source.allowedOrigins ?? [])];
52
+ const fetched = await fetchArtifact(indexUrl, options.fetcher, allowed, ["application/json", "application/octet-stream"], undefined, credentialHeaders(options.indexAuthSecretName, options.env));
53
+ if (!fetched.response.ok)
54
+ throw discoveryError("index_fetch_failed", `Skill index returned HTTP ${fetched.response.status}`);
55
+ const candidates = await candidatesFromIndex(fetched.bytes, indexUrl, options, allowed);
56
+ return { sourceKind: source.kind, sourceDigest: await sha256Hex(fetched.bytes), classification: "managed-manifest", candidates, totalCandidates: candidates.length, truncated: false, warnings: [], indexUrl };
57
+ }
58
+ async function discoverDirect(options) {
59
+ const source = options.source;
60
+ const direct = validateOutboundHttpsUrl(source.url);
61
+ const allowed = [direct.origin, ...(source.allowedOrigins ?? [])];
62
+ const wellKnown = `${direct.origin}/.well-known/agent-skills/index.json`;
63
+ try {
64
+ const index = await fetchArtifact(wellKnown, options.fetcher, allowed, ["application/json", "application/octet-stream"], 3_000);
65
+ if (index.response.ok) {
66
+ const parsed = parseDiscoveryIndex(index.bytes);
67
+ const matching = parsed.skills.find((entry) => new URL(entry.url, wellKnown).href === direct.href);
68
+ if (matching) {
69
+ const candidates = await candidatesFromEntries([matching], wellKnown, options, allowed);
70
+ return { sourceKind: "direct-url", sourceDigest: await sha256Hex(index.bytes), classification: "unmanaged-scan", candidates, totalCandidates: candidates.length, truncated: false, warnings: ["Resolved through the origin well-known index."], indexUrl: wellKnown };
71
+ }
72
+ }
73
+ }
74
+ catch { /* Direct fallback is intentional when the well-known probe is absent/unusable. */ }
75
+ const fetched = await fetchArtifact(direct.href, options.fetcher, allowed, ["text/markdown", "text/plain", "application/octet-stream", "application/zip", "application/gzip", "application/x-gtar"]);
76
+ if (!fetched.response.ok)
77
+ throw discoveryError("artifact_fetch_failed", `Skill artifact returned HTTP ${fetched.response.status}`);
78
+ const digest = await sha256Hex(fetched.bytes);
79
+ const packages = await packagesFromArtifact(fetched.bytes, source.url, options.maxGuidanceBytes);
80
+ const candidates = packages.map((pkg) => candidateFromPackage(pkg, isZip(fetched.bytes) || isGzip(fetched.bytes) ? "archive" : "skill-md", digest, fetched.bytes.byteLength));
81
+ return { sourceKind: "direct-url", sourceDigest: digest, classification: "unmanaged-scan", candidates, totalCandidates: candidates.length, truncated: false, warnings: [] };
82
+ }
83
+ async function discoverUpload(options) {
84
+ const source = options.source;
85
+ let filename;
86
+ let bytes;
87
+ let digest;
88
+ if (source.kind === "upload") {
89
+ if (!options.control)
90
+ throw discoveryError("upload_unavailable", "Upload discovery requires the skill store database");
91
+ const session = await getAgentSkillUpload(options.control, options.agentName, source.uploadId);
92
+ if (!session)
93
+ throw discoveryError("upload_not_found", "Upload session was not found");
94
+ if (session.expiresAt <= new Date().toISOString())
95
+ throw discoveryError("upload_expired", "Upload session expired");
96
+ filename = session.filename;
97
+ bytes = base64ToBytes(session.contentBase64);
98
+ digest = session.sha256;
99
+ }
100
+ else {
101
+ filename = source.filename;
102
+ bytes = base64ToBytes(source.contentBase64);
103
+ if (bytes.byteLength > 1024 * 1024)
104
+ throw discoveryError("upload_too_large", "Inline upload exceeds 1 MiB");
105
+ digest = await sha256Hex(bytes);
106
+ }
107
+ const packages = await packagesFromArtifact(bytes, filename, options.maxGuidanceBytes);
108
+ const type = isZip(bytes) || isGzip(bytes) ? "archive" : "skill-md";
109
+ const candidates = packages.map((pkg) => candidateFromPackage(pkg, type, digest, bytes.byteLength));
110
+ return { sourceKind: source.kind, sourceDigest: digest, classification: "unmanaged-scan", candidates, totalCandidates: candidates.length, truncated: false, warnings: [] };
111
+ }
112
+ async function discoverGithub(options) {
113
+ const source = options.source;
114
+ const parsedRepo = parseGithubRepository(source.repo);
115
+ const allowed = ["https://github.com", "https://api.github.com", "https://raw.githubusercontent.com", "https://codeload.github.com", ...(source.allowedOrigins ?? [])];
116
+ const apiHeaders = { accept: "application/vnd.github+json", "user-agent": "raybase-agent-skills" };
117
+ const metadataFetch = await fetchOutboundHardened(`https://api.github.com/repos/${parsedRepo.owner}/${parsedRepo.repo}`, { fetcher: options.fetcher, allowedOrigins: allowed, headers: apiHeaders, allowedContentTypes: ["application/json"] });
118
+ if (!metadataFetch.response.ok)
119
+ throw discoveryError("github_repository", `GitHub repository lookup returned HTTP ${metadataFetch.response.status}`);
120
+ const metadata = JSON.parse(new TextDecoder().decode(metadataFetch.bytes));
121
+ const canonical = metadata.full_name?.split("/");
122
+ const owner = canonical?.[0] || parsedRepo.owner;
123
+ const repo = canonical?.[1] || parsedRepo.repo;
124
+ const requestedRef = source.ref ?? parsedRepo.ref ?? metadata.default_branch;
125
+ if (!requestedRef)
126
+ throw discoveryError("github_ref", "GitHub repository has no default branch");
127
+ const commitFetch = await fetchOutboundHardened(`https://api.github.com/repos/${owner}/${repo}/commits/${encodeURIComponent(requestedRef)}`, { fetcher: options.fetcher, allowedOrigins: allowed, headers: apiHeaders, allowedContentTypes: ["application/json"] });
128
+ if (!commitFetch.response.ok)
129
+ throw discoveryError("github_ref", `GitHub ref lookup returned HTTP ${commitFetch.response.status}`);
130
+ const commit = JSON.parse(new TextDecoder().decode(commitFetch.bytes));
131
+ if (!commit.sha || !/^[0-9a-f]{40}$/i.test(commit.sha))
132
+ throw discoveryError("github_ref", "GitHub ref did not resolve to a commit SHA");
133
+ const sha = commit.sha.toLowerCase();
134
+ const refKind = /^[0-9a-f]{40}$/i.test(requestedRef) ? "commit" : source.ref || parsedRepo.ref ? "branch" : "default-branch";
135
+ const mode = source.discovery ?? "auto";
136
+ const manifestPath = source.manifestPath ? normalizeRepoPath(source.manifestPath) : "skills.json";
137
+ if (!source.path && mode !== "skills") {
138
+ const manifest = await githubContents(owner, repo, manifestPath, sha, options.fetcher, allowed);
139
+ if (manifest.found) {
140
+ if (manifest.type !== "file" || !manifest.bytes)
141
+ throw discoveryError("invalid_layout", `GitHub manifest ${manifestPath} must be a regular file`);
142
+ const index = parseDiscoveryIndex(manifest.bytes);
143
+ const candidates = await candidatesFromRepoIndex(index.skills, { owner, repo, sha, manifestPath }, options, allowed);
144
+ return {
145
+ sourceKind: "github", sourceDigest: await sha256Hex(stableJson({ commit: sha, manifestPath, indexSha256: await sha256Hex(manifest.bytes) })),
146
+ classification: "managed-manifest", candidates, totalCandidates: candidates.length, truncated: false, warnings: [], resolvedCommit: sha,
147
+ attemptedManifestPaths: [manifestPath], github: { repo: `${owner}/${repo}`, requestedRef: source.ref ?? parsedRepo.ref ?? null, refKind, defaultBranch: metadata.default_branch ?? null, manifestPath }
148
+ };
149
+ }
150
+ if (source.manifestPath || mode === "manifest")
151
+ throw discoveryError("manifest_not_found", `GitHub manifest ${manifestPath} was not found at ${sha}`, { attemptedPaths: [manifestPath] });
152
+ }
153
+ const patterns = source.path ? [`${normalizeRepoPath(source.path)}/SKILL.md`, `${normalizeRepoPath(source.path)}/*/SKILL.md`] : ["skills/<name>/SKILL.md", ".agents/skills/<name>/SKILL.md"];
154
+ const candidates = await enumerateGithubSkills({ owner, repo, sha, source, options, allowed });
155
+ if (!candidates.length)
156
+ throw discoveryError("no_skills_found", `No skills found at pinned commit ${sha}`, { attemptedPatterns: patterns });
157
+ const sourceDigest = await sha256Hex(stableJson({ commit: sha, candidates: candidates.map((candidate) => [candidate.path, candidate.sha256]) }));
158
+ return { sourceKind: "github", sourceDigest, classification: "unmanaged-scan", candidates, totalCandidates: candidates.length, truncated: false, warnings: [], resolvedCommit: sha, attemptedManifestPaths: source.path || mode === "skills" ? [] : [manifestPath], attemptedPatterns: patterns, github: { repo: `${owner}/${repo}`, requestedRef: source.ref ?? parsedRepo.ref ?? null, refKind, defaultBranch: metadata.default_branch ?? null, manifestPath: null } };
159
+ }
160
+ async function enumerateGithubSkills(input) {
161
+ const roots = input.source.path ? [normalizeRepoPath(input.source.path)] : ["skills", ".agents/skills"];
162
+ const rawCandidates = [];
163
+ let inspected = 0;
164
+ for (const root of roots) {
165
+ const exact = await githubContents(input.owner, input.repo, `${root}/SKILL.md`, input.sha, input.options.fetcher, input.allowed);
166
+ if (exact.found && exact.type === "file") {
167
+ rawCandidates.push({ root, name: root.split("/").pop() });
168
+ continue;
169
+ }
170
+ const listing = await githubList(input.owner, input.repo, root, input.sha, input.options.fetcher, input.allowed);
171
+ if (!listing)
172
+ continue;
173
+ inspected += listing.length;
174
+ if (inspected > 1000)
175
+ throw discoveryError("source_too_large", "GitHub source has more than 1000 immediate entries", { preview: rawCandidates.slice(0, 20) });
176
+ for (const item of listing) {
177
+ if (item.type !== "dir") {
178
+ if (item.type === "symlink" || item.type === "submodule" || item.submodule_git_url)
179
+ rawCandidates.push({ root: item.path, name: item.name, invalidType: item.submodule_git_url ? "submodule" : item.type });
180
+ continue;
181
+ }
182
+ rawCandidates.push({ root: item.path, name: item.name });
183
+ if (rawCandidates.length > 200)
184
+ throw discoveryError("source_too_large", "GitHub source has more than 200 skill candidates", { preview: rawCandidates.slice(0, 20) });
185
+ }
186
+ }
187
+ const candidates = [];
188
+ for (const raw of rawCandidates) {
189
+ if (raw.invalidType) {
190
+ candidates.push({ name: safeCandidateName(raw.name), valid: false, type: "skill-md", path: raw.root, description: "", bytes: 0, fileCount: 0, sha256: "", errors: [`invalid_layout: ${raw.root} is a ${raw.invalidType}, not a real directory`], warnings: [] });
191
+ continue;
192
+ }
193
+ try {
194
+ const skillMd = await githubContents(input.owner, input.repo, `${raw.root}/SKILL.md`, input.sha, input.options.fetcher, input.allowed);
195
+ if (!skillMd.found || skillMd.type !== "file" || !skillMd.bytes)
196
+ throw discoveryError("invalid_layout", `Candidate ${raw.root} does not contain a regular SKILL.md`);
197
+ const parsed = parseSkillMd(skillMd.bytes);
198
+ if (raw.name !== parsed.name)
199
+ throw discoveryError("directory_name_mismatch", `Directory ${raw.name} does not byte-match skill name ${parsed.name}`);
200
+ const selected = !input.options.requestedNames || input.options.requestedNames.includes(parsed.name) || rawCandidates.length === 1;
201
+ const files = selected ? await githubPackageFiles(input.owner, input.repo, raw.root, input.sha, input.options.fetcher, input.allowed) : [{ path: "SKILL.md", bytes: skillMd.bytes }];
202
+ const pkg = await normalizeSkillPackage({ rootName: raw.name, files, maxGuidanceBytes: input.options.maxGuidanceBytes });
203
+ candidates.push({ ...candidateFromPackage(pkg, "skill-md", await sha256Hex(skillMd.bytes), skillMd.bytes.byteLength), path: raw.root, provenance: { originRepo: `${input.owner}/${input.repo}`, originCommit: input.sha, originSkillPath: raw.root } });
204
+ }
205
+ catch (error) {
206
+ candidates.push({ name: safeCandidateName(raw.name), valid: false, type: "skill-md", path: raw.root, description: "", bytes: 0, fileCount: 0, sha256: "", errors: [typedError(error).message], warnings: [] });
207
+ }
208
+ }
209
+ const collisions = new Map();
210
+ for (const candidate of candidates.filter((item) => item.valid))
211
+ collisions.set(candidate.name.normalize("NFC").toLowerCase(), [...(collisions.get(candidate.name.normalize("NFC").toLowerCase()) ?? []), candidate]);
212
+ for (const group of collisions.values())
213
+ if (group.length > 1)
214
+ for (const candidate of group) {
215
+ candidate.valid = false;
216
+ candidate.errors.push(`duplicate_skill_name: ${group.map((item) => item.path).join(", ")}`);
217
+ }
218
+ return candidates.sort(candidateOrder);
219
+ }
220
+ async function githubPackageFiles(owner, repo, root, sha, fetcher, allowed) {
221
+ const output = [];
222
+ const visit = async (path, depth) => {
223
+ if (depth > 4)
224
+ throw discoveryError("invalid_layout", `Skill package nesting is too deep at ${path}`);
225
+ const listing = await githubList(owner, repo, path, sha, fetcher, allowed);
226
+ if (!listing)
227
+ throw discoveryError("invalid_layout", `Skill package path ${path} is missing`);
228
+ for (const item of listing) {
229
+ if (item.type === "dir")
230
+ await visit(item.path, depth + 1);
231
+ else if (item.type === "file") {
232
+ const file = await githubContents(owner, repo, item.path, sha, fetcher, allowed);
233
+ if (!file.bytes)
234
+ throw discoveryError("invalid_layout", `GitHub file ${item.path} could not be read`);
235
+ output.push({ path: item.path.slice(root.length + 1), bytes: file.bytes });
236
+ }
237
+ else
238
+ throw discoveryError("invalid_layout", `Links and submodules are not allowed in skill package ${root}`);
239
+ }
240
+ };
241
+ await visit(root, 0);
242
+ return output;
243
+ }
244
+ function parseDiscoveryIndex(bytes) {
245
+ let value;
246
+ try {
247
+ value = JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(bytes));
248
+ }
249
+ catch {
250
+ throw discoveryError("schema_invalid", "Skill discovery index must be valid UTF-8 JSON");
251
+ }
252
+ if (!value || typeof value !== "object" || Array.isArray(value))
253
+ throw discoveryError("schema_invalid", "Skill discovery index must be an object");
254
+ const record = value;
255
+ if (record.$schema !== agentSkillsDiscoverySchemaUri)
256
+ throw discoveryError("schema_invalid", `Skill discovery index must declare exact schema ${agentSkillsDiscoverySchemaUri}`);
257
+ if (!Array.isArray(record.skills))
258
+ throw discoveryError("schema_invalid", "Skill discovery index skills must be an array");
259
+ const names = new Set();
260
+ const skills = record.skills.map((entry, index) => {
261
+ if (!entry || typeof entry !== "object" || Array.isArray(entry))
262
+ throw discoveryError("schema_invalid", `Skill index entry ${index} must be an object`);
263
+ const item = entry;
264
+ const name = validateOpenAgentSkillName(item.name);
265
+ if (names.has(name.normalize("NFC").toLowerCase()))
266
+ throw discoveryError("duplicate_skill_name", `Skill index declares duplicate name ${name}`);
267
+ names.add(name.normalize("NFC").toLowerCase());
268
+ if (item.type !== "skill-md" && item.type !== "archive")
269
+ throw discoveryError("schema_invalid", `Skill ${name} has unsupported type`);
270
+ if (typeof item.description !== "string" || !item.description.trim() || typeof item.url !== "string" || !item.url.trim())
271
+ throw discoveryError("schema_invalid", `Skill ${name} requires description and url`);
272
+ if (typeof item.digest !== "string" || !/^sha256:[0-9a-f]{64}$/.test(item.digest))
273
+ throw discoveryError("digest_invalid", `Skill ${name} digest must be sha256:<64 lowercase hex>`);
274
+ return { name, type: item.type, description: item.description.trim(), url: item.url, digest: item.digest };
275
+ });
276
+ return { skills };
277
+ }
278
+ async function candidatesFromIndex(bytes, indexUrl, options, allowed) { return candidatesFromEntries(parseDiscoveryIndex(bytes).skills, indexUrl, options, allowed); }
279
+ async function candidatesFromEntries(entries, indexUrl, options, allowed) {
280
+ const selected = selectedEntries(entries, options.requestedNames);
281
+ const output = [];
282
+ for (const entry of entries) {
283
+ if (!selected.has(entry.name) && entries.length > 1) {
284
+ output.push({ name: entry.name, valid: true, type: entry.type, description: entry.description, bytes: 0, fileCount: 0, sha256: entry.digest.slice(7), errors: [], warnings: [] });
285
+ continue;
286
+ }
287
+ const artifactUrl = new URL(entry.url, indexUrl);
288
+ const fetched = await fetchArtifact(artifactUrl.href, options.fetcher, allowed, ["text/markdown", "text/plain", "application/octet-stream", "application/zip", "application/gzip", "application/x-gtar"], undefined, credentialHeaders(artifactSecretName(options.artifactAuth, artifactUrl.origin), options.env));
289
+ const digest = await sha256Hex(fetched.bytes);
290
+ if (digest !== entry.digest.slice(7))
291
+ throw discoveryError("digest_mismatch", `Skill ${entry.name} artifact digest does not match the index`);
292
+ const packages = await packagesFromArtifact(fetched.bytes, artifactUrl.pathname, options.maxGuidanceBytes);
293
+ const pkg = packages.find((item) => item.name === entry.name);
294
+ if (!pkg)
295
+ throw discoveryError("artifact_invalid", `Artifact for ${entry.name} did not contain that skill package`);
296
+ output.push(candidateFromPackage(pkg, entry.type, digest, fetched.bytes.byteLength));
297
+ }
298
+ return output;
299
+ }
300
+ async function candidatesFromRepoIndex(entries, repoInfo, options, allowed) {
301
+ const selected = selectedEntries(entries, options.requestedNames);
302
+ const output = [];
303
+ for (const entry of entries) {
304
+ if (!selected.has(entry.name) && entries.length > 1) {
305
+ output.push({ name: entry.name, valid: true, type: entry.type, description: entry.description, bytes: 0, fileCount: 0, sha256: entry.digest.slice(7), errors: [], warnings: [] });
306
+ continue;
307
+ }
308
+ if (entry.url.startsWith("/"))
309
+ throw discoveryError("repository_manifest_origin_mismatch", `Repository manifest entry ${entry.name} uses a path-absolute URL; use a relative in-repo URL, an allowed absolute URL, or register the website origin`);
310
+ const base = `https://raw.githubusercontent.com/${repoInfo.owner}/${repoInfo.repo}/${repoInfo.sha}/${repoInfo.manifestPath.includes("/") ? repoInfo.manifestPath.slice(0, repoInfo.manifestPath.lastIndexOf("/") + 1) : ""}`;
311
+ const target = new URL(entry.url, base);
312
+ if (target.hostname === "raw.githubusercontent.com" && !target.pathname.startsWith(`/${repoInfo.owner}/${repoInfo.repo}/${repoInfo.sha}/`))
313
+ throw discoveryError("repository_manifest_origin_mismatch", `Repository manifest entry ${entry.name} escapes the pinned repository commit`);
314
+ const fetched = await fetchArtifact(target.href, options.fetcher, allowed, ["text/markdown", "text/plain", "application/octet-stream", "application/zip", "application/gzip", "application/x-gtar"]);
315
+ const digest = await sha256Hex(fetched.bytes);
316
+ if (digest !== entry.digest.slice(7))
317
+ throw discoveryError("digest_mismatch", `Skill ${entry.name} artifact digest does not match the index`);
318
+ const pkg = (await packagesFromArtifact(fetched.bytes, target.pathname, options.maxGuidanceBytes)).find((item) => item.name === entry.name);
319
+ if (!pkg)
320
+ throw discoveryError("artifact_invalid", `Artifact for ${entry.name} did not contain that skill package`);
321
+ output.push({ ...candidateFromPackage(pkg, entry.type, digest, fetched.bytes.byteLength), provenance: { originRepo: `${repoInfo.owner}/${repoInfo.repo}`, originCommit: repoInfo.sha, originManifestPath: repoInfo.manifestPath } });
322
+ }
323
+ return output;
324
+ }
325
+ async function packagesFromArtifact(bytes, label, maxGuidanceBytes) {
326
+ if (!isZip(bytes) && !isGzip(bytes))
327
+ return [await normalizeSkillPackage({ files: [{ path: "SKILL.md", bytes }], maxGuidanceBytes })];
328
+ const entries = await readAgentSkillArchive(bytes, label);
329
+ return normalizeArchivePackages(entries, maxGuidanceBytes);
330
+ }
331
+ async function normalizeArchivePackages(entries, maxGuidanceBytes) {
332
+ const rootSkill = entries.find((entry) => entry.path === "SKILL.md");
333
+ if (rootSkill)
334
+ return [await normalizeSkillPackage({ files: entries, maxGuidanceBytes })];
335
+ const roots = new Map();
336
+ for (const entry of entries) {
337
+ const slash = entry.path.indexOf("/");
338
+ if (slash < 1)
339
+ continue;
340
+ const root = entry.path.slice(0, slash);
341
+ const relative = entry.path.slice(slash + 1);
342
+ roots.set(root, [...(roots.get(root) ?? []), { path: relative, bytes: entry.bytes }]);
343
+ }
344
+ const packages = [];
345
+ for (const [root, files] of roots)
346
+ if (files.some((file) => file.path === "SKILL.md"))
347
+ packages.push(await normalizeSkillPackage({ rootName: root, files, maxGuidanceBytes }));
348
+ if (!packages.length)
349
+ throw discoveryError("skill_md_missing", "Archive contains no skill package root");
350
+ return packages.sort((a, b) => a.name.localeCompare(b.name));
351
+ }
352
+ function candidateFromPackage(pkg, type, sha256, bytes) { return { name: pkg.name, valid: true, type, description: pkg.description, bytes, fileCount: pkg.files.length + 1, sha256, errors: [], warnings: [], package: pkg }; }
353
+ function selectedEntries(entries, requested) { return new Set(entries.length === 1 && !requested?.length ? [entries[0].name] : requested ?? []); }
354
+ function finalizeDiscovery(raw, requestedNames) {
355
+ const validNames = new Set(raw.candidates.filter((candidate) => candidate.valid).map((candidate) => candidate.name));
356
+ const invalidRequestedNames = (requestedNames ?? []).filter((name) => !validNames.has(name));
357
+ const selection = raw.candidates.length === 1 && !requestedNames?.length ? [raw.candidates[0].name] : requestedNames ?? [];
358
+ const selected = raw.candidates.filter((candidate) => selection.includes(candidate.name));
359
+ const needsSelection = raw.candidates.length > 1 && !requestedNames?.length || invalidRequestedNames.length > 0;
360
+ const invalid = !needsSelection && (!selected.length || selected.some((candidate) => !candidate.valid || !candidate.package || candidate.conflict && candidate.conflict.kind !== "local-replaceable"));
361
+ return { ...raw, status: needsSelection ? "selection_required" : invalid ? "invalid" : "ready", invalidRequestedNames };
362
+ }
363
+ async function attachConflicts(candidates, agentName, control) {
364
+ if (!control)
365
+ return candidates;
366
+ return Promise.all(candidates.map(async (candidate) => {
367
+ const existing = await findAgentSkill(control, agentName, candidate.name);
368
+ if (!existing)
369
+ return candidate;
370
+ return { ...candidate, conflict: conflictFor(existing) };
371
+ }));
372
+ }
373
+ function conflictFor(row) { return { kind: row.source === "code" ? "code" : row.source === "managed" ? "managed" : row.ownerKind === "agent" ? "local-replaceable" : "local-foreign", existingSource: row.source, existingRevision: row.revision }; }
374
+ async function fetchArtifact(url, fetcher, allowedOrigins, contentTypes, timeoutMs, headers) { return fetchOutboundHardened(url, { fetcher, allowedOrigins: allowedOrigins.map((origin) => validateOutboundOrigin(new URL(origin).origin)), allowedContentTypes: contentTypes, timeoutMs, headers }); }
375
+ function artifactSecretName(mappings, origin) {
376
+ return mappings?.find((mapping) => validateOutboundOrigin(mapping.origin) === origin)?.secretName;
377
+ }
378
+ function credentialHeaders(secretName, env) {
379
+ if (!secretName)
380
+ return undefined;
381
+ if (!/^[A-Z][A-Z0-9_]*$/.test(secretName))
382
+ throw discoveryError("credential_invalid", `Credential secret name ${secretName} must be an uppercase environment binding name`);
383
+ const value = env && typeof env === "object" ? env[secretName] : undefined;
384
+ if (typeof value !== "string" || !value.trim())
385
+ throw discoveryError("credential_missing", `Credential secret ${secretName} is not configured`);
386
+ return { authorization: `Bearer ${value.trim()}` };
387
+ }
388
+ async function githubContents(owner, repo, path, sha, fetcher, allowed) {
389
+ const response = await fetchOutboundHardened(`https://api.github.com/repos/${owner}/${repo}/contents/${path.split("/").map(encodeURIComponent).join("/")}?ref=${sha}`, { fetcher, allowedOrigins: allowed, headers: { accept: "application/vnd.github+json", "user-agent": "raybase-agent-skills" }, allowedContentTypes: ["application/json"] });
390
+ if (response.response.status === 404)
391
+ return { found: false };
392
+ if (!response.response.ok)
393
+ throw discoveryError("github_fetch", `GitHub contents lookup returned HTTP ${response.response.status}`);
394
+ const value = JSON.parse(new TextDecoder().decode(response.bytes));
395
+ if (Array.isArray(value))
396
+ return { found: true, type: "dir" };
397
+ const type = value.type;
398
+ if (type !== "file")
399
+ return { found: true, type };
400
+ const content = typeof value.content === "string" ? value.content.replace(/\s/g, "") : "";
401
+ return { found: true, type, bytes: content ? base64ToBytes(content) : undefined };
402
+ }
403
+ async function githubList(owner, repo, path, sha, fetcher, allowed) {
404
+ const response = await fetchOutboundHardened(`https://api.github.com/repos/${owner}/${repo}/contents/${path.split("/").map(encodeURIComponent).join("/")}?ref=${sha}`, { fetcher, allowedOrigins: allowed, headers: { accept: "application/vnd.github+json", "user-agent": "raybase-agent-skills" }, allowedContentTypes: ["application/json"] });
405
+ if (response.response.status === 404)
406
+ return null;
407
+ if (!response.response.ok)
408
+ throw discoveryError("github_fetch", `GitHub contents listing returned HTTP ${response.response.status}`);
409
+ const value = JSON.parse(new TextDecoder().decode(response.bytes));
410
+ if (!Array.isArray(value))
411
+ return null;
412
+ return value.map((item) => item);
413
+ }
414
+ function parseGithubRepository(value) {
415
+ let input = value.trim();
416
+ if (/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+(?:\.git)?\/?$/.test(input)) {
417
+ const [owner, repo] = input.replace(/\/$/, "").replace(/\.git$/, "").split("/");
418
+ return { owner: owner, repo: repo };
419
+ }
420
+ let url;
421
+ try {
422
+ url = new URL(input);
423
+ }
424
+ catch {
425
+ throw discoveryError("github_repository", "GitHub source must be owner/repo or a public github.com repository URL");
426
+ }
427
+ if (url.protocol !== "https:" || url.hostname !== "github.com" || url.username || url.password || url.search || url.hash)
428
+ throw discoveryError("github_repository", "GitHub repository URL must be canonical public HTTPS without credentials, query, or fragment");
429
+ const parts = url.pathname.replace(/^\/+|\/+$/g, "").split("/");
430
+ if (parts.length === 2)
431
+ return { owner: parts[0], repo: parts[1].replace(/\.git$/, "") };
432
+ if (parts[2] === "tree" && parts.length >= 4) {
433
+ if (parts.length > 4)
434
+ throw discoveryError("ref_ambiguous", "GitHub tree URL is ambiguous; pass structured ref and path fields");
435
+ return { owner: parts[0], repo: parts[1], ref: decodeURIComponent(parts[3]) };
436
+ }
437
+ throw discoveryError("github_repository", "GitHub URL must identify a repository, not an organization, user, gist, or unrelated deep link");
438
+ }
439
+ function normalizeRepoPath(value) { return normalizeSkillPath(value.replace(/\/$/, "")); }
440
+ function candidateOrder(left, right) { if (left.valid !== right.valid)
441
+ return left.valid ? -1 : 1; return left.valid ? bytewise(left.name, right.name) || bytewise(left.path ?? "", right.path ?? "") : bytewise(left.path ?? "", right.path ?? ""); }
442
+ function bytewise(left, right) { const a = new TextEncoder().encode(left); const b = new TextEncoder().encode(right); for (let index = 0; index < Math.min(a.length, b.length); index += 1)
443
+ if (a[index] !== b[index])
444
+ return a[index] - b[index]; return a.length - b.length; }
445
+ function safeCandidateName(name) { try {
446
+ return validateOpenAgentSkillName(name);
447
+ }
448
+ catch {
449
+ return name;
450
+ } }
451
+ function discoveryError(code, message, details = {}) { return new AgentSkillValidationError(code, message, details); }
452
+ function typedError(error) {
453
+ if (error instanceof AgentSkillValidationError)
454
+ return { code: error.code, message: error.message, ...(error.details ?? {}) };
455
+ return { code: "discovery_failed", message: error instanceof Error ? error.message : String(error) };
456
+ }
457
+ function base64ToBytes(value) { try {
458
+ const binary = atob(value);
459
+ return Uint8Array.from(binary, (char) => char.charCodeAt(0));
460
+ }
461
+ catch {
462
+ throw discoveryError("invalid_base64", "Upload content must be valid base64");
463
+ } }
464
+ //# sourceMappingURL=agent-skill-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-skill-discovery.js","sourceRoot":"","sources":["../src/agent-skill-discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ export type AgentSkillFileKind = "reference" | "asset" | "script" | "other";
2
+ export type AgentSkillFile = {
3
+ path: string;
4
+ kind: AgentSkillFileKind;
5
+ encoding: "utf8" | "base64";
6
+ content: string;
7
+ bytes: number;
8
+ sha256: string;
9
+ };
10
+ export type NormalizedSkillPackage = {
11
+ name: string;
12
+ title?: string;
13
+ description: string;
14
+ guidance: string;
15
+ ephemeral: boolean;
16
+ license?: string;
17
+ compatibility?: string;
18
+ metadataJson: string;
19
+ files: AgentSkillFile[];
20
+ contentDigest: string;
21
+ };
22
+ export type SkillPackageInputFile = {
23
+ path: string;
24
+ bytes: Uint8Array;
25
+ };
26
+ export declare const raybaseAgentSkillFormatLimits: {
27
+ readonly maxNameChars: 64;
28
+ readonly maxDescriptionChars: 1024;
29
+ readonly maxGuidanceBytes: 64000;
30
+ readonly maxFiles: 64;
31
+ readonly maxFileBytes: number;
32
+ readonly maxTotalFileBytes: number;
33
+ };
34
+ export declare class AgentSkillValidationError extends Error {
35
+ readonly code: string;
36
+ readonly details?: Record<string, unknown>;
37
+ constructor(code: string, message: string, details?: Record<string, unknown>);
38
+ }
39
+ export declare function validateOpenAgentSkillName(value: unknown): string;
40
+ export declare function normalizeSkillPath(value: unknown): string;
41
+ export declare function parseSkillMd(bytes: Uint8Array): {
42
+ frontmatter: Record<string, unknown>;
43
+ name: string;
44
+ title?: string;
45
+ description: string;
46
+ guidance: string;
47
+ ephemeral: boolean;
48
+ license?: string;
49
+ compatibility?: string;
50
+ metadataJson: string;
51
+ };
52
+ export declare function normalizeSkillPackage(input: {
53
+ rootName?: string;
54
+ files: SkillPackageInputFile[];
55
+ maxGuidanceBytes?: number;
56
+ }): Promise<NormalizedSkillPackage>;
57
+ //# sourceMappingURL=agent-skill-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-skill-format.d.ts","sourceRoot":"","sources":["../src/agent-skill-format.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC5E,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAExE,eAAO,MAAM,6BAA6B;;;;;;;CAOhC,CAAC;AAEX,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC/B,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAM7E;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUjE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUzD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG;IAC/C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB,CA0CA;AAED,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAgDlC"}