@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
@@ -1,4 +1,31 @@
1
+ import { matchSiteOperation, type SiteOperation } from "./site-operations";
2
+
1
3
  const SITE_WORKSPACE_PREFIX = "/v1/workspaces/site-host";
4
+ /** Site Data and Site SQL routes under any published Site: `<prefix>/published-artifacts/<id>/data|files|sql`. */
5
+ const SITE_DATA_PATH =
6
+ /^\/v1\/workspaces\/site-host\/published-artifacts\/([^/]+)\/(?:data|files|sql)(?:\/|$)/u;
7
+ /** The list filter a frame without a published Site gets: it names no Site, so lists nothing. */
8
+ export const SITE_NO_ORIGIN_ID = "00000000-0000-0000-0000-000000000000";
9
+
10
+ /**
11
+ * The header a host sets on every request it forwards from a Site frame. The
12
+ * value names the host: `1` for the console bridge, `preview` for a Codemode
13
+ * local preview. The API treats a request carrying it (or the pinned Site id)
14
+ * as Site code: only `SITE_OPERATIONS`, only the frame's own sessions.
15
+ */
16
+ export const SITE_FRAME_HEADER = "x-opengeni-site-frame";
17
+ /** SITE_FRAME_HEADER value a Codemode local preview sets. */
18
+ export const SITE_PREVIEW_FRAME = "preview";
19
+ /**
20
+ * A random id the host mints per mounted frame. A frame without a published
21
+ * Site (inline HTML, previews) records it on the sessions it starts and may
22
+ * reach only those sessions afterwards.
23
+ */
24
+ export const SITE_FRAME_ID_HEADER = "x-opengeni-site-frame-id";
25
+ /** The published Site (artifact id) a host pinned the frame to. */
26
+ export const SITE_ID_HEADER = "x-opengeni-site-id";
27
+ /** The exact Site version the pinned frame runs. */
28
+ export const SITE_VERSION_HEADER = "x-opengeni-site-version";
2
29
 
3
30
  /** A Site/Codemode SDK request named a route outside the proxied surface. */
4
31
  export class SiteSessionPathError extends Error {
@@ -10,39 +37,157 @@ export class SiteSessionPathError extends Error {
10
37
  }
11
38
  }
12
39
 
