@opengeni/api-router 0.30.3 → 1.0.0

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/access-grant-rls.d.ts +3 -0
  2. package/dist/admission-trace.d.ts +8 -0
  3. package/dist/api-websocket.d.ts +18 -0
  4. package/dist/app.d.ts +50 -2
  5. package/dist/app.js +12 -1
  6. package/dist/artifact-catalog-cursor.d.ts +27 -0
  7. package/dist/auth/managed-auth-attempt-context.d.ts +10 -0
  8. package/dist/auth/managed-auth-rate-limits.d.ts +167 -0
  9. package/dist/auth/managed-auth-session-adapter.d.ts +6 -0
  10. package/dist/auth/managed-auth.d.ts +102 -3
  11. package/dist/auth/managed-email.d.ts +29 -0
  12. package/dist/auth/managed-sign-in-notifications.d.ts +4 -0
  13. package/dist/auth/new-signups-gate.d.ts +23 -0
  14. package/dist/auth/organization-user-setup.d.ts +80 -0
  15. package/dist/auth/signup-funnel-metrics.d.ts +44 -0
  16. package/dist/browser-controller-authority.d.ts +1 -61
  17. package/dist/browser-ephemeral.d.ts +5 -0
  18. package/dist/browser-state-authority.d.ts +1 -27
  19. package/dist/chunk-6TZ5LG3O.js +123948 -0
  20. package/dist/chunk-6TZ5LG3O.js.map +1 -0
  21. package/dist/chunk-OGQDXVXY.js +18 -0
  22. package/dist/chunk-OGQDXVXY.js.map +1 -0
  23. package/dist/claude-subscription-account-conflicts.d.ts +1 -0
  24. package/dist/claude-subscription-account-usage.d.ts +39 -0
  25. package/dist/claude-subscription-oauth.d.ts +25 -0
  26. package/dist/claude-subscription-profile.d.ts +9 -0
  27. package/dist/claude-subscription-usage.d.ts +44 -0
  28. package/dist/claude-workspace-connection.d.ts +15 -0
  29. package/dist/codemode.d.ts +32 -1
  30. package/dist/company-brain-okf.d.ts +24 -0
  31. package/dist/connected-machine-computer-access.d.ts +11 -0
  32. package/dist/connection-ownership.d.ts +54 -0
  33. package/dist/controller-data-plane.d.ts +32 -0
  34. package/dist/editable-artifact-source-session.d.ts +3 -0
  35. package/dist/editable-artifact-websocket.d.ts +10 -18
  36. package/dist/editable-artifact-workspace-files.d.ts +1 -1
  37. package/dist/fatal-process-boundary.d.ts +25 -0
  38. package/dist/github-access.d.ts +31 -2
  39. package/dist/http/acting-person.d.ts +24 -0
  40. package/dist/http/api-contract-compat.d.ts +19 -0
  41. package/dist/http/api-error.d.ts +27 -1
  42. package/dist/http/cors.d.ts +17 -0
  43. package/dist/http/deprecation.d.ts +42 -0
  44. package/dist/http/interaction-control-error.d.ts +13 -0
  45. package/dist/http/keyed-admission.d.ts +12 -0
  46. package/dist/http/local-browser-boundary.d.ts +72 -0
  47. package/dist/http/metrics-listener.d.ts +22 -0
  48. package/dist/http/path-identifier.d.ts +17 -0
  49. package/dist/http/registered-route-label.d.ts +16 -0
  50. package/dist/http/request-body.d.ts +27 -0
  51. package/dist/http/request-source.d.ts +52 -0
  52. package/dist/http/sse.d.ts +17 -6
  53. package/dist/http/unmatched-route.d.ts +18 -0
  54. package/dist/http/user-content.d.ts +36 -0
  55. package/dist/http/websocket-upgrade-dispatch.d.ts +18 -0
  56. package/dist/index.d.ts +10 -3
  57. package/dist/index.js +1091 -162
  58. package/dist/index.js.map +1 -1
  59. package/dist/integration-endpoint-test.d.ts +20 -0
  60. package/dist/integrations/api-integrations.d.ts +2 -2
  61. package/dist/integrations/atlassian.d.ts +29 -3
  62. package/dist/integrations/connect-authority.d.ts +1 -0
  63. package/dist/integrations/connect-callback-return.d.ts +6 -0
  64. package/dist/integrations/fiken.d.ts +16 -2
  65. package/dist/integrations/github-app-connect.d.ts +47 -0
  66. package/dist/integrations/github-installation-proof.d.ts +3 -0
  67. package/dist/integrations/github-lens-connect.d.ts +116 -0
  68. package/dist/integrations/github-skill-source.d.ts +1 -5
  69. package/dist/integrations/google-drive.d.ts +24 -0
  70. package/dist/integrations/integration-commit-authority.d.ts +13 -0
  71. package/dist/integrations/marketplace-plugin.d.ts +2691 -0
  72. package/dist/integrations/oauth-client.d.ts +178 -18
  73. package/dist/integrations/oauth-profiles.d.ts +222 -0
  74. package/dist/integrations/oauth-return-path.d.ts +1 -0
  75. package/dist/integrations/personal-github-repositories.d.ts +84 -0
  76. package/dist/integrations/personal-github.d.ts +42 -0
  77. package/dist/integrations/pr-review-provider.d.ts +22 -0
  78. package/dist/integrations/provider-oauth.d.ts +19 -1
  79. package/dist/integrations/slack-app-home.d.ts +24 -0
  80. package/dist/integrations/slack-bot.d.ts +367 -12
  81. package/dist/integrations/slack-file-upload-flow.d.ts +62 -0
  82. package/dist/integrations/slack-install.d.ts +20 -0
  83. package/dist/integrations/slack-interactions.d.ts +107 -9
  84. package/dist/integrations/slack-mrkdwn.d.ts +41 -0
  85. package/dist/integrations/slack-routing.d.ts +120 -0
  86. package/dist/integrations/slack-session-defaults.d.ts +58 -0
  87. package/dist/integrations/slack-task-file-upload.d.ts +36 -0
  88. package/dist/integrations/social-oauth.d.ts +7 -0
  89. package/dist/interaction-agent-access.d.ts +15 -0
  90. package/dist/interaction-frame-proxy.d.ts +68 -0
  91. package/dist/interaction-metrics.d.ts +2 -0
  92. package/dist/mcp/action-catalog-types.d.ts +9 -0
  93. package/dist/mcp/action-catalog.gen.d.ts +2 -0
  94. package/dist/mcp/capability-account-readiness.d.ts +7 -0
  95. package/dist/mcp/child-read-evidence.d.ts +9 -0
  96. package/dist/mcp/command-read.d.ts +24 -0
  97. package/dist/mcp/company-profile-agent-admin.d.ts +44 -0
  98. package/dist/mcp/contract-input.d.ts +11 -0
  99. package/dist/mcp/documents.d.ts +7 -5
  100. package/dist/mcp/files.d.ts +2 -2
  101. package/dist/mcp/first-party-tool-permissions.d.ts +650 -0
  102. package/dist/mcp/knowledge-entries.d.ts +5 -0
  103. package/dist/mcp/orchestration-failure-diagnostic.d.ts +43 -0
  104. package/dist/mcp/receipts.d.ts +9 -0
  105. package/dist/mcp/request-abort.d.ts +19 -0
  106. package/dist/mcp/scheduled-task-input.d.ts +1189 -0
  107. package/dist/mcp/scheduled-task-view.d.ts +22 -4
  108. package/dist/mcp/server.d.ts +255 -3
  109. package/dist/mcp/session-event-view.d.ts +94 -0
  110. package/dist/mcp/session-view.d.ts +66 -2
  111. package/dist/mcp/session-wait.d.ts +174 -0
  112. package/dist/mcp-oauth.d.ts +52 -0
  113. package/dist/model-catalog.d.ts +11 -31
  114. package/dist/observability.d.ts +3 -1
  115. package/dist/organization-mcp.d.ts +52 -0
  116. package/dist/organization-recovery-notifications.d.ts +41 -0
  117. package/dist/routes/analytics-consent.d.ts +26 -0
  118. package/dist/routes/api-integrations.d.ts +25 -0
  119. package/dist/routes/api-keys.d.ts +17 -0
  120. package/dist/routes/artifact-catalog.d.ts +6 -0
  121. package/dist/routes/automations.d.ts +19 -0
  122. package/dist/routes/billing.d.ts +49 -0
  123. package/dist/routes/browser-sessions.d.ts +59 -2
  124. package/dist/routes/claude-subscription-accounts.d.ts +3 -0
  125. package/dist/routes/claude-subscription-oauth.d.ts +3 -0
  126. package/dist/routes/client-errors.d.ts +146 -0
  127. package/dist/routes/codex.d.ts +76 -2
  128. package/dist/routes/company-brain.d.ts +3 -0
  129. package/dist/routes/company-profile.d.ts +2 -1
  130. package/dist/routes/computer-sessions.d.ts +14 -0
  131. package/dist/routes/connect.d.ts +5 -0
  132. package/dist/routes/editable-artifacts.d.ts +2 -0
  133. package/dist/routes/external-identity-links.d.ts +6 -0
  134. package/dist/routes/feedback.d.ts +3 -0
  135. package/dist/routes/github-browser-pages.d.ts +12 -0
  136. package/dist/routes/github.d.ts +2 -0
  137. package/dist/routes/insights-response-cache.d.ts +10 -0
  138. package/dist/routes/insights-usage.d.ts +12 -0
  139. package/dist/routes/insights.d.ts +30 -1
  140. package/dist/routes/knowledge.d.ts +3 -0
  141. package/dist/routes/managed-auth-session-sets.d.ts +26 -0
  142. package/dist/routes/managed-onboarding.d.ts +29 -0
  143. package/dist/routes/managed-sign-in-methods.d.ts +6 -0
  144. package/dist/routes/model-connection-access.d.ts +3 -0
  145. package/dist/routes/organization-integration-policy.d.ts +3 -0
  146. package/dist/routes/organization-integrations.d.ts +6 -0
  147. package/dist/routes/organization-mcp-connections.d.ts +3 -0
  148. package/dist/routes/organization-model-providers.d.ts +3 -0
  149. package/dist/routes/organization-recovery.d.ts +19 -0
  150. package/dist/routes/organization-service-accounts.d.ts +3 -0
  151. package/dist/routes/organization-sessions.d.ts +26 -0
  152. package/dist/routes/personal-github-git-broker.d.ts +29 -0
  153. package/dist/routes/personal-github.d.ts +3 -0
  154. package/dist/routes/pr-review-github.d.ts +3 -0
  155. package/dist/routes/pr-review.d.ts +3 -0
  156. package/dist/routes/session-artifact-associations.d.ts +4 -0
  157. package/dist/routes/session-history-imports.d.ts +9 -0
  158. package/dist/routes/sessions.d.ts +44 -6
  159. package/dist/routes/skill-content.d.ts +4 -0
  160. package/dist/routes/skill-install-authority.d.ts +6 -0
  161. package/dist/routes/subscription-account-pools.d.ts +34 -0
  162. package/dist/routes/subscription-pool-access.d.ts +16 -0
  163. package/dist/routes/supergrok.d.ts +6 -1
  164. package/dist/routes/usage-allowances.d.ts +12 -0
  165. package/dist/routes/user-resource-authorities.d.ts +3 -0
  166. package/dist/routes/workspace-artifacts.d.ts +2 -1
  167. package/dist/routes/workspace-capture.d.ts +10 -2
  168. package/dist/routes/workspace-integrations.d.ts +35 -0
  169. package/dist/routes/workspace-learning.d.ts +3 -0
  170. package/dist/routes/workspace-model-providers.d.ts +4 -0
  171. package/dist/routes/workspaces.d.ts +29 -0
  172. package/dist/sandbox/auth-callout.d.ts +8 -0
  173. package/dist/sandbox/channel-a.d.ts +19 -1
  174. package/dist/sandbox/connection-authority.d.ts +3 -0
  175. package/dist/sandbox/enrollment.d.ts +9 -1
  176. package/dist/sandbox/machines.d.ts +5 -2
  177. package/dist/sandbox/metrics-ingestion.d.ts +28 -20
  178. package/dist/sandbox/rematerialize.d.ts +2 -0
  179. package/dist/sandbox/session-attach-variable-sets.d.ts +30 -0
  180. package/dist/sandbox/viewer.d.ts +26 -1
  181. package/dist/sandbox-file-artifacts.d.ts +50 -0
  182. package/dist/scheduled-task-deletion.d.ts +13 -0
  183. package/dist/session-create-observability.d.ts +5 -0
  184. package/dist/session-event-view-MPS2OZD3.js +292 -0
  185. package/dist/session-event-view-MPS2OZD3.js.map +1 -0
  186. package/dist/site-session-origin.d.ts +13 -0
  187. package/dist/site-uploads.d.ts +41 -0
  188. package/dist/slack-reaction-files.d.ts +1 -1
  189. package/dist/temporal-schedule-cleanup.d.ts +1 -0
  190. package/dist/temporal-schedule-sync.d.ts +26 -0
  191. package/dist/transcription/providers/xai-subscription.d.ts +1 -0
  192. package/dist/transcription/service.d.ts +2 -1
  193. package/dist/work-discovery-observability.d.ts +33 -0
  194. package/dist/workspace-artifact-content.d.ts +28 -0
  195. package/dist/workspace-artifact-provenance.d.ts +7 -0
  196. package/dist/workspace-delete-observability.d.ts +10 -0
  197. package/dist/workspace-deletion.d.ts +6 -0
  198. package/dist/workspace-state-projection.d.ts +3 -5
  199. package/dist/workspace-tool-gateway-observability.d.ts +17 -0
  200. package/dist/workspace-tool-gateway.d.ts +123 -0
  201. package/dist/workspace-webhook-dispatch.d.ts +26 -0
  202. package/package.json +23 -19
  203. package/src/access-grant-rls.ts +75 -0
  204. package/src/admission-trace.ts +14 -0
  205. package/src/api-websocket.ts +23 -0
  206. package/src/app.ts +1967 -252
  207. package/src/artifact-catalog-cursor.ts +60 -0
  208. package/src/auth/managed-auth-attempt-context.ts +70 -0
  209. package/src/auth/managed-auth-rate-limits.ts +252 -0
  210. package/src/auth/managed-auth-session-adapter.ts +222 -0
  211. package/src/auth/managed-auth.ts +536 -60
  212. package/src/auth/managed-email.ts +174 -0
  213. package/src/auth/managed-sign-in-notifications.ts +81 -0
  214. package/src/auth/new-signups-gate.ts +49 -0
  215. package/src/auth/organization-user-setup.ts +307 -0
  216. package/src/auth/signup-funnel-metrics.ts +164 -0
  217. package/src/browser-controller-authority.ts +1 -186
  218. package/src/browser-ephemeral.ts +39 -0
  219. package/src/browser-state-authority.ts +1 -236
  220. package/src/claude-subscription-account-conflicts.ts +12 -0
  221. package/src/claude-subscription-account-usage.ts +48 -0
  222. package/src/claude-subscription-oauth.ts +362 -0
  223. package/src/claude-subscription-profile.ts +73 -0
  224. package/src/claude-subscription-usage.ts +97 -0
  225. package/src/claude-workspace-connection.ts +82 -0
  226. package/src/codemode.ts +194 -30
  227. package/src/codex-realtime.ts +8 -2
  228. package/src/company-brain-okf.ts +340 -0
  229. package/src/connected-machine-computer-access.ts +33 -0
  230. package/src/connection-ownership.ts +199 -0
  231. package/src/controller-data-plane.ts +81 -0
  232. package/src/editable-artifact-native-kernel.ts +26 -15
  233. package/src/editable-artifact-office-import.ts +28 -3
  234. package/src/editable-artifact-production.ts +23 -7
  235. package/src/editable-artifact-source-session.ts +123 -0
  236. package/src/editable-artifact-websocket.ts +27 -21
  237. package/src/editable-artifact-workspace-files.ts +31 -6
  238. package/src/fatal-process-boundary.ts +246 -0
  239. package/src/gateway-realtime.ts +1 -1
  240. package/src/github-access.ts +147 -5
  241. package/src/http/acting-person.ts +71 -0
  242. package/src/http/api-contract-compat.ts +49 -0
  243. package/src/http/api-error.ts +115 -1
  244. package/src/http/auth.ts +48 -0
  245. package/src/http/cors.ts +67 -0
  246. package/src/http/deprecation.ts +118 -0
  247. package/src/http/interaction-control-error.ts +164 -0
  248. package/src/http/keyed-admission.ts +29 -0
  249. package/src/http/local-browser-boundary.ts +343 -0
  250. package/src/http/metrics-listener.ts +57 -0
  251. package/src/http/path-identifier.ts +54 -0
  252. package/src/http/registered-route-label.ts +34 -0
  253. package/src/http/request-body.ts +127 -0
  254. package/src/http/request-source.ts +178 -0
  255. package/src/http/sse.ts +486 -132
  256. package/src/http/unmatched-route.ts +60 -0
  257. package/src/http/user-content.ts +158 -0
  258. package/src/http/websocket-upgrade-dispatch.ts +29 -0
  259. package/src/index.ts +157 -52
  260. package/src/integration-endpoint-test.ts +291 -0
  261. package/src/integrations/api-integrations.ts +98 -11
  262. package/src/integrations/atlassian.ts +474 -136
  263. package/src/integrations/connect-authority.ts +2 -0
  264. package/src/integrations/connect-callback-return.ts +86 -0
  265. package/src/integrations/fiken.ts +354 -64
  266. package/src/integrations/github-app-connect.ts +435 -0
  267. package/src/integrations/github-installation-proof.ts +60 -0
  268. package/src/integrations/github-lens-connect.ts +76 -0
  269. package/src/integrations/github-skill-source.ts +2 -142
  270. package/src/integrations/google-drive.ts +717 -225
  271. package/src/integrations/integration-commit-authority.ts +69 -0
  272. package/src/integrations/marketplace-plugin.ts +48 -0
  273. package/src/integrations/oauth-client.ts +1356 -459
  274. package/src/integrations/oauth-profiles.ts +537 -0
  275. package/src/integrations/oauth-return-path.ts +18 -0
  276. package/src/integrations/personal-github-repositories.ts +674 -0
  277. package/src/integrations/personal-github.ts +825 -0
  278. package/src/integrations/pr-review-provider.ts +246 -0
  279. package/src/integrations/provider-oauth.ts +250 -22
  280. package/src/integrations/slack-app-home.ts +300 -0
  281. package/src/integrations/slack-bot.ts +963 -239
  282. package/src/integrations/slack-file-upload-flow.ts +147 -0
  283. package/src/integrations/slack-install.ts +83 -0
  284. package/src/integrations/slack-interactions.ts +3167 -474
  285. package/src/integrations/slack-mrkdwn.ts +193 -0
  286. package/src/integrations/slack-routing.ts +337 -0
  287. package/src/integrations/slack-session-defaults.ts +224 -0
  288. package/src/integrations/slack-task-file-upload.ts +323 -0
  289. package/src/integrations/social-oauth.ts +213 -15
  290. package/src/interaction-agent-access.ts +48 -0
  291. package/src/interaction-frame-proxy.ts +409 -0
  292. package/src/interaction-metrics.ts +30 -0
  293. package/src/mcp/action-catalog-types.ts +9 -0
  294. package/src/mcp/action-catalog.gen.ts +6696 -0
  295. package/src/mcp/capability-account-readiness.ts +17 -0
  296. package/src/mcp/child-read-evidence.ts +19 -0
  297. package/src/mcp/command-read.ts +109 -0
  298. package/src/mcp/company-profile-agent-admin.ts +198 -0
  299. package/src/mcp/contract-input.ts +141 -0
  300. package/src/mcp/documents.ts +65 -377
  301. package/src/mcp/editable-artifacts.ts +12 -6
  302. package/src/mcp/files.ts +80 -43
  303. package/src/mcp/first-party-tool-permissions.ts +305 -0
  304. package/src/mcp/knowledge-entries.ts +322 -0
  305. package/src/mcp/orchestration-failure-diagnostic.ts +43 -0
  306. package/src/mcp/receipts.ts +34 -0
  307. package/src/mcp/request-abort.ts +44 -0
  308. package/src/mcp/scheduled-task-input.ts +76 -0
  309. package/src/mcp/scheduled-task-view.ts +44 -3
  310. package/src/mcp/server.ts +3030 -1267
  311. package/src/mcp/session-event-view.ts +383 -0
  312. package/src/mcp/session-view.ts +84 -3
  313. package/src/mcp/session-wait.ts +665 -0
  314. package/src/mcp-oauth.ts +1123 -0
  315. package/src/model-catalog.ts +91 -333
  316. package/src/observability.ts +15 -1
  317. package/src/organization-mcp.ts +397 -0
  318. package/src/organization-recovery-notifications.ts +103 -0
  319. package/src/routes/analytics-consent.ts +123 -0
  320. package/src/routes/api-integrations.ts +364 -74
  321. package/src/routes/api-keys.ts +336 -10
  322. package/src/routes/artifact-catalog.ts +279 -0
  323. package/src/routes/automations.ts +768 -0
  324. package/src/routes/billing.ts +461 -46
  325. package/src/routes/browser-sessions.ts +780 -112
  326. package/src/routes/canonical-human-identities.ts +90 -14
  327. package/src/routes/capabilities.ts +107 -6
  328. package/src/routes/channels.ts +20 -3
  329. package/src/routes/claude-subscription-accounts.ts +334 -0
  330. package/src/routes/claude-subscription-oauth.ts +142 -0
  331. package/src/routes/client-errors.ts +362 -0
  332. package/src/routes/codex.ts +833 -116
  333. package/src/routes/company-brain.ts +322 -0
  334. package/src/routes/company-profile.ts +65 -1
  335. package/src/routes/computer-sessions.ts +557 -106
  336. package/src/routes/connect.ts +1938 -0
  337. package/src/routes/connections.ts +1039 -349
  338. package/src/routes/documents.ts +488 -287
  339. package/src/routes/editable-artifacts.ts +79 -9
  340. package/src/routes/enrollments.ts +135 -39
  341. package/src/routes/environments.ts +154 -58
  342. package/src/routes/external-identity-links.ts +201 -0
  343. package/src/routes/feedback.ts +113 -0
  344. package/src/routes/files.ts +267 -33
  345. package/src/routes/github-browser-pages.ts +162 -0
  346. package/src/routes/github.ts +446 -144
  347. package/src/routes/insights-response-cache.ts +83 -0
  348. package/src/routes/insights-usage.ts +345 -0
  349. package/src/routes/insights.ts +153 -19
  350. package/src/routes/install.ts +133 -38
  351. package/src/routes/integration-facets.ts +107 -33
  352. package/src/routes/interaction-resources.ts +30 -3
  353. package/src/routes/knowledge.ts +488 -0
  354. package/src/routes/machines.ts +313 -15
  355. package/src/routes/managed-auth-session-sets.ts +1218 -0
  356. package/src/routes/managed-onboarding.ts +337 -0
  357. package/src/routes/managed-sign-in-methods.ts +433 -0
  358. package/src/routes/memory-slack-publications.ts +3 -2
  359. package/src/routes/model-connection-access.ts +208 -0
  360. package/src/routes/organization-integration-policy.ts +116 -0
  361. package/src/routes/organization-integrations.ts +326 -0
  362. package/src/routes/organization-mcp-connections.ts +178 -0
  363. package/src/routes/organization-memberships.ts +1019 -27
  364. package/src/routes/organization-model-providers.ts +293 -0
  365. package/src/routes/organization-recovery.ts +325 -0
  366. package/src/routes/organization-service-accounts.ts +128 -0
  367. package/src/routes/organization-sessions.ts +350 -0
  368. package/src/routes/personal-github-git-broker.ts +785 -0
  369. package/src/routes/personal-github.ts +370 -0
  370. package/src/routes/plugins.ts +251 -22
  371. package/src/routes/pr-review-github.ts +881 -0
  372. package/src/routes/pr-review.ts +622 -0
  373. package/src/routes/preference-registry.ts +12 -93
  374. package/src/routes/rigs.ts +167 -50
  375. package/src/routes/scheduled-tasks.ts +346 -41
  376. package/src/routes/session-artifact-associations.ts +87 -0
  377. package/src/routes/session-history-imports.ts +280 -0
  378. package/src/routes/sessions.ts +2306 -264
  379. package/src/routes/skill-content.ts +297 -0
  380. package/src/routes/skill-install-authority.ts +64 -0
  381. package/src/routes/skills.ts +62 -9
  382. package/src/routes/social.ts +46 -18
  383. package/src/routes/subscription-account-pools.ts +436 -0
  384. package/src/routes/subscription-pool-access.ts +126 -0
  385. package/src/routes/supergrok.ts +219 -303
  386. package/src/routes/transcription-recordings.ts +38 -3
  387. package/src/routes/transcriptions.ts +4 -0
  388. package/src/routes/usage-allowances.ts +378 -0
  389. package/src/routes/user-resource-authorities.ts +138 -0
  390. package/src/routes/video-generation.ts +14 -10
  391. package/src/routes/workspace-artifacts.ts +275 -69
  392. package/src/routes/workspace-capture.ts +21 -0
  393. package/src/routes/workspace-integrations.ts +576 -0
  394. package/src/routes/workspace-learning.ts +159 -0
  395. package/src/routes/workspace-model-providers.ts +148 -0
  396. package/src/routes/workspace-state.ts +38 -25
  397. package/src/routes/workspaces.ts +1004 -127
  398. package/src/sandbox/auth-callout.ts +96 -19
  399. package/src/sandbox/channel-a.ts +323 -24
  400. package/src/sandbox/connection-authority.ts +3 -0
  401. package/src/sandbox/enrollment.ts +81 -6
  402. package/src/sandbox/machines.ts +218 -76
  403. package/src/sandbox/metrics-ingestion.ts +411 -62
  404. package/src/sandbox/rematerialize.ts +121 -19
  405. package/src/sandbox/session-attach-variable-sets.ts +131 -0
  406. package/src/sandbox/viewer.ts +280 -25
  407. package/src/sandbox-file-artifacts.ts +413 -0
  408. package/src/scheduled-task-deletion.ts +138 -0
  409. package/src/session-create-observability.ts +46 -0
  410. package/src/session-realtime-context.ts +6 -3
  411. package/src/site-session-origin.ts +48 -0
  412. package/src/site-uploads.ts +224 -0
  413. package/src/slack-reaction-files.ts +16 -5
  414. package/src/temporal-schedule-cleanup.ts +13 -0
  415. package/src/temporal-schedule-sync.ts +74 -0
  416. package/src/transcription/providers/codex-subscription.ts +2 -0
  417. package/src/transcription/providers/openai.ts +1 -0
  418. package/src/transcription/providers/xai-subscription.ts +49 -3
  419. package/src/transcription/segmenter.ts +8 -2
  420. package/src/transcription/service.ts +43 -6
  421. package/src/work-discovery-observability.ts +121 -0
  422. package/src/workspace-artifact-content.ts +144 -0
  423. package/src/workspace-artifact-provenance.ts +104 -0
  424. package/src/workspace-delete-observability.ts +75 -0
  425. package/src/workspace-deletion.ts +73 -0
  426. package/src/workspace-state-projection.ts +18 -148
  427. package/src/workspace-tool-gateway-observability.ts +100 -0
  428. package/src/workspace-tool-gateway.ts +870 -0
  429. package/src/workspace-webhook-dispatch.ts +190 -0
  430. package/src/xai-subscription-auth.ts +9 -2
  431. package/dist/chunk-WCXHI3FF.js +0 -49920
  432. package/dist/chunk-WCXHI3FF.js.map +0 -1
  433. package/dist/routes/packs.d.ts +0 -3
  434. package/src/routes/packs.ts +0 -729
