@segmentstream/ontology 0.0.0-stage → 0.92.1

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 (483) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +2 -0
  3. package/README.md +1655 -2
  4. package/dist/action.d.ts +193 -0
  5. package/dist/action.js +41 -0
  6. package/dist/agent-chat.d.ts +44 -0
  7. package/dist/agent-chat.js +91 -0
  8. package/dist/agent-task-contract.d.ts +64 -0
  9. package/dist/agent-task-contract.js +15 -0
  10. package/dist/agent-task.d.ts +39 -0
  11. package/dist/agent-task.js +112 -0
  12. package/dist/analyze.d.ts +215 -0
  13. package/dist/analyze.js +2438 -0
  14. package/dist/app-feedback.d.ts +167 -0
  15. package/dist/app-feedback.js +176 -0
  16. package/dist/authoring-input.d.ts +3 -0
  17. package/dist/authoring-input.js +107 -0
  18. package/dist/authoring-names.d.ts +4 -0
  19. package/dist/authoring-names.js +13 -0
  20. package/dist/authoring-records.d.ts +35 -0
  21. package/dist/authoring-records.js +264 -0
  22. package/dist/authoring.d.ts +15 -0
  23. package/dist/authoring.js +331 -0
  24. package/dist/bin/check.d.ts +30 -0
  25. package/dist/bin/check.js +99 -0
  26. package/dist/bin/load.d.ts +48 -0
  27. package/dist/bin/load.js +139 -0
  28. package/dist/bin/main.d.ts +31 -0
  29. package/dist/bin/main.js +121 -0
  30. package/dist/bin/migrate.d.ts +57 -0
  31. package/dist/bin/migrate.js +170 -0
  32. package/dist/bin/output.d.ts +31 -0
  33. package/dist/bin/output.js +84 -0
  34. package/dist/bin.d.ts +2 -0
  35. package/dist/bin.js +31 -0
  36. package/dist/blob.d.ts +52 -0
  37. package/dist/blob.js +87 -0
  38. package/dist/channel-session.d.ts +16 -0
  39. package/dist/channel-session.js +16 -0
  40. package/dist/chat.d.ts +43 -0
  41. package/dist/chat.js +34 -0
  42. package/dist/confirmation.d.ts +46 -0
  43. package/dist/confirmation.js +41 -0
  44. package/dist/connection.d.ts +213 -0
  45. package/dist/connection.js +289 -0
  46. package/dist/deployment.d.ts +35 -0
  47. package/dist/deployment.js +76 -0
  48. package/dist/diagnostics.d.ts +27 -0
  49. package/dist/diagnostics.js +106 -0
  50. package/dist/emails.d.ts +70 -0
  51. package/dist/emails.js +221 -0
  52. package/dist/entity.d.ts +331 -0
  53. package/dist/entity.js +153 -0
  54. package/dist/errors.d.ts +154 -0
  55. package/dist/errors.js +109 -0
  56. package/dist/feedback-config.d.ts +24 -0
  57. package/dist/feedback-config.js +126 -0
  58. package/dist/files.d.ts +39 -0
  59. package/dist/files.js +4 -0
  60. package/dist/groups.d.ts +95 -0
  61. package/dist/groups.js +280 -0
  62. package/dist/index.d.ts +109 -0
  63. package/dist/index.js +70 -0
  64. package/dist/internal/diagnostics.js +594 -0
  65. package/dist/legacy.d.ts +160 -0
  66. package/dist/legacy.js +270 -0
  67. package/dist/manifest-compatibility.d.ts +8 -0
  68. package/dist/manifest-compatibility.js +87 -0
  69. package/dist/manifest.d.ts +3329 -0
  70. package/dist/manifest.js +757 -0
  71. package/dist/me.d.ts +46 -0
  72. package/dist/me.js +109 -0
  73. package/dist/metric-filters.d.ts +48 -0
  74. package/dist/metric-filters.js +252 -0
  75. package/dist/metric-routes.d.ts +132 -0
  76. package/dist/metric-routes.js +498 -0
  77. package/dist/metric.d.ts +172 -0
  78. package/dist/metric.js +132 -0
  79. package/dist/migrate/apply.d.ts +94 -0
  80. package/dist/migrate/apply.js +526 -0
  81. package/dist/migrate/errors.d.ts +46 -0
  82. package/dist/migrate/errors.js +38 -0
  83. package/dist/migrate/index.d.ts +10 -0
  84. package/dist/migrate/index.js +7 -0
  85. package/dist/migrate/model.d.ts +2311 -0
  86. package/dist/migrate/model.js +148 -0
  87. package/dist/migrate/plan.d.ts +51 -0
  88. package/dist/migrate/plan.js +1856 -0
  89. package/dist/migrate/preview.d.ts +13 -0
  90. package/dist/migrate/preview.js +65 -0
  91. package/dist/migrate/storage.d.ts +226 -0
  92. package/dist/migrate/storage.js +774 -0
  93. package/dist/model-metrics.d.ts +22 -0
  94. package/dist/model-metrics.js +545 -0
  95. package/dist/names.d.ts +49 -0
  96. package/dist/names.js +110 -0
  97. package/dist/navigation-artifact.d.ts +13 -0
  98. package/dist/navigation-artifact.js +11 -0
  99. package/dist/navigation-catalog.d.ts +55 -0
  100. package/dist/navigation-catalog.js +297 -0
  101. package/dist/nitro-navigation.d.ts +3 -0
  102. package/dist/nitro-navigation.js +64 -0
  103. package/dist/nitro-workflows.d.ts +108 -0
  104. package/dist/nitro-workflows.js +286 -0
  105. package/dist/nitro.d.ts +40 -0
  106. package/dist/nitro.js +50 -0
  107. package/dist/ontology.d.ts +41 -0
  108. package/dist/ontology.js +46 -0
  109. package/dist/permissions.d.ts +198 -0
  110. package/dist/permissions.js +272 -0
  111. package/dist/property.d.ts +188 -0
  112. package/dist/property.js +301 -0
  113. package/dist/query.d.ts +245 -0
  114. package/dist/query.js +615 -0
  115. package/dist/relationship.d.ts +99 -0
  116. package/dist/relationship.js +33 -0
  117. package/dist/render.d.ts +81 -0
  118. package/dist/render.js +512 -0
  119. package/dist/replication/baseline.d.ts +51 -0
  120. package/dist/replication/baseline.js +215 -0
  121. package/dist/replication/bigquery.d.ts +37 -0
  122. package/dist/replication/bigquery.js +211 -0
  123. package/dist/replication/coverage.d.ts +14 -0
  124. package/dist/replication/coverage.js +53 -0
  125. package/dist/replication/evolution.d.ts +25 -0
  126. package/dist/replication/evolution.js +184 -0
  127. package/dist/replication/identities.d.ts +6 -0
  128. package/dist/replication/identities.js +47 -0
  129. package/dist/replication/legacy-baseline.d.ts +27 -0
  130. package/dist/replication/legacy-baseline.js +109 -0
  131. package/dist/replication/legacy-store.d.ts +19 -0
  132. package/dist/replication/legacy-store.js +63 -0
  133. package/dist/replication/lineage.d.ts +36 -0
  134. package/dist/replication/lineage.js +72 -0
  135. package/dist/replication/migrate.d.ts +21 -0
  136. package/dist/replication/migrate.js +84 -0
  137. package/dist/replication/model.d.ts +52 -0
  138. package/dist/replication/model.js +99 -0
  139. package/dist/replication/scans.d.ts +34 -0
  140. package/dist/replication/scans.js +158 -0
  141. package/dist/replication/schema.d.ts +11 -0
  142. package/dist/replication/schema.js +226 -0
  143. package/dist/replication/shadow-schema.d.ts +4 -0
  144. package/dist/replication/shadow-schema.js +61 -0
  145. package/dist/replication/shadow.d.ts +127 -0
  146. package/dist/replication/shadow.js +614 -0
  147. package/dist/replication/source-replacement.d.ts +33 -0
  148. package/dist/replication/source-replacement.js +76 -0
  149. package/dist/replication/store.d.ts +36 -0
  150. package/dist/replication/store.js +382 -0
  151. package/dist/replication/transaction.d.ts +23 -0
  152. package/dist/replication/transaction.js +88 -0
  153. package/dist/role.d.ts +61 -0
  154. package/dist/role.js +76 -0
  155. package/dist/runtime/action-deadlocks.d.ts +21 -0
  156. package/dist/runtime/action-deadlocks.js +130 -0
  157. package/dist/runtime/action-transactions.d.ts +35 -0
  158. package/dist/runtime/action-transactions.js +54 -0
  159. package/dist/runtime/agent-counters.d.ts +26 -0
  160. package/dist/runtime/agent-counters.js +98 -0
  161. package/dist/runtime/agent-tasks.d.ts +63 -0
  162. package/dist/runtime/agent-tasks.js +120 -0
  163. package/dist/runtime/agents.d.ts +15 -0
  164. package/dist/runtime/agents.js +457 -0
  165. package/dist/runtime/batch-diagnostics.d.ts +22 -0
  166. package/dist/runtime/batch-diagnostics.js +89 -0
  167. package/dist/runtime/batch.d.ts +52 -0
  168. package/dist/runtime/batch.js +534 -0
  169. package/dist/runtime/channel-session-revocation.d.ts +3 -0
  170. package/dist/runtime/channel-session-revocation.js +5 -0
  171. package/dist/runtime/channel-sessions.d.ts +4 -0
  172. package/dist/runtime/channel-sessions.js +61 -0
  173. package/dist/runtime/confirmations.d.ts +29 -0
  174. package/dist/runtime/confirmations.js +57 -0
  175. package/dist/runtime/cursor.d.ts +23 -0
  176. package/dist/runtime/cursor.js +100 -0
  177. package/dist/runtime/deployment.d.ts +7 -0
  178. package/dist/runtime/deployment.js +4 -0
  179. package/dist/runtime/errors.d.ts +118 -0
  180. package/dist/runtime/errors.js +109 -0
  181. package/dist/runtime/federation-tables.d.ts +2 -0
  182. package/dist/runtime/federation-tables.js +20 -0
  183. package/dist/runtime/federation.d.ts +42 -0
  184. package/dist/runtime/federation.js +222 -0
  185. package/dist/runtime/files.d.ts +39 -0
  186. package/dist/runtime/files.js +44 -0
  187. package/dist/runtime/generated-actions.d.ts +37 -0
  188. package/dist/runtime/generated-actions.js +307 -0
  189. package/dist/runtime/history.d.ts +91 -0
  190. package/dist/runtime/history.js +77 -0
  191. package/dist/runtime/ids.d.ts +6 -0
  192. package/dist/runtime/ids.js +39 -0
  193. package/dist/runtime/member-tables.d.ts +8 -0
  194. package/dist/runtime/member-tables.js +33 -0
  195. package/dist/runtime/member-writes.d.ts +78 -0
  196. package/dist/runtime/member-writes.js +202 -0
  197. package/dist/runtime/metric-query.d.ts +19 -0
  198. package/dist/runtime/metric-query.js +411 -0
  199. package/dist/runtime/model.d.ts +67 -0
  200. package/dist/runtime/model.js +150 -0
  201. package/dist/runtime/new-user-hook.d.ts +6 -0
  202. package/dist/runtime/new-user-hook.js +37 -0
  203. package/dist/runtime/oauth.d.ts +9 -0
  204. package/dist/runtime/oauth.js +299 -0
  205. package/dist/runtime/pipeline.d.ts +155 -0
  206. package/dist/runtime/pipeline.js +597 -0
  207. package/dist/runtime/postgres-tls.d.ts +10 -0
  208. package/dist/runtime/postgres-tls.js +14 -0
  209. package/dist/runtime/principals.d.ts +302 -0
  210. package/dist/runtime/principals.js +1307 -0
  211. package/dist/runtime/reads.d.ts +55 -0
  212. package/dist/runtime/reads.js +313 -0
  213. package/dist/runtime/records.d.ts +42 -0
  214. package/dist/runtime/records.js +245 -0
  215. package/dist/runtime/resolve-agent-identity.d.ts +6 -0
  216. package/dist/runtime/resolve-agent-identity.js +181 -0
  217. package/dist/runtime/service-binding.d.ts +18 -0
  218. package/dist/runtime/service-binding.js +266 -0
  219. package/dist/runtime/sign-in-links.d.ts +68 -0
  220. package/dist/runtime/sign-in-links.js +147 -0
  221. package/dist/runtime/sql-runtime.d.ts +131 -0
  222. package/dist/runtime/sql-runtime.js +362 -0
  223. package/dist/runtime/statement.d.ts +18 -0
  224. package/dist/runtime/statement.js +31 -0
  225. package/dist/runtime/user-identities.d.ts +66 -0
  226. package/dist/runtime/user-identities.js +106 -0
  227. package/dist/runtime/user-identity-sql.d.ts +86 -0
  228. package/dist/runtime/user-identity-sql.js +297 -0
  229. package/dist/runtime/user-roles.d.ts +16 -0
  230. package/dist/runtime/user-roles.js +32 -0
  231. package/dist/runtime/validation.d.ts +16 -0
  232. package/dist/runtime/validation.js +26 -0
  233. package/dist/runtime/where.d.ts +57 -0
  234. package/dist/runtime/where.js +404 -0
  235. package/dist/runtime/workflow-admission.d.ts +49 -0
  236. package/dist/runtime/workflow-admission.js +92 -0
  237. package/dist/runtime/workflow-argument-codec.d.ts +10 -0
  238. package/dist/runtime/workflow-argument-codec.js +120 -0
  239. package/dist/runtime/workflow-arguments.d.ts +17 -0
  240. package/dist/runtime/workflow-arguments.js +99 -0
  241. package/dist/runtime/workflow-starts.d.ts +203 -0
  242. package/dist/runtime/workflow-starts.js +493 -0
  243. package/dist/runtime/workflow-users.d.ts +9 -0
  244. package/dist/runtime/workflow-users.js +17 -0
  245. package/dist/runtime/workload.d.ts +25 -0
  246. package/dist/runtime/workload.js +24 -0
  247. package/dist/runtime/writes.d.ts +108 -0
  248. package/dist/runtime/writes.js +491 -0
  249. package/dist/runtime-source.d.ts +22 -0
  250. package/dist/runtime-source.js +28 -0
  251. package/dist/runtime.d.ts +310 -0
  252. package/dist/runtime.js +31 -0
  253. package/dist/server.d.ts +23 -0
  254. package/dist/server.js +107 -0
  255. package/dist/service/agent/attachments.d.ts +33 -0
  256. package/dist/service/agent/attachments.js +228 -0
  257. package/dist/service/agent/authentication.d.ts +22 -0
  258. package/dist/service/agent/authentication.js +58 -0
  259. package/dist/service/agent/confirmations.d.ts +5 -0
  260. package/dist/service/agent/confirmations.js +73 -0
  261. package/dist/service/agent/conversation-routes.d.ts +14 -0
  262. package/dist/service/agent/conversation-routes.js +45 -0
  263. package/dist/service/agent/conversations.d.ts +40 -0
  264. package/dist/service/agent/conversations.js +69 -0
  265. package/dist/service/agent/files.d.ts +12 -0
  266. package/dist/service/agent/files.js +69 -0
  267. package/dist/service/agent/protocol.d.ts +90 -0
  268. package/dist/service/agent/protocol.js +114 -0
  269. package/dist/service/agent/server.d.ts +28 -0
  270. package/dist/service/agent/server.js +374 -0
  271. package/dist/service/agent/task-caller.d.ts +21 -0
  272. package/dist/service/agent/task-caller.js +35 -0
  273. package/dist/service/agent/task-start.d.ts +53 -0
  274. package/dist/service/agent/task-start.js +161 -0
  275. package/dist/service/agent/tasks.d.ts +40 -0
  276. package/dist/service/agent/tasks.js +155 -0
  277. package/dist/service/api.d.ts +50 -0
  278. package/dist/service/api.js +288 -0
  279. package/dist/service/authentication.d.ts +227 -0
  280. package/dist/service/authentication.js +767 -0
  281. package/dist/service/caller-context.d.ts +24 -0
  282. package/dist/service/caller-context.js +6 -0
  283. package/dist/service/catalog.d.ts +42 -0
  284. package/dist/service/catalog.js +66 -0
  285. package/dist/service/channel/provider.d.ts +10 -0
  286. package/dist/service/channel/provider.js +1 -0
  287. package/dist/service/channel/providers/telegram.d.ts +18 -0
  288. package/dist/service/channel/providers/telegram.js +108 -0
  289. package/dist/service/channel/sessions.d.ts +5 -0
  290. package/dist/service/channel/sessions.js +53 -0
  291. package/dist/service/channel/sign-in.d.ts +7 -0
  292. package/dist/service/channel/sign-in.js +78 -0
  293. package/dist/service/chat/archive.d.ts +64 -0
  294. package/dist/service/chat/archive.js +62 -0
  295. package/dist/service/chat/attribution.d.ts +26 -0
  296. package/dist/service/chat/attribution.js +28 -0
  297. package/dist/service/chat/delivery.d.ts +18 -0
  298. package/dist/service/chat/delivery.js +251 -0
  299. package/dist/service/chat/diagnostics.d.ts +2 -0
  300. package/dist/service/chat/diagnostics.js +35 -0
  301. package/dist/service/chat/envelope.d.ts +96 -0
  302. package/dist/service/chat/envelope.js +39 -0
  303. package/dist/service/chat/idempotency.d.ts +19 -0
  304. package/dist/service/chat/idempotency.js +37 -0
  305. package/dist/service/chat/providers/telegram.d.ts +36 -0
  306. package/dist/service/chat/providers/telegram.js +133 -0
  307. package/dist/service/chat/reads.d.ts +25 -0
  308. package/dist/service/chat/reads.js +75 -0
  309. package/dist/service/chat/resolve.d.ts +34 -0
  310. package/dist/service/chat/resolve.js +150 -0
  311. package/dist/service/chat/routes.d.ts +23 -0
  312. package/dist/service/chat/routes.js +75 -0
  313. package/dist/service/chat/schemas.d.ts +43 -0
  314. package/dist/service/chat/schemas.js +31 -0
  315. package/dist/service/config.d.ts +218 -0
  316. package/dist/service/config.js +265 -0
  317. package/dist/service/connection-stream.d.ts +10 -0
  318. package/dist/service/connection-stream.js +191 -0
  319. package/dist/service/connections.d.ts +60 -0
  320. package/dist/service/connections.js +271 -0
  321. package/dist/service/decisions.d.ts +35 -0
  322. package/dist/service/decisions.js +63 -0
  323. package/dist/service/descriptions.d.ts +8 -0
  324. package/dist/service/descriptions.js +20 -0
  325. package/dist/service/discovery-schemas.d.ts +92 -0
  326. package/dist/service/discovery-schemas.js +59 -0
  327. package/dist/service/discovery-search.d.ts +30 -0
  328. package/dist/service/discovery-search.js +95 -0
  329. package/dist/service/discovery.d.ts +37 -0
  330. package/dist/service/discovery.js +436 -0
  331. package/dist/service/docs.d.ts +9 -0
  332. package/dist/service/docs.js +197 -0
  333. package/dist/service/errors.d.ts +145 -0
  334. package/dist/service/errors.js +704 -0
  335. package/dist/service/federation-provider.d.ts +36 -0
  336. package/dist/service/federation-provider.js +110 -0
  337. package/dist/service/federation-server.d.ts +20 -0
  338. package/dist/service/federation-server.js +249 -0
  339. package/dist/service/federation-status.d.ts +40 -0
  340. package/dist/service/federation-status.js +151 -0
  341. package/dist/service/handlers.d.ts +18 -0
  342. package/dist/service/handlers.js +287 -0
  343. package/dist/service/mcp/confirmation.d.ts +68 -0
  344. package/dist/service/mcp/confirmation.js +178 -0
  345. package/dist/service/mcp/find-input.d.ts +12 -0
  346. package/dist/service/mcp/find-input.js +122 -0
  347. package/dist/service/mcp/input-schema.d.ts +6 -0
  348. package/dist/service/mcp/input-schema.js +126 -0
  349. package/dist/service/mcp/listing.d.ts +26 -0
  350. package/dist/service/mcp/listing.js +92 -0
  351. package/dist/service/mcp/metric-tools.d.ts +85 -0
  352. package/dist/service/mcp/metric-tools.js +258 -0
  353. package/dist/service/mcp/request-log.d.ts +5 -0
  354. package/dist/service/mcp/request-log.js +53 -0
  355. package/dist/service/mcp/runtime-policy.d.ts +27 -0
  356. package/dist/service/mcp/runtime-policy.js +62 -0
  357. package/dist/service/mcp/server.d.ts +52 -0
  358. package/dist/service/mcp/server.js +861 -0
  359. package/dist/service/mcp/tools.d.ts +99 -0
  360. package/dist/service/mcp/tools.js +938 -0
  361. package/dist/service/member-file-routes.d.ts +22 -0
  362. package/dist/service/member-file-routes.js +52 -0
  363. package/dist/service/member-files.d.ts +245 -0
  364. package/dist/service/member-files.js +258 -0
  365. package/dist/service/metric-query-platform.d.ts +77 -0
  366. package/dist/service/metric-query-platform.js +198 -0
  367. package/dist/service/metric-query-scopes.d.ts +43 -0
  368. package/dist/service/metric-query-scopes.js +147 -0
  369. package/dist/service/metric-query.d.ts +48 -0
  370. package/dist/service/metric-query.js +200 -0
  371. package/dist/service/name-suggestions.d.ts +3 -0
  372. package/dist/service/name-suggestions.js +38 -0
  373. package/dist/service/navigation-schemas.d.ts +80 -0
  374. package/dist/service/navigation-schemas.js +49 -0
  375. package/dist/service/navigation.d.ts +20 -0
  376. package/dist/service/navigation.js +165 -0
  377. package/dist/service/oauth/protocol.d.ts +70 -0
  378. package/dist/service/oauth/protocol.js +157 -0
  379. package/dist/service/oauth/refresh-replay.d.ts +2 -0
  380. package/dist/service/oauth/refresh-replay.js +20 -0
  381. package/dist/service/oauth/server.d.ts +28 -0
  382. package/dist/service/oauth/server.js +769 -0
  383. package/dist/service/operations.d.ts +170 -0
  384. package/dist/service/operations.js +392 -0
  385. package/dist/service/plan.d.ts +57 -0
  386. package/dist/service/plan.js +96 -0
  387. package/dist/service/rate-limit.d.ts +22 -0
  388. package/dist/service/rate-limit.js +52 -0
  389. package/dist/service/record-reads.d.ts +21 -0
  390. package/dist/service/record-reads.js +155 -0
  391. package/dist/service/replication.d.ts +5 -0
  392. package/dist/service/replication.js +39 -0
  393. package/dist/service/runtime-contract.d.ts +508 -0
  394. package/dist/service/runtime-contract.js +18 -0
  395. package/dist/service/runtime-identity.d.ts +71 -0
  396. package/dist/service/runtime-identity.js +122 -0
  397. package/dist/service/schemas.d.ts +961 -0
  398. package/dist/service/schemas.js +639 -0
  399. package/dist/service/service.d.ts +21 -0
  400. package/dist/service/service.js +526 -0
  401. package/dist/service/warehouse-platform.d.ts +17 -0
  402. package/dist/service/warehouse-platform.js +122 -0
  403. package/dist/service/warehouse-query.d.ts +24 -0
  404. package/dist/service/warehouse-query.js +280 -0
  405. package/dist/service/webhooks.d.ts +106 -0
  406. package/dist/service/webhooks.js +233 -0
  407. package/dist/service/workflow-admission-provider.d.ts +31 -0
  408. package/dist/service/workflow-admission-provider.js +205 -0
  409. package/dist/service/workflow-argument-serialization.d.ts +2 -0
  410. package/dist/service/workflow-argument-serialization.js +14 -0
  411. package/dist/service/workflow-callback.d.ts +22 -0
  412. package/dist/service/workflow-callback.js +75 -0
  413. package/dist/service/workflow-deployment.d.ts +8 -0
  414. package/dist/service/workflow-deployment.js +131 -0
  415. package/dist/service/workflow-diagnostics.d.ts +23 -0
  416. package/dist/service/workflow-diagnostics.js +263 -0
  417. package/dist/service/workflow-errors.d.ts +26 -0
  418. package/dist/service/workflow-errors.js +181 -0
  419. package/dist/service/workflow-logging.d.ts +2 -0
  420. package/dist/service/workflow-logging.js +50 -0
  421. package/dist/service/workflow-queue-fence.d.ts +6 -0
  422. package/dist/service/workflow-queue-fence.js +66 -0
  423. package/dist/service/workflows.d.ts +200 -0
  424. package/dist/service/workflows.js +1549 -0
  425. package/dist/sign-in.d.ts +58 -0
  426. package/dist/sign-in.js +57 -0
  427. package/dist/source.d.ts +30 -0
  428. package/dist/source.js +107 -0
  429. package/dist/start-recovery-contract.d.ts +49 -0
  430. package/dist/start-recovery-contract.js +26 -0
  431. package/dist/start-recovery.d.ts +27 -0
  432. package/dist/start-recovery.js +81 -0
  433. package/dist/storage/api.d.ts +4 -0
  434. package/dist/storage/api.js +40 -0
  435. package/dist/storage/attachments.d.ts +146 -0
  436. package/dist/storage/attachments.js +733 -0
  437. package/dist/storage/authorization.d.ts +38 -0
  438. package/dist/storage/authorization.js +83 -0
  439. package/dist/storage/file-access.d.ts +17 -0
  440. package/dist/storage/file-access.js +8 -0
  441. package/dist/storage/limits.d.ts +12 -0
  442. package/dist/storage/limits.js +17 -0
  443. package/dist/storage/maintenance-auth.d.ts +20 -0
  444. package/dist/storage/maintenance-auth.js +24 -0
  445. package/dist/storage/maintenance.d.ts +11 -0
  446. package/dist/storage/maintenance.js +67 -0
  447. package/dist/storage/neon.d.ts +4 -0
  448. package/dist/storage/neon.js +318 -0
  449. package/dist/storage/operator.d.ts +11 -0
  450. package/dist/storage/operator.js +30 -0
  451. package/dist/storage/provider.d.ts +93 -0
  452. package/dist/storage/provider.js +36 -0
  453. package/dist/storage/sessions.d.ts +184 -0
  454. package/dist/storage/sessions.js +688 -0
  455. package/dist/storage/tables.d.ts +54 -0
  456. package/dist/storage/tables.js +205 -0
  457. package/dist/storage/transfers.d.ts +16 -0
  458. package/dist/storage/transfers.js +153 -0
  459. package/dist/storage/writes.d.ts +7 -0
  460. package/dist/storage/writes.js +88 -0
  461. package/dist/telegram.d.ts +35 -0
  462. package/dist/telegram.js +173 -0
  463. package/dist/user-identity.d.ts +28 -0
  464. package/dist/user-identity.js +106 -0
  465. package/dist/user.d.ts +75 -0
  466. package/dist/user.js +111 -0
  467. package/dist/warehouse-backed.d.ts +6 -0
  468. package/dist/warehouse-backed.js +495 -0
  469. package/dist/webhook-token.d.ts +11 -0
  470. package/dist/webhook-token.js +18 -0
  471. package/dist/webhooks.d.ts +40 -0
  472. package/dist/webhooks.js +55 -0
  473. package/dist/wire.d.ts +10 -0
  474. package/dist/wire.js +35 -0
  475. package/dist/workflow-runtime.d.ts +116 -0
  476. package/dist/workflow-runtime.js +109 -0
  477. package/dist/workflow-topics.d.ts +28 -0
  478. package/dist/workflow-topics.js +28 -0
  479. package/dist/workflow.d.ts +284 -0
  480. package/dist/workflow.js +259 -0
  481. package/dist/workflows.d.ts +24 -0
  482. package/dist/workflows.js +18 -0
  483. package/package.json +127 -4
