@segmentstream/ontology 0.0.0-stage → 0.92.0

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,25 @@
1
+ import type { ChatAttributionSettings } from "../../chat.js";
2
+ import { Effect } from "effect";
3
+ import { ActionRejected, PermissionDenied } from "../../errors.js";
4
+ import { CurrentPrincipal } from "../authentication.js";
5
+ import type { OntologyBackend } from "../runtime-contract.js";
6
+ import type { ConversationTransport } from "../agent/conversations.js";
7
+ import type { ChatList, ChatHistory } from "./schemas.js";
8
+ export declare function chatReads(backend: OntologyBackend["Service"], conversations?: ConversationTransport, attribution?: ChatAttributionSettings): {
9
+ list: (input: typeof ChatList.Type) => Effect.Effect<{
10
+ items: {
11
+ id: string;
12
+ title: string;
13
+ provider: string;
14
+ external_id: string;
15
+ attribution: string | null;
16
+ }[];
17
+ next_cursor: string | null;
18
+ }, ActionRejected | PermissionDenied | import("../../errors.js").NotFound, CurrentPrincipal>;
19
+ history: (input: typeof ChatHistory.Type, identityToken: string | undefined) => Effect.Effect<{
20
+ readonly events: readonly {
21
+ readonly [x: string]: unknown;
22
+ }[];
23
+ readonly nextCursor: string | null;
24
+ }, ActionRejected | PermissionDenied | import("../agent/conversations.js").ConversationArchiveUnavailable, CurrentPrincipal>;
25
+ };
@@ -0,0 +1,75 @@
1
+ import { Effect } from "effect";
2
+ import { ActionRejected, PermissionDenied } from "../../errors.js";
3
+ import { isAllowed } from "../../permissions.js";
4
+ import { CurrentPrincipal } from "../authentication.js";
5
+ import { currentCaller } from "../caller-context.js";
6
+ import { chatAttribution } from "./attribution.js";
7
+ import { chatResolver, groupConversation, isChatMember } from "./resolve.js";
8
+ export function chatReads(backend, conversations, attribution) {
9
+ return {
10
+ list: (input) => Effect.gen(function* () {
11
+ const principal = yield* CurrentPrincipal;
12
+ const caller = yield* currentCaller;
13
+ const query = input.query?.toLowerCase();
14
+ const items = (yield* chatResolver(backend, principal).list(input.chat))
15
+ .filter((item) => query === undefined || item.title.toLowerCase().includes(query))
16
+ .sort((a, b) => a.id.localeCompare(b.id));
17
+ const user = yield* backend.get({ entity: "user", id: principal.id });
18
+ const start = input.after === undefined ? 0 : items.findIndex((item) => item.id === input.after) + 1;
19
+ if (input.after !== undefined && start === 0) {
20
+ return yield* new ActionRejected({
21
+ message: "The chat cursor is invalid. Restart discovery.",
22
+ });
23
+ }
24
+ const limit = input.limit ?? 50;
25
+ const selected = items.slice(start, start + limit).map((item) => ({
26
+ id: item.id,
27
+ title: item.title,
28
+ provider: item.provider,
29
+ external_id: item.external_id,
30
+ attribution: chatAttribution(caller, String(user.name), attribution),
31
+ }));
32
+ return {
33
+ items: selected,
34
+ next_cursor: start + limit < items.length ? selected.at(-1).id : null,
35
+ };
36
+ }),
37
+ history: (input, identityToken) => Effect.gen(function* () {
38
+ const principal = yield* CurrentPrincipal;
39
+ if (principal.kind !== "member") {
40
+ return yield* new PermissionDenied({ message: "Only members may read conversations." });
41
+ }
42
+ const target = yield* chatResolver(backend, principal, "telegram", {
43
+ memberGroups: true,
44
+ }).resolve(input.chat);
45
+ // A group's members read its history, as they read its attachments; agent_chat:read reads
46
+ // every group. A private chat is read only by its participant.
47
+ const member = target.kind === "group" &&
48
+ !isAllowed("agent_chat:read", principal) &&
49
+ (yield* isChatMember(backend, principal, target.id));
50
+ if (target.kind === "group"
51
+ ? !isAllowed("agent_chat:read", principal) && !member
52
+ : !target.participantIds.includes(principal.id)) {
53
+ return yield* new PermissionDenied({
54
+ message: "This conversation is not readable by the caller.",
55
+ });
56
+ }
57
+ if (!conversations) {
58
+ return yield* new ActionRejected({
59
+ message: "The conversation archive is not configured.",
60
+ });
61
+ }
62
+ return yield* conversations({
63
+ principal,
64
+ identityToken,
65
+ search: {
66
+ provider: target.provider,
67
+ chatId: target.external_id,
68
+ ...(input.before === undefined ? {} : { before: input.before }),
69
+ ...(input.limit === undefined ? {} : { limit: input.limit }),
70
+ },
71
+ memberGroups: member ? [groupConversation(target)] : [],
72
+ });
73
+ }),
74
+ };
75
+ }
@@ -0,0 +1,34 @@
1
+ import { Effect } from "effect";
2
+ import { ActionRejected, PermissionDenied } from "../../errors.js";
3
+ import type { Principal } from "../../runtime.js";
4
+ import type { OntologyBackend } from "../runtime-contract.js";
5
+ import type { ConversationTransport } from "../agent/conversations.js";
6
+ export interface Destination {
7
+ readonly id: string;
8
+ readonly title: string;
9
+ readonly provider: string;
10
+ readonly external_id: string;
11
+ readonly kind: "group" | "private";
12
+ readonly participantIds: ReadonlyArray<string>;
13
+ }
14
+ /** A group chat's conversation in the archive, as attachments name it: `provider:externalId`. */
15
+ export declare const groupConversation: (chat: {
16
+ readonly provider?: unknown;
17
+ readonly external_id?: unknown;
18
+ }) => string;
19
+ /** The conversations of the group chats a member is in; none for any other caller. */
20
+ export declare function memberGroupChats(backend: OntologyBackend["Service"], principal: Principal): Effect.Effect<readonly string[], ActionRejected, never>;
21
+ /** Whether a member is in one group chat, which lets them read its history without agent_chat:read. */
22
+ export declare function isChatMember(backend: OntologyBackend["Service"], principal: Principal, chatId: string): Effect.Effect<boolean, ActionRejected, never>;
23
+ /**
24
+ * A conversation transport that also reads the group chats the member is in, the way a member
25
+ * reads those chats' attachments: being in a chat is enough, `agent_chat:read` reads them all.
26
+ */
27
+ export declare function withChatMembership(transport: ConversationTransport, backend: OntologyBackend["Service"]): ConversationTransport;
28
+ export declare function chatResolver(backend: OntologyBackend["Service"], principal: Principal, provider?: string, options?: {
29
+ /** Also resolve the group chats a member is in without chat read or post permission. */
30
+ readonly memberGroups?: boolean;
31
+ }): {
32
+ list: (chat?: string) => Effect.Effect<Destination[], ActionRejected | PermissionDenied, never>;
33
+ resolve: (chat: string) => Effect.Effect<Destination, ActionRejected | PermissionDenied, never>;
34
+ };
@@ -0,0 +1,150 @@
1
+ import { Effect } from "effect";
2
+ import { ActionRejected, PermissionDenied } from "../../errors.js";
3
+ import { isAllowed } from "../../permissions.js";
4
+ import { ConversationArchiveUnavailable } from "../agent/conversations.js";
5
+ const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
6
+ const denied = () => new PermissionDenied({ message: "Chat discovery requires chat read or post permission." });
7
+ /** Exhaust exact matches, with a fail-closed scan budget so a later page cannot hide ambiguity. */
8
+ function records(backend, entity, query) {
9
+ return Effect.gen(function* () {
10
+ const rows = [];
11
+ let after;
12
+ for (let page = 0; page < 10; page++) {
13
+ const found = yield* backend
14
+ .find({
15
+ entity,
16
+ query: { ...query, limit: 200, ...(after === undefined ? {} : { after }) },
17
+ })
18
+ .pipe(Effect.mapError((cause) => new ActionRejected({ message: "The chat directory could not be read.", cause })));
19
+ rows.push(...found.items);
20
+ if (found.nextCursor === null) {
21
+ return rows;
22
+ }
23
+ after = found.nextCursor;
24
+ }
25
+ return yield* new ActionRejected({
26
+ message: "Too many matching destinations. Use an exact chat ID.",
27
+ });
28
+ });
29
+ }
30
+ /** The group chats a member is in: the channel saw them write there, or join. */
31
+ const memberOf = (principal) => ({
32
+ members: { some: { id: { eq: principal.id } } },
33
+ });
34
+ /** A group chat's conversation in the archive, as attachments name it: `provider:externalId`. */
35
+ export const groupConversation = (chat) => `${String(chat.provider)}:${String(chat.external_id)}`;
36
+ /** The conversations of the group chats a member is in; none for any other caller. */
37
+ export function memberGroupChats(backend, principal) {
38
+ return Effect.gen(function* () {
39
+ if (principal.kind !== "member") {
40
+ return [];
41
+ }
42
+ return (yield* records(backend, "agent_chat", { where: memberOf(principal) })).map(groupConversation);
43
+ });
44
+ }
45
+ /** Whether a member is in one group chat, which lets them read its history without agent_chat:read. */
46
+ export function isChatMember(backend, principal, chatId) {
47
+ return Effect.gen(function* () {
48
+ if (principal.kind !== "member") {
49
+ return false;
50
+ }
51
+ return ((yield* records(backend, "agent_chat", {
52
+ where: { and: [{ id: { eq: chatId } }, memberOf(principal)] },
53
+ })).length > 0);
54
+ });
55
+ }
56
+ /**
57
+ * A conversation transport that also reads the group chats the member is in, the way a member
58
+ * reads those chats' attachments: being in a chat is enough, `agent_chat:read` reads them all.
59
+ */
60
+ export function withChatMembership(transport, backend) {
61
+ return (input) => input.memberGroups !== undefined || input.principal.kind !== "member"
62
+ ? transport(input)
63
+ : memberGroupChats(backend, input.principal).pipe(Effect.mapError((cause) => new ConversationArchiveUnavailable({
64
+ diagnostic: "chat_membership_unavailable",
65
+ cause,
66
+ })), Effect.flatMap((memberGroups) => transport({ ...input, memberGroups })));
67
+ }
68
+ export function chatResolver(backend, principal, provider = "telegram", options = {}) {
69
+ const canGroup = isAllowed("agent_chat:read", principal) || isAllowed("agent_chat:post_message", principal);
70
+ const memberGroups = options.memberGroups === true && principal.kind === "member";
71
+ const canDirectory = isAllowed("user:read", principal) || isAllowed("agent_chat:post_message", principal);
72
+ const destinations = (chat) => Effect.gen(function* () {
73
+ if (!canGroup && principal.kind !== "member") {
74
+ return yield* denied();
75
+ }
76
+ const privateId = chat?.startsWith(`${provider}:private:`)
77
+ ? chat.slice(`${provider}:private:`.length)
78
+ : undefined;
79
+ const groupId = chat !== undefined && UUID.test(chat);
80
+ const filters = [
81
+ ...(chat === undefined ? [] : [groupId ? { id: { eq: chat } } : { title: { eq: chat } }]),
82
+ ...(canGroup ? [] : [memberOf(principal)]),
83
+ ];
84
+ const groups = (!canGroup && !memberGroups) || privateId !== undefined
85
+ ? []
86
+ : yield* records(backend, "agent_chat", filters.length === 0
87
+ ? {}
88
+ : { where: filters.length === 1 ? filters[0] : { and: filters } });
89
+ const result = groups
90
+ .filter((row) => chat === undefined || row.id === chat || row.title === chat)
91
+ .map((row) => ({
92
+ id: String(row.id),
93
+ title: String(row.title),
94
+ provider: String(row.provider),
95
+ external_id: String(row.external_id),
96
+ kind: "group",
97
+ participantIds: [],
98
+ }));
99
+ if (groupId || backend.agents === undefined) {
100
+ return result;
101
+ }
102
+ const members = privateId !== undefined
103
+ ? (UUID.test(privateId) && (canDirectory || privateId === principal.id)
104
+ ? [yield* backend.agents.member(privateId)]
105
+ : []).filter((member) => member !== undefined)
106
+ : canDirectory
107
+ ? (yield* records(backend, "user", {
108
+ where: {
109
+ kind: { eq: "member" },
110
+ active: { eq: true },
111
+ ...(chat === undefined ? {} : { name: { eq: chat } }),
112
+ },
113
+ })).map((row) => ({ name: String(row.name), principal: { id: String(row.id) } }))
114
+ : [yield* backend.agents.member(principal.id)].filter((member) => member !== undefined);
115
+ for (const candidate of members) {
116
+ const member = yield* backend.agents.member(candidate.principal.id);
117
+ if (member === undefined ||
118
+ (chat !== undefined && privateId === undefined && member.name !== chat)) {
119
+ continue;
120
+ }
121
+ const identities = yield* backend.agents.listIdentities(member.principal.id);
122
+ const identity = identities.find((item) => item.provider === provider && item.revokedAt === null);
123
+ if (identity !== undefined) {
124
+ result.push({
125
+ id: `${provider}:private:${member.principal.id}`,
126
+ title: member.name,
127
+ provider,
128
+ external_id: identity.externalId,
129
+ kind: "private",
130
+ participantIds: [member.principal.id],
131
+ });
132
+ }
133
+ }
134
+ return result;
135
+ });
136
+ return {
137
+ list: destinations,
138
+ resolve: (chat) => destinations(chat).pipe(Effect.flatMap((items) => {
139
+ if (items.length === 1) {
140
+ return Effect.succeed(items[0]);
141
+ }
142
+ return Effect.fail(new ActionRejected({
143
+ message: items.length === 0
144
+ ? "No eligible chat matches that ID or exact title."
145
+ : "Ambiguous chat. Choose an exact ID: " +
146
+ JSON.stringify(items.map(({ id, title, provider }) => ({ id, title, provider }))),
147
+ }));
148
+ })),
149
+ };
150
+ }
@@ -0,0 +1,23 @@
1
+ import { Layer } from "effect";
2
+ import { HttpRouter } from "effect/unstable/http";
3
+ import { type TokenVerifier, type SessionExchange } from "../authentication.js";
4
+ import { type RuntimeTokenVerifier } from "../runtime-identity.js";
5
+ import { RequestId } from "../errors.js";
6
+ import { OntologyBackend } from "../runtime-contract.js";
7
+ import type { BuiltApi } from "../api.js";
8
+ import type { AfterCommitHook } from "../config.js";
9
+ import type { ConnectionTransportFactory } from "../connections.js";
10
+ import type { ReplicationKick } from "../replication.js";
11
+ import { type ConversationTransport } from "../agent/conversations.js";
12
+ import type { ChatDeliveryFactory } from "./delivery.js";
13
+ export declare function chatRoutes(options: {
14
+ readonly built: BuiltApi;
15
+ readonly hooks: ReadonlyMap<string, AfterCommitHook>;
16
+ readonly connections: ConnectionTransportFactory;
17
+ readonly replicate: ReplicationKick;
18
+ readonly chatDelivery: ChatDeliveryFactory;
19
+ readonly conversations?: ConversationTransport;
20
+ readonly verifyToken: TokenVerifier;
21
+ readonly verifyRuntime?: RuntimeTokenVerifier;
22
+ readonly exchangeSession?: SessionExchange;
23
+ }): Layer.Layer<never, never, OntologyBackend | HttpRouter.HttpRouter | HttpRouter.Request<"Requires", RequestId>>;
@@ -0,0 +1,75 @@
1
+ import { Cause, Effect, Layer, Schema } from "effect";
2
+ import { HttpApiBuilder, HttpApiSecurity } from "effect/unstable/httpapi";
3
+ import { HttpRouter, HttpServerRequest, HttpServerResponse } from "effect/unstable/http";
4
+ import { ActionRejected } from "../../errors.js";
5
+ import { withPrincipal, CurrentPrincipal, } from "../authentication.js";
6
+ import { runtimeCredential } from "../runtime-identity.js";
7
+ import { RequestId, failureResponse } from "../errors.js";
8
+ import { OntologyBackend } from "../runtime-contract.js";
9
+ import { identityToken, makeOperations } from "../operations.js";
10
+ import { ConversationSearch } from "../agent/conversations.js";
11
+ import { chatReads } from "./reads.js";
12
+ import { withChatMembership } from "./resolve.js";
13
+ import { ChatList, ChatHistory } from "./schemas.js";
14
+ export function chatRoutes(options) {
15
+ return Layer.effectDiscard(Effect.gen(function* () {
16
+ const router = yield* HttpRouter.HttpRouter;
17
+ const backend = yield* OntologyBackend;
18
+ const conversations = options.conversations && withChatMembership(options.conversations, backend);
19
+ const reads = chatReads(backend, conversations, options.built.plan.ontology.config.chat?.attribution);
20
+ const operations = makeOperations(backend, options.built.plan, options.hooks, options.connections, options.replicate, options.chatDelivery);
21
+ const planned = options.built.plan.entities.find((entity) => entity.name === "agent_chat");
22
+ const action = planned.actions.find((candidate) => candidate.name === "post_message");
23
+ for (const method of ["list", "history", "search", "actions/post_message"]) {
24
+ yield* router.add("POST", `/api/ontology/chat/${method}`, (request) => Effect.gen(function* () {
25
+ const bearer = yield* HttpApiBuilder.securityDecode(HttpApiSecurity.bearer).pipe(Effect.provideService(HttpServerRequest.HttpServerRequest, request));
26
+ const runtime = runtimeCredential(options.verifyRuntime, request);
27
+ const run = Effect.gen(function* () {
28
+ const body = yield* request.json.pipe(Effect.mapError(() => new ActionRejected({ message: "Invalid chat request JSON." })));
29
+ const decode = (schema) => Schema.decodeUnknownEffect(schema)(body, { onExcessProperty: "error" }).pipe(Effect.mapError(() => new ActionRejected({ message: "Invalid chat request." })));
30
+ let result;
31
+ switch (method) {
32
+ case "list":
33
+ result = yield* reads.list(yield* decode(ChatList));
34
+ break;
35
+ case "history":
36
+ result = yield* reads.history(yield* decode(ChatHistory), identityToken(request));
37
+ break;
38
+ case "search": {
39
+ if (!conversations) {
40
+ return yield* new ActionRejected({
41
+ message: "The conversation archive is not configured.",
42
+ });
43
+ }
44
+ result = yield* conversations({
45
+ search: yield* decode(ConversationSearch),
46
+ principal: yield* CurrentPrincipal,
47
+ identityToken: identityToken(request),
48
+ });
49
+ break;
50
+ }
51
+ case "actions/post_message": {
52
+ const payload = yield* decode(Schema.Struct({
53
+ input: Schema.Unknown,
54
+ options: Schema.optionalKey(Schema.Struct({ validate_only: Schema.optionalKey(Schema.Boolean) })),
55
+ }));
56
+ result = yield* operations.runAction(planned, action, {
57
+ input: payload.input,
58
+ validateOnly: payload.options?.validate_only === true,
59
+ identityToken: identityToken(request),
60
+ });
61
+ break;
62
+ }
63
+ }
64
+ return HttpServerResponse.jsonUnsafe(result);
65
+ }).pipe(Effect.catchCause((cause) => Cause.hasInterruptsOnly(cause)
66
+ ? Effect.failCause(cause)
67
+ : Effect.flatMap(RequestId, (requestId) => failureResponse(cause, requestId))));
68
+ return yield* withPrincipal(bearer, options.verifyToken, backend, run, {
69
+ session: { request, exchange: options.exchangeSession },
70
+ ...(runtime === undefined ? {} : { runtime }),
71
+ });
72
+ }));
73
+ }
74
+ }));
75
+ }
@@ -0,0 +1,43 @@
1
+ import { Schema } from "effect";
2
+ export declare const ChatPostWire: Schema.encodeKeys<Schema.Struct<{
3
+ readonly chat: Schema.String;
4
+ readonly text: Schema.String;
5
+ readonly replyTo: Schema.optionalKey<Schema.String>;
6
+ readonly idempotencyKey: Schema.String;
7
+ }>, {
8
+ readonly replyTo: "reply_to";
9
+ readonly idempotencyKey: "idempotency_key";
10
+ }>;
11
+ export declare const RuntimeChatPostWire: Schema.Struct<{
12
+ readonly chat: Schema.String;
13
+ readonly text: Schema.String;
14
+ readonly reply_to: Schema.optionalKey<Schema.String>;
15
+ }>;
16
+ export declare const ChatList: Schema.Struct<{
17
+ readonly chat: Schema.optionalKey<Schema.String>;
18
+ readonly query: Schema.optionalKey<Schema.String>;
19
+ readonly after: Schema.optionalKey<Schema.String>;
20
+ readonly limit: Schema.optionalKey<Schema.Int>;
21
+ }>;
22
+ export declare const ChatHistory: Schema.Struct<{
23
+ readonly chat: Schema.String;
24
+ readonly before: Schema.optionalKey<Schema.String>;
25
+ readonly limit: Schema.optionalKey<Schema.Int>;
26
+ }>;
27
+ export declare const ChatDestination: Schema.Struct<{
28
+ readonly id: Schema.String;
29
+ readonly title: Schema.String;
30
+ readonly provider: Schema.String;
31
+ readonly external_id: Schema.String;
32
+ readonly attribution: Schema.NullOr<Schema.String>;
33
+ }>;
34
+ export declare const ChatListResult: Schema.Struct<{
35
+ readonly items: Schema.$Array<Schema.Struct<{
36
+ readonly id: Schema.String;
37
+ readonly title: Schema.String;
38
+ readonly provider: Schema.String;
39
+ readonly external_id: Schema.String;
40
+ readonly attribution: Schema.NullOr<Schema.String>;
41
+ }>>;
42
+ readonly next_cursor: Schema.NullOr<Schema.String>;
43
+ }>;
@@ -0,0 +1,31 @@
1
+ import { Schema } from "effect";
2
+ import { ChatPostInput } from "../../chat.js";
3
+ const Id = Schema.String.check(Schema.isMinLength(1), Schema.isMaxLength(512));
4
+ export const ChatPostWire = ChatPostInput.pipe(Schema.encodeKeys({ replyTo: "reply_to", idempotencyKey: "idempotency_key" }));
5
+ export const RuntimeChatPostWire = Schema.Struct({
6
+ chat: ChatPostInput.fields.chat,
7
+ text: ChatPostInput.fields.text,
8
+ reply_to: Schema.optionalKey(Id),
9
+ });
10
+ export const ChatList = Schema.Struct({
11
+ chat: Schema.optionalKey(Id),
12
+ query: Schema.optionalKey(Schema.String.check(Schema.isMaxLength(512))),
13
+ after: Schema.optionalKey(Id),
14
+ limit: Schema.optionalKey(Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 200 }))),
15
+ });
16
+ export const ChatHistory = Schema.Struct({
17
+ chat: Id,
18
+ before: Schema.optionalKey(Id),
19
+ limit: Schema.optionalKey(Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 200 }))),
20
+ });
21
+ export const ChatDestination = Schema.Struct({
22
+ id: Id,
23
+ title: Schema.String,
24
+ provider: Schema.String,
25
+ external_id: Id,
26
+ attribution: Schema.NullOr(Schema.String),
27
+ });
28
+ export const ChatListResult = Schema.Struct({
29
+ items: Schema.Array(ChatDestination),
30
+ next_cursor: Schema.NullOr(Id),
31
+ });