@sixb/core 0.1.17 → 0.1.18

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 (454) hide show
  1. package/dist/actions/index.js +22 -19
  2. package/dist/actions/index.js.map +1 -1
  3. package/dist/actions/read-facade.d.ts +1 -1
  4. package/dist/actions/validation.d.ts.map +1 -1
  5. package/dist/actions/worker.js +6 -2
  6. package/dist/actions/worker.js.map +3 -3
  7. package/dist/agents/adapters.d.ts +7 -0
  8. package/dist/agents/adapters.d.ts.map +1 -1
  9. package/dist/agents/authority.d.ts +7 -0
  10. package/dist/agents/authority.d.ts.map +1 -1
  11. package/dist/agents/context/entries.d.ts +10 -1
  12. package/dist/agents/context/entries.d.ts.map +1 -1
  13. package/dist/agents/context/index.d.ts +1 -1
  14. package/dist/agents/context/index.d.ts.map +1 -1
  15. package/dist/agents/context/index.js +4 -2
  16. package/dist/agents/context/index.js.map +1 -1
  17. package/dist/agents/context-compaction.d.ts.map +1 -1
  18. package/dist/agents/errors.d.ts +1 -1
  19. package/dist/agents/errors.d.ts.map +1 -1
  20. package/dist/agents/index.d.ts +6 -4
  21. package/dist/agents/index.d.ts.map +1 -1
  22. package/dist/agents/index.js +44 -37
  23. package/dist/agents/index.js.map +1 -1
  24. package/dist/agents/message.d.ts +8 -1
  25. package/dist/agents/message.d.ts.map +1 -1
  26. package/dist/agents/request.d.ts +19 -5
  27. package/dist/agents/request.d.ts.map +1 -1
  28. package/dist/agents/skills.d.ts +41 -0
  29. package/dist/agents/skills.d.ts.map +1 -0
  30. package/dist/agents/streams/index.js +1 -1
  31. package/dist/agents/streams/internal.js +1 -1
  32. package/dist/agents/types.d.ts +33 -4
  33. package/dist/agents/types.d.ts.map +1 -1
  34. package/dist/auth/index.js +9 -6
  35. package/dist/auth/index.js.map +1 -1
  36. package/dist/auth/runtime.d.ts.map +1 -1
  37. package/dist/auth/types.d.ts +6 -0
  38. package/dist/auth/types.d.ts.map +1 -1
  39. package/dist/authorization/index.js +5 -3
  40. package/dist/authorization/index.js.map +1 -1
  41. package/dist/authorization/resolve.d.ts +1 -1
  42. package/dist/authorization/resolve.d.ts.map +1 -1
  43. package/dist/authorization/types.d.ts +7 -0
  44. package/dist/authorization/types.d.ts.map +1 -1
  45. package/dist/blob-storage/browser.js +1 -1
  46. package/dist/blob-storage/execution.d.ts.map +1 -1
  47. package/dist/blob-storage/file-content.d.ts +18 -0
  48. package/dist/blob-storage/file-content.d.ts.map +1 -0
  49. package/dist/blob-storage/index.d.ts +1 -1
  50. package/dist/blob-storage/index.d.ts.map +1 -1
  51. package/dist/blob-storage/index.js +2 -2
  52. package/dist/blob-storage/internal.d.ts +2 -0
  53. package/dist/blob-storage/internal.d.ts.map +1 -1
  54. package/dist/blob-storage/internal.js +16 -4
  55. package/dist/blob-storage/internal.js.map +1 -1
  56. package/dist/blob-storage/media-type.d.ts +8 -0
  57. package/dist/blob-storage/media-type.d.ts.map +1 -0
  58. package/dist/blob-storage/types.d.ts +12 -1
  59. package/dist/blob-storage/types.d.ts.map +1 -1
  60. package/dist/blob-storage/validation.d.ts +6 -0
  61. package/dist/blob-storage/validation.d.ts.map +1 -1
  62. package/dist/bootstrap/agent-context.d.ts +33 -0
  63. package/dist/bootstrap/agent-context.d.ts.map +1 -0
  64. package/dist/bootstrap/discovery.d.ts +23 -3
  65. package/dist/bootstrap/discovery.d.ts.map +1 -1
  66. package/dist/bootstrap/index.d.ts +2 -1
  67. package/dist/bootstrap/index.d.ts.map +1 -1
  68. package/dist/bootstrap/index.js +284 -73
  69. package/dist/bootstrap/index.js.map +4 -3
  70. package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
  71. package/dist/{chunk-gf7yht60.js → chunk-1b1f2d5f.js} +23 -6
  72. package/dist/chunk-1b1f2d5f.js.map +12 -0
  73. package/dist/{chunk-9vx5e9g1.js → chunk-1sr8ryzk.js} +3 -3
  74. package/dist/chunk-1sr8ryzk.js.map +11 -0
  75. package/dist/{chunk-4gmng3vf.js → chunk-22v5bpz3.js} +1 -1
  76. package/dist/{chunk-s7ftxrdr.js → chunk-29yx306f.js} +20 -3
  77. package/dist/{chunk-s7ftxrdr.js.map → chunk-29yx306f.js.map} +3 -3
  78. package/dist/{chunk-4ra628t7.js → chunk-3zxk45er.js} +70 -6
  79. package/dist/{chunk-4ra628t7.js.map → chunk-3zxk45er.js.map} +5 -4
  80. package/dist/{chunk-2am3db31.js → chunk-48e3cn2d.js} +2 -2
  81. package/dist/{chunk-91kcnbf0.js → chunk-6gmfggss.js} +22 -9
  82. package/dist/chunk-6gmfggss.js.map +10 -0
  83. package/dist/{chunk-svabwqdq.js → chunk-6h5m9xjx.js} +43 -415
  84. package/dist/{chunk-svabwqdq.js.map → chunk-6h5m9xjx.js.map} +7 -11
  85. package/dist/{chunk-f1xh7a32.js → chunk-7hpdd6r9.js} +2 -2
  86. package/dist/{chunk-xyvy73tj.js → chunk-bs7sqkre.js} +8 -3
  87. package/dist/chunk-bs7sqkre.js.map +12 -0
  88. package/dist/{chunk-rb143ggb.js → chunk-bwjcehza.js} +1 -1
  89. package/dist/{chunk-t9shqx3w.js → chunk-d0eb5yy6.js} +143 -7
  90. package/dist/chunk-d0eb5yy6.js.map +14 -0
  91. package/dist/{chunk-vp3z1ckh.js → chunk-de4z2bj6.js} +5 -5
  92. package/dist/{chunk-3rrezgyc.js → chunk-dnmadg9k.js} +2 -2
  93. package/dist/chunk-enpsx8k5.js +127 -0
  94. package/dist/chunk-enpsx8k5.js.map +10 -0
  95. package/dist/{chunk-a7er86jd.js → chunk-ex496vct.js} +1 -1
  96. package/dist/{chunk-jnfxmr3f.js → chunk-f1zxad2t.js} +1 -1
  97. package/dist/{chunk-6wbm6ymz.js → chunk-fe52eczz.js} +271 -83
  98. package/dist/chunk-fe52eczz.js.map +49 -0
  99. package/dist/{chunk-10styjgk.js → chunk-fx93hd2n.js} +71 -29
  100. package/dist/chunk-fx93hd2n.js.map +20 -0
  101. package/dist/{chunk-9se093qz.js → chunk-gc4ntf7d.js} +4 -4
  102. package/dist/{chunk-9se093qz.js.map → chunk-gc4ntf7d.js.map} +1 -1
  103. package/dist/{chunk-98cw09sw.js → chunk-hkc3jct7.js} +4 -2
  104. package/dist/chunk-hkc3jct7.js.map +10 -0
  105. package/dist/{chunk-pja9jfz6.js → chunk-htr6wjmv.js} +115 -53
  106. package/dist/chunk-htr6wjmv.js.map +19 -0
  107. package/dist/{chunk-h3v76ams.js → chunk-jhm3zsa7.js} +25 -2
  108. package/dist/chunk-jhm3zsa7.js.map +12 -0
  109. package/dist/{chunk-52c5zb0z.js → chunk-k6hrnf35.js} +5 -5
  110. package/dist/chunk-k6hrnf35.js.map +10 -0
  111. package/dist/{chunk-c2rga5cx.js → chunk-mfs23znk.js} +1 -1
  112. package/dist/{chunk-7ecp4v7a.js → chunk-ny3xyvcn.js} +8 -2
  113. package/dist/{chunk-7ecp4v7a.js.map → chunk-ny3xyvcn.js.map} +3 -3
  114. package/dist/{chunk-fggq3d9k.js → chunk-p0dqwj3n.js} +5 -5
  115. package/dist/{chunk-cnb5kv05.js → chunk-p844e0rn.js} +23 -8
  116. package/dist/chunk-p844e0rn.js.map +19 -0
  117. package/dist/{chunk-dmn70ztd.js → chunk-pfp1txq2.js} +25 -6
  118. package/dist/chunk-pfp1txq2.js.map +11 -0
  119. package/dist/chunk-pqajwytd.js.map +2 -2
  120. package/dist/{chunk-5be2ath4.js → chunk-qkbx3tf6.js} +17 -128
  121. package/dist/{chunk-5be2ath4.js.map → chunk-qkbx3tf6.js.map} +6 -7
  122. package/dist/{chunk-sk0hcjsz.js → chunk-qkvz64nd.js} +2 -2
  123. package/dist/{chunk-w9yycd3t.js → chunk-qmnnhde6.js} +4 -8
  124. package/dist/{chunk-w9yycd3t.js.map → chunk-qmnnhde6.js.map} +3 -3
  125. package/dist/{chunk-5yd8cchh.js → chunk-qq90g05n.js} +8 -8
  126. package/dist/{chunk-5yd8cchh.js.map → chunk-qq90g05n.js.map} +1 -1
  127. package/dist/{chunk-tjjgy3z4.js → chunk-qxvp5epv.js} +66 -14
  128. package/dist/{chunk-tjjgy3z4.js.map → chunk-qxvp5epv.js.map} +9 -8
  129. package/dist/chunk-rdghfsss.js.map +2 -2
  130. package/dist/{chunk-rx7h5fdx.js → chunk-rt9p8m9t.js} +1 -1
  131. package/dist/{chunk-cd234ba4.js → chunk-rz53yb4v.js} +10 -5
  132. package/dist/chunk-rz53yb4v.js.map +14 -0
  133. package/dist/{chunk-xcy5ddha.js → chunk-s4jhg8a3.js} +351 -296
  134. package/dist/chunk-s4jhg8a3.js.map +15 -0
  135. package/dist/{chunk-69266efg.js → chunk-s54c868q.js} +12 -4
  136. package/dist/chunk-s54c868q.js.map +12 -0
  137. package/dist/{chunk-9g6jz9kk.js → chunk-tffvfy6s.js} +6 -5
  138. package/dist/{chunk-9g6jz9kk.js.map → chunk-tffvfy6s.js.map} +3 -3
  139. package/dist/{chunk-e67ynxcr.js → chunk-v6xpd60t.js} +3 -3
  140. package/dist/{chunk-jjrn5v0p.js → chunk-vgk3hknm.js} +1 -1
  141. package/dist/{chunk-5thzcb8g.js → chunk-vx2yp45y.js} +2 -2
  142. package/dist/{chunk-dam456ve.js → chunk-vz3gc1tm.js} +394 -31
  143. package/dist/{chunk-dam456ve.js.map → chunk-vz3gc1tm.js.map} +10 -7
  144. package/dist/chunk-xt1zt7gv.js +471 -0
  145. package/dist/chunk-xt1zt7gv.js.map +13 -0
  146. package/dist/{chunk-rpxz486p.js → chunk-y05543x6.js} +21 -5
  147. package/dist/{chunk-rpxz486p.js.map → chunk-y05543x6.js.map} +3 -3
  148. package/dist/{chunk-aq39q04r.js → chunk-y9jmd7e5.js} +4 -4
  149. package/dist/{chunk-aq39q04r.js.map → chunk-y9jmd7e5.js.map} +1 -1
  150. package/dist/{chunk-k4g51s47.js → chunk-yv9czyfr.js} +3 -3
  151. package/dist/{chunk-z5rnrmz1.js → chunk-yw9pyg66.js} +5 -3
  152. package/dist/chunk-yw9pyg66.js.map +11 -0
  153. package/dist/{chunk-vre348sb.js → chunk-za5yd58j.js} +2 -2
  154. package/dist/{chunk-23xs4qp9.js → chunk-zb77kjth.js} +3 -3
  155. package/dist/{chunk-33saed7g.js → chunk-zxawp1n2.js} +1 -1
  156. package/dist/datasets/builders.d.ts +12 -1
  157. package/dist/datasets/builders.d.ts.map +1 -1
  158. package/dist/datasets/execution.d.ts +27 -1
  159. package/dist/datasets/execution.d.ts.map +1 -1
  160. package/dist/datasets/index.d.ts +1 -1
  161. package/dist/datasets/index.d.ts.map +1 -1
  162. package/dist/datasets/types.d.ts +2 -0
  163. package/dist/datasets/types.d.ts.map +1 -1
  164. package/dist/datasets/write.d.ts +5 -0
  165. package/dist/datasets/write.d.ts.map +1 -1
  166. package/dist/datasets/write.js +10 -5
  167. package/dist/datasets/write.js.map +1 -1
  168. package/dist/edits/properties.d.ts.map +1 -1
  169. package/dist/events/execution.d.ts +2 -1
  170. package/dist/events/execution.d.ts.map +1 -1
  171. package/dist/events/types/objects.d.ts +5 -0
  172. package/dist/events/types/objects.d.ts.map +1 -1
  173. package/dist/execution/agent.d.ts +10 -0
  174. package/dist/execution/agent.d.ts.map +1 -1
  175. package/dist/execution/agent.js +39 -34
  176. package/dist/execution/agent.js.map +1 -1
  177. package/dist/execution/authorized-object-reader.d.ts +6 -1
  178. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  179. package/dist/execution/primitive.js +37 -34
  180. package/dist/execution/primitive.js.map +2 -2
  181. package/dist/execution/request.js +38 -35
  182. package/dist/execution/request.js.map +2 -2
  183. package/dist/http/api-routes.d.ts.map +1 -1
  184. package/dist/http/index.js +1 -1
  185. package/dist/index.d.ts +9 -8
  186. package/dist/index.d.ts.map +1 -1
  187. package/dist/index.js +57 -52
  188. package/dist/index.js.map +1 -1
  189. package/dist/lake-storage/index.js +8 -5
  190. package/dist/lake-storage/index.js.map +1 -1
  191. package/dist/materializer/index.js +19 -16
  192. package/dist/materializer/index.js.map +1 -1
  193. package/dist/models/catalog.d.ts +1 -1
  194. package/dist/models/catalog.d.ts.map +1 -1
  195. package/dist/models/execution/binding.d.ts +6 -0
  196. package/dist/models/execution/binding.d.ts.map +1 -1
  197. package/dist/models/execution/index.js +19 -16
  198. package/dist/models/execution/index.js.map +1 -1
  199. package/dist/models/execution/model-call-recorder.d.ts +4 -0
  200. package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
  201. package/dist/models/execution.d.ts.map +1 -1
  202. package/dist/models/index.js +1 -1
  203. package/dist/models/language-model.d.ts +6 -0
  204. package/dist/models/language-model.d.ts.map +1 -1
  205. package/dist/objects/context/index.d.ts +1 -1
  206. package/dist/objects/context/index.d.ts.map +1 -1
  207. package/dist/objects/context/types.d.ts +6 -0
  208. package/dist/objects/context/types.d.ts.map +1 -1
  209. package/dist/objects/execution.d.ts +2 -1
  210. package/dist/objects/execution.d.ts.map +1 -1
  211. package/dist/objects/index.js +23 -19
  212. package/dist/objects/index.js.map +1 -1
  213. package/dist/objects/materializer-adapter.d.ts.map +1 -1
  214. package/dist/objects/object/upsert-batch.d.ts.map +1 -1
  215. package/dist/objects/object/upsert.d.ts.map +1 -1
  216. package/dist/objects/property-clearance.d.ts +41 -0
  217. package/dist/objects/property-clearance.d.ts.map +1 -0
  218. package/dist/objects/query/executor.d.ts +3 -0
  219. package/dist/objects/query/executor.d.ts.map +1 -1
  220. package/dist/objects/query/index.js +18 -15
  221. package/dist/objects/query/index.js.map +1 -1
  222. package/dist/objects/query/validate.d.ts +10 -1
  223. package/dist/objects/query/validate.d.ts.map +1 -1
  224. package/dist/objects/sdk/file-handle.d.ts +6 -0
  225. package/dist/objects/sdk/file-handle.d.ts.map +1 -0
  226. package/dist/objects/sdk/object-handle.d.ts +2 -2
  227. package/dist/objects/sdk/object-handle.d.ts.map +1 -1
  228. package/dist/objects/sdk/object-set.d.ts +2 -0
  229. package/dist/objects/sdk/object-set.d.ts.map +1 -1
  230. package/dist/ontology/builders.d.ts +12 -1
  231. package/dist/ontology/builders.d.ts.map +1 -1
  232. package/dist/ontology/docs-markdown.d.ts +35 -0
  233. package/dist/ontology/docs-markdown.d.ts.map +1 -0
  234. package/dist/ontology/docs.d.ts +50 -0
  235. package/dist/ontology/docs.d.ts.map +1 -0
  236. package/dist/ontology/index.js +7 -4
  237. package/dist/ontology/index.js.map +1 -1
  238. package/dist/ontology/inference/index.d.ts +19 -0
  239. package/dist/ontology/inference/index.d.ts.map +1 -1
  240. package/dist/ontology/internal.d.ts +3 -1
  241. package/dist/ontology/internal.d.ts.map +1 -1
  242. package/dist/ontology/internal.js +276 -3
  243. package/dist/ontology/internal.js.map +4 -3
  244. package/dist/ontology/tokens.d.ts +8 -1
  245. package/dist/ontology/tokens.d.ts.map +1 -1
  246. package/dist/ontology/types.d.ts +5 -0
  247. package/dist/ontology/types.d.ts.map +1 -1
  248. package/dist/ontology/validation/index.d.ts +1 -1
  249. package/dist/ontology/validation/index.d.ts.map +1 -1
  250. package/dist/ontology/validation/schema.d.ts +7 -0
  251. package/dist/ontology/validation/schema.d.ts.map +1 -1
  252. package/dist/pipelines/index.js +21 -18
  253. package/dist/pipelines/index.js.map +1 -1
  254. package/dist/projections/internal.js +19 -16
  255. package/dist/projections/internal.js.map +1 -1
  256. package/dist/runtime/create.d.ts +11 -2
  257. package/dist/runtime/create.d.ts.map +1 -1
  258. package/dist/runtime/definitions.d.ts +3 -1
  259. package/dist/runtime/definitions.d.ts.map +1 -1
  260. package/dist/runtime/host.d.ts +13 -2
  261. package/dist/runtime/host.d.ts.map +1 -1
  262. package/dist/runtime/index.d.ts +1 -1
  263. package/dist/runtime/index.d.ts.map +1 -1
  264. package/dist/runtime/internal.js +21 -18
  265. package/dist/runtime/internal.js.map +1 -1
  266. package/dist/runtime/locale.d.ts +9 -0
  267. package/dist/runtime/locale.d.ts.map +1 -0
  268. package/dist/runtime/resolve-definitions.d.ts +4 -2
  269. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  270. package/dist/runtime/types.d.ts +30 -3
  271. package/dist/runtime/types.d.ts.map +1 -1
  272. package/dist/sandboxes/index.js +7 -6
  273. package/dist/sandboxes/index.js.map +1 -1
  274. package/dist/scheduler/index.js +1 -1
  275. package/dist/scheduler/runtime.d.ts +3 -0
  276. package/dist/scheduler/runtime.d.ts.map +1 -1
  277. package/dist/security/builders.d.ts +11 -2
  278. package/dist/security/builders.d.ts.map +1 -1
  279. package/dist/security/index.d.ts +4 -4
  280. package/dist/security/index.d.ts.map +1 -1
  281. package/dist/security/markings.d.ts +19 -0
  282. package/dist/security/markings.d.ts.map +1 -0
  283. package/dist/security/redactions.d.ts +4 -0
  284. package/dist/security/redactions.d.ts.map +1 -0
  285. package/dist/security/registry.d.ts +7 -1
  286. package/dist/security/registry.d.ts.map +1 -1
  287. package/dist/security/types.d.ts +25 -0
  288. package/dist/security/types.d.ts.map +1 -1
  289. package/dist/security/validation.d.ts +4 -1
  290. package/dist/security/validation.d.ts.map +1 -1
  291. package/dist/shares/internal.js +18 -15
  292. package/dist/shares/internal.js.map +2 -2
  293. package/dist/storage/agents/provider.d.ts.map +1 -1
  294. package/dist/storage/agents/provider.js +5 -4
  295. package/dist/storage/agents/provider.js.map +1 -1
  296. package/dist/storage/agents/types.d.ts +15 -9
  297. package/dist/storage/agents/types.d.ts.map +1 -1
  298. package/dist/storage/file-upload-sessions/provider.js +10 -7
  299. package/dist/storage/file-upload-sessions/provider.js.map +1 -1
  300. package/dist/storage/index.d.ts +1 -0
  301. package/dist/storage/index.d.ts.map +1 -1
  302. package/dist/storage/index.js +18 -15
  303. package/dist/storage/index.js.map +1 -1
  304. package/dist/storage/internal.js +4 -3
  305. package/dist/storage/internal.js.map +1 -1
  306. package/dist/storage/objects/types.d.ts +7 -0
  307. package/dist/storage/objects/types.d.ts.map +1 -1
  308. package/dist/storage/workflow-runs/provider.js +10 -7
  309. package/dist/storage/workflow-runs/provider.js.map +1 -1
  310. package/dist/syncs/index.js +22 -19
  311. package/dist/syncs/index.js.map +1 -1
  312. package/dist/testing/index.js +55 -53
  313. package/dist/testing/index.js.map +2 -2
  314. package/dist/webhooks/internal.js +19 -16
  315. package/dist/webhooks/internal.js.map +2 -2
  316. package/dist/workflows/builders.d.ts.map +1 -1
  317. package/dist/workflows/index.js +41 -38
  318. package/dist/workflows/index.js.map +1 -1
  319. package/dist/workflows/request.d.ts.map +1 -1
  320. package/dist/workflows/types.d.ts +6 -3
  321. package/dist/workflows/types.d.ts.map +1 -1
  322. package/dist/workflows/validation.d.ts +2 -1
  323. package/dist/workflows/validation.d.ts.map +1 -1
  324. package/package.json +1 -1
  325. package/src/actions/read-facade.ts +2 -1
  326. package/src/actions/validation.ts +4 -1
  327. package/src/agents/adapters.ts +15 -0
  328. package/src/agents/authority.ts +15 -0
  329. package/src/agents/context/entries.ts +48 -4
  330. package/src/agents/context/index.ts +1 -0
  331. package/src/agents/context-compaction.ts +6 -0
  332. package/src/agents/errors.ts +3 -0
  333. package/src/agents/index.ts +13 -1
  334. package/src/agents/message.ts +9 -0
  335. package/src/agents/request.ts +178 -22
  336. package/src/agents/skills.ts +63 -0
  337. package/src/agents/types.ts +35 -5
  338. package/src/auth/runtime.ts +14 -0
  339. package/src/auth/types.ts +6 -0
  340. package/src/authorization/resolve.ts +6 -1
  341. package/src/authorization/types.ts +7 -0
  342. package/src/blob-storage/execution.ts +12 -0
  343. package/src/blob-storage/file-content.ts +106 -0
  344. package/src/blob-storage/index.ts +1 -0
  345. package/src/blob-storage/internal.ts +7 -0
  346. package/src/blob-storage/media-type.ts +29 -0
  347. package/src/blob-storage/types.ts +13 -1
  348. package/src/blob-storage/validation.ts +13 -0
  349. package/src/bootstrap/agent-context.ts +356 -0
  350. package/src/bootstrap/discovery.ts +100 -33
  351. package/src/bootstrap/index.ts +1 -1
  352. package/src/bootstrap/ontology-type-manifest.ts +3 -38
  353. package/src/datasets/builders.ts +17 -1
  354. package/src/datasets/execution.ts +110 -2
  355. package/src/datasets/index.ts +7 -1
  356. package/src/datasets/types.ts +2 -0
  357. package/src/datasets/write.ts +21 -2
  358. package/src/edits/properties.ts +3 -0
  359. package/src/events/execution.ts +15 -16
  360. package/src/events/types/objects.ts +5 -0
  361. package/src/execution/agent.ts +27 -0
  362. package/src/execution/authorization.ts +1 -0
  363. package/src/execution/authorized-object-reader.ts +96 -34
  364. package/src/execution/scopes.ts +2 -6
  365. package/src/http/api-routes.ts +4 -3
  366. package/src/index.ts +27 -2
  367. package/src/models/catalog.ts +26 -2
  368. package/src/models/execution/README.md +4 -3
  369. package/src/models/execution/binding.ts +6 -0
  370. package/src/models/execution/model-call-recorder.ts +10 -0
  371. package/src/models/execution/session.ts +2 -2
  372. package/src/models/execution.ts +6 -2
  373. package/src/models/language-model.ts +6 -0
  374. package/src/objects/context/index.ts +1 -0
  375. package/src/objects/context/types.ts +7 -0
  376. package/src/objects/execution.ts +4 -1
  377. package/src/objects/materializer-adapter.ts +3 -0
  378. package/src/objects/object/upsert-batch.ts +4 -1
  379. package/src/objects/object/upsert.ts +3 -1
  380. package/src/objects/property-clearance.ts +209 -0
  381. package/src/objects/query/executor.ts +43 -36
  382. package/src/objects/query/validate.ts +133 -14
  383. package/src/objects/sdk/file-handle.ts +77 -0
  384. package/src/objects/sdk/object-handle.ts +8 -4
  385. package/src/objects/sdk/object-set.ts +5 -2
  386. package/src/ontology/builders.ts +18 -2
  387. package/src/ontology/docs-markdown.ts +394 -0
  388. package/src/ontology/docs.ts +196 -0
  389. package/src/ontology/inference/index.ts +25 -0
  390. package/src/ontology/internal.ts +7 -0
  391. package/src/ontology/tokens.ts +13 -2
  392. package/src/ontology/types.ts +5 -0
  393. package/src/ontology/validation/index.ts +1 -0
  394. package/src/ontology/validation/schema.ts +26 -1
  395. package/src/runtime/create.ts +34 -4
  396. package/src/runtime/definitions.ts +3 -1
  397. package/src/runtime/host.ts +45 -1
  398. package/src/runtime/index.ts +3 -0
  399. package/src/runtime/locale.ts +26 -0
  400. package/src/runtime/resolve-definitions.ts +28 -1
  401. package/src/runtime/sixb.ts +1 -1
  402. package/src/runtime/types.ts +39 -3
  403. package/src/scheduler/runtime.ts +11 -2
  404. package/src/security/builders.ts +49 -5
  405. package/src/security/index.ts +6 -1
  406. package/src/security/markings.ts +313 -0
  407. package/src/security/redactions.ts +6 -0
  408. package/src/security/registry.ts +21 -1
  409. package/src/security/types.ts +26 -0
  410. package/src/security/validation.ts +59 -2
  411. package/src/storage/agents/provider.ts +11 -0
  412. package/src/storage/agents/types.ts +15 -7
  413. package/src/storage/index.ts +1 -0
  414. package/src/storage/objects/types.ts +7 -0
  415. package/src/workflows/builders.ts +24 -1
  416. package/src/workflows/request.ts +3 -0
  417. package/src/workflows/types.ts +6 -3
  418. package/src/workflows/validation.ts +32 -4
  419. package/dist/chunk-10styjgk.js.map +0 -20
  420. package/dist/chunk-52c5zb0z.js.map +0 -10
  421. package/dist/chunk-69266efg.js.map +0 -12
  422. package/dist/chunk-6wbm6ymz.js.map +0 -48
  423. package/dist/chunk-91kcnbf0.js.map +0 -10
  424. package/dist/chunk-98cw09sw.js.map +0 -10
  425. package/dist/chunk-9vx5e9g1.js.map +0 -11
  426. package/dist/chunk-cd234ba4.js.map +0 -14
  427. package/dist/chunk-cnb5kv05.js.map +0 -19
  428. package/dist/chunk-dmn70ztd.js.map +0 -11
  429. package/dist/chunk-gf7yht60.js.map +0 -12
  430. package/dist/chunk-h3v76ams.js.map +0 -11
  431. package/dist/chunk-pja9jfz6.js.map +0 -19
  432. package/dist/chunk-t9shqx3w.js.map +0 -12
  433. package/dist/chunk-xcy5ddha.js.map +0 -15
  434. package/dist/chunk-xyvy73tj.js.map +0 -12
  435. package/dist/chunk-z5rnrmz1.js.map +0 -11
  436. /package/dist/{chunk-4gmng3vf.js.map → chunk-22v5bpz3.js.map} +0 -0
  437. /package/dist/{chunk-2am3db31.js.map → chunk-48e3cn2d.js.map} +0 -0
  438. /package/dist/{chunk-f1xh7a32.js.map → chunk-7hpdd6r9.js.map} +0 -0
  439. /package/dist/{chunk-rb143ggb.js.map → chunk-bwjcehza.js.map} +0 -0
  440. /package/dist/{chunk-vp3z1ckh.js.map → chunk-de4z2bj6.js.map} +0 -0
  441. /package/dist/{chunk-3rrezgyc.js.map → chunk-dnmadg9k.js.map} +0 -0
  442. /package/dist/{chunk-a7er86jd.js.map → chunk-ex496vct.js.map} +0 -0
  443. /package/dist/{chunk-jnfxmr3f.js.map → chunk-f1zxad2t.js.map} +0 -0
  444. /package/dist/{chunk-c2rga5cx.js.map → chunk-mfs23znk.js.map} +0 -0
  445. /package/dist/{chunk-fggq3d9k.js.map → chunk-p0dqwj3n.js.map} +0 -0
  446. /package/dist/{chunk-sk0hcjsz.js.map → chunk-qkvz64nd.js.map} +0 -0
  447. /package/dist/{chunk-rx7h5fdx.js.map → chunk-rt9p8m9t.js.map} +0 -0
  448. /package/dist/{chunk-e67ynxcr.js.map → chunk-v6xpd60t.js.map} +0 -0
  449. /package/dist/{chunk-jjrn5v0p.js.map → chunk-vgk3hknm.js.map} +0 -0
  450. /package/dist/{chunk-5thzcb8g.js.map → chunk-vx2yp45y.js.map} +0 -0
  451. /package/dist/{chunk-k4g51s47.js.map → chunk-yv9czyfr.js.map} +0 -0
  452. /package/dist/{chunk-vre348sb.js.map → chunk-za5yd58j.js.map} +0 -0
  453. /package/dist/{chunk-23xs4qp9.js.map → chunk-zb77kjth.js.map} +0 -0
  454. /package/dist/{chunk-33saed7g.js.map → chunk-zxawp1n2.js.map} +0 -0