@@ -0,0 +1,218 @@
1
+ import { type TelegramPreviewSettings } from "../telegram.js";
2
+ import { Redacted, Schema } from "effect";
3
+ import { BlobStorageBinding } from "../storage/provider.js";
4
+ import { type DeploymentObservation } from "../deployment.js";
5
+ import type { DeliveryArchive } from "./chat/archive.js";
6
+ import type { Principal } from "../runtime.js";
7
+ import type { PageCatalogV1 } from "../navigation-catalog.js";
8
+ import { type ConnectionTransportFactory, type LocalConnectionContext } from "./connections.js";
9
+ import type { OntologyServiceRuntime } from "./runtime-contract.js";
10
+ import type { RuntimeIdentityConfig } from "./runtime-identity.js";
11
+ /** The environment of the workspace deployment's ontology service. */
12
+ export declare const ENVIRONMENT_VARIABLES: {
13
+ readonly databaseUrl: "SEGMENTSTREAM_ONTOLOGY_DATABASE_URL";
14
+ readonly segmentstreamUrl: "SEGMENTSTREAM_URL";
15
+ readonly applicationId: "SEGMENTSTREAM_APPLICATION_ID";
16
+ readonly workspaceId: "SEGMENTSTREAM_WORKSPACE_ID";
17
+ readonly organizationId: "SEGMENTSTREAM_ORGANIZATION_ID";
18
+ };
19
+ /**
20
+ * The workspace app credential (`ssw_…`), which Vercel injects into every service of a production
21
+ * deployment. The service forwards metric queries to SegmentStream with it; without it, metric
22
+ * queries are unavailable and everything else works.
23
+ */
24
+ export declare const APP_CREDENTIAL_VARIABLE = "SEGMENTSTREAM_APP_CREDENTIAL";
25
+ /** The production domain of the deployment's Vercel project, which Vercel sets. */
26
+ export declare const PRODUCTION_URL_VARIABLE = "VERCEL_PROJECT_PRODUCTION_URL";
27
+ /** The Vercel project's cron secret, which the platform sets on the ontology service. */
28
+ export declare const CRON_SECRET_VARIABLE = "CRON_SECRET";
29
+ /**
30
+ * The workspace's webhook secret, from which each unsigned webhook's URL token is derived. The
31
+ * platform sets it independently on each target when the ontology declares a webhook trigger.
32
+ */
33
+ export declare const WEBHOOK_SECRET_VARIABLE = "SEGMENTSTREAM_WEBHOOK_SECRET";
34
+ /**
35
+ * The workspace's Neon Auth, which signs the app's users in. Provisioning sets both on workspaces
36
+ * that have it; a service without them accepts SegmentStream app tokens and API keys only.
37
+ */
38
+ export declare const NEON_AUTH_ENVIRONMENT_VARIABLES: {
39
+ readonly baseUrl: "NEON_AUTH_BASE_URL";
40
+ readonly jwksUrl: "NEON_AUTH_JWKS_URL";
41
+ };
42
+ /**
43
+ * The deployment's own runtime callers, such as the app's agent: the issuer and the audience of the
44
+ * team's Vercel OIDC tokens, set together by the platform on deployments that have an agent. Without
45
+ * them a runtime token is an invalid token. Tokens must also name the project in Vercel's
46
+ * `VERCEL_PROJECT_ID`, as the agent runs in the same Vercel project as the ontology service.
47
+ */
48
+ export declare const RUNTIME_IDENTITY_ENVIRONMENT_VARIABLES: {
49
+ readonly issuer: "SEGMENTSTREAM_RUNTIME_OIDC_ISSUER";
50
+ readonly audience: "SEGMENTSTREAM_RUNTIME_OIDC_AUDIENCE";
51
+ readonly projectId: "VERCEL_PROJECT_ID";
52
+ };
53
+ /** Where the workspace's Neon Auth issues and publishes the keys of its users' tokens. */
54
+ export interface NeonAuthEnvironment {
55
+ /** The Auth URL, such as `https://ep-….neon.tech/ontology/auth`. Its origin is the issuer. */
56
+ readonly baseUrl: string;
57
+ /** The JWKS that verifies the tokens: `<base URL>/.well-known/jwks.json`. */
58
+ readonly jwksUrl: string;
59
+ }
60
+ /** What the service reads from its environment. */
61
+ export interface OntologyEnvironment {
62
+ readonly deployment?: DeploymentObservation;
63
+ /** Destination-channel settings; deployments share the validated agent configuration. */
64
+ readonly channels?: {
65
+ readonly telegram?: TelegramPreviewSettings & {
66
+ /** Explicit Mini App exchange opt-in; omitted means no exchange route. */
67
+ readonly miniApp?: {
68
+ readonly testPublicKeyHex?: string;
69
+ };
70
+ };
71
+ };
72
+ /** Verified own origins; additional aliases belong to the destination channel settings. */
73
+ readonly appOrigins?: readonly string[];
74
+ readonly browserRevisionClientId?: string;
75
+ readonly browserRevisionIssuer?: string;
76
+ readonly browserAuth?: unknown;
77
+ readonly browserEnvironment?: "local";
78
+ readonly oidc?: {
79
+ readonly issuer: string;
80
+ readonly clientId: string;
81
+ };
82
+ /** The pooled connection string of the `ontology_app` role. */
83
+ readonly databaseUrl: Redacted.Redacted<string>;
84
+ readonly blobStorage?: Redacted.Redacted<BlobStorageBinding>;
85
+ readonly storageMaintenanceKey?: Redacted.Redacted<string>;
86
+ /** The control plane: it issues app tokens and serves their JWKS. */
87
+ readonly segmentstreamUrl: string;
88
+ /** App tokens must be issued for this application: `aud: app:<application id>`. */
89
+ readonly applicationId: string;
90
+ readonly workspaceId: string;
91
+ readonly organizationId: string;
92
+ /**
93
+ * The workspace app credential. With it, `/api/ontology/query_metrics` forwards to SegmentStream at
94
+ * `segmentstreamUrl` for `workspaceId`. App previews receive an independently scoped credential.
95
+ */
96
+ readonly appCredential?: Redacted.Redacted<string>;
97
+ /** Production workload target; preview platform workflow tokens bind to `deployment` instead. */
98
+ readonly workloadTarget?: {
99
+ readonly deploymentId: string;
100
+ };
101
+ /**
102
+ * The Vercel project's cron secret, which Vercel sends as a bearer token on each cron
103
+ * invocation. Without it, the workflow trigger routes refuse every request.
104
+ */
105
+ readonly cronSecret?: Redacted.Redacted<string>;
106
+ /**
107
+ * The deployment's webhook secret, which derives each unsigned webhook's token:
108
+ * without it, every webhook path answers 404.
109
+ */
110
+ readonly webhookSecret?: Redacted.Redacted<string>;
111
+ /** Present once the workspace has Neon Auth: members then sign in with its tokens. */
112
+ readonly neonAuth?: NeonAuthEnvironment;
113
+ /**
114
+ * Present on deployments with a runtime caller: the deployment's own Vercel OIDC tokens then
115
+ * authenticate, acting as the member `X-SegmentStream-Act-As` names.
116
+ */
117
+ readonly runtimeIdentity?: RuntimeIdentityConfig;
118
+ /**
119
+ * The local grant `segmentstream exec --connection …` passed, in development. Without it, actions
120
+ * call connections through SegmentStream with the deployment's Vercel OIDC token.
121
+ */
122
+ readonly localConnections?: LocalConnectionContext;
123
+ /**
124
+ * The deployment's production origin, `https://` and `VERCEL_PROJECT_PRODUCTION_URL`, where
125
+ * `agentTask` hands the app's agent its tasks and where sign-in links sent from actions open.
126
+ * Production only: without it, and without `runtimeIdentity`, `agentTask` answers
127
+ * `agent_unavailable`, and `User.sendSignInLink` marks its emails failed.
128
+ */
129
+ readonly agentOrigin?: string;
130
+ }
131
+ /** A committed action, as an after-commit hook receives it. */
132
+ export interface ActionCommitted {
133
+ readonly entity: string;
134
+ readonly action: string;
135
+ readonly principal: Principal;
136
+ /** The decoded input, using the authored TypeScript schema. */
137
+ readonly input: unknown;
138
+ readonly result: unknown;
139
+ readonly edits: ReadonlyArray<unknown>;
140
+ readonly requestId: string;
141
+ /** Provided only when defineOntology declares hooks.role. Runs once as that service role. */
142
+ readonly run?: (input: {
143
+ readonly entity: string;
144
+ readonly action: string;
145
+ readonly input: unknown;
146
+ readonly as: "service";
147
+ }) => Promise<unknown>;
148
+ }
149
+ /**
150
+ * Runs after an action commits, outside its transaction: start a Vercel Workflow that notifies the
151
+ * team or calls a webhook. The response waits for the hook, so keep it to starting the work. A failed
152
+ * hook is logged; the action stays committed and the caller still gets its result.
153
+ */
154
+ export type AfterCommitHook = (event: ActionCommitted) => void | Promise<void>;
155
+ export interface OntologyServiceConfig extends OntologyEnvironment {
156
+ /** UI page metadata for standalone services. A bundled deployment catalog cannot be overridden. */
157
+ readonly navigation?: PageCatalogV1;
158
+ /** Replace the bounded warehouse query transport in isolated integrations. */
159
+ readonly warehouseQueries?: import("./warehouse-platform.js").WarehouseReadTransport;
160
+ /** Explicit adapters for other verified channel apps. */
161
+ readonly channelAppProviders?: readonly import("./channel/provider.js").ChannelAppProvider[];
162
+ /** Override the archive transport for isolated integrations; defaults to the authenticated platform archive. */
163
+ readonly chatArchive?: DeliveryArchive;
164
+ /**
165
+ * Reuse the same access token during refresh recovery for this many milliseconds (default 45s).
166
+ * Afterward, recover the unused refresh successor with fresh access. Zero disables recovery.
167
+ */
168
+ readonly oauthRefreshReuseGraceMs?: number;
169
+ /** The runtime the routes run against: the SQL runtime on the workspace database by default. */
170
+ readonly runtime?: OntologyServiceRuntime;
171
+ /** Hooks by `<entity>.<action>`, for example `lead.submitLead`. */
172
+ readonly afterCommit?: Readonly<Record<string, AfterCommitHook>>;
173
+ /**
174
+ * How actions reach their connections. By default: the local grant when `localConnections` is
175
+ * set, else SegmentStream's proxy with the request's Vercel OIDC token.
176
+ */
177
+ readonly connections?: ConnectionTransportFactory;
178
+ /**
179
+ * Serve the MCP server at `/mcp`. On by default: its tools reach exactly what the HTTP routes
180
+ * reach, with the same credentials.
181
+ */
182
+ readonly mcp?: boolean;
183
+ /** Idle MCP GET streams close after this many milliseconds (default 45s). Keep below the host's function limit. */
184
+ readonly mcpStreamMaxDurationMs?: number;
185
+ /**
186
+ * How the workflow routes start runs and read their records: the Vercel Workflow SDK's `start`
187
+ * and world by default. Tests replace it.
188
+ */
189
+ readonly workflowEngine?: import("./workflows.js").WorkflowEngine;
190
+ /**
191
+ * How webhook signatures are checked: SegmentStream's backend, which holds the workspace secrets,
192
+ * called with the request's Vercel OIDC token, by default. Tests replace it.
193
+ */
194
+ readonly webhookVerifier?: import("./webhooks.js").WebhookVerifier;
195
+ /** How registration tokens are compared against backend-held workspace secrets. */
196
+ readonly webhookTokenVerifier?: import("./webhooks.js").WebhookTokenVerifier;
197
+ /** How `agentTask` calls the app's agent at `agentOrigin`: `fetch` by default. Tests replace it. */
198
+ readonly agentTaskTransport?: import("./agent/task-start.js").AgentTransport;
199
+ /**
200
+ * How `discover` asks the decision model of `defineOntology({ discovery })`: AI Gateway, with
201
+ * `AI_GATEWAY_API_KEY` or the request's Vercel OIDC token, by default. Tests replace it.
202
+ */
203
+ readonly decisions?: import("./decisions.js").Decide;
204
+ }
205
+ declare const OntologyServiceConfigError_base: Schema.Class<OntologyServiceConfigError, Schema.TaggedStruct<"OntologyServiceConfigError", {
206
+ readonly message: Schema.String;
207
+ }>, import("effect/Cause").YieldableError>;
208
+ /** The service cannot start: its configuration is incomplete or invalid. */
209
+ export declare class OntologyServiceConfigError extends OntologyServiceConfigError_base {
210
+ }
211
+ /**
212
+ * Reads the service's configuration from the environment. It fails closed: a missing or invalid
213
+ * variable throws {@link OntologyServiceConfigError} naming every missing variable, and never the
214
+ * value of the database URL. The Neon Auth and runtime identity variables are optional, but only as
215
+ * pairs. The app credential is optional and kept redacted.
216
+ */
217
+ export declare function configFromEnv(environment?: Readonly<Record<string, string | undefined>>): OntologyEnvironment;
218
+ export {};
@@ -0,0 +1,265 @@
1
+ import { telegramPreviewEnvironment } from "../telegram.js";
2
+ import { Redacted, Schema } from "effect";
3
+ import { BlobStorageBinding } from "../storage/provider.js";
4
+ import { deploymentFromEnv } from "../deployment.js";
5
+ import { LocalConnectionContextError, readLocalConnectionContext, RUNTIME_CONTEXT_FD, } from "./connections.js";
6
+ /** The environment of the workspace deployment's ontology service. */
7
+ export const ENVIRONMENT_VARIABLES = {
8
+ databaseUrl: "SEGMENTSTREAM_ONTOLOGY_DATABASE_URL",
9
+ segmentstreamUrl: "SEGMENTSTREAM_URL",
10
+ applicationId: "SEGMENTSTREAM_APPLICATION_ID",
11
+ workspaceId: "SEGMENTSTREAM_WORKSPACE_ID",
12
+ organizationId: "SEGMENTSTREAM_ORGANIZATION_ID",
13
+ };
14
+ /**
15
+ * The workspace app credential (`ssw_…`), which Vercel injects into every service of a production
16
+ * deployment. The service forwards metric queries to SegmentStream with it; without it, metric
17
+ * queries are unavailable and everything else works.
18
+ */
19
+ export const APP_CREDENTIAL_VARIABLE = "SEGMENTSTREAM_APP_CREDENTIAL";
20
+ /** The production domain of the deployment's Vercel project, which Vercel sets. */
21
+ export const PRODUCTION_URL_VARIABLE = "VERCEL_PROJECT_PRODUCTION_URL";
22
+ /** The Vercel project's cron secret, which the platform sets on the ontology service. */
23
+ export const CRON_SECRET_VARIABLE = "CRON_SECRET";
24
+ /**
25
+ * The workspace's webhook secret, from which each unsigned webhook's URL token is derived. The
26
+ * platform sets it independently on each target when the ontology declares a webhook trigger.
27
+ */
28
+ export const WEBHOOK_SECRET_VARIABLE = "SEGMENTSTREAM_WEBHOOK_SECRET";
29
+ /**
30
+ * The workspace's Neon Auth, which signs the app's users in. Provisioning sets both on workspaces
31
+ * that have it; a service without them accepts SegmentStream app tokens and API keys only.
32
+ */
33
+ export const NEON_AUTH_ENVIRONMENT_VARIABLES = {
34
+ baseUrl: "NEON_AUTH_BASE_URL",
35
+ jwksUrl: "NEON_AUTH_JWKS_URL",
36
+ };
37
+ /**
38
+ * The deployment's own runtime callers, such as the app's agent: the issuer and the audience of the
39
+ * team's Vercel OIDC tokens, set together by the platform on deployments that have an agent. Without
40
+ * them a runtime token is an invalid token. Tokens must also name the project in Vercel's
41
+ * `VERCEL_PROJECT_ID`, as the agent runs in the same Vercel project as the ontology service.
42
+ */
43
+ export const RUNTIME_IDENTITY_ENVIRONMENT_VARIABLES = {
44
+ issuer: "SEGMENTSTREAM_RUNTIME_OIDC_ISSUER",
45
+ audience: "SEGMENTSTREAM_RUNTIME_OIDC_AUDIENCE",
46
+ projectId: "VERCEL_PROJECT_ID",
47
+ };
48
+ /** The service cannot start: its configuration is incomplete or invalid. */
49
+ export class OntologyServiceConfigError extends Schema.TaggedError()("OntologyServiceConfigError", { message: Schema.String }) {
50
+ }
51
+ function httpUrl(name, value) {
52
+ if (!URL.canParse(value)) {
53
+ throw new OntologyServiceConfigError({ message: `${name} is not a valid URL.` });
54
+ }
55
+ const url = new URL(value);
56
+ if (url.protocol !== "https:" && url.protocol !== "http:") {
57
+ throw new OntologyServiceConfigError({ message: `${name} must be an http or https URL.` });
58
+ }
59
+ return url;
60
+ }
61
+ function normalizeUrl(name, value) {
62
+ return httpUrl(name, value).origin;
63
+ }
64
+ /**
65
+ * Both Neon Auth variables or neither. One without the other is a broken deployment, so the service
66
+ * refuses to start rather than silently ignore the workspace's sign-in.
67
+ */
68
+ function neonAuthFromEnv(read) {
69
+ const names = Object.values(NEON_AUTH_ENVIRONMENT_VARIABLES);
70
+ const missing = names.filter((name) => read(name) === "");
71
+ if (missing.length === names.length) {
72
+ return undefined;
73
+ }
74
+ if (missing.length > 0) {
75
+ throw new OntologyServiceConfigError({
76
+ message: `The ontology service cannot start: ${names.join(" and ")} are set together; ` +
77
+ `${missing.join(", ")} is not set.`,
78
+ });
79
+ }
80
+ return {
81
+ baseUrl: httpUrl(NEON_AUTH_ENVIRONMENT_VARIABLES.baseUrl, read(NEON_AUTH_ENVIRONMENT_VARIABLES.baseUrl)).href,
82
+ jwksUrl: httpUrl(NEON_AUTH_ENVIRONMENT_VARIABLES.jwksUrl, read(NEON_AUTH_ENVIRONMENT_VARIABLES.jwksUrl)).href,
83
+ };
84
+ }
85
+ /**
86
+ * The runtime issuer and audience, both or neither, and the project the tokens must name. A partial
87
+ * configuration is a broken deployment, so the service refuses to start rather than run without the
88
+ * agent's identity, or trust tokens of every project of the team.
89
+ */
90
+ function runtimeIdentityFromEnv(read) {
91
+ const { issuer, audience, projectId } = RUNTIME_IDENTITY_ENVIRONMENT_VARIABLES;
92
+ const pair = [issuer, audience];
93
+ const missingPair = pair.filter((name) => read(name) === "");
94
+ if (missingPair.length === pair.length) {
95
+ return undefined;
96
+ }
97
+ if (missingPair.length > 0) {
98
+ throw new OntologyServiceConfigError({
99
+ message: `The ontology service cannot start: ${pair.join(" and ")} are set together; ` +
100
+ `${missingPair.join(", ")} is not set.`,
101
+ });
102
+ }
103
+ if (read(projectId) === "") {
104
+ throw new OntologyServiceConfigError({
105
+ message: `The ontology service cannot start: ${projectId} is not set, which runtime tokens must name.`,
106
+ });
107
+ }
108
+ return {
109
+ issuer: httpUrl(issuer, read(issuer)).href.replace(/\/+$/, ""),
110
+ audience: read(audience),
111
+ projectId: read(projectId),
112
+ };
113
+ }
114
+ function checkDatabaseUrl(name, value) {
115
+ // The value is a credential: errors name the variable, never the value.
116
+ if (!URL.canParse(value)) {
117
+ throw new OntologyServiceConfigError({ message: `${name} is not a valid connection string.` });
118
+ }
119
+ const { protocol } = new URL(value);
120
+ if (protocol !== "postgres:" && protocol !== "postgresql:") {
121
+ throw new OntologyServiceConfigError({
122
+ message: `${name} must be a postgres:// or postgresql:// connection string.`,
123
+ });
124
+ }
125
+ return Redacted.make(value);
126
+ }
127
+ /**
128
+ * Reads the service's configuration from the environment. It fails closed: a missing or invalid
129
+ * variable throws {@link OntologyServiceConfigError} naming every missing variable, and never the
130
+ * value of the database URL. The Neon Auth and runtime identity variables are optional, but only as
131
+ * pairs. The app credential is optional and kept redacted.
132
+ */
133
+ export function configFromEnv(environment = process.env) {
134
+ const read = (name) => environment[name]?.trim() ?? "";
135
+ const deployment = deploymentFromEnv(environment);
136
+ const missing = Object.values(ENVIRONMENT_VARIABLES).filter((name) => read(name) === "");
137
+ if (missing.length > 0) {
138
+ const list = missing.join(", ");
139
+ const verb = missing.length === 1 ? "is" : "are";
140
+ throw new OntologyServiceConfigError({
141
+ message: `The ontology service cannot start: ${list} ${verb} not set.`,
142
+ });
143
+ }
144
+ const deploymentId = read("SEGMENTSTREAM_ONTOLOGY_DEPLOYMENT_ID");
145
+ if (deploymentId !== "" &&
146
+ !/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(deploymentId)) {
147
+ throw new OntologyServiceConfigError({
148
+ message: "SEGMENTSTREAM_ONTOLOGY_DEPLOYMENT_ID must be a UUID.",
149
+ });
150
+ }
151
+ const neonAuth = neonAuthFromEnv(read);
152
+ const issuer = deployment.target === "preview" && !read("SEGMENTSTREAM_BROWSER_AUTH")
153
+ ? ""
154
+ : read("SEGMENTSTREAM_OIDC_ISSUER");
155
+ const clientId = deployment.target === "preview" && !read("SEGMENTSTREAM_BROWSER_AUTH")
156
+ ? ""
157
+ : read("SEGMENTSTREAM_OIDC_CLIENT_ID");
158
+ const oidcUrl = issuer ? URL.parse(issuer) : null;
159
+ if ((issuer || clientId) &&
160
+ (!issuer ||
161
+ !clientId ||
162
+ !oidcUrl ||
163
+ oidcUrl.protocol !== "https:" ||
164
+ oidcUrl.username ||
165
+ oidcUrl.password ||
166
+ oidcUrl.search ||
167
+ oidcUrl.hash ||
168
+ issuer.endsWith("/"))) {
169
+ throw new OntologyServiceConfigError({
170
+ message: "OIDC requires both a public client ID and an HTTPS issuer.",
171
+ });
172
+ }
173
+ const runtimeIdentity = deployment.target === "preview" ? undefined : runtimeIdentityFromEnv(read);
174
+ const localConnections = deployment.target === "preview" ? undefined : localConnectionsFromEnv(environment);
175
+ let blobStorage;
176
+ if (read("SEGMENTSTREAM_ONTOLOGY_STORAGE")) {
177
+ try {
178
+ blobStorage = Redacted.make(Schema.decodeUnknownSync(BlobStorageBinding)(JSON.parse(read("SEGMENTSTREAM_ONTOLOGY_STORAGE"))));
179
+ }
180
+ catch {
181
+ throw new OntologyServiceConfigError({
182
+ message: "SEGMENTSTREAM_ONTOLOGY_STORAGE is invalid.",
183
+ });
184
+ }
185
+ }
186
+ const previews = telegramPreviewEnvironment(environment);
187
+ return {
188
+ ...previews,
189
+ deployment,
190
+ databaseUrl: checkDatabaseUrl(ENVIRONMENT_VARIABLES.databaseUrl, read(ENVIRONMENT_VARIABLES.databaseUrl)),
191
+ segmentstreamUrl: normalizeUrl(ENVIRONMENT_VARIABLES.segmentstreamUrl, read(ENVIRONMENT_VARIABLES.segmentstreamUrl)),
192
+ applicationId: read(ENVIRONMENT_VARIABLES.applicationId),
193
+ workspaceId: read(ENVIRONMENT_VARIABLES.workspaceId),
194
+ organizationId: read(ENVIRONMENT_VARIABLES.organizationId),
195
+ ...(blobStorage === undefined ? {} : { blobStorage }),
196
+ ...(read("SEGMENTSTREAM_ONTOLOGY_STORAGE_MAINTENANCE_KEY")
197
+ ? {
198
+ storageMaintenanceKey: Redacted.make(read("SEGMENTSTREAM_ONTOLOGY_STORAGE_MAINTENANCE_KEY")),
199
+ }
200
+ : {}),
201
+ ...(read(CRON_SECRET_VARIABLE)
202
+ ? { cronSecret: Redacted.make(read(CRON_SECRET_VARIABLE)) }
203
+ : {}),
204
+ ...(read(WEBHOOK_SECRET_VARIABLE)
205
+ ? { webhookSecret: Redacted.make(read(WEBHOOK_SECRET_VARIABLE)) }
206
+ : {}),
207
+ ...(read(APP_CREDENTIAL_VARIABLE)
208
+ ? { appCredential: Redacted.make(read(APP_CREDENTIAL_VARIABLE)) }
209
+ : {}),
210
+ ...(deployment.target === "production" &&
211
+ environment.VERCEL_ENV === "production" &&
212
+ read("SEGMENTSTREAM_ONTOLOGY_DEPLOYMENT_ID") !== ""
213
+ ? { workloadTarget: { deploymentId: read("SEGMENTSTREAM_ONTOLOGY_DEPLOYMENT_ID") } }
214
+ : {}),
215
+ ...(deployment.target === "production" &&
216
+ environment.VERCEL_ENV === "production" &&
217
+ read(PRODUCTION_URL_VARIABLE) !== ""
218
+ ? {
219
+ agentOrigin: normalizeUrl(PRODUCTION_URL_VARIABLE, `https://${read(PRODUCTION_URL_VARIABLE)}`),
220
+ }
221
+ : {}),
222
+ ...(neonAuth === undefined ? {} : { neonAuth }),
223
+ ...(read("SEGMENTSTREAM_BROWSER_AUTH_REVISION_CLIENT_ID")
224
+ ? { browserRevisionClientId: read("SEGMENTSTREAM_BROWSER_AUTH_REVISION_CLIENT_ID") }
225
+ : {}),
226
+ ...(read("SEGMENTSTREAM_BROWSER_AUTH_REVISION_ISSUER")
227
+ ? { browserRevisionIssuer: read("SEGMENTSTREAM_BROWSER_AUTH_REVISION_ISSUER") }
228
+ : {}),
229
+ ...(read("SEGMENTSTREAM_BROWSER_AUTH_ENVIRONMENT") === "local"
230
+ ? { browserEnvironment: "local" }
231
+ : {}),
232
+ ...(read("SEGMENTSTREAM_BROWSER_AUTH")
233
+ ? { browserAuth: JSON.parse(read("SEGMENTSTREAM_BROWSER_AUTH")) }
234
+ : {}),
235
+ ...(issuer && clientId ? { oidc: { issuer, clientId } } : {}),
236
+ ...(runtimeIdentity === undefined ? {} : { runtimeIdentity }),
237
+ ...(localConnections === undefined ? {} : { localConnections }),
238
+ };
239
+ }
240
+ /**
241
+ * The local grant, read once from the pipe the CLI opened. A deployment never has one: a local
242
+ * grant on Vercel would mix two ways of calling connections, so the service refuses to start.
243
+ */
244
+ function localConnectionsFromEnv(environment) {
245
+ if (environment[RUNTIME_CONTEXT_FD] === undefined) {
246
+ return undefined;
247
+ }
248
+ if ((environment.VERCEL_ENV ?? "") !== "") {
249
+ throw new OntologyServiceConfigError({
250
+ message: `The ontology service cannot start: ${RUNTIME_CONTEXT_FD} is set on a Vercel deployment, ` +
251
+ "which calls connections with its OIDC token.",
252
+ });
253
+ }
254
+ try {
255
+ return readLocalConnectionContext(environment);
256
+ }
257
+ catch (error) {
258
+ if (error instanceof LocalConnectionContextError) {
259
+ throw new OntologyServiceConfigError({
260
+ message: `The ontology service cannot start: ${error.message}`,
261
+ });
262
+ }
263
+ throw error;
264
+ }
265
+ }
@@ -0,0 +1,10 @@
1
+ import { Effect, type Scope } from "effect";
2
+ import { ConnectionError, type ConnectionReply, type ConnectionStreamReply } from "../connection.js";
3
+ export declare const CONNECTION_STREAM_MEDIA_TYPE = "application/vnd.segmentstream.proxy-stream.v1+ndjson";
4
+ /** Negotiates once; never retries a provider operation to change response formats. */
5
+ export declare function openConnectionStream(input: {
6
+ readonly connection: string;
7
+ readonly request: (signal: AbortSignal) => Promise<Response>;
8
+ readonly legacy: (value: unknown) => ConnectionReply;
9
+ readonly refusal: (status: number, value: unknown, cause?: unknown) => ConnectionError;
10
+ }): Effect.Effect<ConnectionStreamReply, ConnectionError, Scope.Scope>;