@opengeni/contracts 3.1.0-canary.1 → 3.1.2

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 (434) hide show
  1. package/dist/agent-authored-durable-text.d.ts +9 -9
  2. package/dist/agent-config.d.ts +971 -0
  3. package/dist/agent-instruction-changes.d.ts +110 -0
  4. package/dist/agent-learning.d.ts +243 -0
  5. package/dist/allowance-refusal.d.ts +9 -0
  6. package/dist/allowance-refusal.js +50 -0
  7. package/dist/allowance-refusal.js.map +1 -0
  8. package/dist/analytics-consent-report.d.ts +19 -0
  9. package/dist/analytics-consent-report.js +10 -0
  10. package/dist/analytics-consent-report.js.map +1 -0
  11. package/dist/api-key-presets.d.ts +19 -0
  12. package/dist/artifact-catalog.d.ts +188 -0
  13. package/dist/artifacts.d.ts +86 -0
  14. package/dist/atlassian-native-retirement.d.ts +16 -0
  15. package/dist/atlassian-native-retirement.js +30 -0
  16. package/dist/atlassian-native-retirement.js.map +1 -0
  17. package/dist/atlassian.d.ts +1 -0
  18. package/dist/atlassian.js +34 -19
  19. package/dist/browser-storage.d.ts +5 -0
  20. package/dist/browser-storage.js +9 -0
  21. package/dist/browser-storage.js.map +1 -0
  22. package/dist/bundled-skills.d.ts +24 -1
  23. package/dist/canonical-human-identities.js +2 -1
  24. package/dist/chunk-2ZIHHL72.js +153 -0
  25. package/dist/chunk-2ZIHHL72.js.map +1 -0
  26. package/dist/{chunk-5LYFSZ7O.js → chunk-352X6ENP.js} +31 -31
  27. package/dist/chunk-4JGHSSB7.js +11 -0
  28. package/dist/chunk-4JGHSSB7.js.map +1 -0
  29. package/dist/chunk-4QO6GJUX.js +85 -0
  30. package/dist/chunk-4QO6GJUX.js.map +1 -0
  31. package/dist/chunk-4VDMHLLL.js +49 -0
  32. package/dist/chunk-4VDMHLLL.js.map +1 -0
  33. package/dist/chunk-56SNIMDO.js +9 -0
  34. package/dist/chunk-56SNIMDO.js.map +1 -0
  35. package/dist/chunk-6C2HKFTU.js +207 -0
  36. package/dist/chunk-6C2HKFTU.js.map +1 -0
  37. package/dist/chunk-6IXO76Z6.js +72 -0
  38. package/dist/chunk-6IXO76Z6.js.map +1 -0
  39. package/dist/chunk-7272KVWZ.js +60 -0
  40. package/dist/chunk-7272KVWZ.js.map +1 -0
  41. package/dist/{chunk-7ABONTXE.js → chunk-E3GGUBHS.js} +49 -5
  42. package/dist/chunk-E3GGUBHS.js.map +1 -0
  43. package/dist/chunk-EFZYKUE2.js +767 -0
  44. package/dist/chunk-EFZYKUE2.js.map +1 -0
  45. package/dist/chunk-EKWNTOG3.js +154 -0
  46. package/dist/chunk-EKWNTOG3.js.map +1 -0
  47. package/dist/chunk-HABQ7ADB.js +234 -0
  48. package/dist/chunk-HABQ7ADB.js.map +1 -0
  49. package/dist/chunk-HRRU4QPI.js +91 -0
  50. package/dist/chunk-HRRU4QPI.js.map +1 -0
  51. package/dist/{chunk-3SIZGL3O.js → chunk-IK36LXKC.js} +18 -2
  52. package/dist/chunk-IK36LXKC.js.map +1 -0
  53. package/dist/{chunk-TXTQIYCV.js → chunk-ILJ72KPO.js} +56 -3
  54. package/dist/chunk-ILJ72KPO.js.map +1 -0
  55. package/dist/chunk-J4HQ3UKY.js +93 -0
  56. package/dist/chunk-J4HQ3UKY.js.map +1 -0
  57. package/dist/chunk-KHHZTBP7.js +11 -0
  58. package/dist/chunk-KHHZTBP7.js.map +1 -0
  59. package/dist/{chunk-WYBDERIY.js → chunk-LZ2LAHIX.js} +47 -41
  60. package/dist/chunk-LZ2LAHIX.js.map +1 -0
  61. package/dist/chunk-NDZHPTCL.js +400 -0
  62. package/dist/chunk-NDZHPTCL.js.map +1 -0
  63. package/dist/chunk-OF6OKOBF.js +54793 -0
  64. package/dist/chunk-OF6OKOBF.js.map +1 -0
  65. package/dist/chunk-OL23ARTF.js +94 -0
  66. package/dist/chunk-OL23ARTF.js.map +1 -0
  67. package/dist/chunk-PUIUXIOL.js +189 -0
  68. package/dist/chunk-PUIUXIOL.js.map +1 -0
  69. package/dist/{chunk-WBYTNVIW.js → chunk-RKX3NQYS.js} +1 -1
  70. package/dist/{chunk-Y3KNXVTD.js → chunk-RMWXDZEO.js} +128 -21
  71. package/dist/chunk-RMWXDZEO.js.map +1 -0
  72. package/dist/{chunk-MRWYRAS5.js → chunk-SHO4YO4B.js} +27 -35
  73. package/dist/chunk-SHO4YO4B.js.map +1 -0
  74. package/dist/chunk-SWRN2DJ3.js +153 -0
  75. package/dist/chunk-SWRN2DJ3.js.map +1 -0
  76. package/dist/chunk-TCXCRBPF.js +267 -0
  77. package/dist/chunk-TCXCRBPF.js.map +1 -0
  78. package/dist/chunk-TLU3UEMD.js +324 -0
  79. package/dist/chunk-TLU3UEMD.js.map +1 -0
  80. package/dist/chunk-TSWWZMUS.js +186 -0
  81. package/dist/chunk-TSWWZMUS.js.map +1 -0
  82. package/dist/{chunk-PX3VCKAU.js → chunk-WVCFSOUZ.js} +1 -1
  83. package/dist/{chunk-PX3VCKAU.js.map → chunk-WVCFSOUZ.js.map} +1 -1
  84. package/dist/chunk-XDLAGX66.js +127 -0
  85. package/dist/chunk-XDLAGX66.js.map +1 -0
  86. package/dist/chunk-YKZ4WU4P.js +33 -0
  87. package/dist/chunk-YKZ4WU4P.js.map +1 -0
  88. package/dist/{chunk-O5LEQHDM.js → chunk-Z7WEVGCL.js} +3 -3
  89. package/dist/{chunk-YBW5JSA3.js → chunk-ZDCRWCGZ.js} +119 -101
  90. package/dist/chunk-ZDCRWCGZ.js.map +1 -0
  91. package/dist/claude-provider-account-authority.d.ts +18 -0
  92. package/dist/claude-subscription-oauth.d.ts +42 -0
  93. package/dist/claude-subscription-usage.d.ts +159 -0
  94. package/dist/client-error-report.d.ts +158 -0
  95. package/dist/client-error-report.js +164 -0
  96. package/dist/client-error-report.js.map +1 -0
  97. package/dist/code-search.d.ts +52 -0
  98. package/dist/code-search.js +40 -0
  99. package/dist/code-search.js.map +1 -0
  100. package/dist/codex-provider-account-authority.js +20 -12
  101. package/dist/codex-provider-account-authority.js.map +1 -1
  102. package/dist/company-brain.d.ts +19 -81
  103. package/dist/company-profile.d.ts +144 -6
  104. package/dist/connect.d.ts +37 -0
  105. package/dist/connect.js +216 -159
  106. package/dist/connect.js.map +1 -1
  107. package/dist/connection-account-label.d.ts +2 -0
  108. package/dist/connection-account-label.js +35 -0
  109. package/dist/connection-account-label.js.map +1 -0
  110. package/dist/connection-authority.d.ts +9 -317
  111. package/dist/connection-authority.js +37 -42
  112. package/dist/connector-attachments.js +2 -1
  113. package/dist/connector-destinations.js +2 -1
  114. package/dist/connector-tool-permissions.d.ts +137 -0
  115. package/dist/cua-desktop-tools.d.ts +17 -0
  116. package/dist/define-schema.d.ts +8 -0
  117. package/dist/direct-model-provider.d.ts +36 -0
  118. package/dist/editable-artifact-codec-registry.js +5 -5
  119. package/dist/editable-artifact-committed-transaction.js +3 -2
  120. package/dist/editable-artifact-live.js +5 -5
  121. package/dist/editable-artifact-serialized-commit.js +6 -6
  122. package/dist/editable-artifact-versions.d.ts +7 -1
  123. package/dist/editable-artifact-versions.js +1 -1
  124. package/dist/editable-artifacts.js +62 -56
  125. package/dist/event-preview.d.ts +22 -0
  126. package/dist/external-identities.d.ts +174 -0
  127. package/dist/external-identities.js +15 -4
  128. package/dist/first-party-tool-authorization.d.ts +815 -0
  129. package/dist/github-repository-contracts.js +60 -43
  130. package/dist/github-repository-contracts.js.map +1 -1
  131. package/dist/google-drive.d.ts +2 -1
  132. package/dist/google-drive.js +305 -238
  133. package/dist/google-drive.js.map +1 -1
  134. package/dist/host-mcp-bindings.d.ts +39 -10
  135. package/dist/host-mcp-bindings.js +256 -171
  136. package/dist/host-mcp-bindings.js.map +1 -1
  137. package/dist/image-generation.d.ts +1 -0
  138. package/dist/index.d.ts +15715 -3850
  139. package/dist/index.js +2088 -289
  140. package/dist/insights-usage.d.ts +877 -0
  141. package/dist/insights-usage.js +559 -0
  142. package/dist/insights-usage.js.map +1 -0
  143. package/dist/interaction.d.ts +1176 -829
  144. package/dist/knowledge-entries.d.ts +984 -0
  145. package/dist/knowledge-preparation.d.ts +239 -0
  146. package/dist/managed-auth-session-sets.d.ts +7 -0
  147. package/dist/managed-auth-session-sets.js +198 -132
  148. package/dist/managed-auth-session-sets.js.map +1 -1
  149. package/dist/managed-sign-in-methods.d.ts +56 -0
  150. package/dist/managed-sign-in-methods.js +64 -0
  151. package/dist/managed-sign-in-methods.js.map +1 -0
  152. package/dist/mcp-catalog-limits.d.ts +2 -0
  153. package/dist/mcp-endpoint.js +9 -0
  154. package/dist/mcp-endpoint.js.map +1 -0
  155. package/dist/mcp-oauth.d.ts +2 -2
  156. package/dist/mcp-structured-content.d.ts +25 -0
  157. package/dist/modal-native-proof-v2.d.ts +587 -0
  158. package/dist/modal-native-proof-v2.js +38 -0
  159. package/dist/modal-native-proof-v2.js.map +1 -0
  160. package/dist/model-account-choice.d.ts +235 -0
  161. package/dist/model-account-settings.d.ts +422 -0
  162. package/dist/model-availability.d.ts +15 -0
  163. package/dist/model-connection-access.d.ts +13 -0
  164. package/dist/model-context-inspector.d.ts +98 -0
  165. package/dist/model-display.d.ts +43 -0
  166. package/dist/model-display.js +17 -0
  167. package/dist/model-display.js.map +1 -0
  168. package/dist/model-picker-order.d.ts +3 -1
  169. package/dist/model-picker-order.js +3 -0
  170. package/dist/model-picker-order.js.map +1 -1
  171. package/dist/organization-access.d.ts +412 -0
  172. package/dist/organization-access.js +39 -0
  173. package/dist/organization-access.js.map +1 -0
  174. package/dist/organization-integration-policy.d.ts +27 -0
  175. package/dist/organization-membership-lifecycle.d.ts +38 -0
  176. package/dist/organization-model-usage.d.ts +146 -0
  177. package/dist/organization-model-usage.js +78 -0
  178. package/dist/organization-model-usage.js.map +1 -0
  179. package/dist/organization-recovery.js +2 -1
  180. package/dist/organization-usage.d.ts +138 -0
  181. package/dist/permissions.d.ts +18 -0
  182. package/dist/personal-github.d.ts +1 -0
  183. package/dist/personal-github.js +199 -144
  184. package/dist/personal-github.js.map +1 -1
  185. package/dist/plugin-discovery.js +1 -1
  186. package/dist/prepared-mcp-setup.d.ts +54 -0
  187. package/dist/prepared-mcp-setup.js +12 -0
  188. package/dist/prepared-mcp-setup.js.map +1 -0
  189. package/dist/product-analytics.d.ts +116 -0
  190. package/dist/product-lifecycle-facts.d.ts +73 -0
  191. package/dist/remember.d.ts +98 -6
  192. package/dist/retained-output.d.ts +8 -0
  193. package/dist/sandbox-file-artifacts.d.ts +1 -0
  194. package/dist/sandbox-provider-command.d.ts +91 -1
  195. package/dist/sandbox-recovery.d.ts +146 -0
  196. package/dist/secret-generator.d.ts +44 -0
  197. package/dist/secret-references.d.ts +90 -0
  198. package/dist/secret-resolution.d.ts +111 -0
  199. package/dist/secret-totp.d.ts +41 -0
  200. package/dist/session-final-reply.d.ts +6 -0
  201. package/dist/session-final-reply.js +9 -0
  202. package/dist/session-final-reply.js.map +1 -0
  203. package/dist/session-goal-reports.d.ts +21 -0
  204. package/dist/session-history-import.d.ts +1272 -0
  205. package/dist/session-list-entries.d.ts +4 -0
  206. package/dist/session-list-entries.js +56 -0
  207. package/dist/session-list-entries.js.map +1 -0
  208. package/dist/session-mcp-projections.d.ts +6 -0
  209. package/dist/session-mcp-tool-permissions.d.ts +62 -0
  210. package/dist/session-message-search.d.ts +68 -0
  211. package/dist/session-target.d.ts +18 -0
  212. package/dist/session-titles.d.ts +8 -0
  213. package/dist/session-titles.js +5 -1
  214. package/dist/session-usage-limit-refusal.d.ts +34 -0
  215. package/dist/session-usage-limit-refusal.js +15 -0
  216. package/dist/session-usage-limit-refusal.js.map +1 -0
  217. package/dist/session-usage-limits.d.ts +127 -0
  218. package/dist/session-usage-limits.js +41 -0
  219. package/dist/session-usage-limits.js.map +1 -0
  220. package/dist/signup-attribution.d.ts +39 -0
  221. package/dist/site-data.d.ts +286 -0
  222. package/dist/site-operations.d.ts +39 -0
  223. package/dist/site-publishing.d.ts +778 -0
  224. package/dist/site-session-http.d.ts +89 -4
  225. package/dist/site-session-http.js +25 -1
  226. package/dist/site-sql.d.ts +421 -0
  227. package/dist/skill-catalog-context.d.ts +7 -0
  228. package/dist/skill-files.d.ts +1 -1
  229. package/dist/skill-use.d.ts +61 -0
  230. package/dist/skills.d.ts +15 -0
  231. package/dist/slack-bot-scopes.d.ts +17 -12
  232. package/dist/slack-bot-scopes.js +10 -3
  233. package/dist/slack-rest-mcp.d.ts +36 -0
  234. package/dist/slack-rest-mcp.js +25 -0
  235. package/dist/slack-rest-mcp.js.map +1 -0
  236. package/dist/spreadsheet-artifact-commands.d.ts +14 -1
  237. package/dist/spreadsheet-artifact-commands.js +8 -2
  238. package/dist/spreadsheet-artifact-query.d.ts +13 -6
  239. package/dist/spreadsheet-artifact-query.js +3 -3
  240. package/dist/subscription-account-actions.d.ts +64 -0
  241. package/dist/subscription-account-pools.d.ts +292 -0
  242. package/dist/subscription-personal-authority-v2.d.ts +28 -0
  243. package/dist/subscription-personal-authority-v2.js +12 -0
  244. package/dist/subscription-personal-authority-v2.js.map +1 -0
  245. package/dist/tool-action-review.d.ts +132 -0
  246. package/dist/tool-catalog.d.ts +408 -0
  247. package/dist/tool-policy.d.ts +5 -0
  248. package/dist/tool-review-presentation.d.ts +12 -0
  249. package/dist/tool-review-presentation.js +17 -0
  250. package/dist/tool-review-presentation.js.map +1 -0
  251. package/dist/transcription-recordings.d.ts +21 -0
  252. package/dist/turn-serving-policy.d.ts +221 -0
  253. package/dist/usage-allowances.d.ts +314 -0
  254. package/dist/usage-allowances.js +52 -0
  255. package/dist/usage-allowances.js.map +1 -0
  256. package/dist/vaults.d.ts +1286 -0
  257. package/dist/video-generation.d.ts +3 -0
  258. package/dist/video-generation.js +2 -1
  259. package/dist/workspace-instruction-policies.d.ts +13 -0
  260. package/dist/workspace-integration-wire.d.ts +36 -0
  261. package/dist/workspace-integration-wire.js +23 -0
  262. package/dist/workspace-integration-wire.js.map +1 -0
  263. package/dist/workspace-integrations.d.ts +1028 -0
  264. package/dist/workspace-state.d.ts +85 -416
  265. package/dist/xai-provider-account-authority.js +2 -1
  266. package/package.json +98 -2
  267. package/src/agent-authored-durable-text.ts +14 -11
  268. package/src/agent-config.ts +1698 -0
  269. package/src/agent-instruction-changes.ts +115 -0
  270. package/src/agent-learning.ts +188 -0
  271. package/src/agent-topology.ts +57 -52
  272. package/src/allowance-refusal.ts +81 -0
  273. package/src/analytics-consent-report.ts +20 -0
  274. package/src/api-key-presets.ts +28 -0
  275. package/src/artifact-catalog.ts +82 -0
  276. package/src/artifacts.ts +299 -227
  277. package/src/atlassian-native-retirement.ts +33 -0
  278. package/src/atlassian.ts +135 -108
  279. package/src/browser-storage.ts +10 -0
  280. package/src/bundled-skills.ts +60 -17
  281. package/src/canonical-human-identities.ts +60 -58
  282. package/src/claude-provider-account-authority.ts +12 -0
  283. package/src/claude-subscription-oauth.ts +73 -0
  284. package/src/claude-subscription-usage.ts +68 -0
  285. package/src/client-error-report.ts +343 -0
  286. package/src/code-search.ts +105 -0
  287. package/src/codex-provider-account-authority.ts +21 -16
  288. package/src/company-brain-governed-writes.ts +255 -233
  289. package/src/company-brain.ts +164 -153
  290. package/src/company-profile.ts +365 -292
  291. package/src/connect.ts +212 -173
  292. package/src/connection-account-label.ts +46 -0
  293. package/src/connection-authority.ts +183 -364
  294. package/src/connector-attachments.ts +137 -122
  295. package/src/connector-destinations.ts +46 -42
  296. package/src/connector-tool-permissions.ts +117 -0
  297. package/src/cua-desktop-tools.gen.json +6512 -0
  298. package/src/cua-desktop-tools.linux.gen.json +6600 -0
  299. package/src/cua-desktop-tools.ts +36 -0
  300. package/src/cua-desktop-tools.windows.gen.json +6353 -0
  301. package/src/define-schema.ts +10 -0
  302. package/src/direct-model-provider.ts +108 -0
  303. package/src/editable-artifact-committed-transaction.ts +17 -0
  304. package/src/editable-artifact-versions.ts +7 -1
  305. package/src/event-preview.ts +53 -3
  306. package/src/external-identities.ts +262 -145
  307. package/src/feedback.ts +43 -30
  308. package/src/first-party-tool-authorization.ts +356 -0
  309. package/src/github-repository-contracts.ts +78 -64
  310. package/src/google-drive.ts +285 -234
  311. package/src/governed-learning-activation.ts +152 -131
  312. package/src/governed-learning-evaluator.ts +140 -133
  313. package/src/host-mcp-bindings.ts +292 -198
  314. package/src/image-generation.ts +104 -95
  315. package/src/index.ts +13354 -8654
  316. package/src/insights-usage.ts +727 -0
  317. package/src/interaction.ts +3070 -2326
  318. package/src/knowledge-entries.ts +428 -0
  319. package/src/knowledge-preparation.ts +57 -0
  320. package/src/knowledge.ts +246 -213
  321. package/src/managed-auth-session-sets.ts +220 -144
  322. package/src/managed-sign-in-methods.ts +52 -0
  323. package/src/mcp-catalog-limits.ts +2 -0
  324. package/src/mcp-oauth.ts +43 -34
  325. package/src/mcp-receipts.ts +192 -192
  326. package/src/mcp-structured-content.ts +81 -0
  327. package/src/memory-slack-delivery.ts +171 -142
  328. package/src/modal-native-proof-v2.ts +429 -0
  329. package/src/model-account-choice.ts +177 -0
  330. package/src/model-account-settings.ts +210 -0
  331. package/src/model-availability.ts +22 -0
  332. package/src/model-connection-access.ts +61 -14
  333. package/src/model-context-inspector.ts +133 -99
  334. package/src/model-display.ts +221 -0
  335. package/src/model-picker-order.ts +12 -1
  336. package/src/organization-access.ts +217 -0
  337. package/src/organization-integration-policy.ts +63 -0
  338. package/src/organization-membership-lifecycle.ts +528 -382
  339. package/src/organization-model-usage.ts +81 -0
  340. package/src/organization-recovery.ts +147 -135
  341. package/src/organization-usage.ts +94 -0
  342. package/src/permissions.ts +88 -52
  343. package/src/personal-github.ts +210 -171
  344. package/src/preference-registry.ts +314 -258
  345. package/src/prepared-mcp-setup.ts +189 -0
  346. package/src/product-analytics.ts +261 -0
  347. package/src/product-lifecycle-facts.ts +122 -0
  348. package/src/remember.ts +181 -167
  349. package/src/retained-output.ts +194 -165
  350. package/src/sandbox-file-artifacts.ts +60 -47
  351. package/src/sandbox-provider-command.ts +88 -20
  352. package/src/sandbox-recovery.ts +129 -0
  353. package/src/scoped-knowledge.ts +61 -43
  354. package/src/secret-generator.ts +155 -0
  355. package/src/secret-references.ts +414 -0
  356. package/src/secret-resolution.ts +274 -0
  357. package/src/secret-totp.ts +188 -0
  358. package/src/session-final-reply.ts +16 -0
  359. package/src/session-goal-reports.ts +64 -0
  360. package/src/session-history-import.ts +177 -0
  361. package/src/session-list-entries.ts +96 -0
  362. package/src/session-mcp-projections.ts +11 -0
  363. package/src/session-mcp-tool-permissions.ts +108 -0
  364. package/src/session-message-search.ts +61 -0
  365. package/src/session-target.ts +57 -0
  366. package/src/session-titles.ts +80 -10
  367. package/src/session-topology-primitives.ts +19 -12
  368. package/src/session-usage-limit-refusal.ts +101 -0
  369. package/src/session-usage-limits.ts +171 -0
  370. package/src/signup-attribution.ts +86 -0
  371. package/src/site-data.ts +339 -0
  372. package/src/site-operations.ts +154 -0
  373. package/src/site-publishing.ts +876 -0
  374. package/src/site-session-http.ts +294 -16
  375. package/src/site-sql.ts +1123 -0
  376. package/src/skill-catalog-context.ts +50 -0
  377. package/src/skill-files.ts +3 -3
  378. package/src/skill-use.ts +80 -0
  379. package/src/skills.ts +82 -54
  380. package/src/slack-bot-scopes.ts +31 -39
  381. package/src/slack-rest-mcp.ts +222 -0
  382. package/src/slack-task-policy.ts +96 -73
  383. package/src/spreadsheet-artifact-commands.ts +73 -2
  384. package/src/spreadsheet-artifact-query.ts +187 -39
  385. package/src/subscription-account-actions.ts +84 -0
  386. package/src/subscription-account-pools.ts +53 -0
  387. package/src/subscription-personal-authority-v2.ts +66 -0
  388. package/src/task-notes.ts +55 -51
  389. package/src/tool-action-review.ts +258 -0
  390. package/src/tool-catalog.ts +609 -372
  391. package/src/tool-policy.ts +82 -0
  392. package/src/tool-result-spill.ts +12 -9
  393. package/src/tool-review-presentation.ts +385 -0
  394. package/src/transcription-recordings.ts +145 -131
  395. package/src/turn-serving-policy.ts +166 -0
  396. package/src/usage-allowances.ts +248 -0
  397. package/src/vaults.ts +850 -0
  398. package/src/video-generation.ts +385 -360
  399. package/src/work-claims.ts +173 -149
  400. package/src/workspace-instruction-policies.ts +349 -275
  401. package/src/workspace-integration-wire.ts +101 -0
  402. package/src/workspace-integrations.ts +724 -0
  403. package/src/workspace-learning-administration.ts +57 -44
  404. package/src/workspace-learning-policy.ts +127 -96
  405. package/src/workspace-state.ts +253 -333
  406. package/src/xai-provider-account-authority.ts +22 -17
  407. package/dist/chunk-3SIZGL3O.js.map +0 -1
  408. package/dist/chunk-7ABONTXE.js.map +0 -1
  409. package/dist/chunk-BCS7WHCK.js +0 -139
  410. package/dist/chunk-BCS7WHCK.js.map +0 -1
  411. package/dist/chunk-GRG7PHWQ.js +0 -25
  412. package/dist/chunk-GRG7PHWQ.js.map +0 -1
  413. package/dist/chunk-JUFK3T4Q.js +0 -80
  414. package/dist/chunk-JUFK3T4Q.js.map +0 -1
  415. package/dist/chunk-M5ZGRVIQ.js +0 -719
  416. package/dist/chunk-M5ZGRVIQ.js.map +0 -1
  417. package/dist/chunk-MRWYRAS5.js.map +0 -1
  418. package/dist/chunk-OSBYTE3O.js +0 -348
  419. package/dist/chunk-OSBYTE3O.js.map +0 -1
  420. package/dist/chunk-P3HLDT77.js +0 -59
  421. package/dist/chunk-P3HLDT77.js.map +0 -1
  422. package/dist/chunk-TEMFILR7.js +0 -143
  423. package/dist/chunk-TEMFILR7.js.map +0 -1
  424. package/dist/chunk-TXTQIYCV.js.map +0 -1
  425. package/dist/chunk-UR2GFYIE.js +0 -22598
  426. package/dist/chunk-UR2GFYIE.js.map +0 -1
  427. package/dist/chunk-WYBDERIY.js.map +0 -1
  428. package/dist/chunk-Y3KNXVTD.js.map +0 -1
  429. package/dist/chunk-YBW5JSA3.js.map +0 -1
  430. package/dist/chunk-YRXAWWCU.js +0 -45
  431. package/dist/chunk-YRXAWWCU.js.map +0 -1
  432. /package/dist/{chunk-5LYFSZ7O.js.map → chunk-352X6ENP.js.map} +0 -0
  433. /package/dist/{chunk-WBYTNVIW.js.map → chunk-RKX3NQYS.js.map} +0 -0
  434. /package/dist/{chunk-O5LEQHDM.js.map → chunk-Z7WEVGCL.js.map} +0 -0
