@opengeni/contracts 5.5.0 → 5.5.2-canary.40656248492001

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 (543) hide show
  1. package/dist/agent-authored-durable-text.d.ts +9 -9
  2. package/dist/agent-config.d.ts +148 -37
  3. package/dist/api-key-presets.d.ts +19 -0
  4. package/dist/app-action-catalog-types.d.ts +32 -0
  5. package/dist/app-action-catalog.gen.d.ts +2 -0
  6. package/dist/app-actions.d.ts +91 -0
  7. package/dist/app-actions.js +10130 -0
  8. package/dist/app-actions.js.map +1 -0
  9. package/dist/app-shot.d.ts +55 -0
  10. package/dist/artifact-catalog.d.ts +33 -0
  11. package/dist/artifacts.d.ts +166 -0
  12. package/dist/atlassian-native-retirement.d.ts +16 -0
  13. package/dist/atlassian-native-retirement.js +30 -0
  14. package/dist/atlassian-native-retirement.js.map +1 -0
  15. package/dist/atlassian.js +48 -23
  16. package/dist/automation-templates.d.ts +434 -0
  17. package/dist/automation-templates.js +31 -0
  18. package/dist/automation-templates.js.map +1 -0
  19. package/dist/billing-subscriptions.d.ts +61 -0
  20. package/dist/bots.d.ts +583 -0
  21. package/dist/bundled-skills.d.ts +58 -2
  22. package/dist/canonical-human-identities.js +3 -1
  23. package/dist/child-lifecycle-notice-protocol.d.ts +45 -0
  24. package/dist/chunk-2QKIEAGY.js +396 -0
  25. package/dist/chunk-2QKIEAGY.js.map +1 -0
  26. package/dist/chunk-2WOWEWXV.js +426 -0
  27. package/dist/chunk-2WOWEWXV.js.map +1 -0
  28. package/dist/chunk-2ZIHHL72.js +153 -0
  29. package/dist/chunk-2ZIHHL72.js.map +1 -0
  30. package/dist/chunk-32U6NKQQ.js +389 -0
  31. package/dist/chunk-32U6NKQQ.js.map +1 -0
  32. package/dist/chunk-4YDDHSO2.js +799 -0
  33. package/dist/chunk-4YDDHSO2.js.map +1 -0
  34. package/dist/chunk-56SNIMDO.js +9 -0
  35. package/dist/chunk-56SNIMDO.js.map +1 -0
  36. package/dist/chunk-5RWB6QVL.js +101 -0
  37. package/dist/chunk-5RWB6QVL.js.map +1 -0
  38. package/dist/chunk-5UGUOT3L.js +243 -0
  39. package/dist/chunk-5UGUOT3L.js.map +1 -0
  40. package/dist/chunk-6LAT33BH.js +130 -0
  41. package/dist/chunk-6LAT33BH.js.map +1 -0
  42. package/dist/chunk-7272KVWZ.js +60 -0
  43. package/dist/chunk-7272KVWZ.js.map +1 -0
  44. package/dist/chunk-72QC2GTL.js +36 -0
  45. package/dist/chunk-72QC2GTL.js.map +1 -0
  46. package/dist/chunk-7EQGGZBY.js +105 -0
  47. package/dist/chunk-7EQGGZBY.js.map +1 -0
  48. package/dist/chunk-A3LXWVYU.js +382 -0
  49. package/dist/chunk-A3LXWVYU.js.map +1 -0
  50. package/dist/chunk-AQYDZUJV.js +34 -0
  51. package/dist/chunk-AQYDZUJV.js.map +1 -0
  52. package/dist/chunk-BHCEVVUP.js +93 -0
  53. package/dist/chunk-BHCEVVUP.js.map +1 -0
  54. package/dist/chunk-BMUTAZX5.js +486 -0
  55. package/dist/chunk-BMUTAZX5.js.map +1 -0
  56. package/dist/chunk-DGG6IBBK.js +150 -0
  57. package/dist/chunk-DGG6IBBK.js.map +1 -0
  58. package/dist/{chunk-YBW5JSA3.js → chunk-FBCTUMHI.js} +123 -102
  59. package/dist/chunk-FBCTUMHI.js.map +1 -0
  60. package/dist/chunk-G2KJTFIC.js +97 -0
  61. package/dist/chunk-G2KJTFIC.js.map +1 -0
  62. package/dist/chunk-G4RKARXZ.js +1167 -0
  63. package/dist/chunk-G4RKARXZ.js.map +1 -0
  64. package/dist/chunk-H6UJJIUM.js +350 -0
  65. package/dist/chunk-H6UJJIUM.js.map +1 -0
  66. package/dist/chunk-JOTHDW4H.js +18 -0
  67. package/dist/chunk-JOTHDW4H.js.map +1 -0
  68. package/dist/chunk-L4GUEP7K.js +56480 -0
  69. package/dist/chunk-L4GUEP7K.js.map +1 -0
  70. package/dist/{chunk-SIOU2K4U.js → chunk-LJH2EYGT.js} +23 -23
  71. package/dist/chunk-MTJKSIGA.js +161 -0
  72. package/dist/chunk-MTJKSIGA.js.map +1 -0
  73. package/dist/chunk-MYHMB6GZ.js +202 -0
  74. package/dist/chunk-MYHMB6GZ.js.map +1 -0
  75. package/dist/chunk-PI5VIKJY.js +660 -0
  76. package/dist/chunk-PI5VIKJY.js.map +1 -0
  77. package/dist/{chunk-RIY7GYQS.js → chunk-PTSROVDG.js} +2 -2
  78. package/dist/chunk-PUIUXIOL.js +189 -0
  79. package/dist/chunk-PUIUXIOL.js.map +1 -0
  80. package/dist/chunk-R6VXJIMB.js +19 -0
  81. package/dist/chunk-R6VXJIMB.js.map +1 -0
  82. package/dist/chunk-RLJUNVAM.js +15 -0
  83. package/dist/chunk-RLJUNVAM.js.map +1 -0
  84. package/dist/chunk-RR6APCBK.js +213 -0
  85. package/dist/chunk-RR6APCBK.js.map +1 -0
  86. package/dist/{chunk-TXTQIYCV.js → chunk-RUQ4I6DO.js} +59 -13
  87. package/dist/chunk-RUQ4I6DO.js.map +1 -0
  88. package/dist/{chunk-WYBDERIY.js → chunk-RWEEUDHD.js} +53 -42
  89. package/dist/chunk-RWEEUDHD.js.map +1 -0
  90. package/dist/chunk-S7MSQQL6.js +158 -0
  91. package/dist/chunk-S7MSQQL6.js.map +1 -0
  92. package/dist/{chunk-5Q54VCCH.js → chunk-SHO4YO4B.js} +20 -36
  93. package/dist/chunk-SHO4YO4B.js.map +1 -0
  94. package/dist/{chunk-HHZSZYYF.js → chunk-T3HSWMA5.js} +20 -4
  95. package/dist/chunk-T3HSWMA5.js.map +1 -0
  96. package/dist/{chunk-YRKRZ6OF.js → chunk-TOOJIBJC.js} +2 -2
  97. package/dist/chunk-UCUOTRS6.js +431 -0
  98. package/dist/chunk-UCUOTRS6.js.map +1 -0
  99. package/dist/chunk-UH4K7GP7.js +424 -0
  100. package/dist/chunk-UH4K7GP7.js.map +1 -0
  101. package/dist/chunk-UIZWGPHV.js +120 -0
  102. package/dist/chunk-UIZWGPHV.js.map +1 -0
  103. package/dist/chunk-VLUKBV6Y.js +1170 -0
  104. package/dist/chunk-VLUKBV6Y.js.map +1 -0
  105. package/dist/chunk-W2QQ5Y6K.js +55 -0
  106. package/dist/chunk-W2QQ5Y6K.js.map +1 -0
  107. package/dist/{chunk-Y3KNXVTD.js → chunk-W3NBPR4E.js} +131 -31
  108. package/dist/chunk-W3NBPR4E.js.map +1 -0
  109. package/dist/{chunk-NRMCVHAU.js → chunk-WMGO4HJU.js} +11 -9
  110. package/dist/chunk-WMGO4HJU.js.map +1 -0
  111. package/dist/{chunk-MYBZRDTY.js → chunk-WQI7VNN4.js} +19 -9
  112. package/dist/chunk-WQI7VNN4.js.map +1 -0
  113. package/dist/{chunk-PX3VCKAU.js → chunk-WVCFSOUZ.js} +1 -1
  114. package/dist/{chunk-PX3VCKAU.js.map → chunk-WVCFSOUZ.js.map} +1 -1
  115. package/dist/chunk-XB6GQLBH.js +76 -0
  116. package/dist/chunk-XB6GQLBH.js.map +1 -0
  117. package/dist/{chunk-D2HKF2EF.js → chunk-XP5M3IKT.js} +2 -2
  118. package/dist/{chunk-O77VSFYZ.js → chunk-ZMPU5BWE.js} +12 -2
  119. package/dist/chunk-ZMPU5BWE.js.map +1 -0
  120. package/dist/{chunk-3SIZGL3O.js → chunk-ZYVEJFNU.js} +22 -18
  121. package/dist/chunk-ZYVEJFNU.js.map +1 -0
  122. package/dist/claude-provider-account-authority.d.ts +18 -0
  123. package/dist/claude-subscription-oauth.d.ts +25 -0
  124. package/dist/claude-subscription-usage.d.ts +95 -1
  125. package/dist/client-error-report.d.ts +154 -8
  126. package/dist/client-error-report.js +157 -2
  127. package/dist/client-error-report.js.map +1 -1
  128. package/dist/code-search.d.ts +1 -1
  129. package/dist/code-search.js.map +1 -1
  130. package/dist/codex-provider-account-authority.js +23 -12
  131. package/dist/codex-provider-account-authority.js.map +1 -1
  132. package/dist/company-profile.d.ts +144 -0
  133. package/dist/connect.d.ts +38 -0
  134. package/dist/connect.js +244 -164
  135. package/dist/connect.js.map +1 -1
  136. package/dist/connection-account-label.d.ts +2 -0
  137. package/dist/connection-account-label.js +34 -0
  138. package/dist/connection-account-label.js.map +1 -0
  139. package/dist/connection-authority.js +49 -24
  140. package/dist/connector-attachments.js +3 -1
  141. package/dist/connector-destinations.js +3 -1
  142. package/dist/connector-tool-permissions.d.ts +68 -4
  143. package/dist/credential-profiles.d.ts +166 -0
  144. package/dist/cua-desktop-tools.d.ts +19 -0
  145. package/dist/define-schema.d.ts +8 -0
  146. package/dist/desktop-app.d.ts +28 -0
  147. package/dist/direct-model-provider.d.ts +38 -0
  148. package/dist/document-artifact-commands.js +2 -2
  149. package/dist/document-artifact-query.js +2 -2
  150. package/dist/editable-artifact-binary.d.ts +7 -0
  151. package/dist/editable-artifact-causal-frontier.js +2 -2
  152. package/dist/editable-artifact-codec-registry.js +7 -7
  153. package/dist/editable-artifact-committed-transaction.js +4 -2
  154. package/dist/editable-artifact-live.js +8 -8
  155. package/dist/editable-artifact-serialized-commit.js +9 -9
  156. package/dist/editable-artifact-versions.d.ts +7 -1
  157. package/dist/editable-artifact-versions.js +1 -1
  158. package/dist/editable-artifacts.js +49 -43
  159. package/dist/event-preview.d.ts +22 -0
  160. package/dist/event-triggers.d.ts +1253 -0
  161. package/dist/event-triggers.js +148 -0
  162. package/dist/event-triggers.js.map +1 -0
  163. package/dist/external-identities.d.ts +34 -0
  164. package/dist/external-identities.js +4 -2
  165. package/dist/feedback.d.ts +181 -0
  166. package/dist/file-access.d.ts +23 -0
  167. package/dist/first-party-tool-authorization.d.ts +852 -0
  168. package/dist/github-repository-contracts.js +64 -43
  169. package/dist/github-repository-contracts.js.map +1 -1
  170. package/dist/google-drive-native-retirement.d.ts +12 -0
  171. package/dist/google-drive-native-retirement.js +20 -0
  172. package/dist/google-drive-native-retirement.js.map +1 -0
  173. package/dist/google-drive.d.ts +1 -1
  174. package/dist/google-drive.js +323 -239
  175. package/dist/google-drive.js.map +1 -1
  176. package/dist/host-mcp-bindings.js +250 -198
  177. package/dist/host-mcp-bindings.js.map +1 -1
  178. package/dist/index.d.ts +29072 -20593
  179. package/dist/index.js +2432 -366
  180. package/dist/inference-residency.d.ts +22 -0
  181. package/dist/insights-usage.d.ts +948 -0
  182. package/dist/insights-usage.js +608 -0
  183. package/dist/insights-usage.js.map +1 -0
  184. package/dist/integration-capability-id.d.ts +8 -0
  185. package/dist/interaction-action-deadline.d.ts +48 -0
  186. package/dist/interaction-driver-diagnostic.d.ts +28 -0
  187. package/dist/interaction.d.ts +2126 -881
  188. package/dist/knowledge-entries.d.ts +38 -0
  189. package/dist/knowledge-preparation.d.ts +4 -0
  190. package/dist/learning-refusal.d.ts +43 -0
  191. package/dist/learning-refusal.js +49 -0
  192. package/dist/learning-refusal.js.map +1 -0
  193. package/dist/managed-auth-session-sets.d.ts +1 -0
  194. package/dist/managed-auth-session-sets.js +207 -146
  195. package/dist/managed-auth-session-sets.js.map +1 -1
  196. package/dist/managed-sign-in-methods.d.ts +96 -0
  197. package/dist/managed-sign-in-methods.js +157 -35
  198. package/dist/managed-sign-in-methods.js.map +1 -1
  199. package/dist/mcp-structured-content.d.ts +25 -0
  200. package/dist/message-time-zone.d.ts +38 -0
  201. package/dist/message-time-zone.js +19 -0
  202. package/dist/message-time-zone.js.map +1 -0
  203. package/dist/modal-native-proof-v2.d.ts +587 -0
  204. package/dist/modal-native-proof-v2.js +39 -0
  205. package/dist/modal-native-proof-v2.js.map +1 -0
  206. package/dist/model-account-choice.d.ts +237 -0
  207. package/dist/model-account-settings.d.ts +422 -0
  208. package/dist/model-availability.d.ts +15 -0
  209. package/dist/model-connection-access.d.ts +13 -0
  210. package/dist/model-context-inspector.d.ts +8 -0
  211. package/dist/model-display.d.ts +43 -0
  212. package/dist/model-display.js +17 -0
  213. package/dist/model-display.js.map +1 -0
  214. package/dist/model-picker-order.js.map +1 -1
  215. package/dist/model-residency.d.ts +304 -0
  216. package/dist/organization-access.d.ts +416 -0
  217. package/dist/organization-access.js +40 -0
  218. package/dist/organization-access.js.map +1 -0
  219. package/dist/organization-integration-policy.d.ts +18 -0
  220. package/dist/organization-membership-lifecycle.d.ts +66 -0
  221. package/dist/organization-model-usage.d.ts +146 -0
  222. package/dist/organization-model-usage.js +87 -0
  223. package/dist/organization-model-usage.js.map +1 -0
  224. package/dist/organization-recovery.js +3 -1
  225. package/dist/organization-usage.d.ts +12 -0
  226. package/dist/passkey-only-account.d.ts +14 -0
  227. package/dist/passkey-only-account.js +13 -0
  228. package/dist/passkey-only-account.js.map +1 -0
  229. package/dist/permissions.d.ts +19 -0
  230. package/dist/personal-github.js +220 -148
  231. package/dist/personal-github.js.map +1 -1
  232. package/dist/personal-integration-setup.d.ts +81 -0
  233. package/dist/personal-integration-setup.js +42 -0
  234. package/dist/personal-integration-setup.js.map +1 -0
  235. package/dist/prepared-mcp-setup.d.ts +54 -0
  236. package/dist/prepared-mcp-setup.js +13 -0
  237. package/dist/prepared-mcp-setup.js.map +1 -0
  238. package/dist/presentation-artifact-commands.js +2 -2
  239. package/dist/presentation-artifact-query.js +2 -2
  240. package/dist/primitives.d.ts +18 -0
  241. package/dist/product-analytics.d.ts +27 -10
  242. package/dist/product-lifecycle-facts.d.ts +26 -3
  243. package/dist/prompt-cache-diagnostics.d.ts +92 -0
  244. package/dist/recordings.d.ts +1371 -0
  245. package/dist/remember.d.ts +98 -2
  246. package/dist/retained-output.d.ts +4 -2
  247. package/dist/sandbox-file-artifacts.d.ts +19 -2
  248. package/dist/sandbox-provider-command.d.ts +5 -44
  249. package/dist/sandbox-recovery.d.ts +139 -8
  250. package/dist/secret-generator.d.ts +44 -0
  251. package/dist/secret-mask-strings.d.ts +32 -0
  252. package/dist/secret-references.d.ts +90 -0
  253. package/dist/secret-resolution.d.ts +143 -0
  254. package/dist/secret-shape-masking.d.ts +52 -0
  255. package/dist/secret-shape-masking.js +19 -0
  256. package/dist/secret-shape-masking.js.map +1 -0
  257. package/dist/secret-totp.d.ts +41 -0
  258. package/dist/secret-use-approval-question.d.ts +11 -0
  259. package/dist/secret-use-approval-question.js +11 -0
  260. package/dist/secret-use-approval-question.js.map +1 -0
  261. package/dist/secret-use-approvals.d.ts +106 -0
  262. package/dist/secret-value-masking.d.ts +299 -0
  263. package/dist/secret-value-masking.js +62 -0
  264. package/dist/secret-value-masking.js.map +1 -0
  265. package/dist/secret-value.d.ts +19 -0
  266. package/dist/session-history-import.d.ts +444 -8
  267. package/dist/session-history.d.ts +111 -0
  268. package/dist/session-history.js +35 -0
  269. package/dist/session-history.js.map +1 -0
  270. package/dist/session-list-entries.d.ts +8 -0
  271. package/dist/session-list-entries.js +61 -0
  272. package/dist/session-list-entries.js.map +1 -0
  273. package/dist/session-mcp-projections.d.ts +13 -1
  274. package/dist/session-mcp-tool-permissions.d.ts +62 -0
  275. package/dist/session-target.d.ts +18 -0
  276. package/dist/session-titles.d.ts +8 -0
  277. package/dist/session-titles.js +5 -1
  278. package/dist/session-usage-limit-refusal.d.ts +34 -0
  279. package/dist/session-usage-limit-refusal.js +15 -0
  280. package/dist/session-usage-limit-refusal.js.map +1 -0
  281. package/dist/session-usage-limits.d.ts +127 -0
  282. package/dist/session-usage-limits.js +43 -0
  283. package/dist/session-usage-limits.js.map +1 -0
  284. package/dist/site-data.d.ts +286 -0
  285. package/dist/site-operations.d.ts +39 -0
  286. package/dist/site-publishing.d.ts +813 -0
  287. package/dist/site-session-http.d.ts +103 -4
  288. package/dist/site-session-http.js +27 -1
  289. package/dist/site-sql.d.ts +425 -0
  290. package/dist/skills.d.ts +38 -0
  291. package/dist/slack-bot-scopes.d.ts +9 -7
  292. package/dist/slack-bot-scopes.js +6 -3
  293. package/dist/slack-rest-mcp.d.ts +36 -0
  294. package/dist/slack-rest-mcp.js +25 -0
  295. package/dist/slack-rest-mcp.js.map +1 -0
  296. package/dist/spreadsheet-artifact-commands.d.ts +14 -1
  297. package/dist/spreadsheet-artifact-commands.js +9 -2
  298. package/dist/spreadsheet-artifact-query.d.ts +13 -6
  299. package/dist/spreadsheet-artifact-query.js +4 -3
  300. package/dist/subscription-account-actions.d.ts +83 -0
  301. package/dist/subscription-account-pools.d.ts +326 -0
  302. package/dist/subscription-personal-authority-v2.d.ts +28 -0
  303. package/dist/subscription-personal-authority-v2.js +13 -0
  304. package/dist/subscription-personal-authority-v2.js.map +1 -0
  305. package/dist/subscription-plans.d.ts +38 -0
  306. package/dist/subscription-usage-pool.d.ts +89 -0
  307. package/dist/tool-action-review.d.ts +141 -0
  308. package/dist/tool-catalog.d.ts +479 -0
  309. package/dist/tool-policy.d.ts +5 -0
  310. package/dist/tool-review-presentation.d.ts +29 -0
  311. package/dist/tool-review-presentation.js +21 -0
  312. package/dist/tool-review-presentation.js.map +1 -0
  313. package/dist/turn-serving-policy.d.ts +223 -0
  314. package/dist/usage-allowances.d.ts +30 -0
  315. package/dist/usage-allowances.js +5 -1
  316. package/dist/values.d.ts +11 -0
  317. package/dist/values.js +19 -0
  318. package/dist/values.js.map +1 -0
  319. package/dist/vault-provider-wire.d.ts +907 -0
  320. package/dist/vault-provider-wire.js +74 -0
  321. package/dist/vault-provider-wire.js.map +1 -0
  322. package/dist/vaults.d.ts +2185 -0
  323. package/dist/video-generation.d.ts +75 -0
  324. package/dist/video-generation.js +8 -1
  325. package/dist/workspace-control-event.d.ts +18 -0
  326. package/dist/workspace-control-event.js +18 -0
  327. package/dist/workspace-control-event.js.map +1 -0
  328. package/dist/workspace-governance-context.d.ts +18 -0
  329. package/dist/workspace-integration-wire.d.ts +1 -1
  330. package/dist/workspace-integration-wire.js +1 -1
  331. package/dist/workspace-integrations.d.ts +212 -12
  332. package/dist/xai-provider-account-authority.js +3 -1
  333. package/package.json +121 -4
  334. package/src/agent-authored-durable-text.ts +14 -11
  335. package/src/agent-config.ts +382 -203
  336. package/src/agent-instruction-changes.ts +94 -74
  337. package/src/agent-learning.ts +94 -66
  338. package/src/agent-topology.ts +58 -52
  339. package/src/api-key-presets.ts +28 -0
  340. package/src/app-action-catalog-types.ts +32 -0
  341. package/src/app-action-catalog.gen.ts +9905 -0
  342. package/src/app-actions.ts +365 -0
  343. package/src/app-shot.ts +176 -0
  344. package/src/artifact-catalog.ts +81 -46
  345. package/src/artifacts.ts +360 -227
  346. package/src/atlassian-native-retirement.ts +33 -0
  347. package/src/atlassian.ts +136 -108
  348. package/src/automation-templates.ts +201 -0
  349. package/src/billing-subscriptions.ts +48 -0
  350. package/src/bots.ts +238 -0
  351. package/src/bundled-skills.ts +79 -22
  352. package/src/canonical-human-identities.ts +65 -62
  353. package/src/child-lifecycle-notice-protocol.gen.json +1310 -0
  354. package/src/child-lifecycle-notice-protocol.ts +224 -0
  355. package/src/claude-provider-account-authority.ts +12 -0
  356. package/src/claude-subscription-oauth.ts +61 -19
  357. package/src/claude-subscription-usage.ts +64 -35
  358. package/src/client-error-report.ts +344 -9
  359. package/src/code-search.ts +1 -1
  360. package/src/codex-provider-account-authority.ts +22 -16
  361. package/src/company-brain-governed-writes.ts +265 -244
  362. package/src/company-brain.ts +165 -154
  363. package/src/company-profile.ts +362 -297
  364. package/src/connect.ts +222 -173
  365. package/src/connection-account-label.ts +45 -0
  366. package/src/connection-authority.ts +172 -152
  367. package/src/connector-attachments.ts +139 -123
  368. package/src/connector-destinations.ts +48 -43
  369. package/src/connector-tool-permissions.ts +104 -46
  370. package/src/credential-profiles.ts +161 -0
  371. package/src/cua-desktop-tools.gen.json +6722 -0
  372. package/src/cua-desktop-tools.linux.gen.json +6798 -0
  373. package/src/cua-desktop-tools.ts +42 -0
  374. package/src/cua-desktop-tools.windows.gen.json +6739 -0
  375. package/src/define-schema.ts +10 -0
  376. package/src/desktop-app.ts +50 -0
  377. package/src/direct-model-provider.ts +112 -0
  378. package/src/editable-artifact-binary.ts +29 -8
  379. package/src/editable-artifact-committed-transaction.ts +19 -18
  380. package/src/editable-artifact-serialized-commit.ts +8 -2
  381. package/src/editable-artifact-versions.ts +7 -1
  382. package/src/event-preview.ts +53 -3
  383. package/src/event-triggers.ts +891 -0
  384. package/src/external-identities.ts +239 -195
  385. package/src/feedback.ts +125 -30
  386. package/src/file-access.ts +26 -0
  387. package/src/first-party-tool-authorization.ts +383 -0
  388. package/src/github-repository-contracts.ts +78 -64
  389. package/src/google-drive-native-retirement.ts +20 -0
  390. package/src/google-drive.ts +286 -234
  391. package/src/governed-learning-activation.ts +159 -137
  392. package/src/governed-learning-evaluator.ts +141 -133
  393. package/src/host-mcp-bindings.ts +244 -221
  394. package/src/image-generation.ts +105 -95
  395. package/src/index.ts +13928 -9899
  396. package/src/inference-residency.ts +36 -0
  397. package/src/insights-usage.ts +774 -0
  398. package/src/integration-capability-id.ts +16 -0
  399. package/src/interaction-action-deadline.ts +143 -0
  400. package/src/interaction-driver-diagnostic.ts +89 -0
  401. package/src/interaction.ts +3527 -2427
  402. package/src/knowledge-entries.ts +386 -299
  403. package/src/knowledge-preparation.ts +49 -41
  404. package/src/knowledge.ts +242 -213
  405. package/src/learning-refusal.ts +90 -0
  406. package/src/managed-auth-session-sets.ts +180 -133
  407. package/src/managed-sign-in-methods.ts +156 -34
  408. package/src/mcp-oauth.ts +58 -46
  409. package/src/mcp-receipts.ts +199 -194
  410. package/src/mcp-structured-content.ts +81 -0
  411. package/src/memory-slack-delivery.ts +172 -142
  412. package/src/message-time-zone.ts +109 -0
  413. package/src/modal-native-proof-v2.ts +430 -0
  414. package/src/model-account-choice.ts +178 -0
  415. package/src/model-account-settings.ts +210 -0
  416. package/src/model-availability.ts +22 -0
  417. package/src/model-connection-access.ts +62 -14
  418. package/src/model-context-inspector.ts +130 -109
  419. package/src/model-display.ts +221 -0
  420. package/src/model-picker-order.ts +1 -1
  421. package/src/model-residency.ts +535 -0
  422. package/src/organization-access.ts +216 -0
  423. package/src/organization-integration-policy.ts +47 -28
  424. package/src/organization-membership-lifecycle.ts +558 -384
  425. package/src/organization-model-usage.ts +82 -0
  426. package/src/organization-recovery.ts +148 -135
  427. package/src/organization-usage.ts +84 -52
  428. package/src/passkey-only-account.ts +29 -0
  429. package/src/permissions.ts +94 -52
  430. package/src/personal-github.ts +211 -171
  431. package/src/personal-integration-setup.ts +150 -0
  432. package/src/preference-registry.ts +319 -263
  433. package/src/prepared-mcp-setup.ts +190 -0
  434. package/src/primitives.ts +22 -0
  435. package/src/product-analytics.ts +40 -15
  436. package/src/product-lifecycle-facts.ts +50 -20
  437. package/src/prompt-cache-diagnostics.ts +212 -0
  438. package/src/recordings.ts +1153 -0
  439. package/src/remember.ts +184 -172
  440. package/src/retained-output.ts +181 -168
  441. package/src/sandbox-file-artifacts.ts +78 -57
  442. package/src/sandbox-provider-command.ts +55 -72
  443. package/src/sandbox-recovery.ts +163 -77
  444. package/src/scoped-knowledge.ts +62 -43
  445. package/src/secret-generator.ts +156 -0
  446. package/src/secret-mask-strings.ts +175 -0
  447. package/src/secret-references.ts +414 -0
  448. package/src/secret-resolution.ts +322 -0
  449. package/src/secret-shape-masking.ts +573 -0
  450. package/src/secret-totp.ts +188 -0
  451. package/src/secret-use-approval-question.ts +22 -0
  452. package/src/secret-use-approvals.ts +219 -0
  453. package/src/secret-value-masking.ts +1283 -0
  454. package/src/secret-value.ts +22 -0
  455. package/src/session-goal-reports.ts +55 -49
  456. package/src/session-history-import.ts +84 -68
  457. package/src/session-history.ts +197 -0
  458. package/src/session-list-entries.ts +106 -0
  459. package/src/session-mcp-projections.ts +21 -3
  460. package/src/session-mcp-tool-permissions.ts +109 -0
  461. package/src/session-message-search.ts +46 -38
  462. package/src/session-target.ts +58 -0
  463. package/src/session-titles.ts +40 -4
  464. package/src/session-topology-primitives.ts +20 -12
  465. package/src/session-usage-limit-refusal.ts +101 -0
  466. package/src/session-usage-limits.ts +169 -0
  467. package/src/signup-attribution.ts +20 -15
  468. package/src/site-data.ts +337 -0
  469. package/src/site-operations.ts +154 -0
  470. package/src/site-publishing.ts +903 -0
  471. package/src/site-session-http.ts +344 -16
  472. package/src/site-sql.ts +1120 -0
  473. package/src/skill-use.ts +18 -17
  474. package/src/skills.ts +105 -50
  475. package/src/slack-bot-scopes.ts +18 -35
  476. package/src/slack-rest-mcp.ts +222 -0
  477. package/src/slack-task-policy.ts +97 -73
  478. package/src/spreadsheet-artifact-commands.ts +74 -13
  479. package/src/spreadsheet-artifact-query.ts +188 -50
  480. package/src/subscription-account-actions.ts +103 -0
  481. package/src/subscription-account-pools.ts +74 -0
  482. package/src/subscription-personal-authority-v2.ts +69 -0
  483. package/src/subscription-plans.ts +51 -0
  484. package/src/subscription-usage-pool.ts +44 -0
  485. package/src/task-notes.ts +70 -68
  486. package/src/tool-action-review.ts +271 -0
  487. package/src/tool-catalog.ts +694 -379
  488. package/src/tool-policy.ts +82 -0
  489. package/src/tool-result-spill.ts +13 -9
  490. package/src/tool-review-presentation.ts +643 -0
  491. package/src/turn-serving-policy.ts +167 -0
  492. package/src/usage-allowances.ts +212 -136
  493. package/src/values.ts +25 -0
  494. package/src/vault-provider-wire.ts +580 -0
  495. package/src/vaults.ts +1296 -0
  496. package/src/video-generation.ts +430 -361
  497. package/src/work-claims.ts +183 -166
  498. package/src/workspace-control-event.ts +134 -0
  499. package/src/workspace-governance-context.ts +63 -0
  500. package/src/workspace-instruction-policies.ts +346 -279
  501. package/src/workspace-integration-wire.ts +10 -0
  502. package/src/workspace-integrations.ts +488 -398
  503. package/src/workspace-learning-administration.ts +58 -44
  504. package/src/workspace-learning-policy.ts +126 -99
  505. package/src/workspace-state.ts +239 -220
  506. package/src/xai-provider-account-authority.ts +23 -17
  507. package/dist/chunk-3SIZGL3O.js.map +0 -1
  508. package/dist/chunk-566IFOVP.js +0 -26133
  509. package/dist/chunk-566IFOVP.js.map +0 -1
  510. package/dist/chunk-5IXYF6XN.js +0 -728
  511. package/dist/chunk-5IXYF6XN.js.map +0 -1
  512. package/dist/chunk-5Q54VCCH.js.map +0 -1
  513. package/dist/chunk-BCS7WHCK.js +0 -139
  514. package/dist/chunk-BCS7WHCK.js.map +0 -1
  515. package/dist/chunk-EK7NDGFR.js +0 -128
  516. package/dist/chunk-EK7NDGFR.js.map +0 -1
  517. package/dist/chunk-GRG7PHWQ.js +0 -25
  518. package/dist/chunk-GRG7PHWQ.js.map +0 -1
  519. package/dist/chunk-HHZSZYYF.js.map +0 -1
  520. package/dist/chunk-ICDZGUX2.js +0 -186
  521. package/dist/chunk-ICDZGUX2.js.map +0 -1
  522. package/dist/chunk-JUFK3T4Q.js +0 -80
  523. package/dist/chunk-JUFK3T4Q.js.map +0 -1
  524. package/dist/chunk-MYBZRDTY.js.map +0 -1
  525. package/dist/chunk-NRMCVHAU.js.map +0 -1
  526. package/dist/chunk-O77VSFYZ.js.map +0 -1
  527. package/dist/chunk-P3HLDT77.js +0 -59
  528. package/dist/chunk-P3HLDT77.js.map +0 -1
  529. package/dist/chunk-TXTQIYCV.js.map +0 -1
  530. package/dist/chunk-WYBDERIY.js.map +0 -1
  531. package/dist/chunk-Y3KNXVTD.js.map +0 -1
  532. package/dist/chunk-YBW5JSA3.js.map +0 -1
  533. package/dist/chunk-YRXAWWCU.js +0 -45
  534. package/dist/chunk-YRXAWWCU.js.map +0 -1
  535. package/dist/chunk-YWMOIZ6A.js +0 -185
  536. package/dist/chunk-YWMOIZ6A.js.map +0 -1
  537. package/dist/site-request-headers.test.d.ts +0 -1
  538. package/dist/transcription-recordings.d.ts +0 -300
  539. package/src/transcription-recordings.ts +0 -169
  540. /package/dist/{chunk-SIOU2K4U.js.map → chunk-LJH2EYGT.js.map} +0 -0
  541. /package/dist/{chunk-RIY7GYQS.js.map → chunk-PTSROVDG.js.map} +0 -0
  542. /package/dist/{chunk-YRKRZ6OF.js.map → chunk-TOOJIBJC.js.map} +0 -0
  543. /package/dist/{chunk-D2HKF2EF.js.map → chunk-XP5M3IKT.js.map} +0 -0