13
- /** Route browser/preview SDK requests to the host workspace. This is a URL
14
- * boundary, not an endpoint or HTTP-method allowlist. Ordinary API handlers
15
- * authorize every operation with the viewer or agent's existing authority. */
40
+ /** The host serves no Site Data: it is not bound to a published Site (inline HTML, previews). */
41
+ export class SiteDataUnsupportedError extends Error {
42
+ readonly code = "site_data_unsupported";
43
+
44
+ constructor() {
45
+ super("This Site host does not provide Site Data");
46
+ this.name = "SiteDataUnsupportedError";
47
+ }
48
+ }
49
+
50
+ function unsafePathname(pathname: string): boolean {
51
+ return (
52
+ /[%\\#\u0000-\u0020\u007f]/u.test(pathname) ||
53
+ pathname.split("/").some((part) => part === "." || part === "..")
54
+ );
55
+ }
56
+
57
+ function hostWorkspacePath(path: string, workspaceId: string): string {
58
+ return path.replace("/workspaces/site-host", `/workspaces/${encodeURIComponent(workspaceId)}`);
59
+ }
60
+
61
+ /** Site Data: a Site reaches only its own data, as `current`, through a host bound to a published Site. */
62
+ function siteDataPath(path: string, rewritten: string, workspaceId: string, siteId?: string) {
63
+ // Inside the Site the alias stays unresolved; the host resolves it.
64
+ if (workspaceId === "site-host") return path;
65
+ // Only a host bound to a published Site serves its data.
66
+ if (!siteId) throw new SiteDataUnsupportedError();
67
+ return rewritten.replace(
68
+ "/published-artifacts/current/",
69
+ `/published-artifacts/${encodeURIComponent(siteId)}/`,
70
+ );
71
+ }
72
+
73
+ /**
74
+ * Route a request from Site code (the in-Site SDK, the console bridge, a
75
+ * Codemode preview) to the host workspace. This is the `SITE_OPERATIONS`
76
+ * allowlist: anything else is refused with SiteSessionPathError before any
77
+ * request is made. Ordinary API handlers still authorize every allowed
78
+ * operation with the viewer's own authority, and the API independently
79
+ * refuses frame requests outside the allowlist or to another Site's sessions.
80
+ *
81
+ * `workspaceId` `site-host` checks a path inside the Site without rewriting
82
+ * it. A session list must name `originSiteId=current`; the host binds it to
83
+ * its pinned Site, or to no Site at all when the frame has none.
84
+ */
16
85
  export function siteSessionPath(
17
86
  path: string,
18
87
  workspaceId: string,
19
- _method = "GET",
88
+ method = "GET",
20
89
  siteId?: string,
21
90
  ): string {
91
+ const pathname = path.split("?")[0]!;
92
+ const match = matchSiteOperation(method, pathname);
93
+ if (!match) throw new SiteSessionPathError();
94
+ const rewritten = hostWorkspacePath(path, workspaceId);
95
+ if (SITE_DATA_PATH.test(pathname)) return siteDataPath(path, rewritten, workspaceId, siteId);
96
+ if (match.operation.id !== "sessions.list") return rewritten;
97
+ // A Site lists only its own conversations. Never widen a Site list to the workspace.
98
+ const url = new URL(rewritten, "http://site.invalid");
99
+ const origins = url.searchParams.getAll("originSiteId");
100
+ if (origins.length !== 1 || origins[0] !== "current") throw new SiteSessionPathError();
101
+ if (workspaceId === "site-host") return path;
102
+ url.searchParams.set("originSiteId", siteId ?? SITE_NO_ORIGIN_ID);
103
+ return url.pathname + url.search;
104
+ }
105
+
106
+ /**
107
+ * Route an agent's own SDK request through the Codemode SDK proxy to its
108
+ * workspace. Unlike `siteSessionPath` this is a URL prefix boundary, not an
109
+ * operation allowlist: the proxy signs a short-lived credential bounded by
110
+ * the agent's own permission ceiling and ordinary handlers authorize every
111
+ * operation. Site Data is not served here (an agent uses its tools).
112
+ * Requests a Codemode preview forwards from Site code carry the frame marker
113
+ * and use `siteSessionPath` instead.
114
+ */
115
+ export function siteHostWorkspacePath(path: string, workspaceId: string): string {
22
116
  const pathname = path.split("?")[0]!;
23
117
  const workspace =
24
118
  pathname === SITE_WORKSPACE_PREFIX || pathname.startsWith(`${SITE_WORKSPACE_PREFIX}/`);
25
- const context = pathname === "/v1/config/client";
26
- if (
27
- (!workspace && !context) ||
28
- /[%\\#\u0000-\u0020\u007f]/u.test(pathname) ||
29
- pathname.split("/").some((p) => p === "." || p === "..")
30
- ) {
119
+ if ((!workspace && pathname !== "/v1/config/client") || unsafePathname(pathname))
31
120
  throw new SiteSessionPathError();
121
+ const rewritten = hostWorkspacePath(path, workspaceId);
122
+ const data = SITE_DATA_PATH.exec(pathname);
123
+ if (data) {
124
+ if (data[1] !== "current") throw new SiteSessionPathError();
125
+ return siteDataPath(path, rewritten, workspaceId);
32
126
  }
33
- const rewritten = path.replace(
34
- "/workspaces/site-host",
35
- `/workspaces/${encodeURIComponent(workspaceId)}`,
36
- );
37
- // Preview has no published Site identity. Never widen a Site-only list to the workspace.
38
127
  const url = new URL(rewritten, "http://site.invalid");
39
128
  if (url.searchParams.get("originSiteId") === "current" && workspaceId !== "site-host") {
40
- url.searchParams.set("originSiteId", siteId ?? "00000000-0000-0000-0000-000000000000");
129
+ url.searchParams.set("originSiteId", SITE_NO_ORIGIN_ID);
41
130
  return url.pathname + url.search;
42
131
  }
43
132
  return rewritten;
44
133
  }
45
134
 
135
+ /** The Site identity a host attached to a request, from its host-set headers. */
136
+ export type SiteFrameHeaders = {
137
+ /** The pinned published Site id, or null for a frame without one. */
138
+ siteId: string | null;
139
+ versionId: string | null;
140
+ /** The host's frame marker value (`1`, `preview`), or null when only the Site id was set. */
141
+ marker: string | null;
142
+ frameId: string | null;
143
+ };
144
+
145
+ /** Read the host-set frame headers. Null when the request did not come from a Site frame. */
146
+ export function siteFrameFromHeaders(
147
+ header: (name: string) => string | null | undefined,
148
+ ): SiteFrameHeaders | null {
149
+ const value = (name: string) => header(name) ?? null;
150
+ const marker = value(SITE_FRAME_HEADER);
151
+ const siteId = value(SITE_ID_HEADER);
152
+ const versionId = value(SITE_VERSION_HEADER);
153
+ const frameId = value(SITE_FRAME_ID_HEADER);
154
+ if (marker === null && siteId === null && versionId === null && frameId === null) return null;
155
+ return { siteId: siteId || null, versionId: versionId || null, marker, frameId: frameId || null };
156
+ }
157
+
158
+ /**
159
+ * Match a request that reached a workspace route from a Site frame against
160
+ * `SITE_OPERATIONS`. `pathname` is the raw request path
161
+ * (`/v1/workspaces/<id>/...` or `/v1/config/client`). The frame's own pinned
162
+ * Site id maps back to `current`; any other Site id does not match.
163
+ */
164
+ export function siteFrameOperation(
165
+ method: string,
166
+ pathname: string,
167
+ workspaceId: string,
168
+ frameSiteId: string | null,
169
+ ): { operation: SiteOperation; suffix: string; sessionId: string | null } | null {
170
+ if (unsafePathname(pathname)) return null;
171
+ let sitePath = pathname;
172
+ if (pathname !== "/v1/config/client") {
173
+ const prefix = `/v1/workspaces/${workspaceId}`;
174
+ if (pathname !== prefix && !pathname.startsWith(`${prefix}/`)) return null;
175
+ sitePath = `${SITE_WORKSPACE_PREFIX}${pathname.slice(prefix.length)}`;
176
+ const data = /^\/v1\/workspaces\/site-host\/published-artifacts\/([^/]+)\//u.exec(sitePath);
177
+ if (data) {
178
+ if (!frameSiteId || data[1] !== frameSiteId) return null;
179
+ sitePath = sitePath.replace(
180
+ `/published-artifacts/${frameSiteId}/`,
181
+ "/published-artifacts/current/",
182
+ );
183
+ }
184
+ }
185
+ const match = matchSiteOperation(method, sitePath);
186
+ if (!match) return null;
187
+ const session = /^\/sessions\/([^/]+)(?:\/|$)/u.exec(match.suffix);
188
+ return { ...match, sessionId: session ? session[1]! : null };
189
+ }
190
+
46
191
  /** Preserve SDK request semantics while the host supplies identity and transport headers. */
47
192
  export function siteRequestHeaders(input: HeadersInit): Headers {
48
193
  const headers = new Headers(input);
@@ -61,3 +206,136 @@ export function siteRequestHeaders(input: HeadersInit): Headers {
61
206
  }
62
207
  return headers;
63
208
  }
209
+
210
+ // ---------------------------------------------------------------------------
211
+ // What a Site frame may put in a request body
212
+ // ---------------------------------------------------------------------------
213
+
214
+ /** Message fields a Site page may set: the text and how the model answers it. */
215
+ const SITE_FRAME_MESSAGE_FIELDS = [
216
+ "text",
217
+ "annotations",
218
+ "model",
219
+ "reasoningEffort",
220
+ "latencyMode",
221
+ "controlEtag",
222
+ "expectedDraftRevision",
223
+ ] as const;
224
+
225
+ /**
226
+ * Body fields a Site frame may send per operation. Anything else with a
227
+ * value (resources, personal resource attachments, MCP credential updates,
228
+ * connection accounts, model context, approval decisions, human-input
229
+ * answers) is the person's to give in the console, never a Site page's.
230
+ */
231
+ const SITE_FRAME_BODY_FIELDS: Readonly<Record<string, readonly string[]>> = Object.freeze({
232
+ "sessions.send": ["type", "payload", "clientEventId"],
233
+ "sessions.steer": [...SITE_FRAME_MESSAGE_FIELDS, "clientEventId"],
234
+ "sessions.control": ["action", "reason", "clientEventId", "expectedControlEtag"],
235
+ "sessions.composerDraft.put": [
236
+ "text",
237
+ "annotations",
238
+ "resources",
239
+ "model",
240
+ "reasoningEffort",
241
+ "latencyMode",
242
+ "expectedRevision",
243
+ ],
244
+ "sessions.composerDraft.submit": [
245
+ ...SITE_FRAME_MESSAGE_FIELDS,
246
+ "resources",
247
+ "connectionAccounts",
248
+ "clientEventId",
249
+ "delivery",
250
+ ],
251
+ "sessions.queue.move": ["clientEventId", "expectedQueueVersion", "beforeTurnId"],
252
+ "sessions.queue.edit": [
253
+ "clientEventId",
254
+ "expectedTurnVersion",
255
+ "expectedDraftRevision",
256
+ "replaceDraft",
257
+ ],
258
+ "sessions.queue.steer": ["clientEventId", "expectedTurnVersion", "controlEtag"],
259
+ "sessions.queue.delete": ["clientEventId", "expectedTurnVersion", "reason"],
260
+ });
261
+
262
+ /** Fields allowed above only while empty: a draft carries no resources or accounts. */
263
+ const SITE_FRAME_EMPTY_ONLY_FIELDS = new Set(["resources", "connectionAccounts"]);
264
+
265
+ /**
266
+ * Session create fields a Site frame may send. The API starts the session
267
+ * with a minimal Site profile: no tools, servers, connections, permissions,
268
+ * vaults, sandbox or environment choice, resources, Skills, agent overrides,
269
+ * hidden model context, learning overrides, goals, channels, visibility,
270
+ * usage limits or nesting. Metadata keeps only keys outside `_opengeni`.
271
+ */
272
+ export const SITE_FRAME_SESSION_CREATE_FIELDS: readonly string[] = Object.freeze([
273
+ "initialMessage",
274
+ "requestedSessionId",
275
+ "idempotencyKey",
276
+ "clientEventId",
277
+ "model",
278
+ "reasoningEffort",
279
+ "latencyMode",
280
+ "startMode",
281
+ "metadata",
282
+ ]);
283
+
284
+ function bodyRecord(value: unknown): Record<string, unknown> | null {
285
+ return value && typeof value === "object" && !Array.isArray(value)
286
+ ? (value as Record<string, unknown>)
287
+ : null;
288
+ }
289
+
290
+ /** Absent, null, an empty list or an empty object asks for nothing. */
291
+ function emptyBodyValue(value: unknown): boolean {
292
+ if (value === undefined || value === null) return true;
293
+ if (Array.isArray(value)) return value.length === 0;
294
+ if (typeof value === "object") return Object.keys(value).length === 0;
295
+ return false;
296
+ }
297
+
298
+ function refusedField(
299
+ body: Record<string, unknown>,
300
+ allowed: readonly string[],
301
+ prefix = "",
302
+ ): string | null {
303
+ for (const [name, value] of Object.entries(body)) {
304
+ if (emptyBodyValue(value)) continue;
305
+ if (!allowed.includes(name) || SITE_FRAME_EMPTY_ONLY_FIELDS.has(name))
306
+ return `${prefix}${name}`;
307
+ }
308
+ return null;
309
+ }
310
+
311
+ /**
312
+ * The first body field a Site frame may not send for this operation (for
313
+ * example `payload.resources` or `type`), or null when the body is allowed.
314
+ * `suffix` is the operation's site-host suffix (from `siteFrameOperation` or
315
+ * `matchSiteOperation`). A body that is not a JSON object is left to the
316
+ * route, which refuses it. Only `user.message` events are allowed:
317
+ * approvals and answers to questions happen in the console.
318
+ */
319
+ export function siteFrameBodyRefusal(
320
+ operationId: string,
321
+ suffix: string,
322
+ body: unknown,
323
+ ): string | null {
324
+ const record = bodyRecord(body);
325
+ if (!record) return null;
326
+ if (operationId === "sessions.create")
327
+ return refusedField(record, SITE_FRAME_SESSION_CREATE_FIELDS);
328
+ const action =
329
+ operationId === "sessions.queue.item"
330
+ ? /\/queue\/[^/]+\/(move|edit|steer|delete)$/u.exec(suffix)?.[1]
331
+ : undefined;
332
+ const key = action ? `sessions.queue.${action}` : operationId;
333
+ const allowed = SITE_FRAME_BODY_FIELDS[key];
334
+ if (!allowed) return null;
335
+ const refused = refusedField(record, allowed);
336
+ if (refused) return refused;
337
+ if (operationId !== "sessions.send") return null;
338
+ if (record.type !== "user.message") return "type";
339
+ const payload = bodyRecord(record.payload);
340
+ return payload ? refusedField(payload, SITE_FRAME_MESSAGE_FIELDS, "payload.") : null;
341
+ }