@@ -0,0 +1,4 @@
1
+ import type { Session, SessionListEntry } from "./index.js";
2
+ /** Explicit list projection. Detail/configuration remains available from getSession. */
3
+ export type SessionListEntryInput = Omit<SessionListEntry, "displayTitle" | "renameSeed" | "scheduledTaskId" | "siteOrigin" | "pinned" | "pinnedAt" | "pinVersion" | "unread" | "activelyWorking" | "attentionVersion" | "archived" | "archivedAt" | "archiveVersion"> & Partial<Pick<Session, "pinned" | "pinnedAt" | "pinVersion" | "unread" | "activelyWorking" | "attentionVersion" | "archived" | "archivedAt" | "archiveVersion">> & Pick<Session, "metadata" | "initialMessage">;
4
+ export declare function sessionListEntry(session: SessionListEntryInput): SessionListEntry;
@@ -0,0 +1,56 @@
1
+ import {
2
+ deriveAutomaticSessionTitlePreview,
3
+ deriveSessionDisplayTitle,
4
+ sessionTitleIsPending
5
+ } from "./chunk-E3GGUBHS.js";
6
+
7
+ // src/session-list-entries.ts
8
+ function sessionListEntry(session) {
9
+ const origin = session.metadata._opengeniSiteOrigin;
10
+ const siteOrigin = origin && typeof origin.siteId === "string" && /^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/i.test(origin.siteId) && typeof origin.title === "string" ? { siteId: origin.siteId, title: origin.title } : null;
11
+ const scheduledTaskId = session.metadata.scheduledTaskId;
12
+ return {
13
+ id: session.id,
14
+ workspaceId: session.workspaceId,
15
+ accountId: session.accountId,
16
+ status: session.status,
17
+ backgroundCommandActivity: session.backgroundCommandActivity,
18
+ hasSchedules: session.hasSchedules,
19
+ title: session.title,
20
+ titleSource: session.titleSource,
21
+ displayTitle: deriveSessionDisplayTitle(session),
22
+ renameSeed: sessionTitleIsPending(session) ? deriveAutomaticSessionTitlePreview(session.initialMessage) ?? "" : session.title?.trim() ?? "",
23
+ scheduledTaskId: typeof scheduledTaskId === "string" && scheduledTaskId.length > 0 ? scheduledTaskId : null,
24
+ siteOrigin,
25
+ ...session.model ? { model: session.model } : {},
26
+ ...session.reasoningEffort ? { reasoningEffort: session.reasoningEffort } : {},
27
+ createdBy: session.createdBy,
28
+ channelId: session.channelId,
29
+ parentSessionId: session.parentSessionId,
30
+ rootSessionId: session.rootSessionId,
31
+ effectiveControl: session.effectiveControl,
32
+ inputWait: session.inputWait,
33
+ lastSequence: session.lastSequence,
34
+ pinned: session.pinned ?? false,
35
+ pinnedAt: session.pinnedAt ?? null,
36
+ pinVersion: session.pinVersion ?? 0,
37
+ unread: session.unread ?? false,
38
+ activelyWorking: session.activelyWorking ?? false,
39
+ attentionVersion: session.attentionVersion ?? 0,
40
+ archived: session.archived ?? false,
41
+ archivedAt: session.archivedAt ?? null,
42
+ importedArchive: session.importedArchive,
43
+ ...session.retention ? { retention: session.retention } : {},
44
+ archiveVersion: session.archiveVersion ?? 0,
45
+ treeStats: session.treeStats,
46
+ requiresActionSince: session.requiresActionSince,
47
+ // Lets lists tell a runtime-held session apart from one waiting on a person.
48
+ ...session.admissionBlock !== void 0 ? { admissionBlock: session.admissionBlock } : {},
49
+ createdAt: session.createdAt,
50
+ updatedAt: session.updatedAt
51
+ };
52
+ }
53
+ export {
54
+ sessionListEntry
55
+ };
56
+ //# sourceMappingURL=session-list-entries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/session-list-entries.ts"],"sourcesContent":["import type { Session, SessionListEntry } from \"./index\";\nimport {\n deriveAutomaticSessionTitlePreview,\n deriveSessionDisplayTitle,\n sessionTitleIsPending,\n} from \"./session-titles\";\n\n/** Explicit list projection. Detail/configuration remains available from getSession. */\nexport type SessionListEntryInput = Omit<\n SessionListEntry,\n | \"displayTitle\"\n | \"renameSeed\"\n | \"scheduledTaskId\"\n | \"siteOrigin\"\n | \"pinned\"\n | \"pinnedAt\"\n | \"pinVersion\"\n | \"unread\"\n | \"activelyWorking\"\n | \"attentionVersion\"\n | \"archived\"\n | \"archivedAt\"\n | \"archiveVersion\"\n> &\n Partial<\n Pick<\n Session,\n | \"pinned\"\n | \"pinnedAt\"\n | \"pinVersion\"\n | \"unread\"\n | \"activelyWorking\"\n | \"attentionVersion\"\n | \"archived\"\n | \"archivedAt\"\n | \"archiveVersion\"\n >\n > &\n Pick<Session, \"metadata\" | \"initialMessage\">;\n\nexport function sessionListEntry(session: SessionListEntryInput): SessionListEntry {\n const origin = session.metadata._opengeniSiteOrigin as\n | { siteId?: unknown; title?: unknown }\n | undefined;\n const siteOrigin =\n origin &&\n typeof origin.siteId === \"string\" &&\n /^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/i.test(origin.siteId) &&\n typeof origin.title === \"string\"\n ? { siteId: origin.siteId, title: origin.title }\n : null;\n const scheduledTaskId = session.metadata.scheduledTaskId;\n return {\n id: session.id,\n workspaceId: session.workspaceId,\n accountId: session.accountId,\n status: session.status,\n backgroundCommandActivity: session.backgroundCommandActivity,\n hasSchedules: session.hasSchedules,\n title: session.title,\n titleSource: session.titleSource,\n displayTitle: deriveSessionDisplayTitle(session),\n renameSeed: sessionTitleIsPending(session)\n ? (deriveAutomaticSessionTitlePreview(session.initialMessage) ?? \"\")\n : (session.title?.trim() ?? \"\"),\n scheduledTaskId:\n typeof scheduledTaskId === \"string\" && scheduledTaskId.length > 0 ? scheduledTaskId : null,\n siteOrigin,\n ...(session.model ? { model: session.model } : {}),\n ...(session.reasoningEffort ? { reasoningEffort: session.reasoningEffort } : {}),\n createdBy: session.createdBy,\n channelId: session.channelId,\n parentSessionId: session.parentSessionId,\n rootSessionId: session.rootSessionId,\n effectiveControl: session.effectiveControl,\n inputWait: session.inputWait,\n lastSequence: session.lastSequence,\n pinned: session.pinned ?? false,\n pinnedAt: session.pinnedAt ?? null,\n pinVersion: session.pinVersion ?? 0,\n unread: session.unread ?? false,\n activelyWorking: session.activelyWorking ?? false,\n attentionVersion: session.attentionVersion ?? 0,\n archived: session.archived ?? false,\n archivedAt: session.archivedAt ?? null,\n importedArchive: session.importedArchive,\n ...(session.retention ? { retention: session.retention } : {}),\n archiveVersion: session.archiveVersion ?? 0,\n treeStats: session.treeStats,\n requiresActionSince: session.requiresActionSince,\n // Lets lists tell a runtime-held session apart from one waiting on a person.\n ...(session.admissionBlock !== undefined ? { admissionBlock: session.admissionBlock } : {}),\n createdAt: session.createdAt,\n updatedAt: session.updatedAt,\n };\n}\n"],"mappings":";;;;;;;AAwCO,SAAS,iBAAiB,SAAkD;AACjF,QAAM,SAAS,QAAQ,SAAS;AAGhC,QAAM,aACJ,UACA,OAAO,OAAO,WAAW,YACzB,6DAA6D,KAAK,OAAO,MAAM,KAC/E,OAAO,OAAO,UAAU,WACpB,EAAE,QAAQ,OAAO,QAAQ,OAAO,OAAO,MAAM,IAC7C;AACN,QAAM,kBAAkB,QAAQ,SAAS;AACzC,SAAO;AAAA,IACL,IAAI,QAAQ;AAAA,IACZ,aAAa,QAAQ;AAAA,IACrB,WAAW,QAAQ;AAAA,IACnB,QAAQ,QAAQ;AAAA,IAChB,2BAA2B,QAAQ;AAAA,IACnC,cAAc,QAAQ;AAAA,IACtB,OAAO,QAAQ;AAAA,IACf,aAAa,QAAQ;AAAA,IACrB,cAAc,0BAA0B,OAAO;AAAA,IAC/C,YAAY,sBAAsB,OAAO,IACpC,mCAAmC,QAAQ,cAAc,KAAK,KAC9D,QAAQ,OAAO,KAAK,KAAK;AAAA,IAC9B,iBACE,OAAO,oBAAoB,YAAY,gBAAgB,SAAS,IAAI,kBAAkB;AAAA,IACxF;AAAA,IACA,GAAI,QAAQ,QAAQ,EAAE,OAAO,QAAQ,MAAM,IAAI,CAAC;AAAA,IAChD,GAAI,QAAQ,kBAAkB,EAAE,iBAAiB,QAAQ,gBAAgB,IAAI,CAAC;AAAA,IAC9E,WAAW,QAAQ;AAAA,IACnB,WAAW,QAAQ;AAAA,IACnB,iBAAiB,QAAQ;AAAA,IACzB,eAAe,QAAQ;AAAA,IACvB,kBAAkB,QAAQ;AAAA,IAC1B,WAAW,QAAQ;AAAA,IACnB,cAAc,QAAQ;AAAA,IACtB,QAAQ,QAAQ,UAAU;AAAA,IAC1B,UAAU,QAAQ,YAAY;AAAA,IAC9B,YAAY,QAAQ,cAAc;AAAA,IAClC,QAAQ,QAAQ,UAAU;AAAA,IAC1B,iBAAiB,QAAQ,mBAAmB;AAAA,IAC5C,kBAAkB,QAAQ,oBAAoB;AAAA,IAC9C,UAAU,QAAQ,YAAY;AAAA,IAC9B,YAAY,QAAQ,cAAc;AAAA,IAClC,iBAAiB,QAAQ;AAAA,IACzB,GAAI,QAAQ,YAAY,EAAE,WAAW,QAAQ,UAAU,IAAI,CAAC;AAAA,IAC5D,gBAAgB,QAAQ,kBAAkB;AAAA,IAC1C,WAAW,QAAQ;AAAA,IACnB,qBAAqB,QAAQ;AAAA;AAAA,IAE7B,GAAI,QAAQ,mBAAmB,SAAY,EAAE,gBAAgB,QAAQ,eAAe,IAAI,CAAC;AAAA,IACzF,WAAW,QAAQ;AAAA,IACnB,WAAW,QAAQ;AAAA,EACrB;AACF;","names":[]}
@@ -166,6 +166,12 @@ export declare function compactSessionMcpDetail(session: Session, monitoring: Se
166
166
  parentSessionId?: string;
167
167
  activeTurnId?: string;
168
168
  lastSequence: number;
169
+ archive?: {
170
+ state: "archived" | "archiving";
171
+ archivedAt: string | null;
172
+ readOnly: boolean;
173
+ };
174
+ keepLive?: boolean;
169
175
  goal?: {
170
176
  status: "active" | "completed" | "paused";
171
177
  summary: string | null;
@@ -0,0 +1,62 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Tool `_meta` key an MCP server sets in `tools/list` to recommend a default
4
+ * permission for that tool: `"ask"` or `"allow"`. Like `requireApproval`, it
5
+ * applies only when the workspace has no saved choice for the tool and no
6
+ * server default. The tool asks when either this or `requireApproval` says so.
7
+ */
8
+ export declare const MCP_TOOL_RECOMMENDED_PERMISSION_META_KEY: "opengeni/recommendedPermission";
9
+ /** True when a listed MCP tool recommends Ask through its `_meta`. */
10
+ export declare function mcpToolRecommendsApproval(tool: object): boolean;
11
+ export declare const SessionMcpToolPermissionsQuery: z.ZodObject<{
12
+ serverId: z.ZodString;
13
+ url: z.ZodString;
14
+ }, z.core.$strict>;
15
+ export type SessionMcpToolPermissionsQuery = z.infer<typeof SessionMcpToolPermissionsQuery>;
16
+ /** Saved choices only. Tools without a rule follow `defaultPermission`, then
17
+ * the server's recommendation (the tool's `opengeni/recommendedPermission`
18
+ * `_meta`, or the attaching session's `requireApproval`), then Allow. */
19
+ export declare const SessionMcpToolPermissionsResponse: z.ZodObject<{
20
+ connectionId: z.ZodString;
21
+ serverId: z.ZodString;
22
+ defaultPermission: z.ZodNullable<z.ZodEnum<{
23
+ allow: "allow";
24
+ ask: "ask";
25
+ block: "block";
26
+ }>>;
27
+ tools: z.ZodArray<z.ZodObject<{
28
+ toolName: z.ZodString;
29
+ permission: z.ZodEnum<{
30
+ allow: "allow";
31
+ ask: "ask";
32
+ block: "block";
33
+ }>;
34
+ }, z.core.$strip>>;
35
+ revision: z.ZodString;
36
+ canManage: z.ZodBoolean;
37
+ appliesTo: z.ZodLiteral<"next_attempt">;
38
+ }, z.core.$strip>;
39
+ export type SessionMcpToolPermissionsResponse = z.infer<typeof SessionMcpToolPermissionsResponse>;
40
+ export declare const UpdateSessionMcpToolPermissionsRequest: z.ZodDiscriminatedUnion<[z.ZodObject<{
41
+ serverId: z.ZodString;
42
+ url: z.ZodString;
43
+ target: z.ZodLiteral<"default">;
44
+ permission: z.ZodNullable<z.ZodEnum<{
45
+ allow: "allow";
46
+ ask: "ask";
47
+ block: "block";
48
+ }>>;
49
+ expectedRevision: z.ZodOptional<z.ZodString>;
50
+ }, z.core.$strict>, z.ZodObject<{
51
+ serverId: z.ZodString;
52
+ url: z.ZodString;
53
+ target: z.ZodLiteral<"tools">;
54
+ toolNames: z.ZodArray<z.ZodString>;
55
+ permission: z.ZodNullable<z.ZodEnum<{
56
+ allow: "allow";
57
+ ask: "ask";
58
+ block: "block";
59
+ }>>;
60
+ expectedRevision: z.ZodOptional<z.ZodString>;
61
+ }, z.core.$strict>], "target">;
62
+ export type UpdateSessionMcpToolPermissionsRequest = z.infer<typeof UpdateSessionMcpToolPermissionsRequest>;
@@ -0,0 +1,68 @@
1
+ import { z } from "zod";
2
+ /** Literal Unicode case-insensitive search, without trimming or normalization. */
3
+ export declare const SessionMessageSearchRequest: z.ZodObject<{
4
+ query: z.ZodString;
5
+ sessionId: z.ZodOptional<z.ZodString>;
6
+ groupBy: z.ZodOptional<z.ZodLiteral<"session">>;
7
+ archiveStatus: z.ZodOptional<z.ZodEnum<{
8
+ active: "active";
9
+ all: "all";
10
+ archived: "archived";
11
+ }>>;
12
+ limit: z.ZodOptional<z.ZodNumber>;
13
+ cursor: z.ZodOptional<z.ZodString>;
14
+ }, z.core.$strict>;
15
+ export type SessionMessageSearchRequest = z.infer<typeof SessionMessageSearchRequest>;
16
+ export declare const SessionMessageSearchMatch: z.ZodObject<{
17
+ sessionId: z.ZodString;
18
+ sessionTitle: z.ZodNullable<z.ZodString>;
19
+ eventId: z.ZodString;
20
+ sequence: z.ZodNumber;
21
+ turnId: z.ZodNullable<z.ZodString>;
22
+ role: z.ZodEnum<{
23
+ assistant: "assistant";
24
+ user: "user";
25
+ }>;
26
+ messageId: z.ZodNullable<z.ZodString>;
27
+ messageMatchOffset: z.ZodNumber;
28
+ snippet: z.ZodObject<{
29
+ text: z.ZodString;
30
+ matchStart: z.ZodNumber;
31
+ matchEnd: z.ZodNumber;
32
+ }, z.core.$strip>;
33
+ }, z.core.$strip>;
34
+ export type SessionMessageSearchMatch = z.infer<typeof SessionMessageSearchMatch>;
35
+ /** A bounded scan page, not necessarily a full page of matches. Continue even
36
+ * after an empty page while hasMore is true. Counts describe this live traversal,
37
+ * not a frozen snapshot; restart to reflect concurrent changes. All non-overlapping
38
+ * literal occurrences in user messages and completed assistant messages.
39
+ * With groupBy=session, matches and both matched counts describe one first-hit
40
+ * representative per matching session, not full message/occurrence totals.
41
+ */
42
+ export declare const SessionMessageSearchResponse: z.ZodObject<{
43
+ matches: z.ZodArray<z.ZodObject<{
44
+ sessionId: z.ZodString;
45
+ sessionTitle: z.ZodNullable<z.ZodString>;
46
+ eventId: z.ZodString;
47
+ sequence: z.ZodNumber;
48
+ turnId: z.ZodNullable<z.ZodString>;
49
+ role: z.ZodEnum<{
50
+ assistant: "assistant";
51
+ user: "user";
52
+ }>;
53
+ messageId: z.ZodNullable<z.ZodString>;
54
+ messageMatchOffset: z.ZodNumber;
55
+ snippet: z.ZodObject<{
56
+ text: z.ZodString;
57
+ matchStart: z.ZodNumber;
58
+ matchEnd: z.ZodNumber;
59
+ }, z.core.$strip>;
60
+ }, z.core.$strip>>;
61
+ nextCursor: z.ZodNullable<z.ZodString>;
62
+ hasMore: z.ZodBoolean;
63
+ scannedMessages: z.ZodNumber;
64
+ matchedMessageCount: z.ZodNumber;
65
+ matchedOccurrenceCount: z.ZodNumber;
66
+ countIsExact: z.ZodBoolean;
67
+ }, z.core.$strip>;
68
+ export type SessionMessageSearchResponse = z.infer<typeof SessionMessageSearchResponse>;
@@ -0,0 +1,18 @@
1
+ import { z } from "zod";
2
+ /** Conversational context only. Never an authority or an implicit dispatch destination. */
3
+ export declare const SessionTargetContext: z.ZodObject<{
4
+ version: z.ZodNumber;
5
+ sessionId: z.ZodNullable<z.ZodString>;
6
+ operationId: z.ZodNullable<z.ZodString>;
7
+ }, z.core.$strict>;
8
+ export type SessionTargetContext = z.infer<typeof SessionTargetContext>;
9
+ export declare const SetSessionTargetRequest: z.ZodObject<{
10
+ sessionId: z.ZodNullable<z.ZodString>;
11
+ expectedVersion: z.ZodNumber;
12
+ operationId: z.ZodString;
13
+ }, z.core.$strict>;
14
+ export type SetSessionTargetRequest = z.infer<typeof SetSessionTargetRequest>;
15
+ export declare const SESSION_TARGET_CONTEXT_KEY = "conversationTargetV1";
16
+ export declare function sessionTargetContext(metadata: Record<string, unknown>): SessionTargetContext;
17
+ /** CAS plus exact retry replay; an old retry cannot restore a subsequently cleared target. */
18
+ export declare function nextSessionTargetContext(current: SessionTargetContext, request: SetSessionTargetRequest): SessionTargetContext;
@@ -12,6 +12,7 @@ export declare const AUTOMATIC_SESSION_TITLE_MAX_GRAPHEMES = 80;
12
12
  * credential or leave a raw prompt prefix in navigation surfaces.
13
13
  */
14
14
  export declare const AUTOMATIC_SESSION_TITLE_FALLBACK = "New conversation";
15
+ export declare const PROMPT_PREVIEW_SCAN_MAX_CODE_UNITS = 4096;
15
16
  /**
16
17
  * Whether a bounded automatic-title candidate contains a credential, URL, or
17
18
  * opaque identifier that must stay out of navigation and other display-title
@@ -19,6 +20,13 @@ export declare const AUTOMATIC_SESSION_TITLE_FALLBACK = "New conversation";
19
20
  * this helper.
20
21
  */
21
22
  export declare function containsSensitiveAutomaticSessionTitleValue(value: string): boolean;
23
+ /**
24
+ * Read-side cleanup for a durable title. Automatic titles written before
25
+ * control-token stripping can still hold a token ("Release plan<|fim_suffix|>");
26
+ * those keep only their first real segment, and a token-only title reads as no
27
+ * title. Human renames and titles without a token are returned unchanged.
28
+ */
29
+ export declare function cleanStoredSessionTitle(title: string | null | undefined, titleSource: string | null | undefined): string | null;
22
30
  /** Bound an already-normalized automatic-title candidate without splitting graphemes. */
23
31
  export declare function boundAutomaticSessionTitle(value: string): string;
24
32
  /**
@@ -1,19 +1,23 @@
1
1
  import {
2
2
  AUTOMATIC_SESSION_TITLE_FALLBACK,
3
3
  AUTOMATIC_SESSION_TITLE_MAX_GRAPHEMES,
4
+ PROMPT_PREVIEW_SCAN_MAX_CODE_UNITS,
4
5
  SESSION_TITLE_MAX_CHARACTERS,
5
6
  boundAutomaticSessionTitle,
7
+ cleanStoredSessionTitle,
6
8
  containsSensitiveAutomaticSessionTitleValue,
7
9
  deriveAutomaticSessionTitlePreview,
8
10
  deriveSessionDisplayTitle,
9
11
  normalizeAutomaticSessionTitle,
10
12
  sessionTitleIsPending
11
- } from "./chunk-7ABONTXE.js";
13
+ } from "./chunk-E3GGUBHS.js";
12
14
  export {
13
15
  AUTOMATIC_SESSION_TITLE_FALLBACK,
14
16
  AUTOMATIC_SESSION_TITLE_MAX_GRAPHEMES,
17
+ PROMPT_PREVIEW_SCAN_MAX_CODE_UNITS,
15
18
  SESSION_TITLE_MAX_CHARACTERS,
16
19
  boundAutomaticSessionTitle,
20
+ cleanStoredSessionTitle,
17
21
  containsSensitiveAutomaticSessionTitleValue,
18
22
  deriveAutomaticSessionTitlePreview,
19
23
  deriveSessionDisplayTitle,
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Browser/React Native-safe session usage limit helpers. Deliberately free of
3
+ * the zod runtime so synchronous timeline projection can use it; contract
4
+ * parity tests keep it aligned with `session-usage-limits.ts`.
5
+ */
6
+ /** `turn.completed.segmentLimit` for a stop caused by a task usage limit. */
7
+ export declare const SESSION_USAGE_LIMIT_SEGMENT: "session_usage_limit";
8
+ /** `SessionGoal.pausedReason` for a goal paused by a task usage limit. */
9
+ export declare const SESSION_USAGE_LIMIT_GOAL_PAUSED_REASON: "session_usage_limit";
10
+ export type ParsedSessionUsageLimitReachedRefusal = {
11
+ code: "session_usage_limit_reached";
12
+ basis: "model_api_equivalent_v1";
13
+ rootSessionId: string;
14
+ limitMicros: number;
15
+ usedMicros: number;
16
+ message: string;
17
+ };
18
+ /**
19
+ * Select only the public refusal fields from an API error body (fields may sit
20
+ * in `details`), a `turn.completed` payload's `sessionUsageLimit` record, or a
21
+ * refusal object. Anything malformed returns null instead of a guessed amount.
22
+ */
23
+ export declare function parseSessionUsageLimitReachedRefusal(value: unknown): ParsedSessionUsageLimitReachedRefusal | null;
24
+ /**
25
+ * "$12.34" for known amounts, "<$0.01" for a positive amount under a cent.
26
+ * Callers must not pass unknown usage: render "Preparing usage" or
27
+ * "Usage unavailable" instead of a dollar figure.
28
+ */
29
+ export declare function formatSessionUsageMicros(value: number): string;
30
+ /** Fixed, bounded wording: no reset date, purchase remedy or invoice claim. */
31
+ export declare function sessionUsageLimitReachedMessage(refusal: {
32
+ limitMicros: number;
33
+ usedMicros: number;
34
+ }): string;
@@ -0,0 +1,15 @@
1
+ import {
2
+ SESSION_USAGE_LIMIT_GOAL_PAUSED_REASON,
3
+ SESSION_USAGE_LIMIT_SEGMENT,
4
+ formatSessionUsageMicros,
5
+ parseSessionUsageLimitReachedRefusal,
6
+ sessionUsageLimitReachedMessage
7
+ } from "./chunk-7272KVWZ.js";
8
+ export {
9
+ SESSION_USAGE_LIMIT_GOAL_PAUSED_REASON,
10
+ SESSION_USAGE_LIMIT_SEGMENT,
11
+ formatSessionUsageMicros,
12
+ parseSessionUsageLimitReachedRefusal,
13
+ sessionUsageLimitReachedMessage
14
+ };
15
+ //# sourceMappingURL=session-usage-limit-refusal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,127 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Per-task (root session) usage limits.
4
+ *
5
+ * One optional limit belongs to a root session and is shared by every
6
+ * descendant. It is measured in integer USD micros ($1 = 1,000,000) of the
7
+ * canonical pre-margin API-equivalent model cost (`estimatedProviderCostMicros`)
8
+ * recorded when a model response settles, whatever funds the call (Opengeni
9
+ * credits, a connected subscription or a workspace-owned key).
10
+ *
11
+ * The limit is checked before each new model request; it is not a reservation.
12
+ * Requests already admitted may finish and take recorded usage above the
13
+ * limit, and concurrently admitted requests may overshoot together. Usage
14
+ * without a known price is excluded from the total and disclosed as partial
15
+ * coverage instead of being valued at zero. It is not an invoice cap.
16
+ */
17
+ /** Versioned measurement basis, exposed so a future basis cannot be confused with this one. */
18
+ export declare const SESSION_USAGE_LIMIT_BASIS: "model_api_equivalent_v1";
19
+ export declare const SessionUsageLimitBasis: z.ZodLiteral<"model_api_equivalent_v1">;
20
+ export type SessionUsageLimitBasis = z.infer<typeof SessionUsageLimitBasis>;
21
+ export declare const SESSION_USAGE_LIMIT_MICROS_PER_DOLLAR = 1000000;
22
+ /** $10M: the largest configurable limit, far inside safe integers. Usage itself is never clamped. */
23
+ export declare const SESSION_USAGE_LIMIT_MAX_MICROS: number;
24
+ /** A configured limit. Zero is a valid immediate stop; `null` (not this schema) means no limit. */
25
+ export declare const SessionUsageLimitMicros: z.ZodNumber;
26
+ export type SessionUsageLimitMicros = z.infer<typeof SessionUsageLimitMicros>;
27
+ /**
28
+ * - `unlimited`: no limit is configured; usage is still recorded.
29
+ * - `within`: a limit is configured and recorded usage is below it.
30
+ * - `reached`: recorded usage is at or above the limit; new model requests are refused.
31
+ * - `preparing`: historical usage for a task created before this feature is
32
+ * still being imported; the total is not yet meaningful and a new limit
33
+ * cannot be set until it finishes.
34
+ * - `unavailable`: the usage state could not be read. Never treat it as zero or unlimited.
35
+ */
36
+ export declare const SessionUsageLimitStatus: z.ZodEnum<{
37
+ preparing: "preparing";
38
+ reached: "reached";
39
+ unavailable: "unavailable";
40
+ unlimited: "unlimited";
41
+ within: "within";
42
+ }>;
43
+ export type SessionUsageLimitStatus = z.infer<typeof SessionUsageLimitStatus>;
44
+ /**
45
+ * `complete`: every recorded model response of this task was metered live.
46
+ * `legacy_partial`: the task predates usage limits; available historical cost
47
+ * snapshots were imported, but older usage may be missing. This never upgrades
48
+ * to complete, because a missing old record is not proof of no usage.
49
+ * `preparing`: the historical import has not finished.
50
+ */
51
+ export declare const SessionUsageLimitHistory: z.ZodEnum<{
52
+ complete: "complete";
53
+ legacy_partial: "legacy_partial";
54
+ preparing: "preparing";
55
+ }>;
56
+ export type SessionUsageLimitHistory = z.infer<typeof SessionUsageLimitHistory>;
57
+ export declare const SessionUsageLimit: z.ZodObject<{
58
+ basis: z.ZodLiteral<"model_api_equivalent_v1">;
59
+ rootSessionId: z.ZodString;
60
+ inherited: z.ZodBoolean;
61
+ status: z.ZodEnum<{
62
+ preparing: "preparing";
63
+ reached: "reached";
64
+ unavailable: "unavailable";
65
+ unlimited: "unlimited";
66
+ within: "within";
67
+ }>;
68
+ limitMicros: z.ZodNullable<z.ZodNumber>;
69
+ usedMicros: z.ZodNullable<z.ZodNumber>;
70
+ version: z.ZodNumber;
71
+ usageRevision: z.ZodNumber;
72
+ history: z.ZodEnum<{
73
+ complete: "complete";
74
+ legacy_partial: "legacy_partial";
75
+ preparing: "preparing";
76
+ }>;
77
+ coverage: z.ZodEnum<{
78
+ complete: "complete";
79
+ partial: "partial";
80
+ }>;
81
+ pricedCalls: z.ZodNumber;
82
+ freeCalls: z.ZodNumber;
83
+ unpricedCalls: z.ZodNumber;
84
+ updatedAt: z.ZodNullable<z.ZodString>;
85
+ }, z.core.$strict>;
86
+ export type SessionUsageLimit = z.infer<typeof SessionUsageLimit>;
87
+ /**
88
+ * Compare-and-set write of a root task's limit. `expectedVersion` is the
89
+ * `version` the caller last read; a stale version returns 409. A replay of the
90
+ * same `operationId` with the same request returns the committed result.
91
+ */
92
+ export declare const SetSessionUsageLimitRequest: z.ZodObject<{
93
+ limitMicros: z.ZodNullable<z.ZodNumber>;
94
+ expectedVersion: z.ZodNumber;
95
+ operationId: z.ZodString;
96
+ }, z.core.$strict>;
97
+ export type SetSessionUsageLimitRequest = z.infer<typeof SetSessionUsageLimitRequest>;
98
+ /** Typed refusal for a fresh model request, message or goal resume after the limit is reached. */
99
+ export declare const SessionUsageLimitReachedRefusal: z.ZodObject<{
100
+ code: z.ZodLiteral<"session_usage_limit_reached">;
101
+ basis: z.ZodLiteral<"model_api_equivalent_v1">;
102
+ rootSessionId: z.ZodString;
103
+ limitMicros: z.ZodNumber;
104
+ usedMicros: z.ZodNumber;
105
+ message: z.ZodString;
106
+ }, z.core.$strict>;
107
+ export type SessionUsageLimitReachedRefusal = z.infer<typeof SessionUsageLimitReachedRefusal>;
108
+ /** Typed error codes for the usage-limit routes. */
109
+ export declare const SessionUsageLimitErrorCode: z.ZodEnum<{
110
+ session_usage_limit_conflict: "session_usage_limit_conflict";
111
+ session_usage_limit_disabled: "session_usage_limit_disabled";
112
+ session_usage_limit_forbidden: "session_usage_limit_forbidden";
113
+ session_usage_limit_not_root: "session_usage_limit_not_root";
114
+ session_usage_limit_preparing: "session_usage_limit_preparing";
115
+ session_usage_limit_reached: "session_usage_limit_reached";
116
+ session_usage_limit_unavailable: "session_usage_limit_unavailable";
117
+ }>;
118
+ export type SessionUsageLimitErrorCode = z.infer<typeof SessionUsageLimitErrorCode>;
119
+ /** The durable event appended to a root's stream when an authorized person changes its limit. */
120
+ export declare const SessionUsageLimitUpdatedPayload: z.ZodObject<{
121
+ basis: z.ZodLiteral<"model_api_equivalent_v1">;
122
+ limitMicros: z.ZodNullable<z.ZodNumber>;
123
+ previousLimitMicros: z.ZodNullable<z.ZodNumber>;
124
+ version: z.ZodNumber;
125
+ }, z.core.$strict>;
126
+ export type SessionUsageLimitUpdatedPayload = z.infer<typeof SessionUsageLimitUpdatedPayload>;
127
+ export { formatSessionUsageMicros, parseSessionUsageLimitReachedRefusal, SESSION_USAGE_LIMIT_SEGMENT, SESSION_USAGE_LIMIT_GOAL_PAUSED_REASON, sessionUsageLimitReachedMessage, } from "./session-usage-limit-refusal.js";
@@ -0,0 +1,41 @@
1
+ import {
2
+ SESSION_USAGE_LIMIT_BASIS,
3
+ SESSION_USAGE_LIMIT_MAX_MICROS,
4
+ SESSION_USAGE_LIMIT_MICROS_PER_DOLLAR,
5
+ SessionUsageLimit,
6
+ SessionUsageLimitBasis,
7
+ SessionUsageLimitErrorCode,
8
+ SessionUsageLimitHistory,
9
+ SessionUsageLimitMicros,
10
+ SessionUsageLimitReachedRefusal,
11
+ SessionUsageLimitStatus,
12
+ SessionUsageLimitUpdatedPayload,
13
+ SetSessionUsageLimitRequest
14
+ } from "./chunk-OL23ARTF.js";
15
+ import {
16
+ SESSION_USAGE_LIMIT_GOAL_PAUSED_REASON,
17
+ SESSION_USAGE_LIMIT_SEGMENT,
18
+ formatSessionUsageMicros,
19
+ parseSessionUsageLimitReachedRefusal,
20
+ sessionUsageLimitReachedMessage
21
+ } from "./chunk-7272KVWZ.js";
22
+ export {
23
+ SESSION_USAGE_LIMIT_BASIS,
24
+ SESSION_USAGE_LIMIT_GOAL_PAUSED_REASON,
25
+ SESSION_USAGE_LIMIT_MAX_MICROS,
26
+ SESSION_USAGE_LIMIT_MICROS_PER_DOLLAR,
27
+ SESSION_USAGE_LIMIT_SEGMENT,
28
+ SessionUsageLimit,
29
+ SessionUsageLimitBasis,
30
+ SessionUsageLimitErrorCode,
31
+ SessionUsageLimitHistory,
32
+ SessionUsageLimitMicros,
33
+ SessionUsageLimitReachedRefusal,
34
+ SessionUsageLimitStatus,
35
+ SessionUsageLimitUpdatedPayload,
36
+ SetSessionUsageLimitRequest,
37
+ formatSessionUsageMicros,
38
+ parseSessionUsageLimitReachedRefusal,
39
+ sessionUsageLimitReachedMessage
40
+ };
41
+ //# sourceMappingURL=session-usage-limits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,39 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * First-touch marketing parameters accepted on the web app landing URL. The
4
+ * browser keeps them in memory only and forwards them with a sign-up request,
5
+ * so nothing is written to the device before analytics consent.
6
+ */
7
+ export declare const SIGNUP_ATTRIBUTION_URL_PARAMETERS: {
8
+ readonly utmSource: "utm_source";
9
+ readonly utmMedium: "utm_medium";
10
+ readonly utmCampaign: "utm_campaign";
11
+ readonly utmContent: "utm_content";
12
+ readonly ref: "ref";
13
+ };
14
+ /** Maximum retained length of one attribution value. */
15
+ export declare const SIGNUP_ATTRIBUTION_VALUE_MAX_LENGTH = 100;
16
+ /**
17
+ * Campaign labels are marketer-chosen slug tokens such as `hero-cta` or
18
+ * `opengeni.ai`. The closed character set has no space, `@`, `:`, `/`, `?`,
19
+ * `=`, or `%`, so free text, email addresses, and URL payloads are rejected
20
+ * before they reach any sink. The web boot capture and the session-set social
21
+ * start request mirror this rule; tests pin each copy to it.
22
+ */
23
+ export declare const SIGNUP_ATTRIBUTION_VALUE_PATTERN: RegExp;
24
+ export declare const SignupAttribution: z.ZodObject<{
25
+ utmSource: z.ZodOptional<z.ZodString>;
26
+ utmMedium: z.ZodOptional<z.ZodString>;
27
+ utmCampaign: z.ZodOptional<z.ZodString>;
28
+ utmContent: z.ZodOptional<z.ZodString>;
29
+ ref: z.ZodOptional<z.ZodString>;
30
+ }, z.core.$strict>;
31
+ export type SignupAttribution = z.infer<typeof SignupAttribution>;
32
+ /** Closed acquisition channels reported by server-side sign-up metrics. */
33
+ export declare const SIGNUP_ACQUISITION_SOURCES: readonly ["producthunt", "website", "direct", "other"];
34
+ export type SignupAcquisitionSource = (typeof SIGNUP_ACQUISITION_SOURCES)[number];
35
+ /**
36
+ * Normalize untrusted first-touch attribution to a closed channel. Missing
37
+ * attribution is `direct`; malformed or unrecognized attribution is `other`.
38
+ */
39
+ export declare function signupAcquisitionSource(input: unknown): SignupAcquisitionSource;