@@ -0,0 +1,150 @@
1
+ import {
2
+ EVENT_TRIGGERS_PER_AUTOMATION_MAX,
3
+ EVENT_TRIGGER_CONDITIONS_MAX,
4
+ EVENT_TRIGGER_TYPES_MAX,
5
+ EventCondition,
6
+ EventSourceKind,
7
+ EventTypeName,
8
+ MAX_EVENT_RUNS_PER_HOUR,
9
+ WebhookEventAdapter
10
+ } from "./chunk-PI5VIKJY.js";
11
+ import {
12
+ defineSchema
13
+ } from "./chunk-56SNIMDO.js";
14
+
15
+ // src/automation-templates.ts
16
+ import { z } from "zod";
17
+ var AUTOMATION_TEMPLATE_NAME_MAX_LENGTH = 120;
18
+ var AUTOMATION_TEMPLATE_DESCRIPTION_MAX_LENGTH = 500;
19
+ var AUTOMATION_TEMPLATE_INSTRUCTIONS_MAX_LENGTH = 2e4;
20
+ var AUTOMATION_TEMPLATES_PER_WORKSPACE_MAX = 200;
21
+ var Uuid = /* @__PURE__ */ defineSchema(() => z.string().uuid());
22
+ var AutomationTemplateSchedule = /* @__PURE__ */ defineSchema(
23
+ () => z.discriminatedUnion("type", [
24
+ z.object({
25
+ type: z.literal("calendar"),
26
+ hour: z.number().int().min(0).max(23),
27
+ minute: z.number().int().min(0).max(59),
28
+ /** Omitted: every day. */
29
+ daysOfWeek: z.array(
30
+ z.enum(["SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"])
31
+ ).min(1).max(7).optional()
32
+ }).strict(),
33
+ z.object({
34
+ type: z.literal("interval"),
35
+ everySeconds: z.number().int().min(60).max(366 * 86400)
36
+ }).strict()
37
+ ])
38
+ );
39
+ var AutomationTemplateEventSource = /* @__PURE__ */ defineSchema(
40
+ () => z.object({
41
+ kind: EventSourceKind,
42
+ /** For a webhook: how it verifies and reads deliveries. */
43
+ adapter: WebhookEventAdapter.optional(),
44
+ /** For an MCP source: the server, as configured for the workspace. */
45
+ mcpServerId: z.string().min(1).max(256).optional(),
46
+ sourceId: Uuid.optional()
47
+ }).strict().superRefine((source, context) => {
48
+ if (source.kind === "webhook" !== (source.adapter !== void 0)) {
49
+ context.addIssue({
50
+ code: "custom",
51
+ path: ["adapter"],
52
+ message: "A webhook source names its adapter, and only a webhook source does"
53
+ });
54
+ }
55
+ if (source.kind === "mcp" !== (source.mcpServerId !== void 0)) {
56
+ context.addIssue({
57
+ code: "custom",
58
+ path: ["mcpServerId"],
59
+ message: "An MCP source names its server, and only an MCP source does"
60
+ });
61
+ }
62
+ })
63
+ );
64
+ var AutomationTemplateTrigger = /* @__PURE__ */ defineSchema(
65
+ () => z.object({
66
+ source: AutomationTemplateEventSource,
67
+ eventTypes: z.array(EventTypeName).min(1).max(EVENT_TRIGGER_TYPES_MAX),
68
+ conditions: z.array(EventCondition).max(EVENT_TRIGGER_CONDITIONS_MAX).default([]),
69
+ /** Also fire on events made by Opengeni's own bots. */
70
+ includeOwnEvents: z.boolean().default(false),
71
+ /** MCP subscription arguments. */
72
+ arguments: z.record(z.string(), z.unknown()).optional()
73
+ }).strict()
74
+ );
75
+ var TemplateName = /* @__PURE__ */ defineSchema(
76
+ () => z.string().trim().min(1).max(AUTOMATION_TEMPLATE_NAME_MAX_LENGTH)
77
+ );
78
+ var TemplateDescription = /* @__PURE__ */ defineSchema(
79
+ () => z.string().trim().max(AUTOMATION_TEMPLATE_DESCRIPTION_MAX_LENGTH)
80
+ );
81
+ var TemplateInstructions = /* @__PURE__ */ defineSchema(
82
+ () => z.string().trim().min(1).max(AUTOMATION_TEMPLATE_INSTRUCTIONS_MAX_LENGTH)
83
+ );
84
+ var TemplateTriggers = /* @__PURE__ */ defineSchema(
85
+ () => z.array(AutomationTemplateTrigger).max(EVENT_TRIGGERS_PER_AUTOMATION_MAX)
86
+ );
87
+ var TemplateMaxRunsPerHour = /* @__PURE__ */ defineSchema(
88
+ () => z.number().int().min(1).max(MAX_EVENT_RUNS_PER_HOUR).nullable()
89
+ );
90
+ var WorkspaceAutomationTemplate = /* @__PURE__ */ defineSchema(
91
+ () => z.object({
92
+ id: Uuid,
93
+ workspaceId: Uuid,
94
+ name: z.string(),
95
+ description: z.string(),
96
+ instructions: z.string(),
97
+ /** Null: it runs only on its events or with Run now. */
98
+ schedule: AutomationTemplateSchedule.nullable(),
99
+ triggers: TemplateTriggers,
100
+ maxRunsPerHour: TemplateMaxRunsPerHour,
101
+ /** Who saved it; null when a workspace-level caller did. */
102
+ createdBySubjectId: z.string().nullable(),
103
+ /** `manage`: the reader may rename, change or delete it. */
104
+ viewerAccess: z.enum(["manage", "use"]),
105
+ createdAt: z.string(),
106
+ updatedAt: z.string()
107
+ })
108
+ );
109
+ var CreateAutomationTemplateRequest = /* @__PURE__ */ defineSchema(
110
+ () => z.object({
111
+ name: TemplateName,
112
+ description: TemplateDescription.default(""),
113
+ instructions: TemplateInstructions,
114
+ schedule: AutomationTemplateSchedule.nullable().default(null),
115
+ triggers: TemplateTriggers.default([]),
116
+ maxRunsPerHour: TemplateMaxRunsPerHour.default(null)
117
+ }).strict()
118
+ );
119
+ var UpdateAutomationTemplateRequest = /* @__PURE__ */ defineSchema(
120
+ () => z.object({
121
+ name: TemplateName.optional(),
122
+ description: TemplateDescription.optional(),
123
+ instructions: TemplateInstructions.optional(),
124
+ schedule: AutomationTemplateSchedule.nullable().optional(),
125
+ triggers: TemplateTriggers.optional(),
126
+ maxRunsPerHour: TemplateMaxRunsPerHour.optional()
127
+ }).strict()
128
+ );
129
+ var ListAutomationTemplatesResponse = /* @__PURE__ */ defineSchema(
130
+ () => z.object({ templates: z.array(WorkspaceAutomationTemplate) })
131
+ );
132
+ var AutomationTemplateResponse = /* @__PURE__ */ defineSchema(
133
+ () => z.object({ template: WorkspaceAutomationTemplate })
134
+ );
135
+
136
+ export {
137
+ AUTOMATION_TEMPLATE_NAME_MAX_LENGTH,
138
+ AUTOMATION_TEMPLATE_DESCRIPTION_MAX_LENGTH,
139
+ AUTOMATION_TEMPLATE_INSTRUCTIONS_MAX_LENGTH,
140
+ AUTOMATION_TEMPLATES_PER_WORKSPACE_MAX,
141
+ AutomationTemplateSchedule,
142
+ AutomationTemplateEventSource,
143
+ AutomationTemplateTrigger,
144
+ WorkspaceAutomationTemplate,
145
+ CreateAutomationTemplateRequest,
146
+ UpdateAutomationTemplateRequest,
147
+ ListAutomationTemplatesResponse,
148
+ AutomationTemplateResponse
149
+ };
150
+ //# sourceMappingURL=chunk-DGG6IBBK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/automation-templates.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { defineSchema } from \"./define-schema\";\nimport {\n EVENT_TRIGGER_CONDITIONS_MAX,\n EVENT_TRIGGER_TYPES_MAX,\n EVENT_TRIGGERS_PER_AUTOMATION_MAX,\n EventCondition,\n EventSourceKind,\n EventTypeName,\n MAX_EVENT_RUNS_PER_HOUR,\n WebhookEventAdapter,\n} from \"./event-triggers\";\n\n/**\n * Automation templates: where a new automation starts. A template holds what\n * an automation does and when, but never where its runs go, who owns it or\n * which accounts it uses: those come from wherever it is used. Its schedule\n * has no time zone (the person's own applies) and its triggers name a kind\n * of source rather than a source, since sources differ per person.\n *\n * Built-in and host templates live in the client. A workspace keeps the\n * templates its people save from their automations.\n *\n * This module must not import `./index`.\n */\n\nexport const AUTOMATION_TEMPLATE_NAME_MAX_LENGTH = 120;\nexport const AUTOMATION_TEMPLATE_DESCRIPTION_MAX_LENGTH = 500;\nexport const AUTOMATION_TEMPLATE_INSTRUCTIONS_MAX_LENGTH = 20_000;\n/** Saved templates a workspace keeps; saving another past this is refused. */\nexport const AUTOMATION_TEMPLATES_PER_WORKSPACE_MAX = 200;\n\nconst Uuid = /* @__PURE__ */ defineSchema(() => z.string().uuid());\n\n/** When it runs, read in the time zone of whoever uses the template. */\nexport const AutomationTemplateSchedule = /* @__PURE__ */ defineSchema(() =>\n z.discriminatedUnion(\"type\", [\n z\n .object({\n type: z.literal(\"calendar\"),\n hour: z.number().int().min(0).max(23),\n minute: z.number().int().min(0).max(59),\n /** Omitted: every day. */\n daysOfWeek: z\n .array(\n z.enum([\"SUNDAY\", \"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\"]),\n )\n .min(1)\n .max(7)\n .optional(),\n })\n .strict(),\n z\n .object({\n type: z.literal(\"interval\"),\n everySeconds: z\n .number()\n .int()\n .min(60)\n .max(366 * 86_400),\n })\n .strict(),\n ]),\n);\nexport type AutomationTemplateSchedule = z.infer<typeof AutomationTemplateSchedule>;\n\n/**\n * The kind of source a template trigger listens on: GitHub, a Linear webhook,\n * one MCP server, this workspace. `sourceId` names a source shared with the\n * workspace, used when the person can use it; otherwise their own source of\n * this kind is.\n */\nexport const AutomationTemplateEventSource = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n kind: EventSourceKind,\n /** For a webhook: how it verifies and reads deliveries. */\n adapter: WebhookEventAdapter.optional(),\n /** For an MCP source: the server, as configured for the workspace. */\n mcpServerId: z.string().min(1).max(256).optional(),\n sourceId: Uuid.optional(),\n })\n .strict()\n .superRefine((source, context) => {\n if ((source.kind === \"webhook\") !== (source.adapter !== undefined)) {\n context.addIssue({\n code: \"custom\",\n path: [\"adapter\"],\n message: \"A webhook source names its adapter, and only a webhook source does\",\n });\n }\n if ((source.kind === \"mcp\") !== (source.mcpServerId !== undefined)) {\n context.addIssue({\n code: \"custom\",\n path: [\"mcpServerId\"],\n message: \"An MCP source names its server, and only an MCP source does\",\n });\n }\n }),\n);\nexport type AutomationTemplateEventSource = z.infer<typeof AutomationTemplateEventSource>;\n\nexport const AutomationTemplateTrigger = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n source: AutomationTemplateEventSource,\n eventTypes: z.array(EventTypeName).min(1).max(EVENT_TRIGGER_TYPES_MAX),\n conditions: z.array(EventCondition).max(EVENT_TRIGGER_CONDITIONS_MAX).default([]),\n /** Also fire on events made by Opengeni's own bots. */\n includeOwnEvents: z.boolean().default(false),\n /** MCP subscription arguments. */\n arguments: z.record(z.string(), z.unknown()).optional(),\n })\n .strict(),\n);\nexport type AutomationTemplateTrigger = z.input<typeof AutomationTemplateTrigger>;\n\nconst TemplateName = /* @__PURE__ */ defineSchema(() =>\n z.string().trim().min(1).max(AUTOMATION_TEMPLATE_NAME_MAX_LENGTH),\n);\nconst TemplateDescription = /* @__PURE__ */ defineSchema(() =>\n z.string().trim().max(AUTOMATION_TEMPLATE_DESCRIPTION_MAX_LENGTH),\n);\n/** What the agent does on each run. */\nconst TemplateInstructions = /* @__PURE__ */ defineSchema(() =>\n z.string().trim().min(1).max(AUTOMATION_TEMPLATE_INSTRUCTIONS_MAX_LENGTH),\n);\nconst TemplateTriggers = /* @__PURE__ */ defineSchema(() =>\n z.array(AutomationTemplateTrigger).max(EVENT_TRIGGERS_PER_AUTOMATION_MAX),\n);\n/** The storm guard for event runs; null takes the default. */\nconst TemplateMaxRunsPerHour = /* @__PURE__ */ defineSchema(() =>\n z.number().int().min(1).max(MAX_EVENT_RUNS_PER_HOUR).nullable(),\n);\n\n/** A template saved in a workspace. */\nexport const WorkspaceAutomationTemplate = /* @__PURE__ */ defineSchema(() =>\n z.object({\n id: Uuid,\n workspaceId: Uuid,\n name: z.string(),\n description: z.string(),\n instructions: z.string(),\n /** Null: it runs only on its events or with Run now. */\n schedule: AutomationTemplateSchedule.nullable(),\n triggers: TemplateTriggers,\n maxRunsPerHour: TemplateMaxRunsPerHour,\n /** Who saved it; null when a workspace-level caller did. */\n createdBySubjectId: z.string().nullable(),\n /** `manage`: the reader may rename, change or delete it. */\n viewerAccess: z.enum([\"manage\", \"use\"]),\n createdAt: z.string(),\n updatedAt: z.string(),\n }),\n);\nexport type WorkspaceAutomationTemplate = z.output<typeof WorkspaceAutomationTemplate>;\n\nexport const CreateAutomationTemplateRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n name: TemplateName,\n description: TemplateDescription.default(\"\"),\n instructions: TemplateInstructions,\n schedule: AutomationTemplateSchedule.nullable().default(null),\n triggers: TemplateTriggers.default([]),\n maxRunsPerHour: TemplateMaxRunsPerHour.default(null),\n })\n .strict(),\n);\nexport type CreateAutomationTemplateRequest = z.input<typeof CreateAutomationTemplateRequest>;\nexport type ParsedCreateAutomationTemplateRequest = z.output<\n typeof CreateAutomationTemplateRequest\n>;\n\n/** Changes only what it names. */\nexport const UpdateAutomationTemplateRequest = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n name: TemplateName.optional(),\n description: TemplateDescription.optional(),\n instructions: TemplateInstructions.optional(),\n schedule: AutomationTemplateSchedule.nullable().optional(),\n triggers: TemplateTriggers.optional(),\n maxRunsPerHour: TemplateMaxRunsPerHour.optional(),\n })\n .strict(),\n);\nexport type UpdateAutomationTemplateRequest = z.input<typeof UpdateAutomationTemplateRequest>;\nexport type ParsedUpdateAutomationTemplateRequest = z.output<\n typeof UpdateAutomationTemplateRequest\n>;\n\nexport const ListAutomationTemplatesResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({ templates: z.array(WorkspaceAutomationTemplate) }),\n);\nexport type ListAutomationTemplatesResponse = z.output<typeof ListAutomationTemplatesResponse>;\n\nexport const AutomationTemplateResponse = /* @__PURE__ */ defineSchema(() =>\n z.object({ template: WorkspaceAutomationTemplate }),\n);\nexport type AutomationTemplateResponse = z.output<typeof AutomationTemplateResponse>;\n"],"mappings":"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","names":[]}
@@ -1,3 +1,10 @@
1
+ import {
2
+ string
3
+ } from "./chunk-AQYDZUJV.js";
4
+ import {
5
+ defineSchema
6
+ } from "./chunk-56SNIMDO.js";
7
+
1
8
  // src/connector-attachments.ts
