@opengeni/contracts 3.1.0-canary.2 → 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 (429) 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 +0 -2
  4. package/dist/allowance-refusal.d.ts +9 -0
  5. package/dist/allowance-refusal.js +50 -0
  6. package/dist/allowance-refusal.js.map +1 -0
  7. package/dist/analytics-consent-report.d.ts +19 -0
  8. package/dist/analytics-consent-report.js +10 -0
  9. package/dist/analytics-consent-report.js.map +1 -0
  10. package/dist/api-key-presets.d.ts +19 -0
  11. package/dist/artifact-catalog.d.ts +188 -0
  12. package/dist/artifacts.d.ts +86 -0
  13. package/dist/atlassian-native-retirement.d.ts +16 -0
  14. package/dist/atlassian-native-retirement.js +30 -0
  15. package/dist/atlassian-native-retirement.js.map +1 -0
  16. package/dist/atlassian.d.ts +1 -0
  17. package/dist/atlassian.js +34 -19
  18. package/dist/browser-storage.d.ts +5 -0
  19. package/dist/browser-storage.js +9 -0
  20. package/dist/browser-storage.js.map +1 -0
  21. package/dist/bundled-skills.d.ts +24 -1
  22. package/dist/canonical-human-identities.js +2 -1
  23. package/dist/chunk-2ZIHHL72.js +153 -0
  24. package/dist/chunk-2ZIHHL72.js.map +1 -0
  25. package/dist/{chunk-5LYFSZ7O.js → chunk-352X6ENP.js} +31 -31
  26. package/dist/chunk-4JGHSSB7.js +11 -0
  27. package/dist/chunk-4JGHSSB7.js.map +1 -0
  28. package/dist/chunk-4QO6GJUX.js +85 -0
  29. package/dist/chunk-4QO6GJUX.js.map +1 -0
  30. package/dist/chunk-4VDMHLLL.js +49 -0
  31. package/dist/chunk-4VDMHLLL.js.map +1 -0
  32. package/dist/chunk-56SNIMDO.js +9 -0
  33. package/dist/chunk-56SNIMDO.js.map +1 -0
  34. package/dist/chunk-6C2HKFTU.js +207 -0
  35. package/dist/chunk-6C2HKFTU.js.map +1 -0
  36. package/dist/chunk-6IXO76Z6.js +72 -0
  37. package/dist/chunk-6IXO76Z6.js.map +1 -0
  38. package/dist/chunk-7272KVWZ.js +60 -0
  39. package/dist/chunk-7272KVWZ.js.map +1 -0
  40. package/dist/{chunk-7ABONTXE.js → chunk-E3GGUBHS.js} +49 -5
  41. package/dist/chunk-E3GGUBHS.js.map +1 -0
  42. package/dist/chunk-EFZYKUE2.js +767 -0
  43. package/dist/chunk-EFZYKUE2.js.map +1 -0
  44. package/dist/chunk-EKWNTOG3.js +154 -0
  45. package/dist/chunk-EKWNTOG3.js.map +1 -0
  46. package/dist/chunk-HABQ7ADB.js +234 -0
  47. package/dist/chunk-HABQ7ADB.js.map +1 -0
  48. package/dist/chunk-HRRU4QPI.js +91 -0
  49. package/dist/chunk-HRRU4QPI.js.map +1 -0
  50. package/dist/{chunk-3SIZGL3O.js → chunk-IK36LXKC.js} +18 -2
  51. package/dist/chunk-IK36LXKC.js.map +1 -0
  52. package/dist/{chunk-TXTQIYCV.js → chunk-ILJ72KPO.js} +56 -3
  53. package/dist/chunk-ILJ72KPO.js.map +1 -0
  54. package/dist/chunk-J4HQ3UKY.js +93 -0
  55. package/dist/chunk-J4HQ3UKY.js.map +1 -0
  56. package/dist/chunk-KHHZTBP7.js +11 -0
  57. package/dist/chunk-KHHZTBP7.js.map +1 -0
  58. package/dist/{chunk-WYBDERIY.js → chunk-LZ2LAHIX.js} +47 -41
  59. package/dist/chunk-LZ2LAHIX.js.map +1 -0
  60. package/dist/chunk-NDZHPTCL.js +400 -0
  61. package/dist/chunk-NDZHPTCL.js.map +1 -0
  62. package/dist/chunk-OF6OKOBF.js +54793 -0
  63. package/dist/chunk-OF6OKOBF.js.map +1 -0
  64. package/dist/chunk-OL23ARTF.js +94 -0
  65. package/dist/chunk-OL23ARTF.js.map +1 -0
  66. package/dist/chunk-PUIUXIOL.js +189 -0
  67. package/dist/chunk-PUIUXIOL.js.map +1 -0
  68. package/dist/{chunk-Y3KNXVTD.js → chunk-RMWXDZEO.js} +128 -21
  69. package/dist/chunk-RMWXDZEO.js.map +1 -0
  70. package/dist/{chunk-MRWYRAS5.js → chunk-SHO4YO4B.js} +27 -35
  71. package/dist/chunk-SHO4YO4B.js.map +1 -0
  72. package/dist/chunk-SWRN2DJ3.js +153 -0
  73. package/dist/chunk-SWRN2DJ3.js.map +1 -0
  74. package/dist/chunk-TCXCRBPF.js +267 -0
  75. package/dist/chunk-TCXCRBPF.js.map +1 -0
  76. package/dist/chunk-TLU3UEMD.js +324 -0
  77. package/dist/chunk-TLU3UEMD.js.map +1 -0
  78. package/dist/chunk-TSWWZMUS.js +186 -0
  79. package/dist/chunk-TSWWZMUS.js.map +1 -0
  80. package/dist/{chunk-PX3VCKAU.js → chunk-WVCFSOUZ.js} +1 -1
  81. package/dist/{chunk-PX3VCKAU.js.map → chunk-WVCFSOUZ.js.map} +1 -1
  82. package/dist/chunk-XDLAGX66.js +127 -0
  83. package/dist/chunk-XDLAGX66.js.map +1 -0
  84. package/dist/chunk-YKZ4WU4P.js +33 -0
  85. package/dist/chunk-YKZ4WU4P.js.map +1 -0
  86. package/dist/{chunk-O5LEQHDM.js → chunk-Z7WEVGCL.js} +3 -3
  87. package/dist/{chunk-YBW5JSA3.js → chunk-ZDCRWCGZ.js} +119 -101
  88. package/dist/chunk-ZDCRWCGZ.js.map +1 -0
  89. package/dist/claude-provider-account-authority.d.ts +18 -0
  90. package/dist/claude-subscription-oauth.d.ts +42 -0
  91. package/dist/claude-subscription-usage.d.ts +159 -0
  92. package/dist/client-error-report.d.ts +158 -0
  93. package/dist/client-error-report.js +164 -0
  94. package/dist/client-error-report.js.map +1 -0
  95. package/dist/code-search.d.ts +52 -0
  96. package/dist/code-search.js +40 -0
  97. package/dist/code-search.js.map +1 -0
  98. package/dist/codex-provider-account-authority.js +20 -12
  99. package/dist/codex-provider-account-authority.js.map +1 -1
  100. package/dist/company-profile.d.ts +144 -6
  101. package/dist/connect.d.ts +37 -0
  102. package/dist/connect.js +216 -159
  103. package/dist/connect.js.map +1 -1
  104. package/dist/connection-account-label.d.ts +2 -0
  105. package/dist/connection-account-label.js +35 -0
  106. package/dist/connection-account-label.js.map +1 -0
  107. package/dist/connection-authority.d.ts +9 -317
  108. package/dist/connection-authority.js +37 -42
  109. package/dist/connector-attachments.js +2 -1
  110. package/dist/connector-destinations.js +2 -1
  111. package/dist/connector-tool-permissions.d.ts +137 -0
  112. package/dist/cua-desktop-tools.d.ts +17 -0
  113. package/dist/define-schema.d.ts +8 -0
  114. package/dist/direct-model-provider.d.ts +36 -0
  115. package/dist/editable-artifact-codec-registry.js +5 -5
  116. package/dist/editable-artifact-committed-transaction.js +3 -2
  117. package/dist/editable-artifact-live.js +5 -5
  118. package/dist/editable-artifact-serialized-commit.js +6 -6
  119. package/dist/editable-artifact-versions.d.ts +7 -1
  120. package/dist/editable-artifact-versions.js +1 -1
  121. package/dist/editable-artifacts.js +62 -56
  122. package/dist/event-preview.d.ts +22 -0
  123. package/dist/external-identities.d.ts +138 -0
  124. package/dist/external-identities.js +9 -4
  125. package/dist/first-party-tool-authorization.d.ts +815 -0
  126. package/dist/github-repository-contracts.js +60 -43
  127. package/dist/github-repository-contracts.js.map +1 -1
  128. package/dist/google-drive.d.ts +2 -1
  129. package/dist/google-drive.js +305 -238
  130. package/dist/google-drive.js.map +1 -1
  131. package/dist/host-mcp-bindings.d.ts +5 -0
  132. package/dist/host-mcp-bindings.js +233 -170
  133. package/dist/host-mcp-bindings.js.map +1 -1
  134. package/dist/image-generation.d.ts +1 -0
  135. package/dist/index.d.ts +16761 -5946
  136. package/dist/index.js +1973 -260
  137. package/dist/insights-usage.d.ts +877 -0
  138. package/dist/insights-usage.js +559 -0
  139. package/dist/insights-usage.js.map +1 -0
  140. package/dist/interaction.d.ts +1176 -829
  141. package/dist/knowledge-entries.d.ts +81 -2
  142. package/dist/knowledge-preparation.d.ts +239 -0
  143. package/dist/managed-auth-session-sets.d.ts +7 -0
  144. package/dist/managed-auth-session-sets.js +198 -132
  145. package/dist/managed-auth-session-sets.js.map +1 -1
  146. package/dist/managed-sign-in-methods.d.ts +56 -0
  147. package/dist/managed-sign-in-methods.js +64 -0
  148. package/dist/managed-sign-in-methods.js.map +1 -0
  149. package/dist/mcp-catalog-limits.d.ts +2 -0
  150. package/dist/mcp-oauth.d.ts +2 -2
  151. package/dist/mcp-structured-content.d.ts +25 -0
  152. package/dist/modal-native-proof-v2.d.ts +587 -0
  153. package/dist/modal-native-proof-v2.js +38 -0
  154. package/dist/modal-native-proof-v2.js.map +1 -0
  155. package/dist/model-account-choice.d.ts +235 -0
  156. package/dist/model-account-settings.d.ts +422 -0
  157. package/dist/model-availability.d.ts +15 -0
  158. package/dist/model-connection-access.d.ts +13 -0
  159. package/dist/model-context-inspector.d.ts +98 -0
  160. package/dist/model-display.d.ts +43 -0
  161. package/dist/model-display.js +17 -0
  162. package/dist/model-display.js.map +1 -0
  163. package/dist/model-picker-order.d.ts +3 -1
  164. package/dist/model-picker-order.js +3 -0
  165. package/dist/model-picker-order.js.map +1 -1
  166. package/dist/organization-access.d.ts +412 -0
  167. package/dist/organization-access.js +39 -0
  168. package/dist/organization-access.js.map +1 -0
  169. package/dist/organization-integration-policy.d.ts +27 -0
  170. package/dist/organization-membership-lifecycle.d.ts +38 -0
  171. package/dist/organization-model-usage.d.ts +146 -0
  172. package/dist/organization-model-usage.js +78 -0
  173. package/dist/organization-model-usage.js.map +1 -0
  174. package/dist/organization-recovery.js +2 -1
  175. package/dist/organization-usage.d.ts +138 -0
  176. package/dist/permissions.d.ts +18 -0
  177. package/dist/personal-github.d.ts +1 -0
  178. package/dist/personal-github.js +199 -144
  179. package/dist/personal-github.js.map +1 -1
  180. package/dist/prepared-mcp-setup.d.ts +54 -0
  181. package/dist/prepared-mcp-setup.js +12 -0
  182. package/dist/prepared-mcp-setup.js.map +1 -0
  183. package/dist/product-analytics.d.ts +116 -0
  184. package/dist/product-lifecycle-facts.d.ts +73 -0
  185. package/dist/remember.d.ts +98 -6
  186. package/dist/retained-output.d.ts +8 -0
  187. package/dist/sandbox-file-artifacts.d.ts +1 -0
  188. package/dist/sandbox-provider-command.d.ts +91 -1
  189. package/dist/sandbox-recovery.d.ts +146 -0
  190. package/dist/secret-generator.d.ts +44 -0
  191. package/dist/secret-references.d.ts +90 -0
  192. package/dist/secret-resolution.d.ts +111 -0
  193. package/dist/secret-totp.d.ts +41 -0
  194. package/dist/session-final-reply.d.ts +6 -0
  195. package/dist/session-final-reply.js +9 -0
  196. package/dist/session-final-reply.js.map +1 -0
  197. package/dist/session-goal-reports.d.ts +21 -0
  198. package/dist/session-history-import.d.ts +1272 -0
  199. package/dist/session-list-entries.d.ts +4 -0
  200. package/dist/session-list-entries.js +56 -0
  201. package/dist/session-list-entries.js.map +1 -0
  202. package/dist/session-mcp-projections.d.ts +6 -0
  203. package/dist/session-mcp-tool-permissions.d.ts +62 -0
  204. package/dist/session-message-search.d.ts +68 -0
  205. package/dist/session-target.d.ts +18 -0
  206. package/dist/session-titles.d.ts +8 -0
  207. package/dist/session-titles.js +5 -1
  208. package/dist/session-usage-limit-refusal.d.ts +34 -0
  209. package/dist/session-usage-limit-refusal.js +15 -0
  210. package/dist/session-usage-limit-refusal.js.map +1 -0
  211. package/dist/session-usage-limits.d.ts +127 -0
  212. package/dist/session-usage-limits.js +41 -0
  213. package/dist/session-usage-limits.js.map +1 -0
  214. package/dist/signup-attribution.d.ts +39 -0
  215. package/dist/site-data.d.ts +286 -0
  216. package/dist/site-operations.d.ts +39 -0
  217. package/dist/site-publishing.d.ts +778 -0
  218. package/dist/site-session-http.d.ts +89 -4
  219. package/dist/site-session-http.js +25 -1
  220. package/dist/site-sql.d.ts +421 -0
  221. package/dist/skill-catalog-context.d.ts +7 -0
  222. package/dist/skill-files.d.ts +1 -1
  223. package/dist/skill-use.d.ts +61 -0
  224. package/dist/skills.d.ts +15 -0
  225. package/dist/slack-bot-scopes.d.ts +17 -12
  226. package/dist/slack-bot-scopes.js +10 -3
  227. package/dist/slack-rest-mcp.d.ts +36 -0
  228. package/dist/slack-rest-mcp.js +25 -0
  229. package/dist/slack-rest-mcp.js.map +1 -0
  230. package/dist/spreadsheet-artifact-commands.d.ts +14 -1
  231. package/dist/spreadsheet-artifact-commands.js +8 -2
  232. package/dist/spreadsheet-artifact-query.d.ts +13 -6
  233. package/dist/spreadsheet-artifact-query.js +3 -3
  234. package/dist/subscription-account-actions.d.ts +64 -0
  235. package/dist/subscription-account-pools.d.ts +292 -0
  236. package/dist/subscription-personal-authority-v2.d.ts +28 -0
  237. package/dist/subscription-personal-authority-v2.js +12 -0
  238. package/dist/subscription-personal-authority-v2.js.map +1 -0
  239. package/dist/tool-action-review.d.ts +132 -0
  240. package/dist/tool-catalog.d.ts +408 -0
  241. package/dist/tool-policy.d.ts +5 -0
  242. package/dist/tool-review-presentation.d.ts +12 -0
  243. package/dist/tool-review-presentation.js +17 -0
  244. package/dist/tool-review-presentation.js.map +1 -0
  245. package/dist/transcription-recordings.d.ts +21 -0
  246. package/dist/turn-serving-policy.d.ts +221 -0
  247. package/dist/usage-allowances.d.ts +314 -0
  248. package/dist/usage-allowances.js +52 -0
  249. package/dist/usage-allowances.js.map +1 -0
  250. package/dist/vaults.d.ts +1286 -0
  251. package/dist/video-generation.d.ts +3 -0
  252. package/dist/video-generation.js +2 -1
  253. package/dist/workspace-integration-wire.d.ts +36 -0
  254. package/dist/workspace-integration-wire.js +23 -0
  255. package/dist/workspace-integration-wire.js.map +1 -0
  256. package/dist/workspace-integrations.d.ts +1028 -0
  257. package/dist/xai-provider-account-authority.js +2 -1
  258. package/package.json +93 -5
  259. package/src/agent-authored-durable-text.ts +14 -11
  260. package/src/agent-config.ts +1698 -0
  261. package/src/agent-instruction-changes.ts +91 -74
  262. package/src/agent-learning.ts +94 -67
  263. package/src/agent-topology.ts +57 -52
  264. package/src/allowance-refusal.ts +81 -0
  265. package/src/analytics-consent-report.ts +20 -0
  266. package/src/api-key-presets.ts +28 -0
  267. package/src/artifact-catalog.ts +82 -0
  268. package/src/artifacts.ts +299 -227
  269. package/src/atlassian-native-retirement.ts +33 -0
  270. package/src/atlassian.ts +135 -108
  271. package/src/browser-storage.ts +10 -0
  272. package/src/bundled-skills.ts +60 -17
  273. package/src/canonical-human-identities.ts +60 -58
  274. package/src/claude-provider-account-authority.ts +12 -0
  275. package/src/claude-subscription-oauth.ts +73 -0
  276. package/src/claude-subscription-usage.ts +68 -0
  277. package/src/client-error-report.ts +343 -0
  278. package/src/code-search.ts +105 -0
  279. package/src/codex-provider-account-authority.ts +21 -16
  280. package/src/company-brain-governed-writes.ts +255 -233
  281. package/src/company-brain.ts +164 -153
  282. package/src/company-profile.ts +365 -292
  283. package/src/connect.ts +212 -173
  284. package/src/connection-account-label.ts +46 -0
  285. package/src/connection-authority.ts +183 -364
  286. package/src/connector-attachments.ts +137 -122
  287. package/src/connector-destinations.ts +46 -42
  288. package/src/connector-tool-permissions.ts +117 -0
  289. package/src/cua-desktop-tools.gen.json +6512 -0
  290. package/src/cua-desktop-tools.linux.gen.json +6600 -0
  291. package/src/cua-desktop-tools.ts +36 -0
  292. package/src/cua-desktop-tools.windows.gen.json +6353 -0
  293. package/src/define-schema.ts +10 -0
  294. package/src/direct-model-provider.ts +108 -0
  295. package/src/editable-artifact-committed-transaction.ts +17 -0
  296. package/src/editable-artifact-versions.ts +7 -1
  297. package/src/event-preview.ts +53 -3
  298. package/src/external-identities.ts +249 -176
  299. package/src/feedback.ts +43 -30
  300. package/src/first-party-tool-authorization.ts +356 -0
  301. package/src/github-repository-contracts.ts +78 -64
  302. package/src/google-drive.ts +285 -234
  303. package/src/governed-learning-activation.ts +152 -131
  304. package/src/governed-learning-evaluator.ts +140 -133
  305. package/src/host-mcp-bindings.ts +252 -198
  306. package/src/image-generation.ts +104 -95
  307. package/src/index.ts +13235 -8687
  308. package/src/insights-usage.ts +727 -0
  309. package/src/interaction.ts +3070 -2326
  310. package/src/knowledge-entries.ts +361 -276
  311. package/src/knowledge-preparation.ts +57 -0
  312. package/src/knowledge.ts +246 -213
  313. package/src/managed-auth-session-sets.ts +220 -144
  314. package/src/managed-sign-in-methods.ts +52 -0
  315. package/src/mcp-catalog-limits.ts +2 -0
  316. package/src/mcp-oauth.ts +43 -34
  317. package/src/mcp-receipts.ts +192 -192
  318. package/src/mcp-structured-content.ts +81 -0
  319. package/src/memory-slack-delivery.ts +171 -142
  320. package/src/modal-native-proof-v2.ts +429 -0
  321. package/src/model-account-choice.ts +177 -0
  322. package/src/model-account-settings.ts +210 -0
  323. package/src/model-availability.ts +22 -0
  324. package/src/model-connection-access.ts +61 -14
  325. package/src/model-context-inspector.ts +133 -99
  326. package/src/model-display.ts +221 -0
  327. package/src/model-picker-order.ts +12 -1
  328. package/src/organization-access.ts +217 -0
  329. package/src/organization-integration-policy.ts +63 -0
  330. package/src/organization-membership-lifecycle.ts +528 -382
  331. package/src/organization-model-usage.ts +81 -0
  332. package/src/organization-recovery.ts +147 -135
  333. package/src/organization-usage.ts +94 -0
  334. package/src/permissions.ts +88 -52
  335. package/src/personal-github.ts +210 -171
  336. package/src/preference-registry.ts +314 -258
  337. package/src/prepared-mcp-setup.ts +189 -0
  338. package/src/product-analytics.ts +261 -0
  339. package/src/product-lifecycle-facts.ts +122 -0
  340. package/src/remember.ts +181 -167
  341. package/src/retained-output.ts +194 -165
  342. package/src/sandbox-file-artifacts.ts +60 -47
  343. package/src/sandbox-provider-command.ts +88 -20
  344. package/src/sandbox-recovery.ts +129 -0
  345. package/src/scoped-knowledge.ts +61 -43
  346. package/src/secret-generator.ts +155 -0
  347. package/src/secret-references.ts +414 -0
  348. package/src/secret-resolution.ts +274 -0
  349. package/src/secret-totp.ts +188 -0
  350. package/src/session-final-reply.ts +16 -0
  351. package/src/session-goal-reports.ts +64 -0
  352. package/src/session-history-import.ts +177 -0
  353. package/src/session-list-entries.ts +96 -0
  354. package/src/session-mcp-projections.ts +11 -0
  355. package/src/session-mcp-tool-permissions.ts +108 -0
  356. package/src/session-message-search.ts +61 -0
  357. package/src/session-target.ts +57 -0
  358. package/src/session-titles.ts +80 -10
  359. package/src/session-topology-primitives.ts +19 -12
  360. package/src/session-usage-limit-refusal.ts +101 -0
  361. package/src/session-usage-limits.ts +171 -0
  362. package/src/signup-attribution.ts +86 -0
  363. package/src/site-data.ts +339 -0
  364. package/src/site-operations.ts +154 -0
  365. package/src/site-publishing.ts +876 -0
  366. package/src/site-session-http.ts +294 -16
  367. package/src/site-sql.ts +1123 -0
  368. package/src/skill-catalog-context.ts +50 -0
  369. package/src/skill-files.ts +3 -3
  370. package/src/skill-use.ts +80 -0
  371. package/src/skills.ts +82 -54
  372. package/src/slack-bot-scopes.ts +31 -39
  373. package/src/slack-rest-mcp.ts +222 -0
  374. package/src/slack-task-policy.ts +96 -73
  375. package/src/spreadsheet-artifact-commands.ts +73 -2
  376. package/src/spreadsheet-artifact-query.ts +187 -39
  377. package/src/subscription-account-actions.ts +84 -0
  378. package/src/subscription-account-pools.ts +53 -0
  379. package/src/subscription-personal-authority-v2.ts +66 -0
  380. package/src/task-notes.ts +55 -51
  381. package/src/tool-action-review.ts +258 -0
  382. package/src/tool-catalog.ts +609 -372
  383. package/src/tool-policy.ts +82 -0
  384. package/src/tool-result-spill.ts +12 -9
  385. package/src/tool-review-presentation.ts +385 -0
  386. package/src/transcription-recordings.ts +145 -131
  387. package/src/turn-serving-policy.ts +166 -0
  388. package/src/usage-allowances.ts +248 -0
  389. package/src/vaults.ts +850 -0
  390. package/src/video-generation.ts +385 -360
  391. package/src/work-claims.ts +173 -149
  392. package/src/workspace-instruction-policies.ts +349 -276
  393. package/src/workspace-integration-wire.ts +101 -0
  394. package/src/workspace-integrations.ts +724 -0
  395. package/src/workspace-learning-administration.ts +57 -44
  396. package/src/workspace-learning-policy.ts +127 -96
  397. package/src/workspace-state.ts +250 -220
  398. package/src/xai-provider-account-authority.ts +22 -17
  399. package/dist/chunk-2AC63F4S.js +0 -171
  400. package/dist/chunk-2AC63F4S.js.map +0 -1
  401. package/dist/chunk-3SIZGL3O.js.map +0 -1
  402. package/dist/chunk-7ABONTXE.js.map +0 -1
  403. package/dist/chunk-BCS7WHCK.js +0 -139
  404. package/dist/chunk-BCS7WHCK.js.map +0 -1
  405. package/dist/chunk-GRG7PHWQ.js +0 -25
  406. package/dist/chunk-GRG7PHWQ.js.map +0 -1
  407. package/dist/chunk-JUFK3T4Q.js +0 -80
  408. package/dist/chunk-JUFK3T4Q.js.map +0 -1
  409. package/dist/chunk-M5ZGRVIQ.js +0 -719
  410. package/dist/chunk-M5ZGRVIQ.js.map +0 -1
  411. package/dist/chunk-MRWYRAS5.js.map +0 -1
  412. package/dist/chunk-OVFORMPW.js +0 -348
  413. package/dist/chunk-OVFORMPW.js.map +0 -1
  414. package/dist/chunk-P3HLDT77.js +0 -59
  415. package/dist/chunk-P3HLDT77.js.map +0 -1
  416. package/dist/chunk-QQUJ6NPW.js +0 -23093
  417. package/dist/chunk-QQUJ6NPW.js.map +0 -1
  418. package/dist/chunk-TXTQIYCV.js.map +0 -1
  419. package/dist/chunk-WYBDERIY.js.map +0 -1
  420. package/dist/chunk-Y3KNXVTD.js.map +0 -1
  421. package/dist/chunk-YBW5JSA3.js.map +0 -1
  422. package/dist/chunk-YRXAWWCU.js +0 -45
  423. package/dist/chunk-YRXAWWCU.js.map +0 -1
  424. package/dist/host-mcp-resolvers.d.ts +0 -32
  425. package/dist/host-mcp-resolvers.js +0 -34
  426. package/dist/host-mcp-resolvers.js.map +0 -1
  427. package/src/host-mcp-resolvers.ts +0 -50
  428. /package/dist/{chunk-5LYFSZ7O.js.map → chunk-352X6ENP.js.map} +0 -0
  429. /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
+ }