cordisx 0.1.0-beta.21 → 0.1.0-beta.22

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 (271) hide show
  1. package/THIRD_PARTY_NOTICES.md +10 -0
  2. package/dist/assets/model-brands/aws-bedrock.svg +12 -0
  3. package/dist/assets/model-brands/azure-foundry.svg +1 -0
  4. package/dist/assets/model-brands/azure-openai.svg +1 -0
  5. package/dist/assets/model-brands/cerebras.png +0 -0
  6. package/dist/assets/model-brands/claude.svg +1 -0
  7. package/dist/assets/model-brands/dashscope.svg +45 -0
  8. package/dist/assets/model-brands/deepseek.svg +3 -0
  9. package/dist/assets/model-brands/fireworks.svg +5 -0
  10. package/dist/assets/model-brands/gemini.png +0 -0
  11. package/dist/assets/model-brands/google-vertex.svg +25 -0
  12. package/dist/assets/model-brands/huggingface.svg +8 -0
  13. package/dist/assets/model-brands/kimi-dark.svg +5 -0
  14. package/dist/assets/model-brands/kimi-light.svg +5 -0
  15. package/dist/assets/model-brands/minimax-dark.svg +1 -0
  16. package/dist/assets/model-brands/minimax-light.svg +1 -0
  17. package/dist/assets/model-brands/moonshot-dark.svg +1 -0
  18. package/dist/assets/model-brands/moonshot-light.svg +1 -0
  19. package/dist/assets/model-brands/openai.svg +1 -0
  20. package/dist/assets/model-brands/opencode-dark.svg +18 -0
  21. package/dist/assets/model-brands/opencode-light.svg +18 -0
  22. package/dist/assets/model-brands/openrouter-dark.svg +3 -0
  23. package/dist/assets/model-brands/openrouter-light.svg +3 -0
  24. package/dist/assets/model-brands/siliconflow.png +0 -0
  25. package/dist/assets/model-brands/together.svg +21 -0
  26. package/dist/assets/model-brands/xai-dark.svg +19 -0
  27. package/dist/assets/model-brands/xai-light.svg +19 -0
  28. package/dist/assets/model-brands/zai-dark.svg +35 -0
  29. package/dist/assets/model-brands/zai-light.svg +35 -0
  30. package/dist/shortcut-presentation.js +19 -2
  31. package/dist/src/app-launcher/install.test.d.ts +2 -0
  32. package/dist/src/app-launcher/install.test.d.ts.map +1 -0
  33. package/dist/src/app-launcher/install.test.js +57 -0
  34. package/dist/src/app-launcher/install.test.js.map +1 -0
  35. package/dist/src/app-launcher/model.d.ts +23 -0
  36. package/dist/src/app-launcher/model.d.ts.map +1 -0
  37. package/dist/src/app-launcher/model.js +18 -0
  38. package/dist/src/app-launcher/model.js.map +1 -0
  39. package/dist/src/app-launcher/runtime.test.d.ts +2 -0
  40. package/dist/src/app-launcher/runtime.test.d.ts.map +1 -0
  41. package/dist/src/app-launcher/runtime.test.js +92 -0
  42. package/dist/src/app-launcher/runtime.test.js.map +1 -0
  43. package/dist/src/cli/activate-owned-host.d.ts +10 -0
  44. package/dist/src/cli/activate-owned-host.d.ts.map +1 -0
  45. package/dist/src/cli/activate-owned-host.js +29 -0
  46. package/dist/src/cli/activate-owned-host.js.map +1 -0
  47. package/dist/src/cli/app-command.d.ts +7 -0
  48. package/dist/src/cli/app-command.d.ts.map +1 -0
  49. package/dist/src/cli/app-command.js +111 -0
  50. package/dist/src/cli/app-command.js.map +1 -0
  51. package/dist/src/cli/app-entry.d.ts +12 -0
  52. package/dist/src/cli/app-entry.d.ts.map +1 -0
  53. package/dist/src/cli/app-entry.js +99 -0
  54. package/dist/src/cli/app-entry.js.map +1 -0
  55. package/dist/src/cli/parse.d.ts +5 -2
  56. package/dist/src/cli/parse.d.ts.map +1 -1
  57. package/dist/src/cli/parse.js +2 -1
  58. package/dist/src/cli/parse.js.map +1 -1
  59. package/dist/src/cli/run-command-dispatch.d.ts.map +1 -1
  60. package/dist/src/cli/run-command-dispatch.js +5 -0
  61. package/dist/src/cli/run-command-dispatch.js.map +1 -1
  62. package/dist/src/cli/run-command.d.ts.map +1 -1
  63. package/dist/src/cli/run-command.js +15 -3
  64. package/dist/src/cli/run-command.js.map +1 -1
  65. package/dist/src/cli/run-support.d.ts +8 -1
  66. package/dist/src/cli/run-support.d.ts.map +1 -1
  67. package/dist/src/cli/run-support.js +1 -0
  68. package/dist/src/cli/run-support.js.map +1 -1
  69. package/dist/src/cli/shortcut-entry.d.ts +2 -6
  70. package/dist/src/cli/shortcut-entry.d.ts.map +1 -1
  71. package/dist/src/cli/shortcut-entry.js +2 -25
  72. package/dist/src/cli/shortcut-entry.js.map +1 -1
  73. package/dist/src/cli/supervisor-command.d.ts.map +1 -1
  74. package/dist/src/cli/supervisor-command.js +12 -4
  75. package/dist/src/cli/supervisor-command.js.map +1 -1
  76. package/dist/src/config/home-config-model-catalogs.d.ts +13 -0
  77. package/dist/src/config/home-config-model-catalogs.d.ts.map +1 -0
  78. package/dist/src/config/home-config-model-catalogs.js +107 -0
  79. package/dist/src/config/home-config-model-catalogs.js.map +1 -0
  80. package/dist/src/config/home-config.d.ts +3 -0
  81. package/dist/src/config/home-config.d.ts.map +1 -1
  82. package/dist/src/config/home-config.js +10 -8
  83. package/dist/src/config/home-config.js.map +1 -1
  84. package/dist/src/current-user-native-pins.d.ts +6 -0
  85. package/dist/src/current-user-native-pins.d.ts.map +1 -1
  86. package/dist/src/current-user-native-pins.js +7 -0
  87. package/dist/src/current-user-native-pins.js.map +1 -1
  88. package/dist/src/launcher/codex-config-model-providers.d.ts +9 -1
  89. package/dist/src/launcher/codex-config-model-providers.d.ts.map +1 -1
  90. package/dist/src/launcher/codex-config-model-providers.js +86 -23
  91. package/dist/src/launcher/codex-config-model-providers.js.map +1 -1
  92. package/dist/src/launcher/model-catalog/abort.d.ts +3 -0
  93. package/dist/src/launcher/model-catalog/abort.d.ts.map +1 -0
  94. package/dist/src/launcher/model-catalog/abort.js +16 -0
  95. package/dist/src/launcher/model-catalog/abort.js.map +1 -0
  96. package/dist/src/launcher/model-catalog/atomic-store.d.ts +13 -0
  97. package/dist/src/launcher/model-catalog/atomic-store.d.ts.map +1 -0
  98. package/dist/src/launcher/model-catalog/atomic-store.js +85 -0
  99. package/dist/src/launcher/model-catalog/atomic-store.js.map +1 -0
  100. package/dist/src/launcher/model-catalog/builtin-registry.d.ts +4 -0
  101. package/dist/src/launcher/model-catalog/builtin-registry.d.ts.map +1 -0
  102. package/dist/src/launcher/model-catalog/builtin-registry.js +7 -0
  103. package/dist/src/launcher/model-catalog/builtin-registry.js.map +1 -0
  104. package/dist/src/launcher/model-catalog/configured-source.d.ts +15 -0
  105. package/dist/src/launcher/model-catalog/configured-source.d.ts.map +1 -0
  106. package/dist/src/launcher/model-catalog/configured-source.js +99 -0
  107. package/dist/src/launcher/model-catalog/configured-source.js.map +1 -0
  108. package/dist/src/launcher/model-catalog/contracts.d.ts +87 -0
  109. package/dist/src/launcher/model-catalog/contracts.d.ts.map +1 -0
  110. package/dist/src/launcher/model-catalog/contracts.js +54 -0
  111. package/dist/src/launcher/model-catalog/contracts.js.map +1 -0
  112. package/dist/src/launcher/model-catalog/deepseek.d.ts +4 -0
  113. package/dist/src/launcher/model-catalog/deepseek.d.ts.map +1 -0
  114. package/dist/src/launcher/model-catalog/deepseek.js +123 -0
  115. package/dist/src/launcher/model-catalog/deepseek.js.map +1 -0
  116. package/dist/src/launcher/model-catalog/file-source.d.ts +10 -0
  117. package/dist/src/launcher/model-catalog/file-source.d.ts.map +1 -0
  118. package/dist/src/launcher/model-catalog/file-source.js +136 -0
  119. package/dist/src/launcher/model-catalog/file-source.js.map +1 -0
  120. package/dist/src/launcher/model-catalog/managed-catalog-composition.d.ts +33 -0
  121. package/dist/src/launcher/model-catalog/managed-catalog-composition.d.ts.map +1 -0
  122. package/dist/src/launcher/model-catalog/managed-catalog-composition.js +528 -0
  123. package/dist/src/launcher/model-catalog/managed-catalog-composition.js.map +1 -0
  124. package/dist/src/launcher/model-catalog/managed-catalog-state.d.ts +16 -0
  125. package/dist/src/launcher/model-catalog/managed-catalog-state.d.ts.map +1 -0
  126. package/dist/src/launcher/model-catalog/managed-catalog-state.js +130 -0
  127. package/dist/src/launcher/model-catalog/managed-catalog-state.js.map +1 -0
  128. package/dist/src/launcher/model-catalog/managed-provider-api.d.ts +14 -0
  129. package/dist/src/launcher/model-catalog/managed-provider-api.d.ts.map +1 -0
  130. package/dist/src/launcher/model-catalog/managed-provider-api.js +53 -0
  131. package/dist/src/launcher/model-catalog/managed-provider-api.js.map +1 -0
  132. package/dist/src/launcher/model-catalog/managed-provider-capture.d.ts +4 -0
  133. package/dist/src/launcher/model-catalog/managed-provider-capture.d.ts.map +1 -0
  134. package/dist/src/launcher/model-catalog/managed-provider-capture.js +71 -0
  135. package/dist/src/launcher/model-catalog/managed-provider-capture.js.map +1 -0
  136. package/dist/src/launcher/model-catalog/managed-provider-owner.d.ts +38 -0
  137. package/dist/src/launcher/model-catalog/managed-provider-owner.d.ts.map +1 -0
  138. package/dist/src/launcher/model-catalog/managed-provider-owner.js +348 -0
  139. package/dist/src/launcher/model-catalog/managed-provider-owner.js.map +1 -0
  140. package/dist/src/launcher/model-catalog/managed-provider-schema.d.ts +31 -0
  141. package/dist/src/launcher/model-catalog/managed-provider-schema.d.ts.map +1 -0
  142. package/dist/src/launcher/model-catalog/managed-provider-schema.js +71 -0
  143. package/dist/src/launcher/model-catalog/managed-provider-schema.js.map +1 -0
  144. package/dist/src/launcher/model-catalog/owner-projection.d.ts +20 -0
  145. package/dist/src/launcher/model-catalog/owner-projection.d.ts.map +1 -0
  146. package/dist/src/launcher/model-catalog/owner-projection.js +37 -0
  147. package/dist/src/launcher/model-catalog/owner-projection.js.map +1 -0
  148. package/dist/src/launcher/model-catalog/registry.d.ts +7 -0
  149. package/dist/src/launcher/model-catalog/registry.d.ts.map +1 -0
  150. package/dist/src/launcher/model-catalog/registry.js +19 -0
  151. package/dist/src/launcher/model-catalog/registry.js.map +1 -0
  152. package/dist/src/launcher/model-catalog/request-capability.d.ts +10 -0
  153. package/dist/src/launcher/model-catalog/request-capability.d.ts.map +1 -0
  154. package/dist/src/launcher/model-catalog/request-capability.js +74 -0
  155. package/dist/src/launcher/model-catalog/request-capability.js.map +1 -0
  156. package/dist/src/launcher/model-catalog/script-composition.d.ts +18 -0
  157. package/dist/src/launcher/model-catalog/script-composition.d.ts.map +1 -0
  158. package/dist/src/launcher/model-catalog/script-composition.js +25 -0
  159. package/dist/src/launcher/model-catalog/script-composition.js.map +1 -0
  160. package/dist/src/launcher/model-catalog/script-executor.d.ts +5 -0
  161. package/dist/src/launcher/model-catalog/script-executor.d.ts.map +1 -0
  162. package/dist/src/launcher/model-catalog/script-executor.js +140 -0
  163. package/dist/src/launcher/model-catalog/script-executor.js.map +1 -0
  164. package/dist/src/launcher/model-catalog/script-management.d.ts +4 -0
  165. package/dist/src/launcher/model-catalog/script-management.d.ts.map +1 -0
  166. package/dist/src/launcher/model-catalog/script-management.js +29 -0
  167. package/dist/src/launcher/model-catalog/script-management.js.map +1 -0
  168. package/dist/src/launcher/model-catalog/script-output-parser.d.ts +3 -0
  169. package/dist/src/launcher/model-catalog/script-output-parser.d.ts.map +1 -0
  170. package/dist/src/launcher/model-catalog/script-output-parser.js +59 -0
  171. package/dist/src/launcher/model-catalog/script-output-parser.js.map +1 -0
  172. package/dist/src/launcher/model-catalog/script-runtime.d.ts +30 -0
  173. package/dist/src/launcher/model-catalog/script-runtime.d.ts.map +1 -0
  174. package/dist/src/launcher/model-catalog/script-runtime.js +164 -0
  175. package/dist/src/launcher/model-catalog/script-runtime.js.map +1 -0
  176. package/dist/src/launcher/model-catalog/script-schema.d.ts +42 -0
  177. package/dist/src/launcher/model-catalog/script-schema.d.ts.map +1 -0
  178. package/dist/src/launcher/model-catalog/script-schema.js +129 -0
  179. package/dist/src/launcher/model-catalog/script-schema.js.map +1 -0
  180. package/dist/src/launcher/model-catalog/script-types.d.ts +84 -0
  181. package/dist/src/launcher/model-catalog/script-types.d.ts.map +1 -0
  182. package/dist/src/launcher/model-catalog/script-types.js +9 -0
  183. package/dist/src/launcher/model-catalog/script-types.js.map +1 -0
  184. package/dist/src/launcher/model-catalog/service.d.ts +39 -0
  185. package/dist/src/launcher/model-catalog/service.d.ts.map +1 -0
  186. package/dist/src/launcher/model-catalog/service.js +292 -0
  187. package/dist/src/launcher/model-catalog/service.js.map +1 -0
  188. package/dist/src/launcher/model-catalog/supplement.d.ts +4 -0
  189. package/dist/src/launcher/model-catalog/supplement.d.ts.map +1 -0
  190. package/dist/src/launcher/model-catalog/supplement.js +44 -0
  191. package/dist/src/launcher/model-catalog/supplement.js.map +1 -0
  192. package/dist/src/launcher/native-model-provider-catalog.d.ts +6 -1
  193. package/dist/src/launcher/native-model-provider-catalog.d.ts.map +1 -1
  194. package/dist/src/launcher/native-model-provider-catalog.js +16 -3
  195. package/dist/src/launcher/native-model-provider-catalog.js.map +1 -1
  196. package/dist/src/launcher/native-submission-cdp-channel.d.ts +7 -0
  197. package/dist/src/launcher/native-submission-cdp-channel.d.ts.map +1 -1
  198. package/dist/src/launcher/native-submission-cdp-channel.js +54 -7
  199. package/dist/src/launcher/native-submission-cdp-channel.js.map +1 -1
  200. package/dist/src/launcher/native-submission-composition.d.ts +6 -0
  201. package/dist/src/launcher/native-submission-composition.d.ts.map +1 -1
  202. package/dist/src/launcher/native-submission-composition.js +58 -8
  203. package/dist/src/launcher/native-submission-composition.js.map +1 -1
  204. package/dist/src/launcher/native-submission-controller.d.ts +1 -0
  205. package/dist/src/launcher/native-submission-controller.d.ts.map +1 -1
  206. package/dist/src/launcher/native-submission-controller.js +24 -3
  207. package/dist/src/launcher/native-submission-controller.js.map +1 -1
  208. package/dist/src/launcher/native-submission-structure.d.ts.map +1 -1
  209. package/dist/src/launcher/native-submission-structure.js +15 -1
  210. package/dist/src/launcher/native-submission-structure.js.map +1 -1
  211. package/dist/src/launcher/secret-resolver.d.ts.map +1 -1
  212. package/dist/src/launcher/secret-resolver.js +3 -0
  213. package/dist/src/launcher/secret-resolver.js.map +1 -1
  214. package/dist/src/model-catalog/management-overlay.d.ts +67 -0
  215. package/dist/src/model-catalog/management-overlay.d.ts.map +1 -0
  216. package/dist/src/model-catalog/management-overlay.js +193 -0
  217. package/dist/src/model-catalog/management-overlay.js.map +1 -0
  218. package/dist/src/model-catalog-management.d.ts +130 -0
  219. package/dist/src/model-catalog-management.d.ts.map +1 -0
  220. package/dist/src/model-catalog-management.js +2 -0
  221. package/dist/src/model-catalog-management.js.map +1 -0
  222. package/dist/src/model-selector-branding.d.ts +24 -0
  223. package/dist/src/model-selector-branding.d.ts.map +1 -0
  224. package/dist/src/model-selector-branding.js +201 -0
  225. package/dist/src/model-selector-branding.js.map +1 -0
  226. package/dist/src/renderer/adapter/native-model-provider-interaction.d.ts +4 -0
  227. package/dist/src/renderer/adapter/native-model-provider-interaction.d.ts.map +1 -0
  228. package/dist/src/renderer/adapter/native-model-provider-interaction.js +45 -0
  229. package/dist/src/renderer/adapter/native-model-provider-interaction.js.map +1 -0
  230. package/dist/src/renderer/adapter/native-model-provider-seat.d.ts +2 -0
  231. package/dist/src/renderer/adapter/native-model-provider-seat.d.ts.map +1 -1
  232. package/dist/src/renderer/adapter/native-model-provider-seat.js +7 -7
  233. package/dist/src/renderer/adapter/native-model-provider-seat.js.map +1 -1
  234. package/dist/src/renderer/current-user/native.d.ts +17 -1
  235. package/dist/src/renderer/current-user/native.d.ts.map +1 -1
  236. package/dist/src/renderer/current-user/native.js +20 -7
  237. package/dist/src/renderer/current-user/native.js.map +1 -1
  238. package/dist/src/renderer/host-ui/HostMenu.d.ts +2 -1
  239. package/dist/src/renderer/host-ui/HostMenu.d.ts.map +1 -1
  240. package/dist/src/renderer/host-ui/HostMenu.js +13 -4
  241. package/dist/src/renderer/host-ui/HostMenu.js.map +1 -1
  242. package/dist/src/renderer/host-ui/ModelBrandIcon.d.ts +8 -0
  243. package/dist/src/renderer/host-ui/ModelBrandIcon.d.ts.map +1 -0
  244. package/dist/src/renderer/host-ui/ModelBrandIcon.js +93 -0
  245. package/dist/src/renderer/host-ui/ModelBrandIcon.js.map +1 -0
  246. package/dist/src/renderer/install-model-provider-selector.d.ts.map +1 -1
  247. package/dist/src/renderer/install-model-provider-selector.js +23 -7
  248. package/dist/src/renderer/install-model-provider-selector.js.map +1 -1
  249. package/dist/src/renderer/model-provider-selector.d.ts +2 -1
  250. package/dist/src/renderer/model-provider-selector.d.ts.map +1 -1
  251. package/dist/src/renderer/model-provider-selector.js +46 -12
  252. package/dist/src/renderer/model-provider-selector.js.map +1 -1
  253. package/dist/src/renderer/model-providers.css +14 -1
  254. package/dist/src/renderer/model-providers.d.ts +17 -2
  255. package/dist/src/renderer/model-providers.d.ts.map +1 -1
  256. package/dist/src/renderer/model-providers.js +51 -1
  257. package/dist/src/renderer/model-providers.js.map +1 -1
  258. package/dist/src/renderer/native-model-provider-transport.d.ts +1 -0
  259. package/dist/src/renderer/native-model-provider-transport.d.ts.map +1 -1
  260. package/dist/src/renderer/native-model-provider-transport.js +36 -6
  261. package/dist/src/renderer/native-model-provider-transport.js.map +1 -1
  262. package/dist/src/renderer/native-provider-selection-client.d.ts +6 -0
  263. package/dist/src/renderer/native-provider-selection-client.d.ts.map +1 -1
  264. package/dist/src/renderer/native-provider-selection-client.js.map +1 -1
  265. package/dist/src/shortcuts/native.d.ts +2 -0
  266. package/dist/src/shortcuts/native.d.ts.map +1 -1
  267. package/dist/src/shortcuts/native.js +7 -0
  268. package/dist/src/shortcuts/native.js.map +1 -1
  269. package/package.json +1 -1
  270. package/third_party/lobe-icons-MIT.txt +21 -0
  271. package/third_party/openai-apps-sdk-ui-MIT.txt +19 -0
