@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,31 @@
1
+ /** Where a command writes. The binary binds these to stdout and stderr; tests collect them. */
2
+ export interface Output {
3
+ /** The command's result: a summary, the manifest, the catalog or the plan. */
4
+ readonly stdout: (text: string) => void;
5
+ /** Diagnostics, refusals and failures. */
6
+ readonly stderr: (text: string) => void;
7
+ }
8
+ export declare const EXIT_CODES: {
9
+ readonly ok: 0;
10
+ /** The ontology has errors or does not load, or the migration failed. */
11
+ readonly failed: 1;
12
+ /** The migration plan has refusals; nothing was applied. */
13
+ readonly refused: 2;
14
+ /** The command line is wrong (`EX_USAGE`). */
15
+ readonly usage: 64;
16
+ };
17
+ export type ExitCode = (typeof EXIT_CODES)[keyof typeof EXIT_CODES];
18
+ /**
19
+ * The error's message, or its stack, then each `cause` in turn, so that a wrapper never hides the
20
+ * original explanation of a failure.
21
+ */
22
+ export declare function describeError(error: unknown, options?: {
23
+ readonly stack?: boolean;
24
+ }): string;
25
+ /**
26
+ * Replaces the connection string, and its password on its own, wherever they appear in a text. A
27
+ * driver may echo either in an error message.
28
+ */
29
+ export declare function credentialRedactor(connectionString: string): (text: string) => string;
30
+ /** The same output, with the connection string and its password redacted from everything written. */
31
+ export declare function redactedOutput(output: Output, connectionString: string): Output;
@@ -0,0 +1,84 @@
1
+ export const EXIT_CODES = {
2
+ ok: 0,
3
+ /** The ontology has errors or does not load, or the migration failed. */
4
+ failed: 1,
5
+ /** The migration plan has refusals; nothing was applied. */
6
+ refused: 2,
7
+ /** The command line is wrong (`EX_USAGE`). */
8
+ usage: 64,
9
+ };
10
+ /** How far `describeError` follows `cause`; real chains are three or four errors deep. */
11
+ const MAXIMUM_CAUSES = 8;
12
+ /** Shorter passwords would redact ordinary words; the whole connection string is always redacted. */
13
+ const MINIMUM_REDACTED_PASSWORD = 4;
14
+ const REDACTED = "[redacted]";
15
+ function isRecord(value) {
16
+ return typeof value === "object" && value !== null;
17
+ }
18
+ /** A value that is not an error, such as the hashes `CatalogInvalid` keeps as its cause. */
19
+ function plainText(value) {
20
+ try {
21
+ return JSON.stringify(value) ?? String(value);
22
+ }
23
+ catch {
24
+ return String(value);
25
+ }
26
+ }
27
+ function headline(error, withStack) {
28
+ if (!isRecord(error)) {
29
+ return String(error);
30
+ }
31
+ const stack = withStack && typeof error.stack === "string" ? error.stack : undefined;
32
+ const message = typeof error.message === "string" ? error.message : plainText(error);
33
+ // PostgreSQL errors explain a failed statement in `detail` and `hint`.
34
+ const explanations = [error.detail, error.hint].filter((value) => typeof value === "string" && value.length > 0);
35
+ return [stack ?? message, ...explanations].join("\n");
36
+ }
37
+ /**
38
+ * The error's message, or its stack, then each `cause` in turn, so that a wrapper never hides the
39
+ * original explanation of a failure.
40
+ */
41
+ export function describeError(error, options = {}) {
42
+ const lines = [];
43
+ const seen = new Set();
44
+ let current = error;
45
+ let previous;
46
+ while (current !== undefined && !seen.has(current) && seen.size < MAXIMUM_CAUSES) {
47
+ seen.add(current);
48
+ const line = headline(current, lines.length === 0 && options.stack === true);
49
+ // A wrapper often repeats its cause's message, as SqlError does its reason's.
50
+ if (line !== previous) {
51
+ lines.push(lines.length === 0 ? line : `Caused by: ${line}`);
52
+ }
53
+ previous = line;
54
+ current = isRecord(current) ? current.cause : undefined;
55
+ }
56
+ return lines.join("\n");
57
+ }
58
+ function decodeComponent(value) {
59
+ try {
60
+ return decodeURIComponent(value);
61
+ }
62
+ catch {
63
+ return value;
64
+ }
65
+ }
66
+ /**
67
+ * Replaces the connection string, and its password on its own, wherever they appear in a text. A
68
+ * driver may echo either in an error message.
69
+ */
70
+ export function credentialRedactor(connectionString) {
71
+ const password = URL.canParse(connectionString) ? new URL(connectionString).password : "";
72
+ const passwords = [password, decodeComponent(password)].filter((candidate) => candidate.length >= MINIMUM_REDACTED_PASSWORD);
73
+ // The longest first, so that a password inside the connection string never splits it.
74
+ const secrets = [...new Set([connectionString, ...passwords])].sort((left, right) => right.length - left.length);
75
+ return (text) => secrets.reduce((redacted, secret) => redacted.split(secret).join(REDACTED), text);
76
+ }
77
+ /** The same output, with the connection string and its password redacted from everything written. */
78
+ export function redactedOutput(output, connectionString) {
79
+ const redact = credentialRedactor(connectionString);
80
+ return {
81
+ stdout: (text) => output.stdout(redact(text)),
82
+ stderr: (text) => output.stderr(redact(text)),
83
+ };
84
+ }
package/dist/bin.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/bin.js ADDED
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env node
2
+ // The `segmentstream-ontology` binary: wires the process to the commands in ./bin/.
3
+ import { importWithTsx, loadOntology } from "./bin/load.js";
4
+ import { runMain } from "./bin/main.js";
5
+ import { connectOwnerDatabase } from "./bin/migrate.js";
6
+ // As in the deploy pipeline's evaluator, the ontology's own console output goes to stderr, so that
7
+ // stdout carries only the command's result (`check --manifest` prints JSON).
8
+ for (const method of ["log", "info", "debug", "warn"]) {
9
+ console[method] = console.error.bind(console);
10
+ }
11
+ function writer(stream) {
12
+ return (text) => {
13
+ stream.write(text);
14
+ };
15
+ }
16
+ /** Resolves once everything written so far has been handed to the operating system. */
17
+ function flushed(stream) {
18
+ return new Promise((resolve) => {
19
+ stream.write("", () => resolve());
20
+ });
21
+ }
22
+ const cwd = process.cwd();
23
+ const exitCode = await runMain(process.argv.slice(2), {
24
+ environment: process.env,
25
+ output: { stdout: writer(process.stdout), stderr: writer(process.stderr) },
26
+ load: (entry) => loadOntology({ entry, cwd }, importWithTsx),
27
+ connect: connectOwnerDatabase,
28
+ });
29
+ await Promise.all([flushed(process.stdout), flushed(process.stderr)]);
30
+ // The ontology's modules may hold timers or sockets open; the command is done.
31
+ process.exit(exitCode);
package/dist/blob.d.ts ADDED
@@ -0,0 +1,52 @@
1
+ import { Schema } from "effect";
2
+ import type { FileTarget } from "./files.js";
3
+ /** Metadata of an immutable file revision. Provider keys and grants never appear in records. */
4
+ export declare const BlobValue: Schema.Struct<{
5
+ readonly id: Schema.String;
6
+ readonly filename: Schema.String;
7
+ readonly contentType: Schema.String;
8
+ readonly size: Schema.Int;
9
+ readonly createdAt: Schema.String;
10
+ }>;
11
+ export type BlobValue = typeof BlobValue.Type;
12
+ /** An opaque completed-upload ticket. Only the action runtime may resolve and consume it. */
13
+ declare function uploadCodec(entity?: string, property?: string): Schema.decodeTo<Schema.Struct<{
14
+ readonly uploadId: Schema.String;
15
+ }>, Schema.Struct<{
16
+ readonly upload_id: Schema.String;
17
+ }>, never, never>;
18
+ export declare const BlobUpload: Schema.Struct<{
19
+ readonly uploadId: Schema.String;
20
+ }>;
21
+ export type BlobUpload = typeof BlobUpload.Type;
22
+ export declare const BLOB_UPLOAD_ANNOTATION = "x-ontology-upload";
23
+ export declare const MAX_BLOB_BYTES: number;
24
+ /** Common content types for file properties; any valid MIME type may be declared. */
25
+ export declare const BLOB_CONTENT_TYPES: readonly ["application/pdf", "image/jpeg", "image/png", "text/plain", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/vnd.ms-excel", "text/csv", "text/tab-separated-values", "application/json", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/zip", "application/octet-stream"];
26
+ /** A concrete MIME type, without wildcards, parameters or header control characters. */
27
+ export declare function isBlobContentType(contentType: string): boolean;
28
+ /** A property's MIME restriction: a concrete type, a type range, or all files. */
29
+ export declare function isBlobAccept(accept: string): boolean;
30
+ /** Omitted restrictions accept every concrete MIME type; an empty list accepts nothing. */
31
+ export declare function acceptsBlobContentType(accept: ReadonlyArray<string> | undefined, contentType: string): boolean;
32
+ type SchemaValue<S> = S extends {
33
+ readonly Type: infer T;
34
+ } ? T : S extends Schema.optionalKey<infer Inner> ? Inner["Type"] : never;
35
+ type BlobPropertyKey<P> = {
36
+ [K in keyof P]: NonNullable<SchemaValue<P[K]>> extends BlobValue ? K : never;
37
+ }[keyof P] & string;
38
+ /** Internal wire codec for session tickets and generated action inputs. */
39
+ export declare function uploadInput(entity?: string, property?: string): ReturnType<typeof uploadCodec>;
40
+ /** Declares which blob field an authored action's upload input may write. */
41
+ export declare const uploads: {
42
+ /** Declares a preparation's file write; the runtime supplies its principal and upload binding. */
43
+ target<const P extends Readonly<Record<string, unknown>>>(entity: {
44
+ readonly name: string;
45
+ readonly properties: P;
46
+ }, property: BlobPropertyKey<P>): FileTarget;
47
+ for<const P extends Readonly<Record<string, unknown>>>(entity: {
48
+ readonly name: string;
49
+ readonly properties: P;
50
+ }, property: BlobPropertyKey<P>): typeof BlobUpload;
51
+ };
52
+ export {};
package/dist/blob.js ADDED
@@ -0,0 +1,87 @@
1
+ import { Schema, SchemaTransformation } from "effect";
2
+ import { nameToWire } from "./authoring-names.js";
3
+ /** Metadata of an immutable file revision. Provider keys and grants never appear in records. */
4
+ export const BlobValue = Schema.Struct({
5
+ id: Schema.String.check(Schema.isUUID()),
6
+ filename: Schema.String,
7
+ contentType: Schema.String,
8
+ size: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),
9
+ createdAt: Schema.String,
10
+ });
11
+ /** An opaque completed-upload ticket. Only the action runtime may resolve and consume it. */
12
+ function uploadCodec(entity, property) {
13
+ const id = Schema.String.check(Schema.isUUID());
14
+ return Schema.Struct({ upload_id: id })
15
+ .annotate({
16
+ ...(entity && property
17
+ ? {
18
+ description: `A completed upload for ${entity}.${property}.`,
19
+ "x-ontology-upload": { entity, property },
20
+ }
21
+ : {}),
22
+ })
23
+ .pipe(Schema.decodeTo(Schema.Struct({ uploadId: id }), SchemaTransformation.transform({
24
+ decode: (value) => ({ uploadId: value.upload_id }),
25
+ encode: (value) => ({ upload_id: value.uploadId }),
26
+ })));
27
+ }
28
+ export const BlobUpload = Schema.Struct({ uploadId: Schema.String.check(Schema.isUUID()) });
29
+ export const BLOB_UPLOAD_ANNOTATION = "x-ontology-upload";
30
+ export const MAX_BLOB_BYTES = 250 * 1024 * 1024;
31
+ /** Common content types for file properties; any valid MIME type may be declared. */
32
+ export const BLOB_CONTENT_TYPES = [
33
+ "application/pdf",
34
+ "image/jpeg",
35
+ "image/png",
36
+ "text/plain",
37
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
38
+ "application/vnd.ms-excel",
39
+ "text/csv",
40
+ "text/tab-separated-values",
41
+ "application/json",
42
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
43
+ "application/zip",
44
+ "application/octet-stream",
45
+ ];
46
+ const CONTENT_TYPE = /^[a-z0-9][a-z0-9!#$&^_.+-]*\/[a-z0-9][a-z0-9!#$&^_.+-]*$/i;
47
+ const CONTENT_TYPE_RANGE = /^[a-z0-9][a-z0-9!#$&^_.+-]*\/\*$/i;
48
+ /** A concrete MIME type, without wildcards, parameters or header control characters. */
49
+ export function isBlobContentType(contentType) {
50
+ return contentType === contentType.trim() && CONTENT_TYPE.test(contentType);
51
+ }
52
+ /** A property's MIME restriction: a concrete type, a type range, or all files. */
53
+ export function isBlobAccept(accept) {
54
+ return (accept === accept.trim() &&
55
+ (accept === "*/*" || CONTENT_TYPE_RANGE.test(accept) || isBlobContentType(accept)));
56
+ }
57
+ /** Omitted restrictions accept every concrete MIME type; an empty list accepts nothing. */
58
+ export function acceptsBlobContentType(accept, contentType) {
59
+ if (!isBlobContentType(contentType)) {
60
+ return false;
61
+ }
62
+ const normalized = contentType.toLowerCase();
63
+ return (accept === undefined ||
64
+ accept.some((candidate) => {
65
+ const pattern = candidate.toLowerCase();
66
+ return (pattern === "*/*" ||
67
+ pattern === normalized ||
68
+ (CONTENT_TYPE_RANGE.test(pattern) && normalized.startsWith(pattern.slice(0, -1))));
69
+ }));
70
+ }
71
+ /** Internal wire codec for session tickets and generated action inputs. */
72
+ export function uploadInput(entity, property) {
73
+ return uploadCodec(entity, property);
74
+ }
75
+ /** Declares which blob field an authored action's upload input may write. */
76
+ export const uploads = {
77
+ /** Declares a preparation's file write; the runtime supplies its principal and upload binding. */
78
+ target(entity, property) {
79
+ return { entity: nameToWire(entity.name), property: nameToWire(property) };
80
+ },
81
+ for(entity, property) {
82
+ return BlobUpload.annotate({
83
+ description: `A completed upload for ${entity.name}.${property}.`,
84
+ "x-ontology-upload": { entity: nameToWire(entity.name), property: nameToWire(property) },
85
+ });
86
+ },
87
+ };
@@ -0,0 +1,16 @@
1
+ /** Browser-safe wire protocol shared by the ontology service and app SDK. */
2
+ export declare const CHANNEL_SESSION_PATH = "/api/ontology/session";
3
+ export declare const CHANNEL_LOGOUT_PATH = "/api/ontology/sign-in/logout";
4
+ export declare const CHANNEL_SESSION_TTL_SECONDS = 3600;
5
+ export declare const channelSignInPath: (provider: string) => string;
6
+ export declare const channelClientId: (provider: string) => string;
7
+ export declare const channelCookieName: (workspaceId: string) => string;
8
+ export declare const CHANNEL_COOKIE_PATTERN: RegExp;
9
+ export declare const channelCookieAttributes: {
10
+ httpOnly: boolean;
11
+ secure: boolean;
12
+ sameSite: "none";
13
+ partitioned: boolean;
14
+ path: string;
15
+ };
16
+ export declare const channelCookie: (name: string, token: string, maxAge: number) => string;
@@ -0,0 +1,16 @@
1
+ /** Browser-safe wire protocol shared by the ontology service and app SDK. */
2
+ export const CHANNEL_SESSION_PATH = "/api/ontology/session";
3
+ export const CHANNEL_LOGOUT_PATH = "/api/ontology/sign-in/logout";
4
+ export const CHANNEL_SESSION_TTL_SECONDS = 3600;
5
+ export const channelSignInPath = (provider) => `/api/ontology/sign-in/${encodeURIComponent(provider)}`;
6
+ export const channelClientId = (provider) => `${provider}-mini-app`;
7
+ export const channelCookieName = (workspaceId) => `__Host-ss_channel_session.${workspaceId.replace(/[^A-Za-z0-9_-]/g, "_")}`;
8
+ export const CHANNEL_COOKIE_PATTERN = /^__Host-ss_channel_session\.[A-Za-z0-9_-]+$/;
9
+ export const channelCookieAttributes = {
10
+ httpOnly: true,
11
+ secure: true,
12
+ sameSite: "none",
13
+ partitioned: true,
14
+ path: "/",
15
+ };
16
+ export const channelCookie = (name, token, maxAge) => `${name}=${token}; HttpOnly; Secure; SameSite=None; Partitioned; Path=/; Max-Age=${maxAge}`;
package/dist/chat.d.ts ADDED
@@ -0,0 +1,43 @@
1
+ /** Workspace-authored exact-post attribution; neutral defaults are name and a blank line. */
2
+ export interface ChatAttributionSettings {
3
+ readonly template?: string;
4
+ readonly separator?: string;
5
+ }
6
+ import { Context, Effect, Schema } from "effect";
7
+ import type { ActionError } from "./errors.js";
8
+ export declare const ChatPostInput: Schema.Struct<{
9
+ readonly chat: Schema.String;
10
+ readonly text: Schema.String;
11
+ readonly replyTo: Schema.optionalKey<Schema.String>;
12
+ readonly idempotencyKey: Schema.String;
13
+ }>;
14
+ export type ChatPostInput = typeof ChatPostInput.Type;
15
+ export declare const ChatPostResult: Schema.Struct<{
16
+ readonly status: Schema.Literals<readonly ["sent", "uncertain"]>;
17
+ readonly message_id: Schema.NullOr<Schema.String>;
18
+ readonly url: Schema.NullOr<Schema.String>;
19
+ readonly duplicate: Schema.Boolean;
20
+ readonly history_recorded: Schema.Boolean;
21
+ }>;
22
+ export type ChatPostResult = typeof ChatPostResult.Type;
23
+ export interface ChatPreview {
24
+ readonly chatId: string;
25
+ readonly provider: string;
26
+ readonly externalId: string;
27
+ readonly title: string;
28
+ readonly attribution: string;
29
+ readonly text: string;
30
+ readonly finalText: string;
31
+ readonly replyTo: string | null;
32
+ }
33
+ export declare const chatOperationId: (sessionId: string, callId: string) => string;
34
+ export declare const chatPreviewDigest: (preview: ChatPreview) => string;
35
+ declare const ChatDelivery_base: Context.ServiceClass<ChatDelivery, "@segmentstream/ontology/ChatDelivery", {
36
+ readonly preview: (input: ChatPostInput) => Effect.Effect<ChatPreview, ActionError>;
37
+ readonly validate: (input: ChatPostInput) => Effect.Effect<void, ActionError>;
38
+ readonly post: (input: ChatPostInput) => Effect.Effect<ChatPostResult, ActionError>;
39
+ }>;
40
+ /** Deliver the exact Markdown source through the channel renderer, without invoking an agent. */
41
+ export declare class ChatDelivery extends ChatDelivery_base {
42
+ }
43
+ export {};
package/dist/chat.js ADDED
@@ -0,0 +1,34 @@
1
+ import { createHash } from "node:crypto";
2
+ import { Context, Schema } from "effect";
3
+ const Identifier = Schema.String.check(Schema.isMinLength(1), Schema.isMaxLength(512));
4
+ export const ChatPostInput = Schema.Struct({
5
+ chat: Identifier,
6
+ text: Schema.String.check(Schema.isMinLength(1), Schema.isMaxLength(4096)).annotate({
7
+ description: "Markdown source; the platform adds sender attribution after channel rendering.",
8
+ }),
9
+ replyTo: Schema.optionalKey(Identifier),
10
+ idempotencyKey: Identifier,
11
+ });
12
+ export const ChatPostResult = Schema.Struct({
13
+ status: Schema.Literals(["sent", "uncertain"]),
14
+ message_id: Schema.NullOr(Schema.String),
15
+ url: Schema.NullOr(Schema.String),
16
+ duplicate: Schema.Boolean,
17
+ history_recorded: Schema.Boolean,
18
+ });
19
+ const chatProtocolDigest = (value) => createHash("sha256").update(JSON.stringify(value)).digest("hex");
20
+ export const chatOperationId = (sessionId, callId) => `hq:${chatProtocolDigest([sessionId, callId])}`;
21
+ export const chatPreviewDigest = (preview) => chatProtocolDigest([
22
+ "v2",
23
+ preview.chatId,
24
+ preview.provider,
25
+ preview.externalId,
26
+ preview.title,
27
+ preview.attribution,
28
+ preview.text,
29
+ preview.finalText,
30
+ preview.replyTo,
31
+ ]);
32
+ /** Deliver the exact Markdown source through the channel renderer, without invoking an agent. */
33
+ export class ChatDelivery extends Context.Service()("@segmentstream/ontology/ChatDelivery") {
34
+ }
@@ -0,0 +1,46 @@
1
+ import { Schema } from "effect";
2
+ import type { Principal } from "./runtime.js";
3
+ /** One thing a person checks before they confirm, such as the document, a signer or an amount. */
4
+ export declare const ConfirmationFact: Schema.Struct<{
5
+ readonly icon: Schema.optionalKey<Schema.String>;
6
+ readonly text: Schema.String;
7
+ /** A page that shows what the line names; the line links to it. */
8
+ readonly url: Schema.optionalKey<Schema.String>;
9
+ }>;
10
+ export type ConfirmationFact = typeof ConfirmationFact.Type;
11
+ /**
12
+ * What a person confirms before an agent runs an action, in the language of the chat the agent asks
13
+ * in. The agent shows it as its confirmation card, with the confirm and cancel buttons and the
14
+ * outcome below it. Every text is plain: no markup, ids, codes or links in the text itself.
15
+ */
16
+ export declare const ActionConfirmation: Schema.Struct<{
17
+ /** The action as a short verb phrase, such as "Send for signature". */
18
+ readonly title: Schema.String;
19
+ /** One emoji that marks the action. */
20
+ readonly icon: Schema.optionalKey<Schema.String>;
21
+ /** What the person checks, most important first: the record, who it reaches, the amount. */
22
+ readonly facts: Schema.$Array<Schema.Struct<{
23
+ readonly icon: Schema.optionalKey<Schema.String>;
24
+ readonly text: Schema.String;
25
+ /** A page that shows what the line names; the line links to it. */
26
+ readonly url: Schema.optionalKey<Schema.String>;
27
+ }>>;
28
+ /** Secondary detail and consequences, shown collapsed. */
29
+ readonly details: Schema.optionalKey<Schema.$Array<Schema.String>>;
30
+ /** A page where the person can look at what the action concerns, shown as a button. */
31
+ readonly link: Schema.optionalKey<Schema.Struct<{
32
+ readonly text: Schema.String;
33
+ readonly url: Schema.String;
34
+ }>>;
35
+ }>;
36
+ export type ActionConfirmation = typeof ActionConfirmation.Type;
37
+ /** What an action's `confirm` runs with. */
38
+ export interface ConfirmContext<Input> {
39
+ /** The input, already decoded with the action's input schema. */
40
+ readonly input: Input;
41
+ readonly principal: Principal;
42
+ /** The language of the chat the person confirms in, as a BCP 47 tag such as `ru` or `en-gb`. */
43
+ readonly locale: string;
44
+ /** The id of the request, for logs. */
45
+ readonly requestId: string;
46
+ }
@@ -0,0 +1,41 @@
1
+ import { Schema } from "effect";
2
+ /** One emoji, or a short emoji sequence such as a flag or a person with a skin tone. */
3
+ const Icon = Schema.String.check(Schema.makeFilter((value) => /^[\p{Extended_Pictographic}\p{Regional_Indicator}\u{1F3FB}-\u{1F3FF}\u200D\uFE0F\u20E3#*0-9]{1,16}$/u.test(value) && /\p{Extended_Pictographic}|\p{Regional_Indicator}/u.test(value)
4
+ ? undefined
5
+ : "Expected one emoji"));
6
+ /** Plain text a person reads: one line, no markup. Agents refuse ids, codes and links in it. */
7
+ const Line = (maximum) => Schema.String.check(Schema.isMinLength(1), Schema.isMaxLength(maximum), Schema.makeFilter((value) => value === value.trim() && !/[\p{Cc}\p{Zl}\p{Zp}]/u.test(value)
8
+ ? undefined
9
+ : "Expected one line of text, without spaces around it"));
10
+ const Url = Schema.String.check(Schema.isMaxLength(2048), Schema.makeFilter((value) => {
11
+ try {
12
+ return new URL(value).protocol === "https:" ? undefined : "Expected an https URL";
13
+ }
14
+ catch {
15
+ return "Expected an https URL";
16
+ }
17
+ }));
18
+ /** One thing a person checks before they confirm, such as the document, a signer or an amount. */
19
+ export const ConfirmationFact = Schema.Struct({
20
+ icon: Schema.optionalKey(Icon),
21
+ text: Line(300),
22
+ /** A page that shows what the line names; the line links to it. */
23
+ url: Schema.optionalKey(Url),
24
+ });
25
+ /**
26
+ * What a person confirms before an agent runs an action, in the language of the chat the agent asks
27
+ * in. The agent shows it as its confirmation card, with the confirm and cancel buttons and the
28
+ * outcome below it. Every text is plain: no markup, ids, codes or links in the text itself.
29
+ */
30
+ export const ActionConfirmation = Schema.Struct({
31
+ /** The action as a short verb phrase, such as "Send for signature". */
32
+ title: Line(80),
33
+ /** One emoji that marks the action. */
34
+ icon: Schema.optionalKey(Icon),
35
+ /** What the person checks, most important first: the record, who it reaches, the amount. */
36
+ facts: Schema.Array(ConfirmationFact).check(Schema.isMaxLength(20)),
37
+ /** Secondary detail and consequences, shown collapsed. */
38
+ details: Schema.optionalKey(Schema.Array(Line(300)).check(Schema.isMaxLength(10))),
39
+ /** A page where the person can look at what the action concerns, shown as a button. */
40
+ link: Schema.optionalKey(Schema.Struct({ text: Line(40), url: Url })),
41
+ });