@opengeni/contracts 0.50.0 → 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 (369) hide show
  1. package/dist/agent-authored-durable-text.d.ts +70 -0
  2. package/dist/agent-config.d.ts +869 -0
  3. package/dist/agent-instruction-changes.d.ts +110 -0
  4. package/dist/agent-learning.d.ts +243 -0
  5. package/dist/agent-topology.d.ts +292 -0
  6. package/dist/allowance-refusal.d.ts +9 -0
  7. package/dist/allowance-refusal.js +50 -0
  8. package/dist/allowance-refusal.js.map +1 -0
  9. package/dist/analytics-consent-report.d.ts +19 -0
  10. package/dist/analytics-consent-report.js +10 -0
  11. package/dist/analytics-consent-report.js.map +1 -0
  12. package/dist/api-key-presets.d.ts +19 -0
  13. package/dist/artifact-catalog.d.ts +161 -0
  14. package/dist/artifacts.d.ts +135 -11
  15. package/dist/atlassian-native-retirement.d.ts +16 -0
  16. package/dist/atlassian-native-retirement.js +30 -0
  17. package/dist/atlassian-native-retirement.js.map +1 -0
  18. package/dist/atlassian.d.ts +2 -0
  19. package/dist/atlassian.js +26 -12
  20. package/dist/browser-storage.d.ts +5 -0
  21. package/dist/browser-storage.js +9 -0
  22. package/dist/browser-storage.js.map +1 -0
  23. package/dist/bundled-skills.d.ts +40 -0
  24. package/dist/chunk-2ACYHZFB.js +292 -0
  25. package/dist/chunk-2ACYHZFB.js.map +1 -0
  26. package/dist/chunk-2VORLN2R.js +353 -0
  27. package/dist/chunk-2VORLN2R.js.map +1 -0
  28. package/dist/{chunk-Y3MLSLB4.js → chunk-3SIZGL3O.js} +42 -30
  29. package/dist/chunk-3SIZGL3O.js.map +1 -0
  30. package/dist/chunk-46KLD2UH.js +186 -0
  31. package/dist/chunk-46KLD2UH.js.map +1 -0
  32. package/dist/chunk-4JGHSSB7.js +11 -0
  33. package/dist/chunk-4JGHSSB7.js.map +1 -0
  34. package/dist/{chunk-M5ZGRVIQ.js → chunk-5IXYF6XN.js} +14 -5
  35. package/dist/chunk-5IXYF6XN.js.map +1 -0
  36. package/dist/chunk-BCS7WHCK.js +139 -0
  37. package/dist/chunk-BCS7WHCK.js.map +1 -0
  38. package/dist/chunk-EK7NDGFR.js +128 -0
  39. package/dist/chunk-EK7NDGFR.js.map +1 -0
  40. package/dist/{chunk-5UDNP7AO.js → chunk-FZ6BXQHL.js} +78 -38
  41. package/dist/chunk-FZ6BXQHL.js.map +1 -0
  42. package/dist/{chunk-CM6BMECR.js → chunk-GRG7PHWQ.js} +2 -1
  43. package/dist/chunk-GRG7PHWQ.js.map +1 -0
  44. package/dist/chunk-KHHZTBP7.js +11 -0
  45. package/dist/chunk-KHHZTBP7.js.map +1 -0
  46. package/dist/chunk-KR2V42UZ.js +187 -0
  47. package/dist/chunk-KR2V42UZ.js.map +1 -0
  48. package/dist/chunk-MZLBPKFE.js +168 -0
  49. package/dist/chunk-MZLBPKFE.js.map +1 -0
  50. package/dist/{chunk-LW7OH6CS.js → chunk-NRMCVHAU.js} +6 -5
  51. package/dist/chunk-NRMCVHAU.js.map +1 -0
  52. package/dist/{chunk-TZ6YEYN4.js → chunk-NVJMJWLL.js} +3 -1
  53. package/dist/chunk-NVJMJWLL.js.map +1 -0
  54. package/dist/chunk-O77VSFYZ.js +70 -0
  55. package/dist/chunk-O77VSFYZ.js.map +1 -0
  56. package/dist/chunk-PX3VCKAU.js +29 -0
  57. package/dist/chunk-PX3VCKAU.js.map +1 -0
  58. package/dist/chunk-QR5D2IQC.js +61 -0
  59. package/dist/chunk-QR5D2IQC.js.map +1 -0
  60. package/dist/chunk-RJ76DRPO.js +117 -0
  61. package/dist/chunk-RJ76DRPO.js.map +1 -0
  62. package/dist/chunk-RKX3NQYS.js +28 -0
  63. package/dist/chunk-RKX3NQYS.js.map +1 -0
  64. package/dist/{chunk-JBCIY7QD.js → chunk-SIOU2K4U.js} +45 -22
  65. package/dist/chunk-SIOU2K4U.js.map +1 -0
  66. package/dist/chunk-TSCDAGET.js +75 -0
  67. package/dist/chunk-TSCDAGET.js.map +1 -0
  68. package/dist/{chunk-LSB7GRLG.js → chunk-TXTQIYCV.js} +15 -11
  69. package/dist/chunk-TXTQIYCV.js.map +1 -0
  70. package/dist/chunk-X7ETVO4P.js +26544 -0
  71. package/dist/chunk-X7ETVO4P.js.map +1 -0
  72. package/dist/{chunk-CADSX6UN.js → chunk-Y3KNXVTD.js} +2 -2
  73. package/dist/chunk-YBW5JSA3.js +251 -0
  74. package/dist/chunk-YBW5JSA3.js.map +1 -0
  75. package/dist/chunk-YRXAWWCU.js +45 -0
  76. package/dist/chunk-YRXAWWCU.js.map +1 -0
  77. package/dist/claude-provider-account-authority.d.ts +18 -0
  78. package/dist/claude-subscription-oauth.d.ts +42 -0
  79. package/dist/claude-subscription-usage.d.ts +159 -0
  80. package/dist/client-error-report.d.ts +109 -0
  81. package/dist/client-error-report.js +87 -0
  82. package/dist/client-error-report.js.map +1 -0
  83. package/dist/code-search.d.ts +52 -0
  84. package/dist/code-search.js +40 -0
  85. package/dist/code-search.js.map +1 -0
  86. package/dist/company-brain-governed-writes.d.ts +475 -0
  87. package/dist/company-brain.d.ts +336 -0
  88. package/dist/company-profile.d.ts +566 -0
  89. package/dist/connect.d.ts +325 -0
  90. package/dist/connect.js +191 -0
  91. package/dist/connect.js.map +1 -0
  92. package/dist/connection-account-label.d.ts +2 -0
  93. package/dist/connection-account-label.js +35 -0
  94. package/dist/connection-account-label.js.map +1 -0
  95. package/dist/connection-authority.d.ts +193 -0
  96. package/dist/connection-authority.js +50 -0
  97. package/dist/connection-authority.js.map +1 -0
  98. package/dist/connector-attachments.d.ts +95 -0
  99. package/dist/connector-attachments.js +51 -0
  100. package/dist/connector-attachments.js.map +1 -0
  101. package/dist/connector-tool-permissions.d.ts +73 -0
  102. package/dist/direct-model-provider.d.ts +36 -0
  103. package/dist/editable-artifact-codec-registry.d.ts +16 -7
  104. package/dist/editable-artifact-codec-registry.js +18 -8
  105. package/dist/editable-artifact-committed-transaction.d.ts +2 -2
  106. package/dist/editable-artifact-committed-transaction.js +2 -2
  107. package/dist/editable-artifact-live.d.ts +11 -12
  108. package/dist/editable-artifact-live.js +110 -45
  109. package/dist/editable-artifact-live.js.map +1 -1
  110. package/dist/editable-artifact-serialized-commit.d.ts +2 -1
  111. package/dist/editable-artifact-serialized-commit.js +8 -7
  112. package/dist/editable-artifact-versions.d.ts +20 -5
  113. package/dist/editable-artifact-versions.js +23 -5
  114. package/dist/editable-artifacts.d.ts +2 -0
  115. package/dist/editable-artifacts.js +47 -35
  116. package/dist/external-identities.d.ts +784 -0
  117. package/dist/external-identities.js +44 -0
  118. package/dist/external-identities.js.map +1 -0
  119. package/dist/feedback.d.ts +51 -0
  120. package/dist/github-repository-contracts.d.ts +36 -0
  121. package/dist/github-repository-contracts.js +59 -0
  122. package/dist/github-repository-contracts.js.map +1 -0
  123. package/dist/github-repository.d.ts +14 -0
  124. package/dist/github-repository.js +36 -0
  125. package/dist/github-repository.js.map +1 -0
  126. package/dist/google-drive.d.ts +90 -1
  127. package/dist/google-drive.js +90 -16
  128. package/dist/google-drive.js.map +1 -1
  129. package/dist/governed-learning-activation.d.ts +154 -0
  130. package/dist/governed-learning-evaluator.d.ts +152 -0
  131. package/dist/host-mcp-bindings.d.ts +326 -0
  132. package/dist/host-mcp-bindings.js +252 -0
  133. package/dist/host-mcp-bindings.js.map +1 -0
  134. package/dist/image-generation.d.ts +1 -0
  135. package/dist/index.d.ts +32396 -11386
  136. package/dist/index.js +2198 -164
  137. package/dist/insights-usage.d.ts +877 -0
  138. package/dist/insights-usage.js +509 -0
  139. package/dist/insights-usage.js.map +1 -0
  140. package/dist/interaction.d.ts +344 -0
  141. package/dist/knowledge-entries.d.ts +982 -0
  142. package/dist/knowledge-preparation.d.ts +237 -0
  143. package/dist/knowledge.d.ts +197 -0
  144. package/dist/managed-auth-session-sets.d.ts +241 -0
  145. package/dist/managed-auth-session-sets.js +191 -0
  146. package/dist/managed-auth-session-sets.js.map +1 -0
  147. package/dist/managed-sign-in-methods.d.ts +56 -0
  148. package/dist/managed-sign-in-methods.js +46 -0
  149. package/dist/managed-sign-in-methods.js.map +1 -0
  150. package/dist/mcp-catalog-limits.d.ts +2 -0
  151. package/dist/mcp-endpoint.d.ts +7 -0
  152. package/dist/mcp-endpoint.js +9 -0
  153. package/dist/mcp-endpoint.js.map +1 -0
  154. package/dist/mcp-oauth.d.ts +71 -0
  155. package/dist/modal-native-proof-v2.d.ts +587 -0
  156. package/dist/modal-native-proof-v2.js +37 -0
  157. package/dist/modal-native-proof-v2.js.map +1 -0
  158. package/dist/model-availability.d.ts +15 -0
  159. package/dist/model-connection-access.d.ts +24 -0
  160. package/dist/model-context-inspector.d.ts +329 -0
  161. package/dist/model-display.d.ts +38 -0
  162. package/dist/model-display.js +134 -0
  163. package/dist/model-display.js.map +1 -0
  164. package/dist/model-picker-order.d.ts +25 -0
  165. package/dist/model-picker-order.js +42 -0
  166. package/dist/model-picker-order.js.map +1 -0
  167. package/dist/organization-access.d.ts +231 -0
  168. package/dist/organization-access.js +34 -0
  169. package/dist/organization-access.js.map +1 -0
  170. package/dist/organization-integration-policy.d.ts +27 -0
  171. package/dist/organization-membership-lifecycle.d.ts +1022 -0
  172. package/dist/organization-model-usage.d.ts +146 -0
  173. package/dist/organization-model-usage.js +67 -0
  174. package/dist/organization-model-usage.js.map +1 -0
  175. package/dist/organization-recovery.d.ts +337 -0
  176. package/dist/organization-recovery.js +37 -0
  177. package/dist/organization-recovery.js.map +1 -0
  178. package/dist/organization-usage.d.ts +138 -0
  179. package/dist/permissions.d.ts +54 -0
  180. package/dist/personal-github.d.ts +320 -0
  181. package/dist/personal-github.js +222 -0
  182. package/dist/personal-github.js.map +1 -0
  183. package/dist/plugin-discovery.d.ts +35 -0
  184. package/dist/plugin-discovery.js +7 -0
  185. package/dist/plugin-discovery.js.map +1 -0
  186. package/dist/preference-registry.d.ts +44 -1
  187. package/dist/product-analytics.d.ts +113 -0
  188. package/dist/product-lifecycle-facts.d.ts +73 -0
  189. package/dist/remember.d.ts +350 -0
  190. package/dist/retained-output.d.ts +8 -0
  191. package/dist/sandbox-file-artifacts.d.ts +57 -0
  192. package/dist/sandbox-provider-command.d.ts +113 -0
  193. package/dist/sandbox-recovery.d.ts +146 -0
  194. package/dist/sandbox-snapshots.d.ts +39 -0
  195. package/dist/session-final-reply.d.ts +6 -0
  196. package/dist/session-final-reply.js +9 -0
  197. package/dist/session-final-reply.js.map +1 -0
  198. package/dist/session-goal-reports.d.ts +21 -0
  199. package/dist/session-history-import.d.ts +947 -0
  200. package/dist/session-list-entries.d.ts +4 -0
  201. package/dist/session-list-entries.js +51 -0
  202. package/dist/session-list-entries.js.map +1 -0
  203. package/dist/session-mcp-projections.d.ts +215 -0
  204. package/dist/session-message-search.d.ts +68 -0
  205. package/dist/session-titles.d.ts +68 -0
  206. package/dist/session-titles.js +25 -0
  207. package/dist/session-titles.js.map +1 -0
  208. package/dist/session-topology-primitives.d.ts +22 -0
  209. package/dist/signup-attribution.d.ts +39 -0
  210. package/dist/site-request-headers.test.d.ts +1 -0
  211. package/dist/site-session-http.d.ts +11 -0
  212. package/dist/site-session-http.js +11 -0
  213. package/dist/site-session-http.js.map +1 -0
  214. package/dist/skill-catalog-context.d.ts +7 -0
  215. package/dist/skill-files.d.ts +12 -0
  216. package/dist/skill-metadata.d.ts +9 -0
  217. package/dist/skill-use.d.ts +61 -0
  218. package/dist/skills.d.ts +185 -0
  219. package/dist/slack-bot-scopes.d.ts +46 -21
  220. package/dist/slack-bot-scopes.js +14 -3
  221. package/dist/slack-rest-mcp.d.ts +31 -0
  222. package/dist/slack-rest-mcp.js +19 -0
  223. package/dist/slack-rest-mcp.js.map +1 -0
  224. package/dist/spreadsheet-artifact-commands.d.ts +2 -3
  225. package/dist/spreadsheet-artifact-commands.js +4 -2
  226. package/dist/spreadsheet-artifact-query.js +3 -2
  227. package/dist/subscription-account-pools.d.ts +292 -0
  228. package/dist/task-notes.d.ts +42 -1
  229. package/dist/tool-catalog.d.ts +286 -0
  230. package/dist/tool-result-spill.d.ts +16 -0
  231. package/dist/usage-allowances.d.ts +285 -0
  232. package/dist/usage-allowances.js +49 -0
  233. package/dist/usage-allowances.js.map +1 -0
  234. package/dist/video-generation.d.ts +3 -0
  235. package/dist/video-generation.js +1 -1
  236. package/dist/work-claims.d.ts +411 -0
  237. package/dist/workspace-instruction-policies.d.ts +94 -0
  238. package/dist/workspace-integration-wire.d.ts +36 -0
  239. package/dist/workspace-integration-wire.js +23 -0
  240. package/dist/workspace-integration-wire.js.map +1 -0
  241. package/dist/workspace-integrations.d.ts +948 -0
  242. package/dist/workspace-learning-administration.d.ts +289 -0
  243. package/dist/workspace-learning-policy.d.ts +1 -1
  244. package/dist/workspace-state.d.ts +85 -416
  245. package/dist/xai-provider-account-authority.d.ts +3 -0
  246. package/dist/xai-provider-account-authority.js +1 -1
  247. package/package.json +134 -1
  248. package/src/agent-authored-durable-text.ts +116 -0
  249. package/src/agent-config.ts +1527 -0
  250. package/src/agent-instruction-changes.ts +98 -0
  251. package/src/agent-learning.ts +161 -0
  252. package/src/agent-topology.ts +69 -0
  253. package/src/allowance-refusal.ts +81 -0
  254. package/src/analytics-consent-report.ts +20 -0
  255. package/src/api-key-presets.ts +25 -0
  256. package/src/artifact-catalog.ts +60 -0
  257. package/src/artifacts.ts +146 -18
  258. package/src/atlassian-native-retirement.ts +33 -0
  259. package/src/browser-storage.ts +10 -0
  260. package/src/bundled-skills.ts +73 -0
  261. package/src/claude-provider-account-authority.ts +12 -0
  262. package/src/claude-subscription-oauth.ts +62 -0
  263. package/src/claude-subscription-usage.ts +59 -0
  264. package/src/client-error-report.ts +184 -0
  265. package/src/code-search.ts +105 -0
  266. package/src/company-brain-governed-writes.ts +356 -0
  267. package/src/company-brain.ts +201 -0
  268. package/src/company-profile.ts +167 -1
  269. package/src/connect.ts +202 -0
  270. package/src/connection-account-label.ts +46 -0
  271. package/src/connection-authority.ts +213 -0
  272. package/src/connector-attachments.ts +327 -0
  273. package/src/connector-tool-permissions.ts +60 -0
  274. package/src/direct-model-provider.ts +98 -0
  275. package/src/editable-artifact-codec-registry.ts +55 -17
  276. package/src/editable-artifact-committed-transaction.ts +44 -31
  277. package/src/editable-artifact-live.ts +123 -57
  278. package/src/editable-artifact-serialized-commit.ts +2 -1
  279. package/src/editable-artifact-versions.ts +26 -5
  280. package/src/editable-artifacts.ts +2 -0
  281. package/src/external-identities.ts +285 -0
  282. package/src/feedback.ts +39 -0
  283. package/src/github-repository-contracts.ts +85 -0
  284. package/src/github-repository.ts +59 -0
  285. package/src/google-drive.ts +76 -4
  286. package/src/governed-learning-activation.ts +191 -0
  287. package/src/governed-learning-evaluator.ts +176 -0
  288. package/src/host-mcp-bindings.ts +298 -0
  289. package/src/image-generation.ts +8 -2
  290. package/src/index.ts +7093 -1466
  291. package/src/insights-usage.ts +679 -0
  292. package/src/interaction.ts +220 -5
  293. package/src/knowledge-entries.ts +375 -0
  294. package/src/knowledge-preparation.ts +50 -0
  295. package/src/knowledge.ts +134 -6
  296. package/src/managed-auth-session-sets.ts +253 -0
  297. package/src/managed-sign-in-methods.ts +37 -0
  298. package/src/mcp-catalog-limits.ts +2 -0
  299. package/src/mcp-endpoint.ts +30 -0
  300. package/src/mcp-oauth.ts +66 -0
  301. package/src/modal-native-proof-v2.ts +398 -0
  302. package/src/model-availability.ts +22 -0
  303. package/src/model-connection-access.ts +17 -0
  304. package/src/model-context-inspector.ts +139 -0
  305. package/src/model-display.ts +195 -0
  306. package/src/model-picker-order.ts +97 -0
  307. package/src/organization-access.ts +176 -0
  308. package/src/organization-integration-policy.ts +54 -0
  309. package/src/organization-membership-lifecycle.ts +559 -0
  310. package/src/organization-model-usage.ts +72 -0
  311. package/src/organization-recovery.ts +186 -0
  312. package/src/organization-usage.ts +79 -0
  313. package/src/permissions.ts +58 -0
  314. package/src/personal-github.ts +267 -0
  315. package/src/plugin-discovery.ts +33 -0
  316. package/src/preference-registry.ts +20 -1
  317. package/src/product-analytics.ts +253 -0
  318. package/src/product-lifecycle-facts.ts +121 -0
  319. package/src/remember.ts +243 -0
  320. package/src/retained-output.ts +20 -3
  321. package/src/sandbox-file-artifacts.ts +73 -0
  322. package/src/sandbox-provider-command.ts +82 -0
  323. package/src/sandbox-recovery.ts +116 -0
  324. package/src/sandbox-snapshots.ts +142 -0
  325. package/src/session-final-reply.ts +16 -0
  326. package/src/session-goal-reports.ts +55 -0
  327. package/src/session-history-import.ts +159 -0
  328. package/src/session-list-entries.ts +91 -0
  329. package/src/session-mcp-projections.ts +273 -0
  330. package/src/session-message-search.ts +54 -0
  331. package/src/session-titles.ts +467 -0
  332. package/src/session-topology-primitives.ts +21 -0
  333. package/src/signup-attribution.ts +81 -0
  334. package/src/site-request-headers.test.ts +28 -0
  335. package/src/site-session-http.ts +63 -0
  336. package/src/skill-catalog-context.ts +50 -0
  337. package/src/skill-files.ts +52 -0
  338. package/src/skill-metadata.ts +40 -0
  339. package/src/skill-use.ts +77 -0
  340. package/src/skills.ts +136 -0
  341. package/src/slack-bot-scopes.ts +106 -42
  342. package/src/slack-rest-mcp.ts +194 -0
  343. package/src/spreadsheet-artifact-commands.ts +12 -13
  344. package/src/subscription-account-pools.ts +44 -0
  345. package/src/task-notes.ts +14 -1
  346. package/src/tool-catalog.ts +155 -0
  347. package/src/tool-result-spill.ts +35 -0
  348. package/src/usage-allowances.ts +187 -0
  349. package/src/work-claims.ts +266 -0
  350. package/src/workspace-instruction-policies.ts +31 -0
  351. package/src/workspace-integration-wire.ts +99 -0
  352. package/src/workspace-integrations.ts +640 -0
  353. package/src/workspace-learning-administration.ts +88 -0
  354. package/src/workspace-learning-policy.ts +4 -3
  355. package/src/workspace-state.ts +16 -126
  356. package/src/xai-provider-account-authority.ts +1 -0
  357. package/dist/chunk-5UDNP7AO.js.map +0 -1
  358. package/dist/chunk-BVGIYW7D.js +0 -11
  359. package/dist/chunk-BVGIYW7D.js.map +0 -1
  360. package/dist/chunk-CM6BMECR.js.map +0 -1
  361. package/dist/chunk-JBCIY7QD.js.map +0 -1
  362. package/dist/chunk-LSB7GRLG.js.map +0 -1
  363. package/dist/chunk-LW7OH6CS.js.map +0 -1
  364. package/dist/chunk-M5ZGRVIQ.js.map +0 -1
  365. package/dist/chunk-Q6A7XT2N.js +0 -16734
  366. package/dist/chunk-Q6A7XT2N.js.map +0 -1
  367. package/dist/chunk-TZ6YEYN4.js.map +0 -1
  368. package/dist/chunk-Y3MLSLB4.js.map +0 -1
  369. /package/dist/{chunk-CADSX6UN.js.map → chunk-Y3KNXVTD.js.map} +0 -0