@@ -0,0 +1,54 @@
1
+ export class CatalogError extends Error {
2
+ code;
3
+ retryAfterMs;
4
+ constructor(code, retryAfterMs) {
5
+ super(code);
6
+ this.code = code;
7
+ this.retryAfterMs = retryAfterMs;
8
+ }
9
+ }
10
+ export const object = (value) => value !== null && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
11
+ export function boundedString(value, max = 512) {
12
+ return typeof value === 'string' && value.trim().length > 0 && value.length <= max
13
+ && !/[\u0000-\u001f\u007f]/u.test(value);
14
+ }
15
+ export function catalogModels(ids) {
16
+ if (!Array.isArray(ids) || ids.length > 10_000 || ids.some(id => !boundedString(id))) {
17
+ throw new CatalogError('source-invalid');
18
+ }
19
+ return Object.freeze([...new Set(ids)].sort().map(id => Object.freeze({ id, label: id, aliases: Object.freeze([]) })));
20
+ }
21
+ export function parseCatalogStrategy(value) {
22
+ const source = object(value);
23
+ if (!source)
24
+ throw new CatalogError('source-invalid');
25
+ const exact = (keys) => Object.keys(source).every(key => keys.includes(key));
26
+ const mode = source.mode;
27
+ if (source.kind === 'native' && exact(['kind', 'mode']) && (mode === undefined || mode === 'only' || mode === 'augment')) {
28
+ return Object.freeze({ kind: 'native', ...(mode === undefined ? {} : { mode }) });
29
+ }
30
+ if (source.kind === 'manual') {
31
+ if (exact(['kind', 'ids']) && source.ids !== undefined) {
32
+ return Object.freeze({ kind: 'manual', ids: Object.freeze(catalogModels(source.ids).map(model => model.id)) });
33
+ }
34
+ if (exact(['kind', 'file']) && boundedString(source.file, 4096) && !/^[a-z]+:\/\//iu.test(source.file)) {
35
+ return Object.freeze({ kind: 'manual', file: source.file });
36
+ }
37
+ }
38
+ if (source.kind === 'auto' && exact(['kind', 'adapter', 'ttlMs', 'mode'])
39
+ && (mode === undefined || mode === 'only' || mode === 'augment')) {
40
+ const adapter = source.adapter ?? 'detect';
41
+ const ttlMs = source.ttlMs ?? 3_600_000;
42
+ if (boundedString(adapter, 128) && Number.isSafeInteger(ttlMs) && Number(ttlMs) >= 60_000
43
+ && Number(ttlMs) <= 86_400_000) {
44
+ return Object.freeze({ kind: 'auto', adapter, ttlMs: Number(ttlMs), ...(mode === undefined ? {} : { mode }) });
45
+ }
46
+ }
47
+ if (source.kind === 'script' && exact(['kind', 'commandRef', 'mode']) && boundedString(source.commandRef, 128)
48
+ && (mode === undefined || mode === 'replace' || mode === 'supplement')) {
49
+ // A recognized strategy is not an execution grant. The runner is not implemented.
50
+ return Object.freeze({ kind: 'script', commandRef: source.commandRef, ...(mode === undefined ? {} : { mode }) });
51
+ }
52
+ throw new CatalogError('source-invalid');
53
+ }
54
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../src/launcher/model-catalog/contracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type DiscoveryAdapter } from './contracts.js';
2
+ export declare function isDeepSeekOfficialEndpoint(endpoint: string): boolean;
3
+ export declare function deepSeekDiscoveryAdapter(): DiscoveryAdapter;
4
+ //# sourceMappingURL=deepseek.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepseek.d.ts","sourceRoot":"","sources":["../../../../src/launcher/model-catalog/deepseek.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EAGtB,MAAM,gBAAgB,CAAA;AAGvB,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAKpE;AAkDD,wBAAgB,wBAAwB,IAAI,gBAAgB,CA4D3D"}
@@ -0,0 +1,123 @@
1
+ import { boundedString, CatalogError, catalogModels, object, } from './contracts.js';
2
+ import { withAbort } from './abort.js';
3
+ export function isDeepSeekOfficialEndpoint(endpoint) {
4
+ // Check spelling before URL normalization can discard dot segments or empty delimiters.
5
+ if (!/^https:\/\/api\.deepseek\.com(?::443)?\/?$/u.test(endpoint))
6
+ return false;
7
+ const url = new URL(endpoint);
8
+ return url.origin === 'https://api.deepseek.com' && url.pathname === '/';
9
+ }
10
+ function statusError(response) {
11
+ const status = response.status;
12
+ if (status === 401)
13
+ return new CatalogError('authentication');
14
+ if (status === 403)
15
+ return new CatalogError('permission');
16
+ if (status === 402)
17
+ return new CatalogError('account');
18
+ if (status === 429) {
19
+ const raw = response.headers.get('retry-after');
20
+ const seconds = raw === null ? NaN : Number(raw);
21
+ const delay = Number.isFinite(seconds) ? seconds * 1000 : Date.parse(raw ?? '') - Date.now();
22
+ return new CatalogError('rate-limit', Number.isFinite(delay) ? Math.max(0, delay) : undefined);
23
+ }
24
+ return new CatalogError(status >= 500 ? 'temporary' : 'protocol');
25
+ }
26
+ async function readResponse(response, signal) {
27
+ if (!response.headers.get('content-type')?.toLowerCase().includes('application/json') || !response.body) {
28
+ void response.body?.cancel().catch(() => undefined);
29
+ throw new CatalogError('protocol');
30
+ }
31
+ const reader = response.body.getReader();
32
+ const cancel = () => {
33
+ void reader.cancel().catch(() => undefined);
34
+ };
35
+ signal.addEventListener('abort', cancel, { once: true });
36
+ const chunks = [];
37
+ let size = 0;
38
+ try {
39
+ while (true) {
40
+ signal.throwIfAborted();
41
+ const { done, value } = await reader.read();
42
+ signal.throwIfAborted();
43
+ if (done)
44
+ break;
45
+ size += value.byteLength;
46
+ if (size > 1024 * 1024)
47
+ throw new CatalogError('protocol');
48
+ chunks.push(value);
49
+ }
50
+ try {
51
+ return JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(Buffer.concat(chunks)));
52
+ }
53
+ catch {
54
+ throw new CatalogError('protocol');
55
+ }
56
+ }
57
+ finally {
58
+ signal.removeEventListener('abort', cancel);
59
+ void reader.cancel().catch(() => undefined);
60
+ reader.releaseLock();
61
+ }
62
+ }
63
+ export function deepSeekDiscoveryAdapter() {
64
+ return Object.freeze({
65
+ id: 'deepseek-official',
66
+ version: '2',
67
+ pagination: 'none',
68
+ matches: isDeepSeekOfficialEndpoint,
69
+ async discover(connection, externalSignal) {
70
+ if (!isDeepSeekOfficialEndpoint(connection.endpoint))
71
+ throw new CatalogError('unsupported');
72
+ const timeout = new AbortController();
73
+ const timer = setTimeout(() => timeout.abort(), 10_000);
74
+ timer.unref?.();
75
+ const signal = AbortSignal.any([externalSignal, timeout.signal]);
76
+ try {
77
+ signal.throwIfAborted();
78
+ if (!connection.current())
79
+ throw new CatalogError('cancelled');
80
+ const response = await withAbort(connection.request({ origin: 'https://api.deepseek.com', method: 'GET', path: '/models' }, signal), signal);
81
+ if (response.status !== 200) {
82
+ void response.body?.cancel().catch(() => undefined);
83
+ throw statusError(response);
84
+ }
85
+ if (response.redirected || (response.url && response.url !== 'https://api.deepseek.com/models')) {
86
+ void response.body?.cancel().catch(() => undefined);
87
+ throw new CatalogError('protocol');
88
+ }
89
+ const body = object(await readResponse(response, signal));
90
+ if (!body || body.object !== 'list' || !Array.isArray(body.data) || body.data.length > 1000
91
+ || body.has_more === true || body.nextCursor != null || body.next_cursor != null)
92
+ throw new CatalogError('protocol');
93
+ const ids = body.data.map(item => {
94
+ const model = object(item);
95
+ if (!model || model.object !== 'model' || !boundedString(model.id) || !boundedString(model.owned_by, 256)) {
96
+ throw new CatalogError('protocol');
97
+ }
98
+ return model.id;
99
+ });
100
+ if (!connection.current())
101
+ throw new CatalogError('cancelled');
102
+ // Official Codex integration documents these exact IDs. Unknown and legacy IDs stay unconfirmed.
103
+ return Object.freeze(catalogModels(ids).map(model => Object.freeze({
104
+ ...model,
105
+ protocolCapabilities: Object.freeze({
106
+ responses: ['deepseek-flash', 'deepseek-v4-pro'].includes(model.id),
107
+ }),
108
+ })));
109
+ }
110
+ catch (error) {
111
+ if (externalSignal.aborted)
112
+ throw new CatalogError('cancelled');
113
+ if (error instanceof CatalogError)
114
+ throw error;
115
+ throw new CatalogError(signal.aborted || error instanceof TypeError ? 'temporary' : 'protocol');
116
+ }
117
+ finally {
118
+ clearTimeout(timer);
119
+ }
120
+ },
121
+ });
122
+ }
123
+ //# sourceMappingURL=deepseek.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepseek.js","sourceRoot":"","sources":["../../../../src/launcher/model-catalog/deepseek.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { type CatalogModel } from './contracts.js';
2
+ export declare function readCatalogFile(file: string, signal?: AbortSignal): Promise<readonly CatalogModel[]>;
3
+ /** Watch parent directories so atomic-save renames do not strand an inode watcher. */
4
+ export declare function watchCatalogFiles(files: readonly string[], changed: () => void, options?: {
5
+ debounceMs?: number;
6
+ reconcileMs?: number;
7
+ }): {
8
+ dispose(): void;
9
+ };
10
+ //# sourceMappingURL=file-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-source.d.ts","sourceRoot":"","sources":["../../../../src/launcher/model-catalog/file-source.ts"],"names":[],"mappings":"AAGA,OAAO,EAA+B,KAAK,YAAY,EAAU,MAAM,gBAAgB,CAAA;AAEvF,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAoC1G;AAED,sFAAsF;AACtF,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,EAAE,MAAM,IAAI,EACnB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D;IAAE,OAAO,IAAI,IAAI,CAAA;CAAE,CA0ErB"}
@@ -0,0 +1,136 @@
1
+ import { watch } from 'node:fs';
2
+ import { open, stat } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { boundedString, CatalogError, object } from './contracts.js';
5
+ export async function readCatalogFile(file, signal) {
6
+ const handle = await open(file, 'r');
7
+ try {
8
+ signal?.throwIfAborted();
9
+ const before = await handle.stat();
10
+ if (!before.isFile() || before.size > 32 * 1024 * 1024)
11
+ throw new CatalogError('source-invalid');
12
+ // Read one byte beyond the budget, even if a writer grows the file after stat.
13
+ const bytes = Buffer.alloc(Math.min(before.size + 1, 32 * 1024 * 1024 + 1));
14
+ const { bytesRead } = await handle.read(bytes, 0, bytes.length, 0);
15
+ const after = await handle.stat();
16
+ signal?.throwIfAborted();
17
+ if (bytesRead !== before.size || before.size !== after.size || before.mtimeMs !== after.mtimeMs) {
18
+ throw new CatalogError('source-invalid');
19
+ }
20
+ const body = object(JSON.parse(bytes.subarray(0, bytesRead).toString('utf8')));
21
+ if (!Array.isArray(body?.models) || body.models.length > 10_000)
22
+ throw new CatalogError('source-invalid');
23
+ const models = new Map();
24
+ for (const item of body.models) {
25
+ const model = object(item);
26
+ const id = model?.id ?? model?.slug;
27
+ const label = model?.label ?? model?.display_name ?? id;
28
+ const aliases = model?.aliases ?? [];
29
+ if (!boundedString(id) || !boundedString(label, 256) || !Array.isArray(aliases)
30
+ || aliases.length > 128 || aliases.some(alias => !boundedString(alias, 256))) {
31
+ throw new CatalogError('source-invalid');
32
+ }
33
+ if (!models.has(id))
34
+ models.set(id, Object.freeze({ id, label, aliases: Object.freeze([...aliases]) }));
35
+ }
36
+ return Object.freeze([...models.values()].sort((a, b) => a.id < b.id ? -1 : a.id > b.id ? 1 : 0));
37
+ }
38
+ catch {
39
+ throw new CatalogError('source-invalid');
40
+ }
41
+ finally {
42
+ await handle.close();
43
+ }
44
+ }
45
+ /** Watch parent directories so atomic-save renames do not strand an inode watcher. */
46
+ export function watchCatalogFiles(files, changed, options = {}) {
47
+ const paths = [...new Set(files.map(file => path.resolve(file)))];
48
+ if (paths.length > 256)
49
+ throw new Error('Too many catalog files');
50
+ const watchers = [];
51
+ let disposed = false;
52
+ let debounce;
53
+ let maximum;
54
+ let polling = false;
55
+ let signatures;
56
+ const flush = () => {
57
+ if (debounce)
58
+ clearTimeout(debounce);
59
+ if (maximum)
60
+ clearTimeout(maximum);
61
+ debounce = maximum = undefined;
62
+ if (!disposed)
63
+ changed();
64
+ };
65
+ const dirty = () => {
66
+ if (disposed)
67
+ return;
68
+ if (debounce)
69
+ clearTimeout(debounce);
70
+ debounce = setTimeout(flush, options.debounceMs ?? 250);
71
+ debounce.unref?.();
72
+ maximum ??= setTimeout(flush, 2000);
73
+ maximum.unref?.();
74
+ };
75
+ const directories = new Map();
76
+ for (const file of paths) {
77
+ const directory = path.dirname(file);
78
+ const names = directories.get(directory) ?? new Set();
79
+ names.add(path.basename(file));
80
+ directories.set(directory, names);
81
+ }
82
+ for (const [directory, names] of directories) {
83
+ try {
84
+ const watcher = watch(directory, { persistent: false }, (_event, name) => {
85
+ if (name === null || names.has(String(name)))
86
+ dirty();
87
+ });
88
+ watcher.on('error', () => {
89
+ watcher.close();
90
+ dirty();
91
+ });
92
+ watchers.push(watcher);
93
+ }
94
+ catch { /* A missing directory is handled by bounded reconciliation. */ }
95
+ }
96
+ const reconcile = async () => {
97
+ if (disposed || polling)
98
+ return;
99
+ polling = true;
100
+ try {
101
+ const next = await Promise.all(paths.map(async (file) => {
102
+ try {
103
+ const value = await stat(file);
104
+ return `${value.dev}:${value.ino}:${value.size}:${value.mtimeMs}`;
105
+ }
106
+ catch {
107
+ return 'missing';
108
+ }
109
+ }));
110
+ if (signatures && next.some((value, index) => value !== signatures[index]))
111
+ dirty();
112
+ signatures = next;
113
+ }
114
+ finally {
115
+ polling = false;
116
+ }
117
+ };
118
+ void reconcile();
119
+ const timer = setInterval(() => {
120
+ void reconcile();
121
+ }, options.reconcileMs ?? 30_000);
122
+ timer.unref?.();
123
+ return {
124
+ dispose() {
125
+ disposed = true;
126
+ clearInterval(timer);
127
+ if (debounce)
128
+ clearTimeout(debounce);
129
+ if (maximum)
130
+ clearTimeout(maximum);
131
+ for (const watcher of watchers)
132
+ watcher.close();
133
+ },
134
+ };
135
+ }
136
+ //# sourceMappingURL=file-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-source.js","sourceRoot":"","sources":["../../../../src/launcher/model-catalog/file-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { CatalogManagementCommand, CatalogManagementResult, CatalogManagementSnapshot } from '../../model-catalog-management.js';
2
+ import type { NativeModelProviderCatalogEntry } from '../native-model-provider-catalog.js';
3
+ import { ManagedProviderOwner } from './managed-provider-owner.js';
4
+ /** One profile-owned composition; its owner and all secret/configuration methods remain Node-private. */
5
+ export declare class ManagedCatalogComposition {
6
+ #private;
7
+ private readonly options;
8
+ private constructor();
9
+ static open(options: Parameters<typeof ManagedProviderOwner.open>[0] & {
10
+ capture?: (signal: AbortSignal) => Promise<string>;
11
+ responsesAvailable: boolean;
12
+ environment?: () => Readonly<Record<string, string | undefined>>;
13
+ }): Promise<ManagedCatalogComposition>;
14
+ private reconcile;
15
+ private persist;
16
+ private members;
17
+ private rows;
18
+ snapshot(): CatalogManagementSnapshot;
19
+ private revision;
20
+ catalog(): readonly NativeModelProviderCatalogEntry[];
21
+ owns(id: string): boolean;
22
+ admits(id: string, model: string): boolean;
23
+ validateSelection(id: string, model: string): Promise<boolean>;
24
+ nativeConnection(id: string): Promise<import("../managed-service-native-connection.js").NativeManagedGatewayConnectionSession>;
25
+ subscribe(listener: () => void): () => void;
26
+ private changed;
27
+ private serial;
28
+ private capture;
29
+ command(command: CatalogManagementCommand, authorized: () => boolean): Promise<CatalogManagementResult>;
30
+ private apply;
31
+ close(): Promise<void>;
32
+ }
33
+ //# sourceMappingURL=managed-catalog-composition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-catalog-composition.d.ts","sourceRoot":"","sources":["../../../../src/launcher/model-catalog/managed-catalog-composition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EAE1B,MAAM,mCAAmC,CAAA;AAM1C,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAA;AAG1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAmClE,yGAAyG;AACzG,qBAAa,yBAAyB;;IAuBlC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAH1B,OAAO;WAqDM,IAAI,CACf,OAAO,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG;QACzD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;QAClD,kBAAkB,EAAE,OAAO,CAAA;QAC3B,WAAW,CAAC,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;KACjE,GACA,OAAO,CAAC,yBAAyB,CAAC;IAerC,OAAO,CAAC,SAAS;YA+BH,OAAO;IAqBrB,OAAO,CAAC,OAAO;IAkBf,OAAO,CAAC,IAAI;IAkCZ,QAAQ,IAAI,yBAAyB;IAuFrC,OAAO,CAAC,QAAQ;IAShB,OAAO,IAAI,SAAS,+BAA+B,EAAE;IAgBrD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAGzB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAIpC,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpE,gBAAgB,CAAC,EAAE,EAAE,MAAM;IAS3B,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAM3C,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,OAAO;IAKf,OAAO,CACL,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,MAAM,OAAO,GACxB,OAAO,CAAC,uBAAuB,CAAC;YAyErB,KAAK;IA0FnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAoBvB"}