@opengeni/sdk 3.3.2 → 3.4.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 (299) hide show
  1. package/README.md +1007 -72
  2. package/dist/adapters/express.d.ts +31 -0
  3. package/dist/adapters/express.js +87 -0
  4. package/dist/adapters/express.js.map +1 -0
  5. package/dist/adapters/hono.d.ts +16 -0
  6. package/dist/adapters/hono.js +8 -0
  7. package/dist/adapters/hono.js.map +1 -0
  8. package/dist/adapters/next.d.ts +29 -0
  9. package/dist/adapters/next.js +22 -0
  10. package/dist/adapters/next.js.map +1 -0
  11. package/dist/allowance-refusal.d.ts +2 -0
  12. package/dist/allowance-refusal.js +50 -0
  13. package/dist/allowance-refusal.js.map +1 -0
  14. package/dist/app-links.d.ts +42 -0
  15. package/dist/app-links.js +66 -0
  16. package/dist/app-links.js.map +1 -0
  17. package/dist/artifact-catalog.d.ts +40 -0
  18. package/dist/artifact-client.d.ts +20 -8
  19. package/dist/artifacts.d.ts +1 -1
  20. package/dist/artifacts.js +8 -6
  21. package/dist/automations.js +8 -2
  22. package/dist/automations.js.map +1 -1
  23. package/dist/azure-live-transport.d.ts +32 -0
  24. package/dist/browser.d.ts +7 -2
  25. package/dist/browser.js +27 -5
  26. package/dist/chat/fold.d.ts +75 -0
  27. package/dist/chat/handler.d.ts +41 -0
  28. package/dist/chat/http.d.ts +67 -0
  29. package/dist/chat/ids.d.ts +34 -0
  30. package/dist/chat/index.d.ts +9 -0
  31. package/dist/chat/index.js +1369 -0
  32. package/dist/chat/index.js.map +1 -0
  33. package/dist/chat/openai.d.ts +30 -0
  34. package/dist/chat/opengeni.d.ts +129 -0
  35. package/dist/chat/types.d.ts +207 -0
  36. package/dist/chat/vercel.d.ts +49 -0
  37. package/dist/chats.d.ts +8 -0
  38. package/dist/chunk-4AHR4KGA.js +301 -0
  39. package/dist/chunk-4AHR4KGA.js.map +1 -0
  40. package/dist/chunk-6GYGMLX4.js +332 -0
  41. package/dist/chunk-6GYGMLX4.js.map +1 -0
  42. package/dist/chunk-7EWT3PV6.js +368 -0
  43. package/dist/chunk-7EWT3PV6.js.map +1 -0
  44. package/dist/chunk-FTWVVPR6.js +1665 -0
  45. package/dist/chunk-FTWVVPR6.js.map +1 -0
  46. package/dist/{chunk-VYCTL62C.js → chunk-GZQSWAKD.js} +1 -1
  47. package/dist/chunk-GZQSWAKD.js.map +1 -0
  48. package/dist/chunk-KGEABAID.js +71 -0
  49. package/dist/chunk-KGEABAID.js.map +1 -0
  50. package/dist/{chunk-YKZME56C.js → chunk-KWADQ227.js} +3 -3
  51. package/dist/{chunk-YKZME56C.js.map → chunk-KWADQ227.js.map} +1 -1
  52. package/dist/{chunk-JUS2UYRP.js → chunk-NCU5OAN7.js} +27 -2
  53. package/dist/chunk-NCU5OAN7.js.map +1 -0
  54. package/dist/{chunk-YXQX7RQT.js → chunk-OI5YLASH.js} +73 -2
  55. package/dist/chunk-OI5YLASH.js.map +1 -0
  56. package/dist/chunk-OV3POE62.js +359 -0
  57. package/dist/chunk-OV3POE62.js.map +1 -0
  58. package/dist/chunk-P7UWKORG.js +561 -0
  59. package/dist/chunk-P7UWKORG.js.map +1 -0
  60. package/dist/chunk-QGEIL4TR.js +195 -0
  61. package/dist/chunk-QGEIL4TR.js.map +1 -0
  62. package/dist/{chunk-TRNI7KEO.js → chunk-S2NLS3ES.js} +3669 -1281
  63. package/dist/chunk-S2NLS3ES.js.map +1 -0
  64. package/dist/chunk-UM4ZXXJR.js +9 -0
  65. package/dist/chunk-UM4ZXXJR.js.map +1 -0
  66. package/dist/{chunk-QT3KFVDP.js → chunk-UME3X7CP.js} +28 -32
  67. package/dist/chunk-UME3X7CP.js.map +1 -0
  68. package/dist/chunk-VT4YM4XQ.js +210 -0
  69. package/dist/chunk-VT4YM4XQ.js.map +1 -0
  70. package/dist/chunk-WSYYXONG.js +1602 -0
  71. package/dist/chunk-WSYYXONG.js.map +1 -0
  72. package/dist/{chunk-C2H7HBNP.js → chunk-WVCJRSGJ.js} +119 -14
  73. package/dist/chunk-WVCJRSGJ.js.map +1 -0
  74. package/dist/chunk-X5ITQVXE.js +15 -0
  75. package/dist/chunk-X5ITQVXE.js.map +1 -0
  76. package/dist/chunk-XA7HVIHI.js +126 -0
  77. package/dist/chunk-XA7HVIHI.js.map +1 -0
  78. package/dist/{chunk-KKRO2VCP.js → chunk-YJCHB7R3.js} +60 -12
  79. package/dist/chunk-YJCHB7R3.js.map +1 -0
  80. package/dist/chunk-YKIHNLWD.js +153 -0
  81. package/dist/chunk-YKIHNLWD.js.map +1 -0
  82. package/dist/chunk-ZDUBPV33.js +277 -0
  83. package/dist/chunk-ZDUBPV33.js.map +1 -0
  84. package/dist/client.d.ts +1068 -118
  85. package/dist/codex-realtime-controller.d.ts +13 -0
  86. package/dist/codex-realtime-controller.js +4 -2
  87. package/dist/codex-realtime-v3-wire.d.ts +3 -2
  88. package/dist/codex-realtime.d.ts +5 -1
  89. package/dist/company-brain.d.ts +1 -11
  90. package/dist/core.d.ts +7 -2
  91. package/dist/core.js +25 -6
  92. package/dist/deprecation.d.ts +47 -0
  93. package/dist/document-authority-client.d.ts +24 -2
  94. package/dist/document-authority.js +7 -5
  95. package/dist/editable-artifacts/index.d.ts +1 -1
  96. package/dist/editable-artifacts/types.d.ts +12 -2
  97. package/dist/editable-artifacts.js +19 -3
  98. package/dist/editable-artifacts.js.map +1 -1
  99. package/dist/embedding-client.d.ts +129 -0
  100. package/dist/errors.d.ts +76 -1
  101. package/dist/external-vault-receiver.d.ts +203 -0
  102. package/dist/external-vault-receiver.js +564 -0
  103. package/dist/external-vault-receiver.js.map +1 -0
  104. package/dist/feedback.d.ts +23 -0
  105. package/dist/gateway-realtime-transport.js +1 -1
  106. package/dist/github-repositories.d.ts +10 -0
  107. package/dist/github-repositories.js +36 -0
  108. package/dist/github-repositories.js.map +1 -0
  109. package/dist/index.d.ts +62 -11
  110. package/dist/index.js +557 -338
  111. package/dist/index.js.map +1 -1
  112. package/dist/insights-usage.d.ts +33 -0
  113. package/dist/insights-usage.js +7 -0
  114. package/dist/insights-usage.js.map +1 -0
  115. package/dist/interaction.d.ts +165 -71
  116. package/dist/interaction.js +2 -2
  117. package/dist/knowledge.d.ts +7 -0
  118. package/dist/knowledge.js +20 -0
  119. package/dist/knowledge.js.map +1 -0
  120. package/dist/known-tools.d.ts +4 -0
  121. package/dist/message-links.d.ts +68 -0
  122. package/dist/model-context.d.ts +68 -0
  123. package/dist/model-display.d.ts +2 -0
  124. package/dist/model-display.js +17 -0
  125. package/dist/model-display.js.map +1 -0
  126. package/dist/model-picker-order.d.ts +1 -0
  127. package/dist/model-picker-order.js +10 -0
  128. package/dist/model-picker-order.js.map +1 -0
  129. package/dist/organization-integration-policy.d.ts +26 -0
  130. package/dist/organization-integration-policy.js +26 -0
  131. package/dist/organization-integration-policy.js.map +1 -0
  132. package/dist/pr-review-client.d.ts +1 -1
  133. package/dist/pr-review.d.ts +1 -1
  134. package/dist/pr-review.js.map +1 -1
  135. package/dist/preference-registry.d.ts +1 -1
  136. package/dist/prepared-mcp-setup.d.ts +5 -0
  137. package/dist/proxy.d.ts +13 -11
  138. package/dist/realtime.d.ts +1 -1
  139. package/dist/realtime.js +253 -7
  140. package/dist/realtime.js.map +1 -1
  141. package/dist/session-history-import.d.ts +22 -0
  142. package/dist/session-history-import.js +36 -0
  143. package/dist/session-history-import.js.map +1 -0
  144. package/dist/session-list-entries.d.ts +1 -0
  145. package/dist/session-list-entries.js +7 -0
  146. package/dist/session-list-entries.js.map +1 -0
  147. package/dist/session-message-search.d.ts +53 -0
  148. package/dist/session-proxy-client.d.ts +28 -0
  149. package/dist/session-proxy.d.ts +334 -0
  150. package/dist/session-proxy.js +24 -0
  151. package/dist/session-proxy.js.map +1 -0
  152. package/dist/session-titles.d.ts +2 -28
  153. package/dist/session-usage-limits.d.ts +10 -0
  154. package/dist/session-usage-limits.js +43 -0
  155. package/dist/session-usage-limits.js.map +1 -0
  156. package/dist/shared-catalog-loader.d.ts +34 -0
  157. package/dist/site-ai.d.ts +35 -0
  158. package/dist/site-bridge-host.d.ts +112 -0
  159. package/dist/site-bridge-host.js +286 -0
  160. package/dist/site-bridge-host.js.map +1 -0
  161. package/dist/site-browser-entry.d.ts +1 -0
  162. package/dist/site-browser-runtime.gen.d.ts +1 -0
  163. package/dist/site-data.d.ts +178 -0
  164. package/dist/site-document.d.ts +5 -0
  165. package/dist/site-document.js +20 -0
  166. package/dist/site-document.js.map +1 -0
  167. package/dist/site-document.test.d.ts +1 -0
  168. package/dist/site-http.d.ts +17 -0
  169. package/dist/site-sql.d.ts +31 -0
  170. package/dist/site-tool-bridge.d.ts +57 -0
  171. package/dist/site.d.ts +186 -0
  172. package/dist/site.js +63 -0
  173. package/dist/site.js.map +1 -0
  174. package/dist/skills.d.ts +75 -0
  175. package/dist/sse.d.ts +1 -1
  176. package/dist/stream.d.ts +2 -0
  177. package/dist/tenant-workspaces.d.ts +47 -0
  178. package/dist/tenant-workspaces.js +8 -0
  179. package/dist/tenant-workspaces.js.map +1 -0
  180. package/dist/tool-auth.d.ts +87 -0
  181. package/dist/tool-auth.js +23 -0
  182. package/dist/tool-auth.js.map +1 -0
  183. package/dist/tool-display-metadata.d.ts +3 -0
  184. package/dist/tools-37DCTCNZ.js +12 -0
  185. package/dist/tools-37DCTCNZ.js.map +1 -0
  186. package/dist/tools.d.ts +81 -0
  187. package/dist/transcription.d.ts +1 -1
  188. package/dist/types.d.ts +2807 -583
  189. package/dist/usage-allowances.d.ts +36 -0
  190. package/dist/usage-allowances.js +80 -0
  191. package/dist/usage-allowances.js.map +1 -0
  192. package/dist/vault-types.d.ts +324 -0
  193. package/dist/vaults-api.d.ts +65 -0
  194. package/dist/workspace-artifacts.d.ts +47 -5
  195. package/dist/workspace-instruction-policies.d.ts +2 -2
  196. package/dist/workspace-integrations.d.ts +74 -0
  197. package/dist/workspace-integrations.js +67 -0
  198. package/dist/workspace-integrations.js.map +1 -0
  199. package/dist/workspace-state.d.ts +8 -71
  200. package/package.json +103 -5
  201. package/src/adapters/express.ts +136 -0
  202. package/src/adapters/hono.ts +18 -0
  203. package/src/adapters/next.ts +42 -0
  204. package/src/allowance-refusal.ts +5 -0
  205. package/src/app-links.ts +117 -0
  206. package/src/artifact-catalog.ts +51 -0
  207. package/src/artifact-client.ts +40 -49
  208. package/src/artifacts.ts +1 -0
  209. package/src/automations-client.ts +8 -2
  210. package/src/azure-live-transport.ts +286 -0
  211. package/src/browser.ts +37 -0
  212. package/src/chat/fold.ts +431 -0
  213. package/src/chat/handler.ts +240 -0
  214. package/src/chat/http.ts +257 -0
  215. package/src/chat/ids.ts +85 -0
  216. package/src/chat/index.ts +88 -0
  217. package/src/chat/openai.ts +439 -0
  218. package/src/chat/opengeni.ts +737 -0
  219. package/src/chat/types.ts +219 -0
  220. package/src/chat/vercel.ts +204 -0
  221. package/src/chats.ts +16 -0
  222. package/src/client.ts +5697 -1833
  223. package/src/codex-realtime-controller.ts +163 -8
  224. package/src/codex-realtime-v3-wire.ts +4 -3
  225. package/src/codex-realtime-v3.ts +12 -3
  226. package/src/codex-realtime.ts +11 -3
  227. package/src/company-brain.ts +0 -40
  228. package/src/core.ts +20 -0
  229. package/src/deprecation.ts +149 -0
  230. package/src/document-authority-client.ts +104 -1
  231. package/src/editable-artifacts/controller.ts +36 -2
  232. package/src/editable-artifacts/index.ts +1 -0
  233. package/src/editable-artifacts/types.ts +29 -16
  234. package/src/embedding-client.ts +519 -0
  235. package/src/errors.ts +303 -4
  236. package/src/external-vault-receiver.ts +914 -0
  237. package/src/feedback.ts +20 -0
  238. package/src/gateway-realtime-transport.ts +3 -3
  239. package/src/github-repositories.ts +60 -0
  240. package/src/index.ts +603 -65
  241. package/src/insights-usage.ts +64 -0
  242. package/src/interaction.ts +315 -93
  243. package/src/knowledge.ts +72 -0
  244. package/src/known-tools.ts +279 -0
  245. package/src/message-links.ts +178 -0
  246. package/src/model-context.ts +113 -0
  247. package/src/model-display.ts +11 -0
  248. package/src/model-picker-order.ts +6 -0
  249. package/src/organization-integration-policy.ts +54 -0
  250. package/src/pr-review-client.ts +1 -1
  251. package/src/pr-review.ts +1 -1
  252. package/src/preference-registry.ts +2 -0
  253. package/src/prepared-mcp-setup.ts +123 -0
  254. package/src/proxy.ts +23 -12
  255. package/src/realtime.ts +15 -6
  256. package/src/session-history-import.ts +84 -0
  257. package/src/session-list-entries.ts +1 -0
  258. package/src/session-message-search.ts +47 -0
  259. package/src/session-proxy-client.ts +68 -0
  260. package/src/session-proxy.ts +2098 -0
  261. package/src/session-titles.ts +8 -82
  262. package/src/session-usage-limits.ts +71 -0
  263. package/src/shared-catalog-loader.ts +169 -0
  264. package/src/site-ai.ts +284 -0
  265. package/src/site-bridge-host.ts +422 -0
  266. package/src/site-browser-entry.ts +6 -0
  267. package/src/site-browser-runtime.gen.ts +2 -0
  268. package/src/site-data.ts +372 -0
  269. package/src/site-document.test.ts +64 -0
  270. package/src/site-document.ts +18 -0
  271. package/src/site-http.ts +171 -0
  272. package/src/site-sql.ts +153 -0
  273. package/src/site-tool-bridge.ts +401 -0
  274. package/src/site.ts +878 -0
  275. package/src/skills.ts +69 -0
  276. package/src/sse.ts +9 -3
  277. package/src/stream.ts +33 -10
  278. package/src/tenant-workspaces.ts +148 -0
  279. package/src/tool-auth.ts +301 -0
  280. package/src/tool-display-metadata.ts +27 -0
  281. package/src/tools.ts +452 -0
  282. package/src/transcription.ts +3 -0
  283. package/src/types.ts +3170 -582
  284. package/src/usage-allowances.ts +189 -0
  285. package/src/vault-types.ts +379 -0
  286. package/src/vaults-api.ts +339 -0
  287. package/src/workspace-artifacts.ts +55 -6
  288. package/src/workspace-instruction-policies.ts +2 -1
  289. package/src/workspace-integrations.ts +402 -0
  290. package/src/workspace-state.ts +8 -82
  291. package/dist/chunk-C2H7HBNP.js.map +0 -1
  292. package/dist/chunk-C4DJPZRU.js +0 -119
  293. package/dist/chunk-C4DJPZRU.js.map +0 -1
  294. package/dist/chunk-JUS2UYRP.js.map +0 -1
  295. package/dist/chunk-KKRO2VCP.js.map +0 -1
  296. package/dist/chunk-QT3KFVDP.js.map +0 -1
  297. package/dist/chunk-TRNI7KEO.js.map +0 -1
  298. package/dist/chunk-VYCTL62C.js.map +0 -1
  299. package/dist/chunk-YXQX7RQT.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/transcription.ts"],"sourcesContent":["/**\n * Framework- and transport-agnostic speech-to-text capability contract.\n *\n * Audio transport, microphone access, credentials, and provider SDKs belong to\n * host-supplied adapters. This module deliberately contains no browser globals\n * and no provider implementation.\n */\n\nimport type { WorkspaceVoiceInputSettings } from \"./types\";\n\nexport type TranscriptionCredentialMode = \"managed\" | \"byok\";\n\nexport type WorkspaceTranscriptionTarget = {\n provider: string;\n model: string | null;\n credentialMode: TranscriptionCredentialMode;\n /** Workspace-scoped connection reference. This is never a secret. */\n credentialConnectionId: string | null;\n region: string | null;\n};\n\nexport type WorkspaceTranscriptionPolicy = {\n enabled: boolean;\n /** Exact admin-accepted policy identity; required whenever enabled. */\n acceptanceId: string | null;\n primary: WorkspaceTranscriptionTarget | null;\n /** Explicit language preference. Required when automatic detection is not accepted. */\n language: string | null;\n /** Whether the accepted adapter may automatically detect the spoken language. */\n autoDetectLanguage: boolean;\n /** Whether the accepted adapter may identify distinct speakers. */\n diarization: {\n enabled: boolean;\n maxSpeakers: number | null;\n };\n retention: {\n mode: \"none\" | \"provider-policy\";\n maxDays: number | null;\n };\n privacy: {\n allowProviderLogging: boolean;\n allowProviderTraining: boolean;\n };\n fallback: {\n mode: \"disabled\" | \"explicit\";\n targets: WorkspaceTranscriptionTarget[];\n };\n cost: {\n currency: \"USD\";\n maxPerHour: number | null;\n maxPerMonth: number | null;\n };\n};\n\nexport const DEFAULT_WORKSPACE_TRANSCRIPTION_POLICY: WorkspaceTranscriptionPolicy = {\n enabled: false,\n acceptanceId: null,\n primary: null,\n language: null,\n autoDetectLanguage: false,\n diarization: { enabled: false, maxSpeakers: null },\n retention: { mode: \"none\", maxDays: null },\n privacy: { allowProviderLogging: false, allowProviderTraining: false },\n fallback: { mode: \"disabled\", targets: [] },\n cost: { currency: \"USD\", maxPerHour: null, maxPerMonth: null },\n};\n\nexport type TranscriptionAdapterDescriptor = {\n provider: string;\n model: string | null;\n credentialMode: TranscriptionCredentialMode;\n region: string | null;\n};\n\nexport type TranscriptionTargetSelection =\n | { kind: \"primary\" }\n | { kind: \"fallback\"; index: number };\n\nexport type TranscriptionPolicyBlockReason =\n | \"disabled\"\n | \"unaccepted\"\n | \"target_missing\"\n | \"fallback_disabled\"\n | \"fallback_unaccepted\"\n | \"provider_mismatch\"\n | \"model_mismatch\"\n | \"credential_mode_mismatch\"\n | \"region_mismatch\";\n\nexport type TranscriptionAuthorization =\n | {\n authorized: true;\n acceptanceId: string;\n target: WorkspaceTranscriptionTarget;\n selection: TranscriptionTargetSelection;\n }\n | { authorized: false; reason: TranscriptionPolicyBlockReason };\n\nexport type TranscriptionLifecycleStatus =\n | \"idle\"\n | \"requesting-permission\"\n | \"listening\"\n | \"reconnecting\"\n | \"cancelling\"\n | \"closed\"\n | \"error\";\n\nexport type TranscriptionErrorCode =\n | \"permission_denied\"\n | \"not_supported\"\n | \"network\"\n | \"provider\"\n | \"policy_blocked\"\n | \"timeout\"\n | \"cancelled\"\n | \"unavailable\"\n | \"too_large\"\n | \"invalid_audio\"\n | \"unknown\";\n\n/** Native browser voice input defaults to the configured deployment capability. */\nexport function resolveWorkspaceVoiceInputEnabled(settings: unknown): boolean | null {\n if (!isRecord(settings)) return null;\n const voiceInput = settings.voiceInput;\n if (isRecord(voiceInput) && typeof voiceInput.enabled === \"boolean\") {\n return (voiceInput as WorkspaceVoiceInputSettings).enabled;\n }\n const legacy = settings.transcription;\n return isRecord(legacy) && typeof legacy.enabled === \"boolean\" ? legacy.enabled : null;\n}\n\nexport type TranscriptionTimeSpan = {\n startMilliseconds: number;\n endMilliseconds: number;\n};\n\nexport type TranscriptionSpeaker = {\n /** Provider-neutral identity stable within the local transcription session. */\n id: string;\n label?: string | undefined;\n};\n\nexport type TranscriptionWord = {\n text: string;\n span: TranscriptionTimeSpan;\n confidence?: number | undefined;\n speaker?: TranscriptionSpeaker | undefined;\n};\n\n/** Optional result detail; adapters omit fields their provider cannot supply. */\nexport type TranscriptionResultMetadata = {\n detectedLanguage?: string | undefined;\n span?: TranscriptionTimeSpan | undefined;\n confidence?: number | undefined;\n speaker?: TranscriptionSpeaker | undefined;\n words?: TranscriptionWord[] | undefined;\n};\n\nexport type TranscriptionDiagnostic = {\n operation: \"start\" | \"session\" | \"cancel\" | \"close\";\n code: TranscriptionErrorCode;\n /** Exact diagnostic detail forwarded by React without content rewriting. */\n detail: string;\n};\n\ntype TranscriptionEventBase = {\n /** Stable across reconnects and explicitly accepted fallback attempts. */\n localSessionId: string;\n /** Adapter-monotonic across the entire local session, including replay. */\n sequence: number;\n occurredAt: string;\n};\n\nexport type TranscriptionEvent =\n | (TranscriptionEventBase & { type: \"permission.requested\" })\n | (TranscriptionEventBase & {\n type: \"session.opened\";\n providerSessionId: string;\n })\n | (TranscriptionEventBase & {\n type: \"transcript.partial\";\n segmentId: string;\n text: string;\n metadata?: TranscriptionResultMetadata | undefined;\n })\n | (TranscriptionEventBase & {\n type: \"transcript.final\";\n segmentId: string;\n text: string;\n /** Stable provider/coordinator acceptance identity used for dedupe. */\n providerAcceptanceId: string;\n metadata?: TranscriptionResultMetadata | undefined;\n })\n | (TranscriptionEventBase & {\n type: \"usage\";\n audioMilliseconds: number;\n costUsd: number | null;\n })\n | (TranscriptionEventBase & {\n type: \"session.reconnecting\";\n attempt: number;\n reason: string;\n })\n | (TranscriptionEventBase & {\n type: \"session.error\";\n code: TranscriptionErrorCode;\n recoverable: boolean;\n })\n | (TranscriptionEventBase & {\n type: \"session.closed\";\n reason: \"completed\" | \"cancelled\" | \"error\" | \"replaced\";\n });\n\nexport type TranscriptionSessionRequest = {\n localSessionId: string;\n policyAcceptanceId: string;\n selection: TranscriptionTargetSelection;\n target: WorkspaceTranscriptionTarget;\n language: string | null;\n autoDetectLanguage: boolean;\n diarization: WorkspaceTranscriptionPolicy[\"diarization\"];\n retention: WorkspaceTranscriptionPolicy[\"retention\"];\n privacy: WorkspaceTranscriptionPolicy[\"privacy\"];\n cost: WorkspaceTranscriptionPolicy[\"cost\"];\n /** A replacement/reconnect adapter must emit events above this floor. */\n sequenceFloor: number;\n};\n\nexport type TranscriptionEventListener = (event: TranscriptionEvent) => void;\n\nexport type TranscriptionAdapterStartContext = {\n /** Aborted on local cancellation, policy replacement, timeout, or unmount. */\n signal: AbortSignal;\n /** Non-UI observability seam; callers receive the exact provider detail. */\n reportDiagnostic: (diagnostic: TranscriptionDiagnostic) => void;\n};\n\nexport type TranscriptionSession = {\n readonly localSessionId: string;\n cancel(reason?: string): Promise<void>;\n close(): Promise<void>;\n};\n\nexport type TranscriptionAdapter = {\n readonly descriptor: TranscriptionAdapterDescriptor;\n start(\n request: TranscriptionSessionRequest,\n listener: TranscriptionEventListener,\n context: TranscriptionAdapterStartContext,\n ): Promise<TranscriptionSession>;\n};\n\n/** Invalid or absent settings always resolve to the fail-closed default. */\nexport function resolveWorkspaceTranscriptionPolicy(\n settings: unknown,\n): WorkspaceTranscriptionPolicy {\n if (!isRecord(settings)) return cloneDefaultPolicy();\n const candidate = settings.transcription;\n if (!isWorkspaceTranscriptionPolicy(candidate)) return cloneDefaultPolicy();\n return {\n ...candidate,\n primary: candidate.primary ? normalizeTarget(candidate.primary) : null,\n language: candidate.language?.trim() ?? null,\n diarization: { ...candidate.diarization },\n retention: { ...candidate.retention },\n privacy: { ...candidate.privacy },\n fallback: {\n mode: candidate.fallback.mode,\n targets: candidate.fallback.targets.map(normalizeTarget),\n },\n cost: { ...candidate.cost },\n };\n}\n\n/**\n * Speech authorization is intentionally independent from turn model policy.\n * Every selected adapter must match one exact admin-accepted target.\n */\nexport function authorizeTranscriptionAdapter(\n policy: WorkspaceTranscriptionPolicy,\n descriptor: TranscriptionAdapterDescriptor,\n selection: TranscriptionTargetSelection = { kind: \"primary\" },\n): TranscriptionAuthorization {\n if (!isWorkspaceTranscriptionPolicy(policy)) {\n return { authorized: false, reason: \"unaccepted\" };\n }\n if (!policy.enabled) return { authorized: false, reason: \"disabled\" };\n if (!policy.acceptanceId) return { authorized: false, reason: \"unaccepted\" };\n let target: WorkspaceTranscriptionTarget | null | undefined;\n if (selection.kind === \"primary\") {\n target = policy.primary;\n } else {\n if (policy.fallback.mode !== \"explicit\") {\n return { authorized: false, reason: \"fallback_disabled\" };\n }\n target = policy.fallback.targets[selection.index];\n if (!target) return { authorized: false, reason: \"fallback_unaccepted\" };\n }\n if (!target) return { authorized: false, reason: \"target_missing\" };\n const acceptedTarget = normalizeTarget(target);\n if (acceptedTarget.provider !== descriptor.provider) {\n return { authorized: false, reason: \"provider_mismatch\" };\n }\n if (acceptedTarget.model !== descriptor.model) {\n return { authorized: false, reason: \"model_mismatch\" };\n }\n if (acceptedTarget.credentialMode !== descriptor.credentialMode) {\n return { authorized: false, reason: \"credential_mode_mismatch\" };\n }\n if (acceptedTarget.region !== descriptor.region) {\n return { authorized: false, reason: \"region_mismatch\" };\n }\n return {\n authorized: true,\n acceptanceId: policy.acceptanceId,\n target: acceptedTarget,\n selection,\n };\n}\n\nexport function createTranscriptionSessionRequest(input: {\n policy: WorkspaceTranscriptionPolicy;\n adapter: TranscriptionAdapter;\n localSessionId: string;\n selection?: TranscriptionTargetSelection | undefined;\n sequenceFloor?: number | undefined;\n}): TranscriptionSessionRequest | null {\n const sequenceFloor = input.sequenceFloor ?? 0;\n if (!Number.isSafeInteger(sequenceFloor) || sequenceFloor < 0) return null;\n const authorization = authorizeTranscriptionAdapter(\n input.policy,\n input.adapter.descriptor,\n input.selection,\n );\n if (!authorization.authorized) return null;\n return {\n localSessionId: input.localSessionId,\n policyAcceptanceId: authorization.acceptanceId,\n selection: authorization.selection,\n target: { ...authorization.target },\n language: input.policy.language?.trim() ?? null,\n autoDetectLanguage: input.policy.autoDetectLanguage,\n diarization: { ...input.policy.diarization },\n retention: { ...input.policy.retention },\n privacy: { ...input.policy.privacy },\n cost: { ...input.policy.cost },\n sequenceFloor,\n };\n}\n\nfunction cloneDefaultPolicy(): WorkspaceTranscriptionPolicy {\n return {\n ...DEFAULT_WORKSPACE_TRANSCRIPTION_POLICY,\n diarization: { ...DEFAULT_WORKSPACE_TRANSCRIPTION_POLICY.diarization },\n retention: { ...DEFAULT_WORKSPACE_TRANSCRIPTION_POLICY.retention },\n privacy: { ...DEFAULT_WORKSPACE_TRANSCRIPTION_POLICY.privacy },\n fallback: { mode: \"disabled\", targets: [] },\n cost: { ...DEFAULT_WORKSPACE_TRANSCRIPTION_POLICY.cost },\n };\n}\n\nfunction isWorkspaceTranscriptionPolicy(value: unknown): value is WorkspaceTranscriptionPolicy {\n if (!isRecord(value) || typeof value.enabled !== \"boolean\") return false;\n if (\n !hasOnlyKeys(value, [\n \"enabled\",\n \"acceptanceId\",\n \"primary\",\n \"language\",\n \"autoDetectLanguage\",\n \"diarization\",\n \"retention\",\n \"privacy\",\n \"fallback\",\n \"cost\",\n ])\n ) {\n return false;\n }\n if (!(value.acceptanceId === null || isUuid(value.acceptanceId))) return false;\n if (!(value.primary === null || isTarget(value.primary))) return false;\n if (!(value.language === null || isBoundedString(value.language, 64))) return false;\n if (typeof value.autoDetectLanguage !== \"boolean\") return false;\n if (\n !isRecord(value.diarization) ||\n !hasOnlyKeys(value.diarization, [\"enabled\", \"maxSpeakers\"]) ||\n typeof value.diarization.enabled !== \"boolean\" ||\n !(\n value.diarization.maxSpeakers === null ||\n (isBoundedInteger(value.diarization.maxSpeakers, 100) && value.diarization.maxSpeakers >= 2)\n )\n ) {\n return false;\n }\n if (!value.diarization.enabled && value.diarization.maxSpeakers !== null) return false;\n if (!isRecord(value.retention) || !hasOnlyKeys(value.retention, [\"mode\", \"maxDays\"])) {\n return false;\n }\n if (value.retention.mode !== \"none\" && value.retention.mode !== \"provider-policy\") return false;\n if (!(value.retention.maxDays === null || isBoundedInteger(value.retention.maxDays, 3650))) {\n return false;\n }\n if (\n !isRecord(value.privacy) ||\n !hasOnlyKeys(value.privacy, [\"allowProviderLogging\", \"allowProviderTraining\"]) ||\n typeof value.privacy.allowProviderLogging !== \"boolean\" ||\n typeof value.privacy.allowProviderTraining !== \"boolean\"\n ) {\n return false;\n }\n if (!isRecord(value.fallback) || !hasOnlyKeys(value.fallback, [\"mode\", \"targets\"])) {\n return false;\n }\n if (value.fallback.mode !== \"disabled\" && value.fallback.mode !== \"explicit\") return false;\n if (\n !Array.isArray(value.fallback.targets) ||\n value.fallback.targets.length > 8 ||\n !value.fallback.targets.every(isTarget)\n ) {\n return false;\n }\n if (value.fallback.mode === \"disabled\" && value.fallback.targets.length !== 0) return false;\n if (value.fallback.mode === \"explicit\" && value.fallback.targets.length === 0) return false;\n if (\n !isRecord(value.cost) ||\n !hasOnlyKeys(value.cost, [\"currency\", \"maxPerHour\", \"maxPerMonth\"]) ||\n value.cost.currency !== \"USD\"\n ) {\n return false;\n }\n if (!isNullableBoundedNumber(value.cost.maxPerHour, 10_000)) return false;\n if (!isNullableBoundedNumber(value.cost.maxPerMonth, 1_000_000)) return false;\n if (value.enabled && (!value.acceptanceId || !value.primary)) return false;\n if (value.enabled && !value.autoDetectLanguage && value.language === null) return false;\n if (value.autoDetectLanguage && value.language !== null) return false;\n const targets = [value.primary, ...value.fallback.targets].filter(\n (target): target is WorkspaceTranscriptionTarget => target !== null,\n );\n if (new Set(targets.map(targetKey)).size !== targets.length) return false;\n return true;\n}\n\nfunction targetKey(target: WorkspaceTranscriptionTarget): string {\n return [\n target.provider.trim(),\n target.model?.trim() ?? \"\",\n target.credentialMode,\n target.credentialConnectionId ?? \"\",\n target.region?.trim() ?? \"\",\n ].join(\"\\u0000\");\n}\n\nfunction isTarget(value: unknown): value is WorkspaceTranscriptionTarget {\n if (!isRecord(value)) return false;\n if (\n !hasOnlyKeys(value, [\"provider\", \"model\", \"credentialMode\", \"credentialConnectionId\", \"region\"])\n ) {\n return false;\n }\n if (!isBoundedString(value.provider, 128)) return false;\n if (!(value.model === null || isBoundedString(value.model, 256))) return false;\n if (value.credentialMode !== \"managed\" && value.credentialMode !== \"byok\") return false;\n if (value.provider.trim() === \"azure-speech\" && value.credentialMode !== \"byok\") return false;\n if (!(value.credentialConnectionId === null || isUuid(value.credentialConnectionId))) {\n return false;\n }\n if (!(value.region === null || isBoundedString(value.region, 128))) return false;\n if (value.credentialMode === \"byok\" && value.credentialConnectionId === null) return false;\n if (value.credentialMode === \"managed\" && value.credentialConnectionId !== null) return false;\n return true;\n}\n\nfunction normalizeTarget(target: WorkspaceTranscriptionTarget): WorkspaceTranscriptionTarget {\n return {\n provider: target.provider.trim(),\n model: target.model?.trim() ?? null,\n credentialMode: target.credentialMode,\n credentialConnectionId: target.credentialConnectionId,\n region: target.region?.trim() ?? null,\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n\nfunction hasOnlyKeys(value: Record<string, unknown>, keys: readonly string[]): boolean {\n const accepted = new Set(keys);\n return Object.keys(value).every((key) => accepted.has(key));\n}\n\nfunction isBoundedString(value: unknown, maximum: number): value is string {\n return typeof value === \"string\" && value.trim().length > 0 && value.length <= maximum;\n}\n\nfunction isUuid(value: unknown): value is string {\n return (\n typeof value === \"string\" &&\n /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value)\n );\n}\n\nfunction isBoundedInteger(value: unknown, maximum: number): value is number {\n return Number.isInteger(value) && (value as number) >= 0 && (value as number) <= maximum;\n}\n\nfunction isNullableBoundedNumber(value: unknown, maximum: number): boolean {\n return (\n value === null ||\n (typeof value === \"number\" && Number.isFinite(value) && value >= 0 && value <= maximum)\n );\n}\n"],"mappings":";AAsDO,IAAM,yCAAuE;AAAA,EAClF,SAAS;AAAA,EACT,cAAc;AAAA,EACd,SAAS;AAAA,EACT,UAAU;AAAA,EACV,oBAAoB;AAAA,EACpB,aAAa,EAAE,SAAS,OAAO,aAAa,KAAK;AAAA,EACjD,WAAW,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,EACzC,SAAS,EAAE,sBAAsB,OAAO,uBAAuB,MAAM;AAAA,EACrE,UAAU,EAAE,MAAM,YAAY,SAAS,CAAC,EAAE;AAAA,EAC1C,MAAM,EAAE,UAAU,OAAO,YAAY,MAAM,aAAa,KAAK;AAC/D;AAwDO,SAAS,kCAAkC,UAAmC;AACnF,MAAI,CAAC,SAAS,QAAQ,EAAG,QAAO;AAChC,QAAM,aAAa,SAAS;AAC5B,MAAI,SAAS,UAAU,KAAK,OAAO,WAAW,YAAY,WAAW;AACnE,WAAQ,WAA2C;AAAA,EACrD;AACA,QAAM,SAAS,SAAS;AACxB,SAAO,SAAS,MAAM,KAAK,OAAO,OAAO,YAAY,YAAY,OAAO,UAAU;AACpF;AA4HO,SAAS,oCACd,UAC8B;AAC9B,MAAI,CAAC,SAAS,QAAQ,EAAG,QAAO,mBAAmB;AACnD,QAAM,YAAY,SAAS;AAC3B,MAAI,CAAC,+BAA+B,SAAS,EAAG,QAAO,mBAAmB;AAC1E,SAAO;AAAA,IACL,GAAG;AAAA,IACH,SAAS,UAAU,UAAU,gBAAgB,UAAU,OAAO,IAAI;AAAA,IAClE,UAAU,UAAU,UAAU,KAAK,KAAK;AAAA,IACxC,aAAa,EAAE,GAAG,UAAU,YAAY;AAAA,IACxC,WAAW,EAAE,GAAG,UAAU,UAAU;AAAA,IACpC,SAAS,EAAE,GAAG,UAAU,QAAQ;AAAA,IAChC,UAAU;AAAA,MACR,MAAM,UAAU,SAAS;AAAA,MACzB,SAAS,UAAU,SAAS,QAAQ,IAAI,eAAe;AAAA,IACzD;AAAA,IACA,MAAM,EAAE,GAAG,UAAU,KAAK;AAAA,EAC5B;AACF;AAMO,SAAS,8BACd,QACA,YACA,YAA0C,EAAE,MAAM,UAAU,GAChC;AAC5B,MAAI,CAAC,+BAA+B,MAAM,GAAG;AAC3C,WAAO,EAAE,YAAY,OAAO,QAAQ,aAAa;AAAA,EACnD;AACA,MAAI,CAAC,OAAO,QAAS,QAAO,EAAE,YAAY,OAAO,QAAQ,WAAW;AACpE,MAAI,CAAC,OAAO,aAAc,QAAO,EAAE,YAAY,OAAO,QAAQ,aAAa;AAC3E,MAAI;AACJ,MAAI,UAAU,SAAS,WAAW;AAChC,aAAS,OAAO;AAAA,EAClB,OAAO;AACL,QAAI,OAAO,SAAS,SAAS,YAAY;AACvC,aAAO,EAAE,YAAY,OAAO,QAAQ,oBAAoB;AAAA,IAC1D;AACA,aAAS,OAAO,SAAS,QAAQ,UAAU,KAAK;AAChD,QAAI,CAAC,OAAQ,QAAO,EAAE,YAAY,OAAO,QAAQ,sBAAsB;AAAA,EACzE;AACA,MAAI,CAAC,OAAQ,QAAO,EAAE,YAAY,OAAO,QAAQ,iBAAiB;AAClE,QAAM,iBAAiB,gBAAgB,MAAM;AAC7C,MAAI,eAAe,aAAa,WAAW,UAAU;AACnD,WAAO,EAAE,YAAY,OAAO,QAAQ,oBAAoB;AAAA,EAC1D;AACA,MAAI,eAAe,UAAU,WAAW,OAAO;AAC7C,WAAO,EAAE,YAAY,OAAO,QAAQ,iBAAiB;AAAA,EACvD;AACA,MAAI,eAAe,mBAAmB,WAAW,gBAAgB;AAC/D,WAAO,EAAE,YAAY,OAAO,QAAQ,2BAA2B;AAAA,EACjE;AACA,MAAI,eAAe,WAAW,WAAW,QAAQ;AAC/C,WAAO,EAAE,YAAY,OAAO,QAAQ,kBAAkB;AAAA,EACxD;AACA,SAAO;AAAA,IACL,YAAY;AAAA,IACZ,cAAc,OAAO;AAAA,IACrB,QAAQ;AAAA,IACR;AAAA,EACF;AACF;AAEO,SAAS,kCAAkC,OAMX;AACrC,QAAM,gBAAgB,MAAM,iBAAiB;AAC7C,MAAI,CAAC,OAAO,cAAc,aAAa,KAAK,gBAAgB,EAAG,QAAO;AACtE,QAAM,gBAAgB;AAAA,IACpB,MAAM;AAAA,IACN,MAAM,QAAQ;AAAA,IACd,MAAM;AAAA,EACR;AACA,MAAI,CAAC,cAAc,WAAY,QAAO;AACtC,SAAO;AAAA,IACL,gBAAgB,MAAM;AAAA,IACtB,oBAAoB,cAAc;AAAA,IAClC,WAAW,cAAc;AAAA,IACzB,QAAQ,EAAE,GAAG,cAAc,OAAO;AAAA,IAClC,UAAU,MAAM,OAAO,UAAU,KAAK,KAAK;AAAA,IAC3C,oBAAoB,MAAM,OAAO;AAAA,IACjC,aAAa,EAAE,GAAG,MAAM,OAAO,YAAY;AAAA,IAC3C,WAAW,EAAE,GAAG,MAAM,OAAO,UAAU;AAAA,IACvC,SAAS,EAAE,GAAG,MAAM,OAAO,QAAQ;AAAA,IACnC,MAAM,EAAE,GAAG,MAAM,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AACF;AAEA,SAAS,qBAAmD;AAC1D,SAAO;AAAA,IACL,GAAG;AAAA,IACH,aAAa,EAAE,GAAG,uCAAuC,YAAY;AAAA,IACrE,WAAW,EAAE,GAAG,uCAAuC,UAAU;AAAA,IACjE,SAAS,EAAE,GAAG,uCAAuC,QAAQ;AAAA,IAC7D,UAAU,EAAE,MAAM,YAAY,SAAS,CAAC,EAAE;AAAA,IAC1C,MAAM,EAAE,GAAG,uCAAuC,KAAK;AAAA,EACzD;AACF;AAEA,SAAS,+BAA+B,OAAuD;AAC7F,MAAI,CAAC,SAAS,KAAK,KAAK,OAAO,MAAM,YAAY,UAAW,QAAO;AACnE,MACE,CAAC,YAAY,OAAO;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,GACD;AACA,WAAO;AAAA,EACT;AACA,MAAI,EAAE,MAAM,iBAAiB,QAAQ,OAAO,MAAM,YAAY,GAAI,QAAO;AACzE,MAAI,EAAE,MAAM,YAAY,QAAQ,SAAS,MAAM,OAAO,GAAI,QAAO;AACjE,MAAI,EAAE,MAAM,aAAa,QAAQ,gBAAgB,MAAM,UAAU,EAAE,GAAI,QAAO;AAC9E,MAAI,OAAO,MAAM,uBAAuB,UAAW,QAAO;AAC1D,MACE,CAAC,SAAS,MAAM,WAAW,KAC3B,CAAC,YAAY,MAAM,aAAa,CAAC,WAAW,aAAa,CAAC,KAC1D,OAAO,MAAM,YAAY,YAAY,aACrC,EACE,MAAM,YAAY,gBAAgB,QACjC,iBAAiB,MAAM,YAAY,aAAa,GAAG,KAAK,MAAM,YAAY,eAAe,IAE5F;AACA,WAAO;AAAA,EACT;AACA,MAAI,CAAC,MAAM,YAAY,WAAW,MAAM,YAAY,gBAAgB,KAAM,QAAO;AACjF,MAAI,CAAC,SAAS,MAAM,SAAS,KAAK,CAAC,YAAY,MAAM,WAAW,CAAC,QAAQ,SAAS,CAAC,GAAG;AACpF,WAAO;AAAA,EACT;AACA,MAAI,MAAM,UAAU,SAAS,UAAU,MAAM,UAAU,SAAS,kBAAmB,QAAO;AAC1F,MAAI,EAAE,MAAM,UAAU,YAAY,QAAQ,iBAAiB,MAAM,UAAU,SAAS,IAAI,IAAI;AAC1F,WAAO;AAAA,EACT;AACA,MACE,CAAC,SAAS,MAAM,OAAO,KACvB,CAAC,YAAY,MAAM,SAAS,CAAC,wBAAwB,uBAAuB,CAAC,KAC7E,OAAO,MAAM,QAAQ,yBAAyB,aAC9C,OAAO,MAAM,QAAQ,0BAA0B,WAC/C;AACA,WAAO;AAAA,EACT;AACA,MAAI,CAAC,SAAS,MAAM,QAAQ,KAAK,CAAC,YAAY,MAAM,UAAU,CAAC,QAAQ,SAAS,CAAC,GAAG;AAClF,WAAO;AAAA,EACT;AACA,MAAI,MAAM,SAAS,SAAS,cAAc,MAAM,SAAS,SAAS,WAAY,QAAO;AACrF,MACE,CAAC,MAAM,QAAQ,MAAM,SAAS,OAAO,KACrC,MAAM,SAAS,QAAQ,SAAS,KAChC,CAAC,MAAM,SAAS,QAAQ,MAAM,QAAQ,GACtC;AACA,WAAO;AAAA,EACT;AACA,MAAI,MAAM,SAAS,SAAS,cAAc,MAAM,SAAS,QAAQ,WAAW,EAAG,QAAO;AACtF,MAAI,MAAM,SAAS,SAAS,cAAc,MAAM,SAAS,QAAQ,WAAW,EAAG,QAAO;AACtF,MACE,CAAC,SAAS,MAAM,IAAI,KACpB,CAAC,YAAY,MAAM,MAAM,CAAC,YAAY,cAAc,aAAa,CAAC,KAClE,MAAM,KAAK,aAAa,OACxB;AACA,WAAO;AAAA,EACT;AACA,MAAI,CAAC,wBAAwB,MAAM,KAAK,YAAY,GAAM,EAAG,QAAO;AACpE,MAAI,CAAC,wBAAwB,MAAM,KAAK,aAAa,GAAS,EAAG,QAAO;AACxE,MAAI,MAAM,YAAY,CAAC,MAAM,gBAAgB,CAAC,MAAM,SAAU,QAAO;AACrE,MAAI,MAAM,WAAW,CAAC,MAAM,sBAAsB,MAAM,aAAa,KAAM,QAAO;AAClF,MAAI,MAAM,sBAAsB,MAAM,aAAa,KAAM,QAAO;AAChE,QAAM,UAAU,CAAC,MAAM,SAAS,GAAG,MAAM,SAAS,OAAO,EAAE;AAAA,IACzD,CAAC,WAAmD,WAAW;AAAA,EACjE;AACA,MAAI,IAAI,IAAI,QAAQ,IAAI,SAAS,CAAC,EAAE,SAAS,QAAQ,OAAQ,QAAO;AACpE,SAAO;AACT;AAEA,SAAS,UAAU,QAA8C;AAC/D,SAAO;AAAA,IACL,OAAO,SAAS,KAAK;AAAA,IACrB,OAAO,OAAO,KAAK,KAAK;AAAA,IACxB,OAAO;AAAA,IACP,OAAO,0BAA0B;AAAA,IACjC,OAAO,QAAQ,KAAK,KAAK;AAAA,EAC3B,EAAE,KAAK,IAAQ;AACjB;AAEA,SAAS,SAAS,OAAuD;AACvE,MAAI,CAAC,SAAS,KAAK,EAAG,QAAO;AAC7B,MACE,CAAC,YAAY,OAAO,CAAC,YAAY,SAAS,kBAAkB,0BAA0B,QAAQ,CAAC,GAC/F;AACA,WAAO;AAAA,EACT;AACA,MAAI,CAAC,gBAAgB,MAAM,UAAU,GAAG,EAAG,QAAO;AAClD,MAAI,EAAE,MAAM,UAAU,QAAQ,gBAAgB,MAAM,OAAO,GAAG,GAAI,QAAO;AACzE,MAAI,MAAM,mBAAmB,aAAa,MAAM,mBAAmB,OAAQ,QAAO;AAClF,MAAI,MAAM,SAAS,KAAK,MAAM,kBAAkB,MAAM,mBAAmB,OAAQ,QAAO;AACxF,MAAI,EAAE,MAAM,2BAA2B,QAAQ,OAAO,MAAM,sBAAsB,IAAI;AACpF,WAAO;AAAA,EACT;AACA,MAAI,EAAE,MAAM,WAAW,QAAQ,gBAAgB,MAAM,QAAQ,GAAG,GAAI,QAAO;AAC3E,MAAI,MAAM,mBAAmB,UAAU,MAAM,2BAA2B,KAAM,QAAO;AACrF,MAAI,MAAM,mBAAmB,aAAa,MAAM,2BAA2B,KAAM,QAAO;AACxF,SAAO;AACT;AAEA,SAAS,gBAAgB,QAAoE;AAC3F,SAAO;AAAA,IACL,UAAU,OAAO,SAAS,KAAK;AAAA,IAC/B,OAAO,OAAO,OAAO,KAAK,KAAK;AAAA,IAC/B,gBAAgB,OAAO;AAAA,IACvB,wBAAwB,OAAO;AAAA,IAC/B,QAAQ,OAAO,QAAQ,KAAK,KAAK;AAAA,EACnC;AACF;AAEA,SAAS,SAAS,OAAkD;AAClE,SAAO,OAAO,UAAU,YAAY,UAAU;AAChD;AAEA,SAAS,YAAY,OAAgC,MAAkC;AACrF,QAAM,WAAW,IAAI,IAAI,IAAI;AAC7B,SAAO,OAAO,KAAK,KAAK,EAAE,MAAM,CAAC,QAAQ,SAAS,IAAI,GAAG,CAAC;AAC5D;AAEA,SAAS,gBAAgB,OAAgB,SAAkC;AACzE,SAAO,OAAO,UAAU,YAAY,MAAM,KAAK,EAAE,SAAS,KAAK,MAAM,UAAU;AACjF;AAEA,SAAS,OAAO,OAAiC;AAC/C,SACE,OAAO,UAAU,YACjB,6EAA6E,KAAK,KAAK;AAE3F;AAEA,SAAS,iBAAiB,OAAgB,SAAkC;AAC1E,SAAO,OAAO,UAAU,KAAK,KAAM,SAAoB,KAAM,SAAoB;AACnF;AAEA,SAAS,wBAAwB,OAAgB,SAA0B;AACzE,SACE,UAAU,QACT,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,KAAK,SAAS,KAAK,SAAS;AAEnF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/document-authority-client.ts"],"sourcesContent":["import { OpenGeniClient as OpenGeniCoreClient } from \"./client\";\nimport type {\n DocumentAuthorityReclassification,\n DocumentDefaultCollectionBackfill,\n DocumentDefaultCollectionBackfillAudit,\n GetDocumentDefaultCollectionBackfillAuditOptions,\n ListDocumentAuthorityReclassificationsOptions,\n ListDocumentAuthorityReclassificationsResponse,\n ListDocumentDefaultCollectionBackfillRunsResponse,\n ListOrganizationDocumentAuthorityReclassificationsResponse,\n ReclassifyDocumentAuthorityRequest,\n RunDocumentDefaultCollectionBackfillRequest,\n} from \"./types\";\n\n/**\n * Operator-only Document authority and tenancy-backfill surface.\n *\n * The public root and legacy `core` clients extend this class for compatibility.\n * Browser consoles that import `@opengeni/sdk/browser` do not retain these\n * methods or their routes.\n */\nexport class OpenGeniDocumentAuthorityClient extends OpenGeniCoreClient {\n /**\n * Atomically reclassify a Document's authority and every indexed chunk.\n * The operation is replay-safe and rejects a stale expected authority tuple.\n */\n async reclassifyDocumentAuthority(\n workspaceId: string,\n documentId: string,\n request: ReclassifyDocumentAuthorityRequest,\n ): Promise<DocumentAuthorityReclassification> {\n return await this.requestJson<DocumentAuthorityReclassification>(\n \"POST\",\n `/v1/workspaces/${workspaceId}/documents/${documentId}/authority-reclassifications`,\n request,\n );\n }\n\n /** List the current actor's durable authority-reclassification receipts. */\n async listDocumentAuthorityReclassifications(\n workspaceId: string,\n documentId: string,\n options: ListDocumentAuthorityReclassificationsOptions = {},\n ): Promise<ListDocumentAuthorityReclassificationsResponse> {\n const params = new URLSearchParams();\n if (options.limit !== undefined) params.set(\"limit\", String(options.limit));\n if (options.cursor) params.set(\"cursor\", options.cursor);\n const query = params.size > 0 ? `?${params.toString()}` : \"\";\n return await this.requestJson<ListDocumentAuthorityReclassificationsResponse>(\n \"GET\",\n `/v1/workspaces/${workspaceId}/documents/${documentId}/authority-reclassifications${query}`,\n );\n }\n\n /**\n * Advance one resumable, organization-scoped Default collection backfill.\n * Reusing an operation ID is idempotent; keep the run ID across batches.\n */\n async runDocumentDefaultCollectionBackfill(\n workspaceId: string,\n request: RunDocumentDefaultCollectionBackfillRequest,\n ): Promise<DocumentDefaultCollectionBackfill> {\n return await this.requestJson<DocumentDefaultCollectionBackfill>(\n \"POST\",\n `/v1/workspaces/${workspaceId}/document-default-collection-backfills`,\n request,\n );\n }\n\n /** List organization-scoped Default collection backfill runs (organization admin only). */\n async listDocumentDefaultCollectionBackfillRuns(\n workspaceId: string,\n options: ListDocumentAuthorityReclassificationsOptions = {},\n ): Promise<ListDocumentDefaultCollectionBackfillRunsResponse> {\n const params = new URLSearchParams();\n if (options.limit !== undefined) params.set(\"limit\", String(options.limit));\n if (options.cursor) params.set(\"cursor\", options.cursor);\n const query = params.size > 0 ? `?${params.toString()}` : \"\";\n return await this.requestJson<ListDocumentDefaultCollectionBackfillRunsResponse>(\n \"GET\",\n `/v1/workspaces/${workspaceId}/document-default-collection-backfills${query}`,\n );\n }\n\n /** Read bounded operation and workspace receipts for one Default-collection backfill run. */\n async getDocumentDefaultCollectionBackfillAudit(\n workspaceId: string,\n runId: string,\n options: GetDocumentDefaultCollectionBackfillAuditOptions = {},\n ): Promise<DocumentDefaultCollectionBackfillAudit> {\n const params = new URLSearchParams();\n if (options.limit !== undefined) params.set(\"limit\", String(options.limit));\n if (options.operationCursor) params.set(\"operationCursor\", options.operationCursor);\n if (options.receiptCursor) params.set(\"receiptCursor\", options.receiptCursor);\n const query = params.size > 0 ? `?${params.toString()}` : \"\";\n return await this.requestJson<DocumentDefaultCollectionBackfillAudit>(\n \"GET\",\n `/v1/workspaces/${workspaceId}/document-default-collection-backfills/${runId}${query}`,\n );\n }\n\n /** List organization-wide Document authority changes (organization admin only). */\n async listOrganizationDocumentAuthorityReclassifications(\n workspaceId: string,\n options: ListDocumentAuthorityReclassificationsOptions = {},\n ): Promise<ListOrganizationDocumentAuthorityReclassificationsResponse> {\n const params = new URLSearchParams();\n if (options.limit !== undefined) params.set(\"limit\", String(options.limit));\n if (options.cursor) params.set(\"cursor\", options.cursor);\n const query = params.size > 0 ? `?${params.toString()}` : \"\";\n return await this.requestJson<ListOrganizationDocumentAuthorityReclassificationsResponse>(\n \"GET\",\n `/v1/workspaces/${workspaceId}/document-authority-reclassifications${query}`,\n );\n }\n}\n"],"mappings":";;;;;AAqBO,IAAM,kCAAN,cAA8C,eAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKtE,MAAM,4BACJ,aACA,YACA,SAC4C;AAC5C,WAAO,MAAM,KAAK;AAAA,MAChB;AAAA,MACA,kBAAkB,WAAW,cAAc,UAAU;AAAA,MACrD;AAAA,IACF;AAAA,EACF;AAAA;AAAA,EAGA,MAAM,uCACJ,aACA,YACA,UAAyD,CAAC,GACD;AACzD,UAAM,SAAS,IAAI,gBAAgB;AACnC,QAAI,QAAQ,UAAU,OAAW,QAAO,IAAI,SAAS,OAAO,QAAQ,KAAK,CAAC;AAC1E,QAAI,QAAQ,OAAQ,QAAO,IAAI,UAAU,QAAQ,MAAM;AACvD,UAAM,QAAQ,OAAO,OAAO,IAAI,IAAI,OAAO,SAAS,CAAC,KAAK;AAC1D,WAAO,MAAM,KAAK;AAAA,MAChB;AAAA,MACA,kBAAkB,WAAW,cAAc,UAAU,+BAA+B,KAAK;AAAA,IAC3F;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,qCACJ,aACA,SAC4C;AAC5C,WAAO,MAAM,KAAK;AAAA,MAChB;AAAA,MACA,kBAAkB,WAAW;AAAA,MAC7B;AAAA,IACF;AAAA,EACF;AAAA;AAAA,EAGA,MAAM,0CACJ,aACA,UAAyD,CAAC,GACE;AAC5D,UAAM,SAAS,IAAI,gBAAgB;AACnC,QAAI,QAAQ,UAAU,OAAW,QAAO,IAAI,SAAS,OAAO,QAAQ,KAAK,CAAC;AAC1E,QAAI,QAAQ,OAAQ,QAAO,IAAI,UAAU,QAAQ,MAAM;AACvD,UAAM,QAAQ,OAAO,OAAO,IAAI,IAAI,OAAO,SAAS,CAAC,KAAK;AAC1D,WAAO,MAAM,KAAK;AAAA,MAChB;AAAA,MACA,kBAAkB,WAAW,yCAAyC,KAAK;AAAA,IAC7E;AAAA,EACF;AAAA;AAAA,EAGA,MAAM,0CACJ,aACA,OACA,UAA4D,CAAC,GACZ;AACjD,UAAM,SAAS,IAAI,gBAAgB;AACnC,QAAI,QAAQ,UAAU,OAAW,QAAO,IAAI,SAAS,OAAO,QAAQ,KAAK,CAAC;AAC1E,QAAI,QAAQ,gBAAiB,QAAO,IAAI,mBAAmB,QAAQ,eAAe;AAClF,QAAI,QAAQ,cAAe,QAAO,IAAI,iBAAiB,QAAQ,aAAa;AAC5E,UAAM,QAAQ,OAAO,OAAO,IAAI,IAAI,OAAO,SAAS,CAAC,KAAK;AAC1D,WAAO,MAAM,KAAK;AAAA,MAChB;AAAA,MACA,kBAAkB,WAAW,0CAA0C,KAAK,GAAG,KAAK;AAAA,IACtF;AAAA,EACF;AAAA;AAAA,EAGA,MAAM,mDACJ,aACA,UAAyD,CAAC,GACW;AACrE,UAAM,SAAS,IAAI,gBAAgB;AACnC,QAAI,QAAQ,UAAU,OAAW,QAAO,IAAI,SAAS,OAAO,QAAQ,KAAK,CAAC;AAC1E,QAAI,QAAQ,OAAQ,QAAO,IAAI,UAAU,QAAQ,MAAM;AACvD,UAAM,QAAQ,OAAO,OAAO,IAAI,IAAI,OAAO,SAAS,CAAC,KAAK;AAC1D,WAAO,MAAM,KAAK;AAAA,MAChB;AAAA,MACA,kBAAkB,WAAW,wCAAwC,KAAK;AAAA,IAC5E;AAAA,EACF;AACF;","names":[]}