@@ -1,433 +1,121 @@
1
+ import { searchKnowledgeEntries } from "@opengeni/core";
2
+ import type { Settings } from "@opengeni/config";
3
+ import { KnowledgeEntryListRequest } from "@opengeni/contracts";
4
+ import type { DocumentServices } from "@opengeni/documents";
1
5
  import {
2
- KNOWLEDGE_BROWSE_CURSOR_MAX_CHARS,
3
- KnowledgeBrowseResponse,
4
- KnowledgeGetResponse,
5
- KnowledgeRecordId,
6
- KnowledgeSearchResponse,
7
- ListIndexedDocumentsResponse,
8
- } from "@opengeni/contracts";
9
- import {
10
- browseEffectiveKnowledge,
11
- getEffectiveKnowledgeRecord,
12
- getDocumentChunk,
13
- listDocumentBases,
14
- listEffectiveIndexedDocuments,
15
- searchEffectiveKnowledge,
16
- searchEffectiveDocuments,
17
- type DocumentAccessFilter,
18
- type DocumentServices,
19
- } from "@opengeni/documents";
20
- import { createKnowledgeMemory, listKnowledgeMemories, type Database } from "@opengeni/db";
6
+ getKnowledgeEntry,
7
+ listKnowledgeEntries,
8
+ type KnowledgeContext,
9
+ type Database,
10
+ } from "@opengeni/db";
21
11
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
22
12
  import * as z from "zod/v4";