2
9
  import { z } from "zod";
3
10
  var CONNECTOR_ATTACHMENT_TRANSFER_VERSION = 1;
@@ -24,7 +31,7 @@ function utf8Bytes(value) {
24
31
  return textEncoder.encode(value).byteLength;
25
32
  }
26
33
  function boundedString(maxUtf8Bytes) {
27
- return z.string().refine((value) => utf8Bytes(value) <= maxUtf8Bytes, {
34
+ return string.refine((value) => utf8Bytes(value) <= maxUtf8Bytes, {
28
35
  message: `must be at most ${maxUtf8Bytes} UTF-8 bytes`
29
36
  });
30
37
  }
@@ -74,15 +81,17 @@ function privateUrlCredentialValues(value) {
74
81
  function publicMetadataContainsCredential(publicValue, credential) {
75
82
  return publicValue.includes(credential);
76
83
  }
77
- var ConnectorAttachmentProviderIdentity = z.object({
78
- provider: boundedString(CONNECTOR_ATTACHMENT_PROVIDER_MAX_UTF8_BYTES).regex(PROVIDER_PATTERN),
79
- kind: z.literal("attachment"),
80
- value: boundedString(CONNECTOR_ATTACHMENT_PROVIDER_ID_MAX_UTF8_BYTES).min(1).refine((value) => !CONTROL_CHARACTER_PATTERN.test(value), {
81
- message: "must not contain control characters"
82
- }).refine((value) => !isHttpUrl(value) && !containsHttpUrlReference(value), {
83
- message: "must be an opaque provider attachment identity, not a URL"
84
- })
85
- }).strict();
84
+ var ConnectorAttachmentProviderIdentity = /* @__PURE__ */ defineSchema(
85
+ () => z.object({
86
+ provider: boundedString(CONNECTOR_ATTACHMENT_PROVIDER_MAX_UTF8_BYTES).regex(PROVIDER_PATTERN),
87
+ kind: z.literal("attachment"),
88
+ value: boundedString(CONNECTOR_ATTACHMENT_PROVIDER_ID_MAX_UTF8_BYTES).min(1).refine((value) => !CONTROL_CHARACTER_PATTERN.test(value), {
89
+ message: "must not contain control characters"
90
+ }).refine((value) => !isHttpUrl(value) && !containsHttpUrlReference(value), {
91
+ message: "must be an opaque provider attachment identity, not a URL"
92
+ })
93
+ }).strict()
94
+ );
86
95
  var ConnectorAttachmentFileName = boundedString(
87
96
  CONNECTOR_ATTACHMENT_FILENAME_MAX_UTF8_BYTES
88
97
  ).min(1).refine(
@@ -94,79 +103,87 @@ var ConnectorAttachmentMediaType = boundedString(
94
103
  ).regex(MEDIA_TYPE_PATTERN).refine((value) => !containsHttpUrlReference(value), {
95
104
  message: "must not contain an HTTP URL reference"
96
105
  });
97
- var ConnectorAttachmentSha256 = z.string().regex(SHA256_PATTERN);
98
- var ConnectorAttachmentPrivateSource = z.object({
99
- url: boundedString(CONNECTOR_ATTACHMENT_SOURCE_URL_MAX_UTF8_BYTES).superRefine(
100
- (value, context) => {
101
- let parsed;
102
- try {
103
- parsed = new URL(value);
104
- } catch {
105
- context.addIssue({
106
- code: "custom",
107
- message: "must be an absolute URL"
108
- });
109
- return;
110
- }
111
- if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
112
- context.addIssue({ code: "custom", message: "must use http or https" });
106
+ var ConnectorAttachmentSha256 = /* @__PURE__ */ defineSchema(
107
+ () => string.regex(SHA256_PATTERN)
108
+ );
109
+ var ConnectorAttachmentPrivateSource = /* @__PURE__ */ defineSchema(
110
+ () => z.object({
111
+ url: boundedString(CONNECTOR_ATTACHMENT_SOURCE_URL_MAX_UTF8_BYTES).superRefine(
112
+ (value, context) => {
113
+ let parsed;
114
+ try {
115
+ parsed = new URL(value);
116
+ } catch {
117
+ context.addIssue({
118
+ code: "custom",
119
+ message: "must be an absolute URL"
120
+ });
121
+ return;
122
+ }
123
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
124
+ context.addIssue({ code: "custom", message: "must use http or https" });
125
+ }
126
+ if (parsed.username || parsed.password) {
127
+ context.addIssue({
128
+ code: "custom",
129
+ message: "must not contain URL userinfo"
130
+ });
131
+ }
132
+ if (parsed.hash) {
133
+ context.addIssue({
134
+ code: "custom",
135
+ message: "must not contain a URL fragment"
136
+ });
137
+ }
113
138
  }
114
- if (parsed.username || parsed.password) {
139
+ ),
140
+ expiresAt: z.iso.datetime({ offset: true })
141
+ }).strict()
142
+ );
143
+ var ConnectorAttachmentTransfer = /* @__PURE__ */ defineSchema(
144
+ () => z.object({
145
+ providerAttachmentId: ConnectorAttachmentProviderIdentity,
146
+ fileName: ConnectorAttachmentFileName,
147
+ mediaType: ConnectorAttachmentMediaType,
148
+ byteSize: z.number().int().min(0).max(CONNECTOR_ATTACHMENT_MAX_BYTES),
149
+ contentSha256: ConnectorAttachmentSha256,
150
+ source: ConnectorAttachmentPrivateSource
151
+ }).strict().superRefine((attachment, context) => {
152
+ const publicValues = [
153
+ attachment.providerAttachmentId.value,
154
+ attachment.fileName,
155
+ attachment.mediaType
156
+ ];
157
+ for (const credential of privateUrlCredentialValues(attachment.source.url)) {
158
+ if (publicValues.some((value) => publicMetadataContainsCredential(value, credential))) {
115
159
  context.addIssue({
116
160
  code: "custom",
117
- message: "must not contain URL userinfo"
161
+ message: "private source credentials must not appear in public attachment metadata"
118
162
  });
163
+ return;
119
164
  }
120
- if (parsed.hash) {
165
+ }
166
+ })
167
+ );
168
+ var ConnectorAttachmentTransferEnvelope = /* @__PURE__ */ defineSchema(
169
+ () => z.object({
170
+ version: z.literal(CONNECTOR_ATTACHMENT_TRANSFER_VERSION),
171
+ attachments: z.array(ConnectorAttachmentTransfer).min(1).max(CONNECTOR_ATTACHMENT_MAX_COUNT)
172
+ }).strict().superRefine((envelope, context) => {
173
+ const identities = /* @__PURE__ */ new Set();
174
+ for (const [index, attachment] of envelope.attachments.entries()) {
175
+ const identity = `${attachment.providerAttachmentId.provider}\0${attachment.providerAttachmentId.value}`;
176
+ if (identities.has(identity)) {
121
177
  context.addIssue({
122
178
  code: "custom",
123
- message: "must not contain a URL fragment"
179
+ message: "provider attachment identities must be unique",
180
+ path: ["attachments", index, "providerAttachmentId"]
124
181
  });
125
182
  }
183
+ identities.add(identity);
126
184
  }
127
- ),
128
- expiresAt: z.iso.datetime({ offset: true })
129
- }).strict();
130
- var ConnectorAttachmentTransfer = z.object({
131
- providerAttachmentId: ConnectorAttachmentProviderIdentity,
132
- fileName: ConnectorAttachmentFileName,
133
- mediaType: ConnectorAttachmentMediaType,
134
- byteSize: z.number().int().min(0).max(CONNECTOR_ATTACHMENT_MAX_BYTES),
135
- contentSha256: ConnectorAttachmentSha256,
136
- source: ConnectorAttachmentPrivateSource
137
- }).strict().superRefine((attachment, context) => {
138
- const publicValues = [
139
- attachment.providerAttachmentId.value,
140
- attachment.fileName,
141
- attachment.mediaType
142
- ];
143
- for (const credential of privateUrlCredentialValues(attachment.source.url)) {
144
- if (publicValues.some((value) => publicMetadataContainsCredential(value, credential))) {
145
- context.addIssue({
146
- code: "custom",
147
- message: "private source credentials must not appear in public attachment metadata"
148
- });
149
- return;
150
- }
151
- }
152
- });
153
- var ConnectorAttachmentTransferEnvelope = z.object({
154
- version: z.literal(CONNECTOR_ATTACHMENT_TRANSFER_VERSION),
155
- attachments: z.array(ConnectorAttachmentTransfer).min(1).max(CONNECTOR_ATTACHMENT_MAX_COUNT)
156
- }).strict().superRefine((envelope, context) => {
157
- const identities = /* @__PURE__ */ new Set();
158
- for (const [index, attachment] of envelope.attachments.entries()) {
159
- const identity = `${attachment.providerAttachmentId.provider}\0${attachment.providerAttachmentId.value}`;
160
- if (identities.has(identity)) {
161
- context.addIssue({
162
- code: "custom",
163
- message: "provider attachment identities must be unique",
164
- path: ["attachments", index, "providerAttachmentId"]
165
- });
166
- }
167
- identities.add(identity);
168
- }
169
- });
185
+ })
186
+ );
170
187
  var ConnectorAttachmentSandboxPath = boundedString(
171
188
  CONNECTOR_ATTACHMENT_SANDBOX_PATH_MAX_UTF8_BYTES
172
189
  ).min(1).refine(
@@ -184,34 +201,38 @@ var ConnectorAttachmentSandboxPath = boundedString(
184
201
  },
185
202
  { message: "must be a confined connector attachment sandbox path" }
186
203
  );
187
- var ConnectorAttachmentReceipt = z.object({
188
- providerAttachmentId: ConnectorAttachmentProviderIdentity,
189
- fileName: ConnectorAttachmentFileName,
190
- mediaType: ConnectorAttachmentMediaType,
191
- byteSize: z.number().int().min(0).max(CONNECTOR_ATTACHMENT_MAX_BYTES),
192
- contentSha256: ConnectorAttachmentSha256,
193
- sandboxPath: ConnectorAttachmentSandboxPath
194
- }).strict().superRefine((receipt, context) => {
195
- const segments = receipt.sandboxPath.split("/");
196
- if (segments[2] !== receipt.providerAttachmentId.provider) {
197
- context.addIssue({
198
- code: "custom",
199
- message: "sandbox path provider must match the provider attachment identity",
200
- path: ["sandboxPath"]
201
- });
202
- }
203
- if (segments[4] !== receipt.fileName) {
204
- context.addIssue({
205
- code: "custom",
206
- message: "sandbox path filename must match the attachment filename",
207
- path: ["sandboxPath"]
208
- });
209
- }
210
- });
211
- var ConnectorAttachmentReceiptEnvelope = z.object({
212
- version: z.literal(CONNECTOR_ATTACHMENT_RECEIPT_VERSION),
213
- attachments: z.array(ConnectorAttachmentReceipt).min(1).max(CONNECTOR_ATTACHMENT_MAX_COUNT)
214
- }).strict();
204
+ var ConnectorAttachmentReceipt = /* @__PURE__ */ defineSchema(
205
+ () => z.object({
206
+ providerAttachmentId: ConnectorAttachmentProviderIdentity,
207
+ fileName: ConnectorAttachmentFileName,
208
+ mediaType: ConnectorAttachmentMediaType,
209
+ byteSize: z.number().int().min(0).max(CONNECTOR_ATTACHMENT_MAX_BYTES),
210
+ contentSha256: ConnectorAttachmentSha256,
211
+ sandboxPath: ConnectorAttachmentSandboxPath
212
+ }).strict().superRefine((receipt, context) => {
213
+ const segments = receipt.sandboxPath.split("/");
214
+ if (segments[2] !== receipt.providerAttachmentId.provider) {
215
+ context.addIssue({
216
+ code: "custom",
217
+ message: "sandbox path provider must match the provider attachment identity",
218
+ path: ["sandboxPath"]
219
+ });
220
+ }
221
+ if (segments[4] !== receipt.fileName) {
222
+ context.addIssue({
223
+ code: "custom",
224
+ message: "sandbox path filename must match the attachment filename",
225
+ path: ["sandboxPath"]
226
+ });
227
+ }
228
+ })
229
+ );
230
+ var ConnectorAttachmentReceiptEnvelope = /* @__PURE__ */ defineSchema(
231
+ () => z.object({
232
+ version: z.literal(CONNECTOR_ATTACHMENT_RECEIPT_VERSION),
233
+ attachments: z.array(ConnectorAttachmentReceipt).min(1).max(CONNECTOR_ATTACHMENT_MAX_COUNT)
234
+ }).strict()
235
+ );
215
236
  function parseConnectorAttachmentTransferEnvelope(value, options = {}) {
216
237
  const envelope = ConnectorAttachmentTransferEnvelope.parse(value);
217
238
  const nowMs = options.nowMs ?? Date.now();
@@ -248,4 +269,4 @@ export {
248
269
  ConnectorAttachmentReceiptEnvelope,
249
270
  parseConnectorAttachmentTransferEnvelope
250
271
  };
251
- //# sourceMappingURL=chunk-YBW5JSA3.js.map
272
+ //# sourceMappingURL=chunk-FBCTUMHI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/connector-attachments.ts"],"sourcesContent":["import * as primitives from \"./primitives\";\nimport { defineSchema } from \"./define-schema\";\nimport { z } from \"zod\";\n\nexport const CONNECTOR_ATTACHMENT_TRANSFER_VERSION = 1 as const;\nexport const CONNECTOR_ATTACHMENT_RECEIPT_VERSION = 1 as const;\nexport const CONNECTOR_ATTACHMENT_TRANSFER_META_KEY =\n \"opengeni/connector-attachment-transfers\" as const;\nexport const CONNECTOR_ATTACHMENT_RECEIPT_META_KEY =\n \"opengeni/connector-attachment-receipts\" as const;\nexport const CONNECTOR_ATTACHMENT_MAX_COUNT = 16;\n// Must remain byte-for-byte aligned with Channel A's exact workspace importer.\nexport const CONNECTOR_ATTACHMENT_MAX_BYTES = 5_000_000_000;\nexport const CONNECTOR_ATTACHMENT_FILENAME_MAX_UTF8_BYTES = 255;\nexport const CONNECTOR_ATTACHMENT_MEDIA_TYPE_MAX_UTF8_BYTES = 256;\nexport const CONNECTOR_ATTACHMENT_PROVIDER_MAX_UTF8_BYTES = 128;\nexport const CONNECTOR_ATTACHMENT_PROVIDER_ID_MAX_UTF8_BYTES = 512;\nexport const CONNECTOR_ATTACHMENT_SOURCE_URL_MAX_UTF8_BYTES = 8 * 1024;\nexport const CONNECTOR_ATTACHMENT_SANDBOX_PATH_MAX_UTF8_BYTES = 2 * 1024;\n\nconst PROVIDER_PATTERN = /^[a-z0-9]+(?:[._-][a-z0-9]+)*$/u;\nconst SHA256_PATTERN = /^[0-9a-f]{64}$/u;\nconst MEDIA_TYPE_PATTERN =\n /^[a-z0-9!#$&^_.+-]+\\/[a-z0-9!#$&^_.+-]+(?:\\s*;\\s*[a-z0-9!#$&^_.+-]+=(?:[a-z0-9!#$&^_.+-]+|\"[^\"\\r\\n]*\"))*$/iu;\nconst CONTROL_CHARACTER_PATTERN = /[\\u0000-\\u001f\\u007f]/u;\nconst HTTP_URL_REFERENCE_PATTERN = /(?:https?:)?\\/\\/[^\\s]/iu;\nconst PORTABLE_FILENAME_FORBIDDEN_PATTERN = /[<>:\"|?*]/u;\nconst PORTABLE_FILENAME_RESERVED_PATTERN = /^(?:con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\\.|$)/iu;\nconst textEncoder = new TextEncoder();\n\nfunction utf8Bytes(value: string): number {\n return textEncoder.encode(value).byteLength;\n}\n\nfunction boundedString(maxUtf8Bytes: number) {\n return primitives.string.refine((value) => utf8Bytes(value) <= maxUtf8Bytes, {\n message: `must be at most ${maxUtf8Bytes} UTF-8 bytes`,\n });\n}\n\nfunction isHttpUrl(value: string): boolean {\n try {\n const parsed = new URL(value);\n return parsed.protocol === \"http:\" || parsed.protocol === \"https:\";\n } catch {\n return false;\n }\n}\n\nfunction containsHttpUrlReference(value: string): boolean {\n return HTTP_URL_REFERENCE_PATTERN.test(value);\n}\n\nfunction isPrivateUrlCredentialQueryName(value: string): boolean {\n const normalized = value.toLowerCase().replace(/[^a-z0-9]/gu, \"\");\n return (\n normalized === \"sig\" ||\n normalized === \"auth\" ||\n normalized.endsWith(\"signature\") ||\n normalized.endsWith(\"token\") ||\n normalized.endsWith(\"credential\") ||\n normalized.endsWith(\"secret\") ||\n normalized.endsWith(\"password\") ||\n normalized.endsWith(\"passcode\") ||\n normalized.endsWith(\"authorization\") ||\n normalized.endsWith(\"apikey\") ||\n normalized.endsWith(\"accesskey\") ||\n normalized.endsWith(\"securitytoken\") ||\n normalized.endsWith(\"sas\") ||\n normalized === \"googleaccessid\"\n );\n}\n\nfunction privateUrlCredentialValues(value: string): string[] {\n let parsed: URL;\n try {\n parsed = new URL(value);\n } catch {\n return [];\n }\n const credentials = new Set<string>();\n for (const [name, credential] of parsed.searchParams) {\n if (credential && isPrivateUrlCredentialQueryName(name)) credentials.add(credential);\n }\n for (const pair of parsed.search.slice(1).split(\"&\")) {\n if (!pair) continue;\n const separator = pair.indexOf(\"=\");\n const rawName = separator === -1 ? pair : pair.slice(0, separator);\n const rawCredential = separator === -1 ? \"\" : pair.slice(separator + 1);\n let decodedName: string;\n try {\n decodedName = decodeURIComponent(rawName.replace(/\\+/gu, \" \"));\n } catch {\n continue;\n }\n if (rawCredential && isPrivateUrlCredentialQueryName(decodedName)) {\n credentials.add(rawCredential);\n }\n }\n return [...credentials];\n}\n\nfunction publicMetadataContainsCredential(publicValue: string, credential: string): boolean {\n return publicValue.includes(credential);\n}\n\nexport const ConnectorAttachmentProviderIdentity = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n provider: boundedString(CONNECTOR_ATTACHMENT_PROVIDER_MAX_UTF8_BYTES).regex(PROVIDER_PATTERN),\n kind: z.literal(\"attachment\"),\n value: boundedString(CONNECTOR_ATTACHMENT_PROVIDER_ID_MAX_UTF8_BYTES)\n .min(1)\n .refine((value) => !CONTROL_CHARACTER_PATTERN.test(value), {\n message: \"must not contain control characters\",\n })\n .refine((value) => !isHttpUrl(value) && !containsHttpUrlReference(value), {\n message: \"must be an opaque provider attachment identity, not a URL\",\n }),\n })\n .strict(),\n);\nexport type ConnectorAttachmentProviderIdentity = z.infer<\n typeof ConnectorAttachmentProviderIdentity\n>;\n\nexport const ConnectorAttachmentFileName = boundedString(\n CONNECTOR_ATTACHMENT_FILENAME_MAX_UTF8_BYTES,\n)\n .min(1)\n .refine(\n (value) =>\n value !== \".\" &&\n value !== \"..\" &&\n value === value.trim() &&\n !value.includes(\"/\") &&\n !value.includes(\"\\\\\") &&\n !CONTROL_CHARACTER_PATTERN.test(value) &&\n !PORTABLE_FILENAME_FORBIDDEN_PATTERN.test(value) &&\n !/[ .]$/u.test(value) &&\n !PORTABLE_FILENAME_RESERVED_PATTERN.test(value),\n { message: \"must be a safe leaf filename\" },\n );\n\nexport const ConnectorAttachmentMediaType = boundedString(\n CONNECTOR_ATTACHMENT_MEDIA_TYPE_MAX_UTF8_BYTES,\n)\n .regex(MEDIA_TYPE_PATTERN)\n .refine((value) => !containsHttpUrlReference(value), {\n message: \"must not contain an HTTP URL reference\",\n });\n\nexport const ConnectorAttachmentSha256 = /* @__PURE__ */ defineSchema(() =>\n primitives.string.regex(SHA256_PATTERN),\n);\n\nexport const ConnectorAttachmentPrivateSource = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n url: boundedString(CONNECTOR_ATTACHMENT_SOURCE_URL_MAX_UTF8_BYTES).superRefine(\n (value, context) => {\n let parsed: URL;\n try {\n parsed = new URL(value);\n } catch {\n context.addIssue({\n code: \"custom\",\n message: \"must be an absolute URL\",\n });\n return;\n }\n if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") {\n context.addIssue({ code: \"custom\", message: \"must use http or https\" });\n }\n if (parsed.username || parsed.password) {\n context.addIssue({\n code: \"custom\",\n message: \"must not contain URL userinfo\",\n });\n }\n if (parsed.hash) {\n context.addIssue({\n code: \"custom\",\n message: \"must not contain a URL fragment\",\n });\n }\n },\n ),\n expiresAt: z.iso.datetime({ offset: true }),\n })\n .strict(),\n);\nexport type ConnectorAttachmentPrivateSource = z.infer<typeof ConnectorAttachmentPrivateSource>;\n\nexport const ConnectorAttachmentTransfer = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n providerAttachmentId: ConnectorAttachmentProviderIdentity,\n fileName: ConnectorAttachmentFileName,\n mediaType: ConnectorAttachmentMediaType,\n byteSize: z.number().int().min(0).max(CONNECTOR_ATTACHMENT_MAX_BYTES),\n contentSha256: ConnectorAttachmentSha256,\n source: ConnectorAttachmentPrivateSource,\n })\n .strict()\n .superRefine((attachment, context) => {\n const publicValues = [\n attachment.providerAttachmentId.value,\n attachment.fileName,\n attachment.mediaType,\n ];\n for (const credential of privateUrlCredentialValues(attachment.source.url)) {\n if (publicValues.some((value) => publicMetadataContainsCredential(value, credential))) {\n context.addIssue({\n code: \"custom\",\n message: \"private source credentials must not appear in public attachment metadata\",\n });\n return;\n }\n }\n }),\n);\nexport type ConnectorAttachmentTransfer = z.infer<typeof ConnectorAttachmentTransfer>;\n\nexport const ConnectorAttachmentTransferEnvelope = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n version: z.literal(CONNECTOR_ATTACHMENT_TRANSFER_VERSION),\n attachments: z.array(ConnectorAttachmentTransfer).min(1).max(CONNECTOR_ATTACHMENT_MAX_COUNT),\n })\n .strict()\n .superRefine((envelope, context) => {\n const identities = new Set<string>();\n for (const [index, attachment] of envelope.attachments.entries()) {\n const identity = `${attachment.providerAttachmentId.provider}\\0${attachment.providerAttachmentId.value}`;\n if (identities.has(identity)) {\n context.addIssue({\n code: \"custom\",\n message: \"provider attachment identities must be unique\",\n path: [\"attachments\", index, \"providerAttachmentId\"],\n });\n }\n identities.add(identity);\n }\n }),\n);\nexport type ConnectorAttachmentTransferEnvelope = z.infer<\n typeof ConnectorAttachmentTransferEnvelope\n>;\n\nexport const ConnectorAttachmentSandboxPath = boundedString(\n CONNECTOR_ATTACHMENT_SANDBOX_PATH_MAX_UTF8_BYTES,\n)\n .min(1)\n .refine(\n (value) => {\n if (\n value !== value.trim() ||\n value.startsWith(\"/\") ||\n /^[A-Za-z]:[\\\\/]/u.test(value) ||\n value.includes(\"\\\\\") ||\n CONTROL_CHARACTER_PATTERN.test(value)\n ) {\n return false;\n }\n const segments = value.split(\"/\");\n if (\n segments.length !== 5 ||\n segments[0] !== \".opengeni\" ||\n segments[1] !== \"connector-attachments\" ||\n !PROVIDER_PATTERN.test(segments[2] ?? \"\") ||\n !/^[0-9a-f]{32}$/u.test(segments[3] ?? \"\") ||\n !ConnectorAttachmentFileName.safeParse(segments[4]).success\n ) {\n return false;\n }\n return segments.every(\n (segment) =>\n segment.length > 0 &&\n segment !== \".\" &&\n segment !== \"..\" &&\n !PORTABLE_FILENAME_FORBIDDEN_PATTERN.test(segment) &&\n !/[ .]$/u.test(segment) &&\n !PORTABLE_FILENAME_RESERVED_PATTERN.test(segment),\n );\n },\n { message: \"must be a confined connector attachment sandbox path\" },\n );\n\nexport const ConnectorAttachmentReceipt = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n providerAttachmentId: ConnectorAttachmentProviderIdentity,\n fileName: ConnectorAttachmentFileName,\n mediaType: ConnectorAttachmentMediaType,\n byteSize: z.number().int().min(0).max(CONNECTOR_ATTACHMENT_MAX_BYTES),\n contentSha256: ConnectorAttachmentSha256,\n sandboxPath: ConnectorAttachmentSandboxPath,\n })\n .strict()\n .superRefine((receipt, context) => {\n const segments = receipt.sandboxPath.split(\"/\");\n if (segments[2] !== receipt.providerAttachmentId.provider) {\n context.addIssue({\n code: \"custom\",\n message: \"sandbox path provider must match the provider attachment identity\",\n path: [\"sandboxPath\"],\n });\n }\n if (segments[4] !== receipt.fileName) {\n context.addIssue({\n code: \"custom\",\n message: \"sandbox path filename must match the attachment filename\",\n path: [\"sandboxPath\"],\n });\n }\n }),\n);\nexport type ConnectorAttachmentReceipt = z.infer<typeof ConnectorAttachmentReceipt>;\n\nexport const ConnectorAttachmentReceiptEnvelope = /* @__PURE__ */ defineSchema(() =>\n z\n .object({\n version: z.literal(CONNECTOR_ATTACHMENT_RECEIPT_VERSION),\n attachments: z.array(ConnectorAttachmentReceipt).min(1).max(CONNECTOR_ATTACHMENT_MAX_COUNT),\n })\n .strict(),\n);\nexport type ConnectorAttachmentReceiptEnvelope = z.infer<typeof ConnectorAttachmentReceiptEnvelope>;\n\nexport function parseConnectorAttachmentTransferEnvelope(\n value: unknown,\n options: { nowMs?: number } = {},\n): ConnectorAttachmentTransferEnvelope {\n const envelope = ConnectorAttachmentTransferEnvelope.parse(value);\n const nowMs = options.nowMs ?? Date.now();\n for (const attachment of envelope.attachments) {\n if (Date.parse(attachment.source.expiresAt) <= nowMs) {\n throw new Error(\"connector attachment source is expired\");\n }\n }\n return envelope;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,97 @@
1
+ import {
2
+ defineSchema
3
+ } from "./chunk-56SNIMDO.js";
4
+
5
+ // src/permissions.ts
6
+ import { z } from "zod";
7
+ var Permission = /* @__PURE__ */ defineSchema(
8
+ () => z.enum([
9
+ "account:read",
10
+ "account:admin",
11
+ "members:manage",
12
+ "workspace:create",
13
+ "billing:read",
14
+ "billing:manage",
15
+ "workspace:read",
16
+ "workspace:admin",
17
+ "sessions:create",
18
+ "sessions:read",
19
+ "sessions:control",
20
+ "stream:view",
21
+ "stream:control",
22
+ "stream:acknowledge",
23
+ "files:upload",
24
+ "files:read",
25
+ "files:write",
26
+ "terminal:attach",
27
+ "documents:manage",
28
+ "documents:search",
29
+ "scheduled_tasks:manage",
30
+ "scheduled_tasks:run",
31
+ "github:manage",
32
+ "github:use",
33
+ "api_keys:manage",
34
+ /** Literal organization-key authority to configure workspace usage allowances. */
35
+ "usage_allowances:manage",
36
+ "connections:read",
37
+ "connections:write",
38
+ /**
39
+ * Connect, use and remove one's own accounts, turn on a reviewed OAuth
40
+ * integration for personal accounts, and add it to one's own chats.
41
+ * `connections:write` includes it.
42
+ */
43
+ "connections:personal",
44
+ "capabilities:manage",
45
+ /** @deprecated alias of secrets:write */
46
+ "environments:manage",
47
+ /** @deprecated alias of secrets:use */
48
+ "environments:use",
49
+ /** @deprecated alias of secrets:list */
50
+ "variable-sets:list",
51
+ /** @deprecated alias of secrets:list */
52
+ "variable-sets:read",
53
+ /** @deprecated alias of secrets:write */
54
+ "variable-sets:write",
55
+ /** @deprecated alias of secrets:write */
56
+ "variable-sets:manage",
57
+ /** @deprecated alias of secrets:use */
58
+ "variable-sets:attach",
59
+ /** @deprecated alias of secrets:use */
60
+ "variable-sets:use",
61
+ "secrets:list",
62
+ /** Literal plaintext read through a tool or API key (agents lack it by default). */
63
+ "secrets:read",
64
+ "secrets:write",
65
+ /** Use secrets by reference; for humans, also reveal ("use = reveal"). */
66
+ "secrets:use",
67
+ "mcp_servers:attach",
68
+ "codemode:call",
69
+ "goals:manage",
70
+ "enrollments:read",
71
+ "enrollments:manage",
72
+ "rigs:use",
73
+ "rigs:manage",
74
+ "artifacts:read",
75
+ "artifacts:publish"
76
+ ])
77
+ );
78
+ var SECRET_PERMISSION_ALIASES = {
79
+ "variable-sets:list": "secrets:list",
80
+ "variable-sets:read": "secrets:list",
81
+ "variable-sets:write": "secrets:write",
82
+ "variable-sets:manage": "secrets:write",
83
+ "environments:manage": "secrets:write",
84
+ "variable-sets:attach": "secrets:use",
85
+ "variable-sets:use": "secrets:use",
86
+ "environments:use": "secrets:use"
87
+ };
88
+ function normalizePermission(name) {
89
+ return Object.hasOwn(SECRET_PERMISSION_ALIASES, name) ? SECRET_PERMISSION_ALIASES[name] : name;
90
+ }
91
+
92
+ export {
93
+ Permission,
94
+ SECRET_PERMISSION_ALIASES,
95
+ normalizePermission
96
+ };
97
+ //# sourceMappingURL=chunk-G2KJTFIC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/permissions.ts"],"sourcesContent":["import { defineSchema } from \"./define-schema\";\nimport { z } from \"zod\";\n\n/** Canonical public permission vocabulary shared by operational and control-plane contracts. */\nexport const Permission = /* @__PURE__ */ defineSchema(() =>\n z.enum([\n \"account:read\",\n \"account:admin\",\n \"members:manage\",\n \"workspace:create\",\n \"billing:read\",\n \"billing:manage\",\n \"workspace:read\",\n \"workspace:admin\",\n \"sessions:create\",\n \"sessions:read\",\n \"sessions:control\",\n \"stream:view\",\n \"stream:control\",\n \"stream:acknowledge\",\n \"files:upload\",\n \"files:read\",\n \"files:write\",\n \"terminal:attach\",\n \"documents:manage\",\n \"documents:search\",\n \"scheduled_tasks:manage\",\n \"scheduled_tasks:run\",\n \"github:manage\",\n \"github:use\",\n \"api_keys:manage\",\n /** Literal organization-key authority to configure workspace usage allowances. */\n \"usage_allowances:manage\",\n \"connections:read\",\n \"connections:write\",\n /**\n * Connect, use and remove one's own accounts, turn on a reviewed OAuth\n * integration for personal accounts, and add it to one's own chats.\n * `connections:write` includes it.\n */\n \"connections:personal\",\n \"capabilities:manage\",\n /** @deprecated alias of secrets:write */\n \"environments:manage\",\n /** @deprecated alias of secrets:use */\n \"environments:use\",\n /** @deprecated alias of secrets:list */\n \"variable-sets:list\",\n /** @deprecated alias of secrets:list */\n \"variable-sets:read\",\n /** @deprecated alias of secrets:write */\n \"variable-sets:write\",\n /** @deprecated alias of secrets:write */\n \"variable-sets:manage\",\n /** @deprecated alias of secrets:use */\n \"variable-sets:attach\",\n /** @deprecated alias of secrets:use */\n \"variable-sets:use\",\n \"secrets:list\",\n /** Literal plaintext read through a tool or API key (agents lack it by default). */\n \"secrets:read\",\n \"secrets:write\",\n /** Use secrets by reference; for humans, also reveal (\"use = reveal\"). */\n \"secrets:use\",\n \"mcp_servers:attach\",\n \"codemode:call\",\n \"goals:manage\",\n \"enrollments:read\",\n \"enrollments:manage\",\n \"rigs:use\",\n \"rigs:manage\",\n \"artifacts:read\",\n \"artifacts:publish\",\n ]),\n);\nexport type Permission = z.infer<typeof Permission>;\n\n/**\n * Legacy permission names and their secrets equivalents (Q-16). Stored role\n * and API-key permission arrays are aliased at read time, never rewritten.\n */\nexport const SECRET_PERMISSION_ALIASES = {\n \"variable-sets:list\": \"secrets:list\",\n \"variable-sets:read\": \"secrets:list\",\n \"variable-sets:write\": \"secrets:write\",\n \"variable-sets:manage\": \"secrets:write\",\n \"environments:manage\": \"secrets:write\",\n \"variable-sets:attach\": \"secrets:use\",\n \"variable-sets:use\": \"secrets:use\",\n \"environments:use\": \"secrets:use\",\n} as const satisfies Readonly<Partial<Record<Permission, Permission>>>;\n\n/** Canonical name for a permission: legacy variable-set names map to `secrets:*`. */\nexport function normalizePermission(name: string): string {\n return Object.hasOwn(SECRET_PERMISSION_ALIASES, name)\n ? SECRET_PERMISSION_ALIASES[name as keyof typeof SECRET_PERMISSION_ALIASES]\n : name;\n}\n"],"mappings":";;;;;AACA,SAAS,SAAS;AAGX,IAAM,aAA6B;AAAA,EAAa,MACrD,EAAE,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAOO,IAAM,4BAA4B;AAAA,EACvC,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,uBAAuB;AAAA,EACvB,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,wBAAwB;AAAA,EACxB,qBAAqB;AAAA,EACrB,oBAAoB;AACtB;AAGO,SAAS,oBAAoB,MAAsB;AACxD,SAAO,OAAO,OAAO,2BAA2B,IAAI,IAChD,0BAA0B,IAA8C,IACxE;AACN;","names":[]}