@@ -0,0 +1,37 @@
1
+ import {
2
+ MODAL_NATIVE_FRESH_COMPILER_FINGERPRINT,
3
+ MODAL_NATIVE_FRESH_NORMALIZATION_V1,
4
+ MODAL_NATIVE_PREPARATION_RECIPE_V2,
5
+ MODAL_NATIVE_PROOF_PROTOCOL_VERSION,
6
+ ModalNativeConfigurationCaptureRefV2,
7
+ ModalNativeFreshBlueprintV1,
8
+ ModalNativeFreshNormalizationV1,
9
+ ModalNativeNamespaceEvidenceV2,
10
+ ModalNativeNamespaceReadClaimV2,
11
+ ModalNativeOriginalCommandReadClaimV2,
12
+ ModalNativeOriginalScopeV2,
13
+ ModalNativePreparationDeclarationV2,
14
+ ModalNativePreparationRecipeV2,
15
+ ModalNativePreparedStartDescriptionV1,
16
+ ModalNativeProofGrantRefV2,
17
+ ModalNativeReservedLeaseRefV2
18
+ } from "./chunk-2VORLN2R.js";
19
+ export {
20
+ MODAL_NATIVE_FRESH_COMPILER_FINGERPRINT,
21
+ MODAL_NATIVE_FRESH_NORMALIZATION_V1,
22
+ MODAL_NATIVE_PREPARATION_RECIPE_V2,
23
+ MODAL_NATIVE_PROOF_PROTOCOL_VERSION,
24
+ ModalNativeConfigurationCaptureRefV2,
25
+ ModalNativeFreshBlueprintV1,
26
+ ModalNativeFreshNormalizationV1,
27
+ ModalNativeNamespaceEvidenceV2,
28
+ ModalNativeNamespaceReadClaimV2,
29
+ ModalNativeOriginalCommandReadClaimV2,
30
+ ModalNativeOriginalScopeV2,
31
+ ModalNativePreparationDeclarationV2,
32
+ ModalNativePreparationRecipeV2,
33
+ ModalNativePreparedStartDescriptionV1,
34
+ ModalNativeProofGrantRefV2,
35
+ ModalNativeReservedLeaseRefV2
36
+ };
37
+ //# sourceMappingURL=modal-native-proof-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `details.code` on a 422 `validation_failed` envelope when the requested or
3
+ * stored model is not in the live model catalog (retired, removed, or never
4
+ * offered). Retrying the same request cannot succeed; the client must choose
5
+ * another model. Additive to the public error envelope: `code` stays
6
+ * `validation_failed` and the message keeps its historical text.
7
+ */
8
+ export declare const MODEL_UNAVAILABLE_ERROR_CODE: "model_unavailable";
9
+ /** Typed cause for a model that is not selectable in the live catalog. */
10
+ export declare class ModelUnavailableError extends Error {
11
+ readonly modelId: string;
12
+ readonly code: "model_unavailable";
13
+ constructor(modelId: string);
14
+ }
15
+ export declare function isModelUnavailableError(error: unknown): error is ModelUnavailableError;
@@ -0,0 +1,24 @@
1
+ import { z } from "zod";
2
+ export declare const ModelConnectionAccessPolicy: z.ZodObject<{
3
+ allowedModels: z.ZodNullable<z.ZodArray<z.ZodString>>;
4
+ allowedWorkspaces: z.ZodNullable<z.ZodArray<z.ZodString>>;
5
+ allowPersonalWorkspaces: z.ZodBoolean;
6
+ version: z.ZodNumber;
7
+ }, z.core.$strict>;
8
+ export declare const ModelConnectionAccessResponse: z.ZodObject<{
9
+ policy: z.ZodObject<{
10
+ allowedModels: z.ZodNullable<z.ZodArray<z.ZodString>>;
11
+ allowedWorkspaces: z.ZodNullable<z.ZodArray<z.ZodString>>;
12
+ allowPersonalWorkspaces: z.ZodBoolean;
13
+ version: z.ZodNumber;
14
+ }, z.core.$strict>;
15
+ models: z.ZodArray<z.ZodObject<{
16
+ id: z.ZodString;
17
+ label: z.ZodString;
18
+ }, z.core.$strip>>;
19
+ workspaces: z.ZodArray<z.ZodObject<{
20
+ id: z.ZodString;
21
+ name: z.ZodString;
22
+ }, z.core.$strip>>;
23
+ personalWorkspacesSupported: z.ZodBoolean;
24
+ }, z.core.$strip>;
@@ -0,0 +1,329 @@
1
+ import { z } from "zod";
2
+ export declare const MODEL_CONTEXT_SNAPSHOT_VERSION: 1;
3
+ export declare const MODEL_CONTEXT_INSTRUCTIONS_MAX_UTF8_BYTES: number;
4
+ export declare const MODEL_CONTEXT_SNAPSHOT_MAX_UTF8_BYTES: number;
5
+ export declare const MODEL_CONTEXT_LAYER_MAX_COUNT = 16;
6
+ export declare const MODEL_CONTEXT_TOOL_MAX_COUNT = 2048;
7
+ export declare const MODEL_CONTEXT_SKILL_MAX_COUNT = 1024;
8
+ export declare const ModelContextInstructionLayerId: z.ZodEnum<{
9
+ builtin_skills: "builtin_skills";
10
+ code_search: "code_search";
11
+ codemode: "codemode";
12
+ genesis_title: "genesis_title";
13
+ git_bindings: "git_bindings";
14
+ identity: "identity";
15
+ operational_contract: "operational_contract";
16
+ persona_and_core: "persona_and_core";
17
+ sandbox_filesystem: "sandbox_filesystem";
18
+ sandbox_preamble: "sandbox_preamble";
19
+ sdk_capability_instructions: "sdk_capability_instructions";
20
+ sent_system_instructions: "sent_system_instructions";
21
+ session_instructions: "session_instructions";
22
+ skill_catalog: "skill_catalog";
23
+ workspace_governance: "workspace_governance";
24
+ workspace_memory: "workspace_memory";
25
+ }>;
26
+ export type ModelContextInstructionLayerId = z.infer<typeof ModelContextInstructionLayerId>;
27
+ /** One prompt module inside a layer (modular operational contract only). */
28
+ export declare const ModelContextInstructionModule: z.ZodObject<{
29
+ id: z.ZodEnum<{
30
+ admin: "admin";
31
+ artifacts: "artifacts";
32
+ attachments: "attachments";
33
+ base_behavior: "base_behavior";
34
+ connected_machine: "connected_machine";
35
+ goals: "goals";
36
+ knowledge: "knowledge";
37
+ media: "media";
38
+ renderer_markdown: "renderer_markdown";
39
+ repositories: "repositories";
40
+ rig: "rig";
41
+ runtime_mechanics: "runtime_mechanics";
42
+ sandbox: "sandbox";
43
+ skills: "skills";
44
+ subagents: "subagents";
45
+ workspace_environment: "workspace_environment";
46
+ }>;
47
+ chars: z.ZodNumber;
48
+ }, z.core.$strict>;
49
+ export type ModelContextInstructionModule = z.infer<typeof ModelContextInstructionModule>;
50
+ export declare const ModelContextInstructionLayer: z.ZodObject<{
51
+ id: z.ZodEnum<{
52
+ builtin_skills: "builtin_skills";
53
+ code_search: "code_search";
54
+ codemode: "codemode";
55
+ genesis_title: "genesis_title";
56
+ git_bindings: "git_bindings";
57
+ identity: "identity";
58
+ operational_contract: "operational_contract";
59
+ persona_and_core: "persona_and_core";
60
+ sandbox_filesystem: "sandbox_filesystem";
61
+ sandbox_preamble: "sandbox_preamble";
62
+ sdk_capability_instructions: "sdk_capability_instructions";
63
+ sent_system_instructions: "sent_system_instructions";
64
+ session_instructions: "session_instructions";
65
+ skill_catalog: "skill_catalog";
66
+ workspace_governance: "workspace_governance";
67
+ workspace_memory: "workspace_memory";
68
+ }>;
69
+ title: z.ZodString;
70
+ content: z.ZodString;
71
+ utf8Bytes: z.ZodNumber;
72
+ estimatedTokens: z.ZodNumber;
73
+ modules: z.ZodOptional<z.ZodArray<z.ZodObject<{
74
+ id: z.ZodEnum<{
75
+ admin: "admin";
76
+ artifacts: "artifacts";
77
+ attachments: "attachments";
78
+ base_behavior: "base_behavior";
79
+ connected_machine: "connected_machine";
80
+ goals: "goals";
81
+ knowledge: "knowledge";
82
+ media: "media";
83
+ renderer_markdown: "renderer_markdown";
84
+ repositories: "repositories";
85
+ rig: "rig";
86
+ runtime_mechanics: "runtime_mechanics";
87
+ sandbox: "sandbox";
88
+ skills: "skills";
89
+ subagents: "subagents";
90
+ workspace_environment: "workspace_environment";
91
+ }>;
92
+ chars: z.ZodNumber;
93
+ }, z.core.$strict>>>;
94
+ }, z.core.$strict>;
95
+ export type ModelContextInstructionLayer = z.infer<typeof ModelContextInstructionLayer>;
96
+ export declare const ModelContextToolVisibility: z.ZodEnum<{
97
+ eager: "eager";
98
+ searchable: "searchable";
99
+ }>;
100
+ export type ModelContextToolVisibility = z.infer<typeof ModelContextToolVisibility>;
101
+ export declare const ModelContextTool: z.ZodObject<{
102
+ name: z.ZodString;
103
+ type: z.ZodString;
104
+ visibility: z.ZodEnum<{
105
+ eager: "eager";
106
+ searchable: "searchable";
107
+ }>;
108
+ description: z.ZodOptional<z.ZodString>;
109
+ namespace: z.ZodOptional<z.ZodString>;
110
+ schema: z.ZodOptional<z.ZodUnknown>;
111
+ utf8Bytes: z.ZodNumber;
112
+ estimatedTokens: z.ZodNumber;
113
+ }, z.core.$strict>;
114
+ export type ModelContextTool = z.infer<typeof ModelContextTool>;
115
+ export declare const ModelContextSkillKind: z.ZodEnum<{
116
+ native_tool_skill: "native_tool_skill";
117
+ preference_descriptor: "preference_descriptor";
118
+ runtime_skill: "runtime_skill";
119
+ }>;
120
+ export type ModelContextSkillKind = z.infer<typeof ModelContextSkillKind>;
121
+ export declare const ModelContextSkill: z.ZodObject<{
122
+ kind: z.ZodEnum<{
123
+ native_tool_skill: "native_tool_skill";
124
+ preference_descriptor: "preference_descriptor";
125
+ runtime_skill: "runtime_skill";
126
+ }>;
127
+ name: z.ZodString;
128
+ description: z.ZodString;
129
+ source: z.ZodOptional<z.ZodString>;
130
+ path: z.ZodOptional<z.ZodString>;
131
+ }, z.core.$strict>;
132
+ export type ModelContextSkill = z.infer<typeof ModelContextSkill>;
133
+ export declare const ModelContextTokenCounts: z.ZodObject<{
134
+ instructions: z.ZodNumber;
135
+ tools: z.ZodNumber;
136
+ prefix: z.ZodNumber;
137
+ }, z.core.$strict>;
138
+ export type ModelContextTokenCounts = z.infer<typeof ModelContextTokenCounts>;
139
+ export declare const ModelContextSnapshot: z.ZodObject<{
140
+ version: z.ZodLiteral<1>;
141
+ capturedAt: z.ZodString;
142
+ source: z.ZodLiteral<"model_request">;
143
+ requestIndex: z.ZodNumber;
144
+ instructions: z.ZodString;
145
+ providerRequest: z.ZodOptional<z.ZodObject<{
146
+ provider: z.ZodString;
147
+ body: z.ZodNullable<z.ZodString>;
148
+ unavailableReason: z.ZodOptional<z.ZodString>;
149
+ parts: z.ZodArray<z.ZodObject<{
150
+ key: z.ZodString;
151
+ estimatedTokens: z.ZodNullable<z.ZodNumber>;
152
+ utf8Bytes: z.ZodNumber;
153
+ itemEstimatedTokens: z.ZodOptional<z.ZodArray<z.ZodNullable<z.ZodNumber>>>;
154
+ }, z.core.$strict>>;
155
+ }, z.core.$strict>>;
156
+ layers: z.ZodArray<z.ZodObject<{
157
+ id: z.ZodEnum<{
158
+ builtin_skills: "builtin_skills";
159
+ code_search: "code_search";
160
+ codemode: "codemode";
161
+ genesis_title: "genesis_title";
162
+ git_bindings: "git_bindings";
163
+ identity: "identity";
164
+ operational_contract: "operational_contract";
165
+ persona_and_core: "persona_and_core";
166
+ sandbox_filesystem: "sandbox_filesystem";
167
+ sandbox_preamble: "sandbox_preamble";
168
+ sdk_capability_instructions: "sdk_capability_instructions";
169
+ sent_system_instructions: "sent_system_instructions";
170
+ session_instructions: "session_instructions";
171
+ skill_catalog: "skill_catalog";
172
+ workspace_governance: "workspace_governance";
173
+ workspace_memory: "workspace_memory";
174
+ }>;
175
+ title: z.ZodString;
176
+ content: z.ZodString;
177
+ utf8Bytes: z.ZodNumber;
178
+ estimatedTokens: z.ZodNumber;
179
+ modules: z.ZodOptional<z.ZodArray<z.ZodObject<{
180
+ id: z.ZodEnum<{
181
+ admin: "admin";
182
+ artifacts: "artifacts";
183
+ attachments: "attachments";
184
+ base_behavior: "base_behavior";
185
+ connected_machine: "connected_machine";
186
+ goals: "goals";
187
+ knowledge: "knowledge";
188
+ media: "media";
189
+ renderer_markdown: "renderer_markdown";
190
+ repositories: "repositories";
191
+ rig: "rig";
192
+ runtime_mechanics: "runtime_mechanics";
193
+ sandbox: "sandbox";
194
+ skills: "skills";
195
+ subagents: "subagents";
196
+ workspace_environment: "workspace_environment";
197
+ }>;
198
+ chars: z.ZodNumber;
199
+ }, z.core.$strict>>>;
200
+ }, z.core.$strict>>;
201
+ tools: z.ZodArray<z.ZodObject<{
202
+ name: z.ZodString;
203
+ type: z.ZodString;
204
+ visibility: z.ZodEnum<{
205
+ eager: "eager";
206
+ searchable: "searchable";
207
+ }>;
208
+ description: z.ZodOptional<z.ZodString>;
209
+ namespace: z.ZodOptional<z.ZodString>;
210
+ schema: z.ZodOptional<z.ZodUnknown>;
211
+ utf8Bytes: z.ZodNumber;
212
+ estimatedTokens: z.ZodNumber;
213
+ }, z.core.$strict>>;
214
+ skills: z.ZodArray<z.ZodObject<{
215
+ kind: z.ZodEnum<{
216
+ native_tool_skill: "native_tool_skill";
217
+ preference_descriptor: "preference_descriptor";
218
+ runtime_skill: "runtime_skill";
219
+ }>;
220
+ name: z.ZodString;
221
+ description: z.ZodString;
222
+ source: z.ZodOptional<z.ZodString>;
223
+ path: z.ZodOptional<z.ZodString>;
224
+ }, z.core.$strict>>;
225
+ tokens: z.ZodObject<{
226
+ instructions: z.ZodNumber;
227
+ tools: z.ZodNumber;
228
+ prefix: z.ZodNumber;
229
+ }, z.core.$strict>;
230
+ }, z.core.$strict>;
231
+ export type ModelContextSnapshot = z.infer<typeof ModelContextSnapshot>;
232
+ export declare const SessionModelContextResponse: z.ZodObject<{
233
+ sessionId: z.ZodString;
234
+ attemptId: z.ZodNullable<z.ZodString>;
235
+ turnId: z.ZodNullable<z.ZodString>;
236
+ snapshot: z.ZodNullable<z.ZodObject<{
237
+ version: z.ZodLiteral<1>;
238
+ capturedAt: z.ZodString;
239
+ source: z.ZodLiteral<"model_request">;
240
+ requestIndex: z.ZodNumber;
241
+ instructions: z.ZodString;
242
+ providerRequest: z.ZodOptional<z.ZodObject<{
243
+ provider: z.ZodString;
244
+ body: z.ZodNullable<z.ZodString>;
245
+ unavailableReason: z.ZodOptional<z.ZodString>;
246
+ parts: z.ZodArray<z.ZodObject<{
247
+ key: z.ZodString;
248
+ estimatedTokens: z.ZodNullable<z.ZodNumber>;
249
+ utf8Bytes: z.ZodNumber;
250
+ itemEstimatedTokens: z.ZodOptional<z.ZodArray<z.ZodNullable<z.ZodNumber>>>;
251
+ }, z.core.$strict>>;
252
+ }, z.core.$strict>>;
253
+ layers: z.ZodArray<z.ZodObject<{
254
+ id: z.ZodEnum<{
255
+ builtin_skills: "builtin_skills";
256
+ code_search: "code_search";
257
+ codemode: "codemode";
258
+ genesis_title: "genesis_title";
259
+ git_bindings: "git_bindings";
260
+ identity: "identity";
261
+ operational_contract: "operational_contract";
262
+ persona_and_core: "persona_and_core";
263
+ sandbox_filesystem: "sandbox_filesystem";
264
+ sandbox_preamble: "sandbox_preamble";
265
+ sdk_capability_instructions: "sdk_capability_instructions";
266
+ sent_system_instructions: "sent_system_instructions";
267
+ session_instructions: "session_instructions";
268
+ skill_catalog: "skill_catalog";
269
+ workspace_governance: "workspace_governance";
270
+ workspace_memory: "workspace_memory";
271
+ }>;
272
+ title: z.ZodString;
273
+ content: z.ZodString;
274
+ utf8Bytes: z.ZodNumber;
275
+ estimatedTokens: z.ZodNumber;
276
+ modules: z.ZodOptional<z.ZodArray<z.ZodObject<{
277
+ id: z.ZodEnum<{
278
+ admin: "admin";
279
+ artifacts: "artifacts";
280
+ attachments: "attachments";
281
+ base_behavior: "base_behavior";
282
+ connected_machine: "connected_machine";
283
+ goals: "goals";
284
+ knowledge: "knowledge";
285
+ media: "media";
286
+ renderer_markdown: "renderer_markdown";
287
+ repositories: "repositories";
288
+ rig: "rig";
289
+ runtime_mechanics: "runtime_mechanics";
290
+ sandbox: "sandbox";
291
+ skills: "skills";
292
+ subagents: "subagents";
293
+ workspace_environment: "workspace_environment";
294
+ }>;
295
+ chars: z.ZodNumber;
296
+ }, z.core.$strict>>>;
297
+ }, z.core.$strict>>;
298
+ tools: z.ZodArray<z.ZodObject<{
299
+ name: z.ZodString;
300
+ type: z.ZodString;
301
+ visibility: z.ZodEnum<{
302
+ eager: "eager";
303
+ searchable: "searchable";
304
+ }>;
305
+ description: z.ZodOptional<z.ZodString>;
306
+ namespace: z.ZodOptional<z.ZodString>;
307
+ schema: z.ZodOptional<z.ZodUnknown>;
308
+ utf8Bytes: z.ZodNumber;
309
+ estimatedTokens: z.ZodNumber;
310
+ }, z.core.$strict>>;
311
+ skills: z.ZodArray<z.ZodObject<{
312
+ kind: z.ZodEnum<{
313
+ native_tool_skill: "native_tool_skill";
314
+ preference_descriptor: "preference_descriptor";
315
+ runtime_skill: "runtime_skill";
316
+ }>;
317
+ name: z.ZodString;
318
+ description: z.ZodString;
319
+ source: z.ZodOptional<z.ZodString>;
320
+ path: z.ZodOptional<z.ZodString>;
321
+ }, z.core.$strict>>;
322
+ tokens: z.ZodObject<{
323
+ instructions: z.ZodNumber;
324
+ tools: z.ZodNumber;
325
+ prefix: z.ZodNumber;
326
+ }, z.core.$strict>;
327
+ }, z.core.$strict>>;
328
+ }, z.core.$strict>;
329
+ export type SessionModelContextResponse = z.infer<typeof SessionModelContextResponse>;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * One display identity for a model everywhere outside the Models settings page.
3
+ *
4
+ * Catalog ids carry routing facts (`codex/`, `organization-claude-subscription/`,
5
+ * `workspace-openrouter/anthropic/...`) and custom models may have no curated
6
+ * label. People should only ever see the model itself: `GPT-6.1 Sol`,
7
+ * `Claude Opus 5.5`. The same upstream model therefore renders identically
8
+ * whether an organization or a workspace connection serves it.
9
+ *
10
+ * Pure and dependency-free so the API, SDK, React package and web app share it.
11
+ */
12
+ export type ModelVendor = "openai" | "anthropic" | "xai" | "google" | "meta" | "mistral" | "deepseek" | "moonshot" | "qwen" | "zhipu" | "nvidia";
13
+ export type ModelDisplayInput = string | {
14
+ id: string;
15
+ label?: string | null | undefined;
16
+ upstreamModelId?: string | null | undefined;
17
+ deployment?: {
18
+ upstreamModelId?: string | null | undefined;
19
+ } | null | undefined;
20
+ };
21
+ /** The upstream model slug without routing prefixes or `:variant` suffixes. */
22
+ export declare function modelSlug(value: string): string;
23
+ /** `claude-opus-5-5` → `Claude Opus 5.5`, `codex/gpt-6.1-sol` → `GPT-6.1 Sol`. */
24
+ export declare function humanizeModelSlug(value: string): string;
25
+ /**
26
+ * True when a catalog label is only the model's identifier: empty, or exactly
27
+ * its id, upstream id, or any trailing path of them (`claude-opus-4-8`,
28
+ * `anthropic/claude-sonnet-4.6`). Any other label is a curated name and wins.
29
+ */
30
+ export declare function isRawModelLabel(label: string, ids?: readonly (string | null | undefined)[]): boolean;
31
+ /**
32
+ * The clean name to show for a model: its curated catalog label when it has
33
+ * one, otherwise a readable form of the upstream model id. Never a routing
34
+ * prefix, connection id or connection scope.
35
+ */
36
+ export declare function modelDisplayName(input: ModelDisplayInput): string;
37
+ /** Who makes the model, for its logo. Null when it cannot be told. */
38
+ export declare function modelVendor(input: ModelDisplayInput): ModelVendor | null;
@@ -0,0 +1,134 @@
1
+ // src/model-display.ts
2
+ var WORDS = {
3
+ gpt: "GPT",
4
+ chatgpt: "ChatGPT",
5
+ claude: "Claude",
6
+ grok: "Grok",
7
+ gemini: "Gemini",
8
+ gemma: "Gemma",
9
+ llama: "Llama",
10
+ deepseek: "DeepSeek",
11
+ qwen: "Qwen",
12
+ glm: "GLM",
13
+ kimi: "Kimi",
14
+ mistral: "Mistral",
15
+ codestral: "Codestral",
16
+ devstral: "Devstral",
17
+ magistral: "Magistral",
18
+ nemotron: "Nemotron",
19
+ oss: "OSS"
20
+ };
21
+ function modelSlug(value) {
22
+ const last = value.split("/").filter(Boolean).at(-1) ?? value;
23
+ return last.replace(/:[^:]*$/, "") || last;
24
+ }
25
+ function upstreamOf(input) {
26
+ return input.upstreamModelId?.trim() || input.deployment?.upstreamModelId?.trim() || null;
27
+ }
28
+ function titleToken(token, index) {
29
+ const lower = token.toLowerCase();
30
+ const word = WORDS[lower];
31
+ if (word) return word;
32
+ if (index === 0 && /^o\d+$/.test(lower)) return lower;
33
+ if (/^\d+(?:\.\d+)?[bkmt]$/.test(lower) || /^[a-z]\d+[a-z\d]*$/.test(lower)) {
34
+ return lower.toUpperCase();
35
+ }
36
+ if (/^\d/.test(token)) return lower;
37
+ return lower.charAt(0).toUpperCase() + lower.slice(1);
38
+ }
39
+ function humanizeModelSlug(value) {
40
+ const slug = modelSlug(value.trim()).replace(/[-_](?:\d{8}|\d{4}-\d{2}-\d{2})$/, "").replace(/[-_]latest$/i, "");
41
+ const raw = slug.split(/[-_\s]+/).filter(Boolean);
42
+ if (raw.length === 0) return value.trim() || value;
43
+ const tokens = [];
44
+ for (const token of raw) {
45
+ const previous = tokens.at(-1);
46
+ if (previous !== void 0 && /^\d{1,2}$/.test(token) && /^\d{1,2}$/.test(previous)) {
47
+ tokens[tokens.length - 1] = `${previous}.${token}`;
48
+ continue;
49
+ }
50
+ tokens.push(token);
51
+ }
52
+ const words = tokens.map(titleToken);
53
+ if (words[0] === "GPT" && words.length > 1 && /^\d/.test(words[1])) {
54
+ return [`GPT-${words[1]}`, ...words.slice(2)].join(" ");
55
+ }
56
+ return words.join(" ");
57
+ }
58
+ function isRawModelLabel(label, ids = []) {
59
+ const text = label.trim();
60
+ if (!text) return true;
61
+ return ids.some((id) => {
62
+ if (!id) return false;
63
+ const segments = id.trim().split("/").filter(Boolean);
64
+ return segments.some((_, index) => {
65
+ const tail = segments.slice(index).join("/");
66
+ return tail === text || modelSlug(tail) === text;
67
+ });
68
+ });
69
+ }
70
+ function modelDisplayName(input) {
71
+ if (typeof input === "string") {
72
+ return input.trim() && !/\s/.test(input.trim()) ? humanizeModelSlug(input) : input;
73
+ }
74
+ const upstream = upstreamOf(input);
75
+ const label = input.label?.trim();
76
+ if (label && !isRawModelLabel(label, [input.id, upstream])) return label;
77
+ return humanizeModelSlug(upstream ?? label ?? input.id);
78
+ }
79
+ var VENDOR_PATTERNS = [
80
+ ["anthropic", /^claude\b/],
81
+ ["openai", /^(?:gpt|chatgpt|o\d+|codex|dall-e|sora|text-embedding|whisper)\b/],
82
+ ["xai", /^grok\b/],
83
+ ["google", /^(?:gemini|gemma)\b/],
84
+ ["meta", /^llama\b/],
85
+ ["mistral", /^(?:mistral|codestral|devstral|magistral|ministral|pixtral)\b/],
86
+ ["deepseek", /^deepseek\b/],
87
+ ["moonshot", /^(?:kimi|moonshot)\b/],
88
+ ["qwen", /^(?:qwen|qwq)\b/],
89
+ ["zhipu", /^glm\b/],
90
+ ["nvidia", /^nemotron\b/]
91
+ ];
92
+ var VENDOR_SEGMENTS = {
93
+ anthropic: "anthropic",
94
+ openai: "openai",
95
+ "x-ai": "xai",
96
+ xai: "xai",
97
+ google: "google",
98
+ "meta-llama": "meta",
99
+ mistralai: "mistral",
100
+ deepseek: "deepseek",
101
+ moonshotai: "moonshot",
102
+ qwen: "qwen",
103
+ "z-ai": "zhipu",
104
+ nvidia: "nvidia"
105
+ };
106
+ function vendorFromSlug(slug) {
107
+ for (const [vendor, pattern] of VENDOR_PATTERNS) if (pattern.test(slug)) return vendor;
108
+ return null;
109
+ }
110
+ function modelVendor(input) {
111
+ const ids = typeof input === "string" ? [input] : [upstreamOf(input), input.id];
112
+ for (const id of ids) {
113
+ if (!id) continue;
114
+ const lower = id.trim().toLowerCase();
115
+ if (lower.startsWith("codex/")) return "openai";
116
+ if (lower.startsWith("supergrok/")) return "xai";
117
+ const vendor = vendorFromSlug(modelSlug(lower));
118
+ if (vendor) return vendor;
119
+ const segment = lower.split("/").filter(Boolean).at(-2);
120
+ if (segment && Object.hasOwn(VENDOR_SEGMENTS, segment)) return VENDOR_SEGMENTS[segment];
121
+ }
122
+ if (typeof input !== "string" && input.label) {
123
+ return vendorFromSlug(input.label.trim().toLowerCase().replace(/\s+/g, "-"));
124
+ }
125
+ return null;
126
+ }
127
+ export {
128
+ humanizeModelSlug,
129
+ isRawModelLabel,
130
+ modelDisplayName,
131
+ modelSlug,
132
+ modelVendor
133
+ };
134
+ //# sourceMappingURL=model-display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/model-display.ts"],"sourcesContent":["/**\n * One display identity for a model everywhere outside the Models settings page.\n *\n * Catalog ids carry routing facts (`codex/`, `organization-claude-subscription/`,\n * `workspace-openrouter/anthropic/...`) and custom models may have no curated\n * label. People should only ever see the model itself: `GPT-6.1 Sol`,\n * `Claude Opus 5.5`. The same upstream model therefore renders identically\n * whether an organization or a workspace connection serves it.\n *\n * Pure and dependency-free so the API, SDK, React package and web app share it.\n */\n\nexport type ModelVendor =\n | \"openai\"\n | \"anthropic\"\n | \"xai\"\n | \"google\"\n | \"meta\"\n | \"mistral\"\n | \"deepseek\"\n | \"moonshot\"\n | \"qwen\"\n | \"zhipu\"\n | \"nvidia\";\n\nexport type ModelDisplayInput =\n | string\n | {\n id: string;\n label?: string | null | undefined;\n upstreamModelId?: string | null | undefined;\n deployment?: { upstreamModelId?: string | null | undefined } | null | undefined;\n };\n\nconst WORDS: Readonly<Record<string, string>> = {\n gpt: \"GPT\",\n chatgpt: \"ChatGPT\",\n claude: \"Claude\",\n grok: \"Grok\",\n gemini: \"Gemini\",\n gemma: \"Gemma\",\n llama: \"Llama\",\n deepseek: \"DeepSeek\",\n qwen: \"Qwen\",\n glm: \"GLM\",\n kimi: \"Kimi\",\n mistral: \"Mistral\",\n codestral: \"Codestral\",\n devstral: \"Devstral\",\n magistral: \"Magistral\",\n nemotron: \"Nemotron\",\n oss: \"OSS\",\n};\n\n/** The upstream model slug without routing prefixes or `:variant` suffixes. */\nexport function modelSlug(value: string): string {\n const last = value.split(\"/\").filter(Boolean).at(-1) ?? value;\n return last.replace(/:[^:]*$/, \"\") || last;\n}\n\nfunction upstreamOf(input: Exclude<ModelDisplayInput, string>): string | null {\n return input.upstreamModelId?.trim() || input.deployment?.upstreamModelId?.trim() || null;\n}\n\nfunction titleToken(token: string, index: number): string {\n const lower = token.toLowerCase();\n const word = WORDS[lower];\n if (word) return word;\n // OpenAI reasoning series stay lowercase: o3, o4 Mini.\n if (index === 0 && /^o\\d+$/.test(lower)) return lower;\n // Sizes and lettered versions read as identifiers: 120B, V4, K3, A12B.\n if (/^\\d+(?:\\.\\d+)?[bkmt]$/.test(lower) || /^[a-z]\\d+[a-z\\d]*$/.test(lower)) {\n return lower.toUpperCase();\n }\n if (/^\\d/.test(token)) return lower;\n return lower.charAt(0).toUpperCase() + lower.slice(1);\n}\n\n/** `claude-opus-5-5` → `Claude Opus 5.5`, `codex/gpt-6.1-sol` → `GPT-6.1 Sol`. */\nexport function humanizeModelSlug(value: string): string {\n const slug = modelSlug(value.trim())\n // Snapshot dates are release detail, not a different model name.\n .replace(/[-_](?:\\d{8}|\\d{4}-\\d{2}-\\d{2})$/, \"\")\n .replace(/[-_]latest$/i, \"\");\n const raw = slug.split(/[-_\\s]+/).filter(Boolean);\n if (raw.length === 0) return value.trim() || value;\n // Consecutive short numbers are one version: 5-5 → 5.5, 3-5 → 3.5. Longer\n // numbers are snapshots (gpt-4-1106-preview), never a minor version.\n const tokens: string[] = [];\n for (const token of raw) {\n const previous = tokens.at(-1);\n if (previous !== undefined && /^\\d{1,2}$/.test(token) && /^\\d{1,2}$/.test(previous)) {\n tokens[tokens.length - 1] = `${previous}.${token}`;\n continue;\n }\n tokens.push(token);\n }\n const words = tokens.map(titleToken);\n // OpenAI's own spelling joins family and version: GPT-6.1, GPT-4o.\n if (words[0] === \"GPT\" && words.length > 1 && /^\\d/.test(words[1]!)) {\n return [`GPT-${words[1]}`, ...words.slice(2)].join(\" \");\n }\n return words.join(\" \");\n}\n\n/**\n * True when a catalog label is only the model's identifier: empty, or exactly\n * its id, upstream id, or any trailing path of them (`claude-opus-4-8`,\n * `anthropic/claude-sonnet-4.6`). Any other label is a curated name and wins.\n */\nexport function isRawModelLabel(\n label: string,\n ids: readonly (string | null | undefined)[] = [],\n): boolean {\n const text = label.trim();\n if (!text) return true;\n return ids.some((id) => {\n if (!id) return false;\n const segments = id.trim().split(\"/\").filter(Boolean);\n return segments.some((_, index) => {\n const tail = segments.slice(index).join(\"/\");\n return tail === text || modelSlug(tail) === text;\n });\n });\n}\n\n/**\n * The clean name to show for a model: its curated catalog label when it has\n * one, otherwise a readable form of the upstream model id. Never a routing\n * prefix, connection id or connection scope.\n */\nexport function modelDisplayName(input: ModelDisplayInput): string {\n if (typeof input === \"string\") {\n // A bare id is humanized; text with spaces is already a name (\"Workspace default\").\n return input.trim() && !/\\s/.test(input.trim()) ? humanizeModelSlug(input) : input;\n }\n const upstream = upstreamOf(input);\n const label = input.label?.trim();\n if (label && !isRawModelLabel(label, [input.id, upstream])) return label;\n return humanizeModelSlug(upstream ?? label ?? input.id);\n}\n\nconst VENDOR_PATTERNS: ReadonlyArray<readonly [ModelVendor, RegExp]> = [\n [\"anthropic\", /^claude\\b/],\n [\"openai\", /^(?:gpt|chatgpt|o\\d+|codex|dall-e|sora|text-embedding|whisper)\\b/],\n [\"xai\", /^grok\\b/],\n [\"google\", /^(?:gemini|gemma)\\b/],\n [\"meta\", /^llama\\b/],\n [\"mistral\", /^(?:mistral|codestral|devstral|magistral|ministral|pixtral)\\b/],\n [\"deepseek\", /^deepseek\\b/],\n [\"moonshot\", /^(?:kimi|moonshot)\\b/],\n [\"qwen\", /^(?:qwen|qwq)\\b/],\n [\"zhipu\", /^glm\\b/],\n [\"nvidia\", /^nemotron\\b/],\n];\n\n/** OpenRouter / Gateway vendor path segments (`anthropic/claude-…`). */\nconst VENDOR_SEGMENTS: Readonly<Record<string, ModelVendor>> = {\n anthropic: \"anthropic\",\n openai: \"openai\",\n \"x-ai\": \"xai\",\n xai: \"xai\",\n google: \"google\",\n \"meta-llama\": \"meta\",\n mistralai: \"mistral\",\n deepseek: \"deepseek\",\n moonshotai: \"moonshot\",\n qwen: \"qwen\",\n \"z-ai\": \"zhipu\",\n nvidia: \"nvidia\",\n};\n\nfunction vendorFromSlug(slug: string): ModelVendor | null {\n for (const [vendor, pattern] of VENDOR_PATTERNS) if (pattern.test(slug)) return vendor;\n return null;\n}\n\n/** Who makes the model, for its logo. Null when it cannot be told. */\nexport function modelVendor(input: ModelDisplayInput): ModelVendor | null {\n const ids = typeof input === \"string\" ? [input] : [upstreamOf(input), input.id];\n for (const id of ids) {\n if (!id) continue;\n const lower = id.trim().toLowerCase();\n if (lower.startsWith(\"codex/\")) return \"openai\";\n if (lower.startsWith(\"supergrok/\")) return \"xai\";\n const vendor = vendorFromSlug(modelSlug(lower));\n if (vendor) return vendor;\n const segment = lower.split(\"/\").filter(Boolean).at(-2);\n if (segment && Object.hasOwn(VENDOR_SEGMENTS, segment)) return VENDOR_SEGMENTS[segment]!;\n }\n if (typeof input !== \"string\" && input.label) {\n return vendorFromSlug(input.label.trim().toLowerCase().replace(/\\s+/g, \"-\"));\n }\n return null;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,25 @@
1
+ export type ModelPickerBillingClass = "opengeni_credits" | "external" | "codex_subscription" | "supergrok_subscription" | "claude_subscription" | "byok" | "organization_byok";
2
+ export type ModelPickerBillingCandidate = {
3
+ provider?: string | undefined;
4
+ providerId?: string | undefined;
5
+ source?: string | undefined;
6
+ cost?: "free" | "credits" | "subscription" | "workspace" | "organization" | undefined;
7
+ billing?: {
8
+ upstreamPayer?: string | undefined;
9
+ metering?: string | undefined;
10
+ } | undefined;
11
+ credentialSource?: {
12
+ kind?: string | undefined;
13
+ provider?: string | undefined;
14
+ } | undefined;
15
+ };
16
+ export declare function modelPickerBillingClassFor(model: ModelPickerBillingCandidate): ModelPickerBillingClass;
17
+ export declare function compareModelPickerOrder(left: {
18
+ billingClass: ModelPickerBillingClass;
19
+ selectable: boolean;
20
+ label: string;
21
+ }, right: {
22
+ billingClass: ModelPickerBillingClass;
23
+ selectable: boolean;
24
+ label: string;
25
+ }): number;