23
- import { mcpMutationReceipt } from "./receipts";
24
-
25
- const SearchInputSchema = {
26
- query: z.string().min(1),
27
- baseIds: z.array(z.string().uuid()).optional(),
28
- limit: z.number().int().positive().max(50).optional(),
29
- mode: z.enum(["hybrid", "vector", "keyword"]).optional(),
30
- sourceKinds: z
31
- .array(
32
- z.enum([
33
- "manual_upload",
34
- "meeting_transcript",
35
- "repository",
36
- "email",
37
- "chat",
38
- "document",
39
- "web",
40
- "other",
41
- ]),
42
- )
43
- .optional(),
44
- aclTags: z.array(z.string().min(1)).optional(),
45
- };
46
-
47
- const MemoryKindSchema = z.enum(["semantic", "episodic", "procedural", "decision", "preference"]);
48
- const SourceRefSchema = z.object({
49
- kind: z.enum(["document_chunk", "document", "session_event", "memory", "external"]),
50
- id: z.string().min(1),
51
- uri: z.string().min(1).optional(),
52
- title: z.string().min(1).optional(),
53
- metadata: z.record(z.string(), z.unknown()).optional(),
54
- });
55
13
 
14
+ /** The docs endpoint is a transport for canonical Knowledge retrieval. Legacy
15
+ * chunk/base retrieval is retired: it cannot bypass pending Knowledge review. */
56
16
  export function buildDocumentsMcpServer(
57
17
  db: Database,
58
18
  accountId: string,
59
19
  workspaceId: string,
60
20
  documentServices: DocumentServices,
61
- options: {
62
- createdBySessionId?: string | undefined;
63
- /** Immutable human subject whose agent is making this retrieval request. */
64
- initiatingSubjectId: string;
65
- },
21
+ options: { knowledge: KnowledgeContext; settings?: Settings },
66
22
  ): McpServer {
67
- const server = new McpServer({
68
- name: "opengeni-documents",
69
- version: "1.0.0",
70
- });
71
- // This server is the agent retrieval surface. Agent-disabled documents are
72
- // never reachable. Workspace-visible documents are shared; private
73
- // documents are available only to the creating subject's agent.
74
- const agentAccess: DocumentAccessFilter = {
75
- agentOnly: true,
76
- viewerSubjectId: options.initiatingSubjectId,
77
- };
78
-
79
- server.registerTool(
80
- "list_document_bases",
81
- {
82
- description: "List document bases available for retrieval.",
83
- inputSchema: {},
84
- },
85
- async () => ({
86
- content: [{ type: "text", text: JSON.stringify(await listDocumentBases(db, workspaceId)) }],
87
- }),
88
- );
89
-
90
- server.registerTool(
91
- "search_documents",
92
- {
93
- description: "Search indexed documents with hybrid, vector, or keyword retrieval.",
94
- inputSchema: SearchInputSchema,
95
- },
96
- async (input) =>
97
- searchContent(
98
- db,
99
- accountId,
100
- workspaceId,
101
- documentServices,
102
- input,
103
- options.initiatingSubjectId,
104
- ),
105
- );
106
-
23
+ const context = options.knowledge;
24
+ if (context.accountId !== accountId || context.workspaceId !== workspaceId)
25
+ throw new Error("Knowledge gateway authority mismatch");
26
+ const server = new McpServer({ name: "opengeni-knowledge", version: "2.0.0" });
107
27
  server.registerTool(
108
28
  "knowledge_search",
109
29
  {
110
30
  description:
111
- "Search the effective authorized organization, current-workspace, and immutable initiating-user personal document scope. Authorization is applied before ranking and every result retains source and authority provenance.",
112
- inputSchema: SearchInputSchema,
113
- },
114
- async (input) =>
115
- searchKnowledge(
116
- db,
117
- accountId,
118
- workspaceId,
119
- documentServices,
120
- input,
121
- options.initiatingSubjectId,
122
- ),
123
- );
124
-
125
- server.registerTool(
126
- "knowledge_get",
127
- {
128
- description:
129
- "Fetch one stable Knowledge record by the id returned from knowledge_search or knowledge_browse. Authorization and agent access are rechecked before content or links are returned.",
130
- inputSchema: { id: KnowledgeRecordId },
131
- },
132
- async ({ id }) => {
133
- const record = await getEffectiveKnowledgeRecord(db, {
134
- accountId,
135
- workspaceId,
136
- initiatingSubjectId: options.initiatingSubjectId,
137
- id,
138
- });
139
- return {
140
- content: [
141
- {
142
- type: "text",
143
- text: record
144
- ? JSON.stringify(KnowledgeGetResponse.parse({ record }))
145
- : `knowledge record not found: ${id}`,
146
- },
147
- ],
148
- isError: !record,
149
- };
150
- },
151
- );
152
-
153
- server.registerTool(
154
- "knowledge_browse",
155
- {
156
- description:
157
- "Browse authorized Knowledge without crawling folders. Omit parentId to list source documents; pass a document record id to inspect its chunks. Opaque cursors are bound to this user, workspace, parent, and filters.",
158
- inputSchema: {
159
- parentId: KnowledgeRecordId.optional(),
160
- topic: z.string().min(1).max(256).optional(),
161
- sourceKinds: SearchInputSchema.sourceKinds,
162
- cursor: z.string().min(1).max(KNOWLEDGE_BROWSE_CURSOR_MAX_CHARS).optional(),
163
- limit: z.number().int().positive().max(50).optional(),
164
- },
165
- },
166
- async ({ parentId, topic, sourceKinds, cursor, limit }) => ({
31
+ "Search published structured Knowledge and retained source text in the current authorized scope. Use a concise subject or entity name first (for example Acme); omit scope to search all authorized scopes. If a query returns no entries, retry the key name alone in the same scope or browse groups before concluding the information is absent.",
32
+ inputSchema: KnowledgeEntryListRequest.omit({
33
+ view: true,
34
+ sessionId: true,
35
+ reviewBatchId: true,
36
+ }).shape,
37
+ },
38
+ async (input) => ({
167
39
  content: [
168
40
  {
169
41
  type: "text",
170
42
  text: JSON.stringify(
171
- KnowledgeBrowseResponse.parse(
172
- await browseEffectiveKnowledge(db, {
173
- accountId,
174
- workspaceId,
175
- initiatingSubjectId: options.initiatingSubjectId,
176
- ...(parentId ? { parentId } : {}),
177
- ...(topic ? { topic } : {}),
178
- ...(sourceKinds ? { sourceKinds } : {}),
179
- ...(cursor ? { cursor } : {}),
180
- ...(limit ? { limit } : {}),
181
- }),
43
+ await searchKnowledgeEntries(
44
+ db,
45
+ context,
46
+ input,
47
+ () => documentServices.embedder,
48
+ options.settings,
182
49
  ),
183
50
  ),
184
51
  },
185
52
  ],
186
53
  }),
187
54
  );
188
-
189
55
  server.registerTool(
190
- "list_indexed_documents",
191
- {
192
- description:
193
- "List agent-authorized documents that became ready after an opaque checkpoint, ordered by durable indexing completion. Results include source and authority/ingestion provenance. Persist nextCheckpoint only after successfully processing the returned page, then pass it on the next scheduled run to avoid repeats.",
194
- inputSchema: {
195
- checkpoint: z.string().min(1).max(1_024).optional(),
196
- limit: z.number().int().positive().max(100).optional(),
197
- },
198
- },
199
- async ({ checkpoint, limit }) => ({
200
- content: [
201
- {
202
- type: "text",
203
- text: JSON.stringify(
204
- ListIndexedDocumentsResponse.parse(
205
- await listEffectiveIndexedDocuments(db, {
206
- accountId,
207
- workspaceId,
208
- initiatingSubjectId: options.initiatingSubjectId,
209
- ...(checkpoint ? { checkpoint } : {}),
210
- ...(limit ? { limit } : {}),
211
- }),
212
- ),
213
- ),
214
- },
215
- ],
216
- }),
217
- );
218
-
219
- server.registerTool(
220
- "fetch_document_chunk",
221
- {
222
- description: "Fetch one indexed document chunk by id.",
223
- inputSchema: {
224
- chunkId: z.string().uuid(),
225
- },
226
- },
227
- async ({ chunkId }) => {
228
- const found = await getDocumentChunk(db, accountId, workspaceId, chunkId, agentAccess);
229
- return {
230
- content: [
231
- { type: "text", text: found ? JSON.stringify(found) : `chunk not found: ${chunkId}` },
232
- ],
233
- isError: !found,
234
- };
235
- },
236
- );
237
-
238
- server.registerTool(
239
- "knowledge_fetch",
240
- {
241
- description: "Fetch one knowledge source chunk by id.",
242
- inputSchema: {
243
- chunkId: z.string().uuid(),
244
- },
245
- },
246
- async ({ chunkId }) => {
247
- const found = await getDocumentChunk(db, accountId, workspaceId, chunkId, agentAccess);
248
- return {
249
- content: [
250
- { type: "text", text: found ? JSON.stringify(found) : `chunk not found: ${chunkId}` },
251
- ],
252
- isError: !found,
253
- };
254
- },
255
- );
256
-
257
- server.registerTool(
258
- "memory_search",
56
+ "knowledge_browse",
259
57
  {
260
- description: "Search approved company memory records.",
58
+ description: "Browse Knowledge groups or entries in one group, across sources.",
261
59
  inputSchema: {
262
- query: z.string().min(1).optional(),
263
- kind: MemoryKindSchema.optional(),
264
- scope: z.string().min(1).optional(),
265
- limit: z.number().int().positive().max(100).optional(),
60
+ groupId: z.uuid().optional(),
61
+ cursor: z.string().optional(),
62
+ limit: z.number().int().positive().max(50).optional(),
266
63
  },
267
64
  },
268
- async ({ query, kind, scope, limit }) => ({
65
+ async (input) => ({
269
66
  content: [
270
67
  {
271
68
  type: "text",
272
69
  text: JSON.stringify(
273
- await listKnowledgeMemories(db, workspaceId, {
274
- ...(query ? { query } : {}),
275
- status: ["active", "approved"],
276
- ...(kind ? { kind } : {}),
277
- ...(scope ? { scope } : {}),
278
- ...(limit ? { limit } : {}),
70
+ await listKnowledgeEntries(db, context, {
71
+ ...input,
72
+ ...(input.groupId ? {} : { kind: "group" }),
279
73
  }),
280
74
  ),
281
75
  },
282
76
  ],
283
77
  }),
284
78
  );
285
-
286
79
  server.registerTool(
287
- "memory_propose",
80
+ "knowledge_get",
288
81
  {
289
- description: "Propose a company memory record for human review.",
82
+ description:
83
+ "Read an exact published Knowledge revision and its evidence. Long source text is paginated.",
290
84
  inputSchema: {
291
- text: z.string().min(1),
292
- kind: MemoryKindSchema.optional(),
293
- scope: z.string().min(1).optional(),
294
- sourceRefs: z.array(SourceRefSchema).optional(),
295
- confidence: z.number().min(0).max(1).optional(),
296
- metadata: z.record(z.string(), z.unknown()).optional(),
85
+ entryId: z.uuid(),
86
+ revisionId: z.uuid().optional(),
87
+ offset: z.number().int().nonnegative().default(0),
88
+ maxChars: z.number().int().positive().max(16000).default(8000),
297
89
  },
298
90
  },
299
- async ({ text, kind, scope, sourceRefs, confidence, metadata }) => {
300
- const memory = await createKnowledgeMemory(db, {
301
- accountId,
302
- workspaceId,
303
- status: "proposed",
304
- kind: kind ?? "semantic",
305
- scope: scope ?? "workspace",
306
- text,
307
- sourceRefs:
308
- sourceRefs?.map((sourceRef) => ({
309
- ...sourceRef,
310
- metadata: sourceRef.metadata ?? {},
311
- })) ?? [],
312
- confidence: confidence ?? 0.5,
313
- metadata: metadata ?? {},
314
- createdBySessionId: options.createdBySessionId,
91
+ async (input) => {
92
+ const record = await getKnowledgeEntry(db, context, input.entryId, {
93
+ revisionId: input.revisionId,
315
94
  });
95
+ if (!record) return { content: [{ type: "text", text: JSON.stringify({ found: false }) }] };
96
+ const text = record.revision.entry.content;
97
+ const end = Math.min(text.length, input.offset + input.maxChars);
316
98
  return {
317
99
  content: [
318
100
  {
319
101
  type: "text",
320
- text: JSON.stringify(
321
- mcpMutationReceipt({
322
- operation: "memory_propose",
323
- committed: true,
324
- outcome: "created",
325
- changed: true,
326
- resource: {
327
- type: "knowledge_memory",
328
- id: memory.id,
329
- state: memory.status,
330
- },
331
- timestamp: memory.updatedAt,
332
- idempotency: { status: "not_supported" },
333
- nextAction: { tool: "memory_search", arguments: {} },
334
- }),
335
- ),
102
+ text: JSON.stringify({
103
+ ...record,
104
+ revision: {
105
+ ...record.revision,
106
+ entry: { ...record.revision.entry, content: text.slice(input.offset, end) },
107
+ },
108
+ contentRange: {
109
+ start: input.offset,
110
+ end,
111
+ total: text.length,
112
+ nextOffset: end < text.length ? end : null,
113
+ },
114
+ }),
336
115
  },
337
116
  ],
338
117
  };
339
118
  },
340
119
  );
341
-
342
120
  return server;
343
121
  }
344
-
345
- async function searchContent(
346
- db: Database,
347
- accountId: string,
348
- workspaceId: string,
349
- documentServices: DocumentServices,
350
- input: {
351
- query: string;
352
- baseIds?: string[] | undefined;
353
- limit?: number | undefined;
354
- mode?: "hybrid" | "vector" | "keyword" | undefined;
355
- sourceKinds?:
356
- | Array<
357
- | "manual_upload"
358
- | "meeting_transcript"
359
- | "repository"
360
- | "email"
361
- | "chat"
362
- | "document"
363
- | "web"
364
- | "other"
365
- >
366
- | undefined;
367
- aclTags?: string[] | undefined;
368
- },
369
- initiatingSubjectId: string,
370
- ) {
371
- const results = await searchEffectiveDocuments(
372
- db,
373
- {
374
- accountId,
375
- workspaceId,
376
- query: input.query,
377
- ...(input.baseIds ? { baseIds: input.baseIds } : {}),
378
- ...(input.limit ? { limit: input.limit } : {}),
379
- ...(input.mode ? { mode: input.mode } : {}),
380
- ...(input.sourceKinds ? { sourceKinds: input.sourceKinds } : {}),
381
- ...(input.aclTags ? { aclTags: input.aclTags } : {}),
382
- initiatingSubjectId,
383
- surface: "agent",
384
- },
385
- documentServices,
386
- );
387
- return {
388
- content: [
389
- {
390
- type: "text" as const,
391
- text: JSON.stringify(results),
392
- },
393
- ],
394
- };
395
- }
396
-
397
- async function searchKnowledge(
398
- db: Database,
399
- accountId: string,
400
- workspaceId: string,
401
- documentServices: DocumentServices,
402
- input: {
403
- query: string;
404
- baseIds?: string[] | undefined;
405
- limit?: number | undefined;
406
- mode?: "hybrid" | "vector" | "keyword" | undefined;
407
- sourceKinds?: Parameters<typeof searchContent>[4]["sourceKinds"];
408
- aclTags?: string[] | undefined;
409
- },
410
- initiatingSubjectId: string,
411
- ) {
412
- const response = await searchEffectiveKnowledge(
413
- db,
414
- {
415
- accountId,
416
- workspaceId,
417
- query: input.query,
418
- ...(input.baseIds ? { baseIds: input.baseIds } : {}),
419
- ...(input.limit ? { limit: input.limit } : {}),
420
- ...(input.mode ? { mode: input.mode } : {}),
421
- ...(input.sourceKinds ? { sourceKinds: input.sourceKinds } : {}),
422
- ...(input.aclTags ? { aclTags: input.aclTags } : {}),
423
- initiatingSubjectId,
424
- surface: "agent",
425
- },
426
- documentServices,
427
- );
428
- return {
429
- content: [
430
- { type: "text" as const, text: JSON.stringify(KnowledgeSearchResponse.parse(response)) },
431
- ],
432
- };
433
- }
@@ -32,12 +32,13 @@ const ArtifactCommand = z
32
32
  .object({ kind: z.string().min(1).max(128) })
33
33
  .passthrough()
34
34
  .describe(
35
- "One canonical modality command. Use the exact OpenGeni document, spreadsheet, or presentation skill command contract; never send local-file facade calls here.",
35
+ "One canonical modality command. Use the exact Opengeni document, spreadsheet, or presentation skill command contract; never send local-file facade calls here.",
36
36
  );
37
37
 
38
38
  const ArtifactMetadata = z
39
39
  .object({
40
40
  id: ArtifactId,
41
+ artifactReference: z.string(),
41
42
  modality: Modality,
42
43
  title: z.string(),
43
44
  lifecycle: z.enum(["active", "archived"]),
@@ -203,13 +204,17 @@ export function registerEditableArtifactAgentTools(
203
204
  {
204
205
  title: "Inspect editable artifact",
205
206
  description:
206
- "Query the artifact's current canonical head through the same native kernel used by the browser. Use bounded modality queries; results are current, not a sandbox-file snapshot.",
207
+ "Query the artifact's current canonical head through the same native kernel used by the browser. Use bounded modality queries; results are current, not a sandbox-file snapshot. Native document queries return a server-issued inspectionReceiptId; use a post-edit body inspection receipt for declared report completion. If the document changes during inspection, retry against its current head.",
207
208
  inputSchema: {
208
209
  artifactId: ArtifactId,
209
210
  modality: Modality,
210
211
  request: EditableArtifactQueryRequestSchema,
211
212
  },
212
- outputSchema: { artifact: ArtifactMetadata, projection: z.unknown() },
213
+ outputSchema: {
214
+ artifact: ArtifactMetadata,
215
+ projection: z.unknown(),
216
+ inspectionReceiptId: z.string().uuid().optional(),
217
+ },
213
218
  annotations: readOnlyAnnotations("Inspect editable artifact"),
214
219
  },
215
220
  async ({ artifactId, modality, request }, extra) =>
@@ -262,11 +267,12 @@ export function registerEditableArtifactAgentTools(
262
267
  "editable_artifact_export",
263
268
  {
264
269
  title: "Export editable artifact",
265
- description:
266
- "Pin the current artifact head and start an immutable Office/PDF/image export. This does not write into the sandbox. Poll opengeni__editable_artifact_export_status for the resulting workspace file ID.",
270
+ description: `Pin the current artifact head and start an immutable file export. ${input.deps.editableArtifactAgent?.describeExportFormats?.() ?? "No exporter capability description is available; query this deployment before promising a format."} This does not write into the sandbox. Poll opengeni__editable_artifact_export_status for the resulting workspace file ID.`,
267
271
  inputSchema: {
268
272
  artifactId: ArtifactId,
269
- format: Format,
273
+ format: Format.describe(
274
+ "Target file format. Only the formats listed in this tool's description are served; any other combination is refused with unsupported_format.",
275
+ ),
270
276
  options: JsonRecord.optional(),
271
277
  },
272
278
  outputSchema: {