@@ -655,6 +655,7 @@ export class AuthRuntime {
655
655
  caller: AuthenticatedUserRequestSession,
656
656
  input: CreatePersonalAccessTokenInput
657
657
  ): Promise<CreateAccessTokenResult> {
658
+ assertSessionCaller(caller)
658
659
  const storage = this.requireAuthStorage()
659
660
  // A personal token can only carry groups the caller currently belongs to.
660
661
  const groupIds = constrainRequestedGroupIds(input.groupIds, caller.groupIds, {
@@ -815,6 +816,7 @@ export class AuthRuntime {
815
816
  caller: AuthenticatedUserRequestSession,
816
817
  input: CreateServiceAccountAccessTokenInput
817
818
  ): Promise<CreateServiceAccountAccessTokenResult> {
819
+ assertSessionCaller(caller)
818
820
  const storage = this.requireAuthStorage()
819
821
  const { serviceAccount, groupIds: serviceAccountGroupIds } =
820
822
  await this.requireManageableServiceAccount(storage, caller.groupIds, input.serviceAccountId)
@@ -1564,6 +1566,18 @@ function callerSessionId(caller: AuthenticatedRequestAuthSession): string | unde
1564
1566
  return caller.credentialSource === "session" ? caller.session.id : undefined
1565
1567
  }
1566
1568
 
1569
+ // Access tokens are created only by a signed-in person, never by another access token. A token
1570
+ // minting one could hand out more groups or a later expiry than it carries, and what it minted
1571
+ // would outlive its own revocation.
1572
+ function assertSessionCaller(caller: AuthenticatedUserRequestSession): void {
1573
+ if (caller.credentialSource !== "session") {
1574
+ throw new AuthRuntimeError(
1575
+ "authorization_denied",
1576
+ "[Sixb] Access tokens can only be created from a signed-in session, not with another access token."
1577
+ )
1578
+ }
1579
+ }
1580
+
1567
1581
  function constrainTokenGroupIds(
1568
1582
  principalGroupIds: readonly string[],
1569
1583
  accessToken: AccessTokenRecord
package/src/auth/types.ts CHANGED
@@ -190,6 +190,12 @@ export interface OidcStartSignInInput {
190
190
 
191
191
  export interface OidcStartSignInResult {
192
192
  readonly redirectTo: string
193
+ /**
194
+ * The `state` sent to the provider. The server keeps it in a cookie until `expiresAt` and
195
+ * completes the callback only in the browser that holds it.
196
+ */
197
+ readonly state: string
198
+ readonly expiresAt: Date
193
199
  }
194
200
 
195
201
  export interface OidcCallbackInput {
@@ -70,7 +70,7 @@ function expandSelection(
70
70
  *
71
71
  * Pure set-union over pre-resolved roles: roles match when their grantedTo
72
72
  * groups intersect the principal's memberships, and their concrete id sets
73
- * union into the principal's grant index.
73
+ * and clearances union into the principal's context.
74
74
  */
75
75
  export function resolveAuthorizationContext(input: {
76
76
  readonly principal: Principal
@@ -81,6 +81,7 @@ export function resolveAuthorizationContext(input: {
81
81
  const memberGroupIds = new Set(input.groupIds)
82
82
  const roleIds: string[] = []
83
83
  const grants = emptyGrantSets()
84
+ const clearances = new Set<string>()
84
85
 
85
86
  for (const role of input.roles) {
86
87
  if (!role.grantedToGroupIds.some((groupId) => memberGroupIds.has(groupId))) {
@@ -96,6 +97,9 @@ export function resolveAuthorizationContext(input: {
96
97
  grants[kind].add(id)
97
98
  }
98
99
  }
100
+ for (const markingId of role.clearances ?? []) {
101
+ clearances.add(markingId)
102
+ }
99
103
  }
100
104
 
101
105
  return {
@@ -104,5 +108,6 @@ export function resolveAuthorizationContext(input: {
104
108
  groupIds: input.groupIds,
105
109
  roleIds,
106
110
  grants,
111
+ clearances,
107
112
  }
108
113
  }
@@ -42,6 +42,8 @@ export interface ResolvedRole {
42
42
  readonly id: string
43
43
  readonly grantedToGroupIds: readonly string[]
44
44
  readonly grants: GrantIndex
45
+ /** Marking ids this role clears. Absent means none. */
46
+ readonly clearances?: ReadonlySet<string>
45
47
  }
46
48
 
47
49
  export interface AuthorizationContext {
@@ -51,4 +53,9 @@ export interface AuthorizationContext {
51
53
  /** Roles whose grantedTo groups intersect the principal's memberships. */
52
54
  readonly roleIds: readonly string[]
53
55
  readonly grants: GrantIndex
56
+ /**
57
+ * Marking ids the principal may read, unioned from its roles. Absent means none: a context built
58
+ * without clearances reads no marked property.
59
+ */
60
+ readonly clearances?: ReadonlySet<string>
54
61
  }
@@ -8,6 +8,7 @@ import {
8
8
  type FileDownloadUrlContext,
9
9
  revokeFileDownloadUrl,
10
10
  } from "./download-urls"
11
+ import { canonicalMediaType } from "./media-type"
11
12
  import type {
12
13
  AbortBlobUploadInput,
13
14
  BlobByteRange,
@@ -60,6 +61,7 @@ export function createBlobsRuntime(
60
61
  const executionBlobs: BlobsRuntime = {
61
62
  put: (input) => {
62
63
  assertAccess()
64
+ assertMediaType("put", input.mediaType)
63
65
  return blobStorage.put(input)
64
66
  },
65
67
  open: (blobId) => {
@@ -89,6 +91,7 @@ export function createBlobsRuntime(
89
91
  if (supportsDirectUpload(blobStorage)) {
90
92
  executionBlobs.createUpload = (input) => {
91
93
  assertAccess()
94
+ assertMediaType("createUpload", input.mediaType)
92
95
  return blobStorage.createUpload(input)
93
96
  }
94
97
  executionBlobs.signUploadPart = (input) => {
@@ -97,6 +100,7 @@ export function createBlobsRuntime(
97
100
  }
98
101
  executionBlobs.completeUpload = (input) => {
99
102
  assertAccess()
103
+ assertMediaType("completeUpload", input.mediaType)
100
104
  return blobStorage.completeUpload(input)
101
105
  }
102
106
  executionBlobs.abortUpload = (input) => {
@@ -107,3 +111,11 @@ export function createBlobsRuntime(
107
111
 
108
112
  return Object.freeze(executionBlobs)
109
113
  }
114
+
115
+ function assertMediaType(method: string, mediaType: string | undefined): void {
116
+ if (mediaType !== undefined && canonicalMediaType(mediaType) === null) {
117
+ throw new Error(
118
+ `[Sixb] blobs.${method}() mediaType must be one media type, such as "application/pdf". Received ${JSON.stringify(mediaType)}.`
119
+ )
120
+ }
121
+ }
@@ -0,0 +1,106 @@
1
+ import type { BlobInfo, BlobStorage, FileRef, OpenedFileRef } from "./types"
2
+ import { isFileRef } from "./validation"
3
+
4
+ /**
5
+ * A file is served only through the record that references it: the caller reads that record with
6
+ * its own authority, resolves the FileRef inside it, then checks the FileRef against the stored
7
+ * blob. File content routes and the SDK's `file().open()` share these steps.
8
+ */
9
+
10
+ /** The FileRef at a JSON Pointer in an authorized record, or null when none is there. */
11
+ export function resolveFileRefAtPath(root: unknown, path: string): FileRef | null {
12
+ const value = resolveJsonPointer(root, path)
13
+ return isFileRef(value) ? value : null
14
+ }
15
+
16
+ /** The stored blob a FileRef names, or null when it is absent or no longer matches it. */
17
+ export async function statFileRef(
18
+ blobStorage: Pick<BlobStorage, "stat">,
19
+ fileRef: FileRef
20
+ ): Promise<BlobInfo | null> {
21
+ const stat = await blobStorage.stat(fileRef.blobId)
22
+ return stat &&
23
+ stat.blobId === fileRef.blobId &&
24
+ stat.digest === fileRef.digest &&
25
+ stat.sizeBytes === fileRef.sizeBytes
26
+ ? stat
27
+ : null
28
+ }
29
+
30
+ /**
31
+ * Open a FileRef resolved from an authorized record, or return null when its blob is gone. The
32
+ * blob itself is opened on the body's first read, so a body nobody reads holds nothing.
33
+ */
34
+ export async function openFileRef(
35
+ blobStorage: Pick<BlobStorage, "stat" | "open">,
36
+ fileRef: FileRef
37
+ ): Promise<OpenedFileRef | null> {
38
+ const stat = await statFileRef(blobStorage, fileRef)
39
+ if (!stat) return null
40
+ return { fileRef, body: openOnFirstRead(blobStorage, fileRef.blobId) }
41
+ }
42
+
43
+ function openOnFirstRead(
44
+ blobStorage: Pick<BlobStorage, "open">,
45
+ blobId: string
46
+ ): ReadableStream<Uint8Array> {
47
+ let reader: ReadableStreamDefaultReader<Uint8Array> | undefined
48
+ return new ReadableStream<Uint8Array>(
49
+ {
50
+ async pull(controller) {
51
+ reader ??= (await blobStorage.open(blobId)).getReader()
52
+ const { done, value } = await reader.read()
53
+ if (done) controller.close()
54
+ else controller.enqueue(value)
55
+ },
56
+ async cancel(reason) {
57
+ await reader?.cancel(reason)
58
+ },
59
+ },
60
+ // No read-ahead: the first pull waits for the first read.
61
+ { highWaterMark: 0 }
62
+ )
63
+ }
64
+
65
+ /** Escape one segment of a JSON Pointer. */
66
+ export function jsonPointerSegment(segment: string | number): string {
67
+ return String(segment).replaceAll("~", "~0").replaceAll("/", "~1")
68
+ }
69
+
70
+ function resolveJsonPointer(root: unknown, pointer: string): unknown {
71
+ if (pointer === "") {
72
+ return root
73
+ }
74
+
75
+ if (!pointer.startsWith("/")) {
76
+ return undefined
77
+ }
78
+
79
+ let current = root
80
+ for (const rawSegment of pointer.slice(1).split("/")) {
81
+ const segment = decodeJsonPointerSegment(rawSegment)
82
+ if (Array.isArray(current)) {
83
+ const index = Number.parseInt(segment, 10)
84
+ if (!Number.isInteger(index) || index < 0 || index.toString() !== segment) {
85
+ return undefined
86
+ }
87
+ if (!Object.hasOwn(current, segment)) {
88
+ return undefined
89
+ }
90
+ current = current[index]
91
+ continue
92
+ }
93
+
94
+ if (typeof current !== "object" || current === null || !Object.hasOwn(current, segment)) {
95
+ return undefined
96
+ }
97
+
98
+ current = (current as Record<string, unknown>)[segment]
99
+ }
100
+
101
+ return current
102
+ }
103
+
104
+ function decodeJsonPointerSegment(segment: string): string {
105
+ return segment.replaceAll("~1", "/").replaceAll("~0", "~")
106
+ }
@@ -21,6 +21,7 @@ export type {
21
21
  DirectPutBlobUploadSession,
22
22
  DirectUploadBlobStorage,
23
23
  MultipartBlobUploadSession,
24
+ OpenedFileRef,
24
25
  PutBlobInput,
25
26
  RangeReadableBlobStorage,
26
27
  SignBlobUploadPartInput,
@@ -1 +1,8 @@
1
1
  export { FILE_DOWNLOAD_ROUTE_PREFIX, resolveFileDownload } from "./download-urls"
2
+ export {
3
+ jsonPointerSegment,
4
+ openFileRef,
5
+ resolveFileRefAtPath,
6
+ statFileRef,
7
+ } from "./file-content"
8
+ export { canonicalMediaType } from "./media-type"
@@ -0,0 +1,29 @@
1
+ // One media type as RFC 9110 defines it: `type/subtype`, each a token, then optional
2
+ // `;name=value` parameters whose value is a token or a quoted string. Stricter than the RFC where
3
+ // leniency only invites a second reading: no surrounding whitespace, no empty parameters, no
4
+ // escapes, and no comma anywhere. Browsers read a comma-separated value as a list of types and
5
+ // use the last valid one, so a value with a comma can mean something other than its first type.
6
+ const TOKEN = "[!#$%&'*+.^_`|~0-9A-Za-z-]+"
7
+ const QUOTED_STRING = '"[\\t\\x20\\x21\\x23-\\x2b\\x2d-\\x5b\\x5d-\\x7e]*"'
8
+ const PARAMETER = `[\\t ]*;[\\t ]*(${TOKEN})=(${TOKEN}|${QUOTED_STRING})`
9
+ const MEDIA_TYPE_PATTERN = new RegExp(`^(${TOKEN})/(${TOKEN})((?:${PARAMETER})*)$`)
10
+ const PARAMETER_PATTERN = new RegExp(PARAMETER, "g")
11
+
12
+ /**
13
+ * The canonical form of a single well-formed media type, or `null` for anything else.
14
+ *
15
+ * Type, subtype, and parameter names are case-insensitive, so they are lowercased; parameter
16
+ * values keep their case. `"Text/Plain; Charset=UTF-8"` becomes `"text/plain;charset=UTF-8"`.
17
+ */
18
+ export function canonicalMediaType(value: unknown): string | null {
19
+ if (typeof value !== "string") return null
20
+ const match = MEDIA_TYPE_PATTERN.exec(value)
21
+ if (!match) return null
22
+
23
+ const [, type, subtype, parameters] = match
24
+ let canonical = `${type.toLowerCase()}/${subtype.toLowerCase()}`
25
+ for (const [, name, parameterValue] of parameters.matchAll(PARAMETER_PATTERN)) {
26
+ canonical += `;${name.toLowerCase()}=${parameterValue}`
27
+ }
28
+ return canonical
29
+ }
@@ -7,7 +7,9 @@ export type BlobDigest = `sha256:${string}`
7
7
  * `blobId` is always `blob_<sha256 hex>` derived from `digest`. `fileName`,
8
8
  * `mediaType`, and `logicalPath` are caller-supplied per-reference metadata (not
9
9
  * part of blob identity) and are untrusted — consumers must sanitize them before
10
- * using them for paths, headers, or rendering.
10
+ * using them for paths, headers, or rendering. A caller storing a reference must give a
11
+ * single media type such as `image/png` (`isValidFileRef`); references stored earlier may
12
+ * hold anything, so file routes re-parse it before serving.
11
13
  */
12
14
  export interface FileRef {
13
15
  readonly blobId: string
@@ -20,6 +22,16 @@ export interface FileRef {
20
22
 
21
23
  export type BlobBody = ArrayBuffer | Uint8Array | Blob | ReadableStream<Uint8Array>
22
24
 
25
+ /** A FileRef opened through the record that references it. */
26
+ export interface OpenedFileRef {
27
+ readonly fileRef: FileRef
28
+ /**
29
+ * The file's bytes. The stored blob is opened on the first read: read the body to its end or
30
+ * cancel it, and a body never read holds nothing.
31
+ */
32
+ readonly body: ReadableStream<Uint8Array>
33
+ }
34
+
23
35
  export interface PutBlobInput {
24
36
  readonly body: BlobBody
25
37
  /** Reject the write when the consumed byte count differs from this value. */
@@ -1,5 +1,6 @@
1
1
  import { isPlainRecord } from "../json"
2
2
  import { blobIdFromDigest } from "./derive"
3
+ import { canonicalMediaType } from "./media-type"
3
4
  import type {
4
5
  BlobDigest,
5
6
  BlobStorage,
@@ -30,6 +31,18 @@ export function isFileRef(value: unknown): value is FileRef {
30
31
  )
31
32
  }
32
33
 
34
+ /**
35
+ * `isFileRef`, plus a `mediaType` that, when present, is exactly one media type. Paths that store
36
+ * a reference a caller hands them use this. Reads keep `isFileRef`, so references stored before
37
+ * the rule still load; file routes re-parse the type before serving it.
38
+ */
39
+ export function isValidFileRef(value: unknown): value is FileRef {
40
+ return (
41
+ isFileRef(value) &&
42
+ (value.mediaType === undefined || canonicalMediaType(value.mediaType) !== null)
43
+ )
44
+ }
45
+
33
46
  export function supportsDirectUpload(
34
47
  storage: BlobStorage
35
48
  ): storage is BlobStorage & DirectUploadBlobStorage {