@harperfast/harper 5.2.0 → 5.2.1

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 (241) hide show
  1. package/bin/copyDb.ts +21 -4
  2. package/bin/harper.ts +20 -51
  3. package/bin/help.ts +216 -0
  4. package/components/Application.ts +236 -46
  5. package/components/ApplicationScope.ts +26 -0
  6. package/components/EntryHandler.ts +410 -105
  7. package/components/RuntimeModuleTracker.ts +189 -0
  8. package/components/Scope.ts +68 -24
  9. package/components/componentLoader.ts +70 -16
  10. package/components/deployLifecycle.ts +119 -33
  11. package/components/mcp/tools/operations.ts +6 -0
  12. package/components/operations.js +4 -6
  13. package/config/configUtils.ts +12 -9
  14. package/config-root.schema.json +10 -0
  15. package/dataLayer/harperBridge/ResourceBridge.ts +26 -5
  16. package/dataLayer/hdbInfoController.ts +8 -0
  17. package/dataLayer/schemaDescribe.ts +2 -1
  18. package/dist/bin/copyDb.js +13 -2
  19. package/dist/bin/copyDb.js.map +1 -1
  20. package/dist/bin/harper.d.ts +6 -0
  21. package/dist/bin/harper.js +18 -50
  22. package/dist/bin/harper.js.map +1 -1
  23. package/dist/bin/help.d.ts +8 -0
  24. package/dist/bin/help.js +192 -0
  25. package/dist/bin/help.js.map +1 -0
  26. package/dist/components/Application.d.ts +16 -1
  27. package/dist/components/Application.js +210 -38
  28. package/dist/components/Application.js.map +1 -1
  29. package/dist/components/ApplicationScope.d.ts +7 -0
  30. package/dist/components/ApplicationScope.js +22 -0
  31. package/dist/components/ApplicationScope.js.map +1 -1
  32. package/dist/components/EntryHandler.d.ts +4 -4
  33. package/dist/components/EntryHandler.js +386 -95
  34. package/dist/components/EntryHandler.js.map +1 -1
  35. package/dist/components/RuntimeModuleTracker.d.ts +11 -0
  36. package/dist/components/RuntimeModuleTracker.js +189 -0
  37. package/dist/components/RuntimeModuleTracker.js.map +1 -0
  38. package/dist/components/Scope.d.ts +1 -0
  39. package/dist/components/Scope.js +69 -22
  40. package/dist/components/Scope.js.map +1 -1
  41. package/dist/components/componentLoader.js +69 -10
  42. package/dist/components/componentLoader.js.map +1 -1
  43. package/dist/components/deployLifecycle.d.ts +6 -2
  44. package/dist/components/deployLifecycle.js +109 -31
  45. package/dist/components/deployLifecycle.js.map +1 -1
  46. package/dist/components/mcp/tools/operations.js +6 -0
  47. package/dist/components/mcp/tools/operations.js.map +1 -1
  48. package/dist/components/operations.js +4 -6
  49. package/dist/components/operations.js.map +1 -1
  50. package/dist/config/configUtils.js +13 -9
  51. package/dist/config/configUtils.js.map +1 -1
  52. package/dist/dataLayer/harperBridge/ResourceBridge.js +12 -5
  53. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  54. package/dist/dataLayer/hdbInfoController.js +4 -0
  55. package/dist/dataLayer/hdbInfoController.js.map +1 -1
  56. package/dist/dataLayer/schemaDescribe.js +2 -1
  57. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  58. package/dist/resources/DatabaseTransaction.d.ts +55 -0
  59. package/dist/resources/DatabaseTransaction.js +282 -103
  60. package/dist/resources/DatabaseTransaction.js.map +1 -1
  61. package/dist/resources/ResourceInterface.d.ts +8 -2
  62. package/dist/resources/ResourceInterface.js.map +1 -1
  63. package/dist/resources/Resources.js +22 -4
  64. package/dist/resources/Resources.js.map +1 -1
  65. package/dist/resources/Table.d.ts +6 -5
  66. package/dist/resources/Table.js +92 -15
  67. package/dist/resources/Table.js.map +1 -1
  68. package/dist/resources/analytics/write.js +6 -6
  69. package/dist/resources/analytics/write.js.map +1 -1
  70. package/dist/resources/blob.d.ts +0 -1
  71. package/dist/resources/blob.js +15 -7
  72. package/dist/resources/blob.js.map +1 -1
  73. package/dist/resources/databases.d.ts +22 -5
  74. package/dist/resources/databases.js +118 -9
  75. package/dist/resources/databases.js.map +1 -1
  76. package/dist/resources/jsResource.d.ts +4 -26
  77. package/dist/resources/jsResource.js +5 -59
  78. package/dist/resources/jsResource.js.map +1 -1
  79. package/dist/resources/models/Models.d.ts +11 -1
  80. package/dist/resources/models/Models.js +10 -1
  81. package/dist/resources/models/Models.js.map +1 -1
  82. package/dist/resources/models/backendRegistry.d.ts +9 -0
  83. package/dist/resources/models/backendRegistry.js +10 -0
  84. package/dist/resources/models/backendRegistry.js.map +1 -1
  85. package/dist/resources/models/openaiStream.d.ts +16 -1
  86. package/dist/resources/models/openaiStream.js +113 -21
  87. package/dist/resources/models/openaiStream.js.map +1 -1
  88. package/dist/resources/models/v1/chatCompletions.d.ts +54 -0
  89. package/dist/resources/models/v1/chatCompletions.js +115 -0
  90. package/dist/resources/models/v1/chatCompletions.js.map +1 -0
  91. package/dist/resources/models/v1/embeddings.d.ts +11 -0
  92. package/dist/resources/models/v1/embeddings.js +71 -0
  93. package/dist/resources/models/v1/embeddings.js.map +1 -0
  94. package/dist/resources/models/v1/errors.d.ts +54 -0
  95. package/dist/resources/models/v1/errors.js +130 -0
  96. package/dist/resources/models/v1/errors.js.map +1 -0
  97. package/dist/resources/models/v1/index.d.ts +36 -0
  98. package/dist/resources/models/v1/index.js +75 -0
  99. package/dist/resources/models/v1/index.js.map +1 -0
  100. package/dist/resources/models/v1/models.d.ts +26 -0
  101. package/dist/resources/models/v1/models.js +44 -0
  102. package/dist/resources/models/v1/models.js.map +1 -0
  103. package/dist/resources/models/v1/translation.d.ts +133 -0
  104. package/dist/resources/models/v1/translation.js +298 -0
  105. package/dist/resources/models/v1/translation.js.map +1 -0
  106. package/dist/resources/roles.d.ts +1 -1
  107. package/dist/resources/roles.js +54 -7
  108. package/dist/resources/roles.js.map +1 -1
  109. package/dist/security/jsLoader.js +84 -33
  110. package/dist/security/jsLoader.js.map +1 -1
  111. package/dist/security/role.js +4 -0
  112. package/dist/security/role.js.map +1 -1
  113. package/dist/security/superUserGuard.d.ts +7 -0
  114. package/dist/security/superUserGuard.js +23 -0
  115. package/dist/security/superUserGuard.js.map +1 -0
  116. package/dist/security/tokenAuthentication.d.ts +0 -1
  117. package/dist/security/tokenAuthentication.js +6 -2
  118. package/dist/security/tokenAuthentication.js.map +1 -1
  119. package/dist/security/user.d.ts +6 -1
  120. package/dist/security/user.js +23 -1
  121. package/dist/security/user.js.map +1 -1
  122. package/dist/server/http.d.ts +23 -2
  123. package/dist/server/http.js +99 -12
  124. package/dist/server/http.js.map +1 -1
  125. package/dist/server/operationsServer.d.ts +0 -2
  126. package/dist/server/operationsServer.js.map +1 -1
  127. package/dist/server/serverHelpers/multipartParser.js +9 -0
  128. package/dist/server/serverHelpers/multipartParser.js.map +1 -1
  129. package/dist/server/serverHelpers/operationAuthorizationState.d.ts +2 -0
  130. package/dist/server/serverHelpers/operationAuthorizationState.js +13 -0
  131. package/dist/server/serverHelpers/operationAuthorizationState.js.map +1 -0
  132. package/dist/server/serverHelpers/registeredOperations.d.ts +3 -2
  133. package/dist/server/serverHelpers/registeredOperations.js +14 -13
  134. package/dist/server/serverHelpers/registeredOperations.js.map +1 -1
  135. package/dist/server/serverHelpers/serverHandlers.js +19 -3
  136. package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
  137. package/dist/server/serverHelpers/serverUtilities.d.ts +1 -1
  138. package/dist/server/serverHelpers/serverUtilities.js +10 -7
  139. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  140. package/dist/server/static.js +57 -18
  141. package/dist/server/static.js.map +1 -1
  142. package/dist/server/storageReclamation.d.ts +17 -0
  143. package/dist/server/storageReclamation.js +90 -6
  144. package/dist/server/storageReclamation.js.map +1 -1
  145. package/dist/server/threads/socketRouter.js +20 -0
  146. package/dist/server/threads/socketRouter.js.map +1 -1
  147. package/dist/server/threads/threadServer.js +12 -0
  148. package/dist/server/threads/threadServer.js.map +1 -1
  149. package/dist/sqlEngine/diff/differential.js +7 -3
  150. package/dist/sqlEngine/diff/differential.js.map +1 -1
  151. package/dist/sqlTranslator/index.js +6 -1
  152. package/dist/sqlTranslator/index.js.map +1 -1
  153. package/dist/upgrade/upgradePrompt.d.ts +2 -2
  154. package/dist/upgrade/upgradePrompt.js +22 -3
  155. package/dist/upgrade/upgradePrompt.js.map +1 -1
  156. package/dist/utility/errors/commonErrors.d.ts +1 -0
  157. package/dist/utility/errors/commonErrors.js +1 -0
  158. package/dist/utility/errors/commonErrors.js.map +1 -1
  159. package/dist/utility/hdbTerms.d.ts +2 -0
  160. package/dist/utility/hdbTerms.js +2 -0
  161. package/dist/utility/hdbTerms.js.map +1 -1
  162. package/dist/utility/install/installer.js +32 -0
  163. package/dist/utility/install/installer.js.map +1 -1
  164. package/dist/utility/logging/harper_logger.d.ts +7 -0
  165. package/dist/utility/logging/harper_logger.js +57 -24
  166. package/dist/utility/logging/harper_logger.js.map +1 -1
  167. package/npm-shrinkwrap.json +197 -193
  168. package/package.json +9 -7
  169. package/resources/DatabaseTransaction.ts +310 -101
  170. package/resources/ResourceInterface.ts +8 -2
  171. package/resources/Resources.ts +22 -4
  172. package/resources/Table.ts +321 -243
  173. package/resources/analytics/write.ts +22 -20
  174. package/resources/blob.ts +15 -8
  175. package/resources/databases.ts +123 -12
  176. package/resources/jsResource.ts +5 -62
  177. package/resources/models/Models.ts +14 -1
  178. package/resources/models/backendRegistry.ts +10 -0
  179. package/resources/models/openaiStream.ts +131 -19
  180. package/resources/models/v1/chatCompletions.ts +128 -0
  181. package/resources/models/v1/embeddings.ts +70 -0
  182. package/resources/models/v1/errors.ts +141 -0
  183. package/resources/models/v1/index.ts +72 -0
  184. package/resources/models/v1/models.ts +53 -0
  185. package/resources/models/v1/translation.ts +362 -0
  186. package/resources/roles.ts +67 -7
  187. package/security/jsLoader.ts +84 -30
  188. package/security/role.ts +7 -0
  189. package/security/superUserGuard.ts +20 -0
  190. package/security/tokenAuthentication.ts +6 -3
  191. package/security/user.ts +26 -1
  192. package/server/DESIGN.md +45 -34
  193. package/server/http.ts +100 -13
  194. package/server/operationsServer.ts +0 -2
  195. package/server/serverHelpers/multipartParser.ts +9 -0
  196. package/server/serverHelpers/operationAuthorizationState.ts +11 -0
  197. package/server/serverHelpers/registeredOperations.ts +19 -15
  198. package/server/serverHelpers/serverHandlers.js +20 -3
  199. package/server/serverHelpers/serverUtilities.ts +10 -7
  200. package/server/static.ts +75 -20
  201. package/server/storageReclamation.ts +104 -8
  202. package/server/threads/socketRouter.ts +20 -0
  203. package/server/threads/threadServer.js +11 -0
  204. package/sqlTranslator/index.ts +6 -1
  205. package/static/defaultConfig.yaml +2 -0
  206. package/studio/web/assets/{Chat-DoVWScmq.js → Chat-aApwhRmz.js} +2 -2
  207. package/studio/web/assets/{Chat-DoVWScmq.js.map → Chat-aApwhRmz.js.map} +1 -1
  208. package/studio/web/assets/{FloatingChat-UZ2NsUOZ.js → FloatingChat-sC0H91n9.js} +4 -4
  209. package/studio/web/assets/{FloatingChat-UZ2NsUOZ.js.map → FloatingChat-sC0H91n9.js.map} +1 -1
  210. package/studio/web/assets/{apiToken-BUI_04o7.js → apiToken-DZ8JhHOI.js} +2 -2
  211. package/studio/web/assets/{apiToken-BUI_04o7.js.map → apiToken-DZ8JhHOI.js.map} +1 -1
  212. package/studio/web/assets/{applications-D03NA7wW.js → applications-9SEVLIO5.js} +2 -2
  213. package/studio/web/assets/{applications-D03NA7wW.js.map → applications-9SEVLIO5.js.map} +1 -1
  214. package/studio/web/assets/{index-Bh_CNAHr.js → index-Dy3uDGXb.js} +6 -6
  215. package/studio/web/assets/{index-Bh_CNAHr.js.map → index-Dy3uDGXb.js.map} +1 -1
  216. package/studio/web/assets/{index.lazy-Dx3MpyDC.js → index.lazy-CN1zq4I4.js} +4 -4
  217. package/studio/web/assets/{index.lazy-Dx3MpyDC.js.map → index.lazy-CN1zq4I4.js.map} +1 -1
  218. package/studio/web/assets/{notifications-0edoFTsb.js → notifications-BFAF07xr.js} +2 -2
  219. package/studio/web/assets/{notifications-0edoFTsb.js.map → notifications-BFAF07xr.js.map} +1 -1
  220. package/studio/web/assets/{notifications-CwKhipK7.js → notifications-CKlYVvVN.js} +2 -2
  221. package/studio/web/assets/{notifications-CwKhipK7.js.map → notifications-CKlYVvVN.js.map} +1 -1
  222. package/studio/web/assets/{profile-DUfEPQtx.js → profile-A1zhEdFG.js} +2 -2
  223. package/studio/web/assets/{profile-DUfEPQtx.js.map → profile-A1zhEdFG.js.map} +1 -1
  224. package/studio/web/assets/{setComponentFile-DMPo4UjC.js → setComponentFile-SEtBt_GV.js} +2 -2
  225. package/studio/web/assets/{setComponentFile-DMPo4UjC.js.map → setComponentFile-SEtBt_GV.js.map} +1 -1
  226. package/studio/web/assets/{setup-B56Oz1_u.js → setup-BisINqdH.js} +2 -2
  227. package/studio/web/assets/{setup-B56Oz1_u.js.map → setup-BisINqdH.js.map} +1 -1
  228. package/studio/web/assets/{status-BAod7p3o.js → status-BuQoCc7l.js} +2 -2
  229. package/studio/web/assets/{status-BAod7p3o.js.map → status-BuQoCc7l.js.map} +1 -1
  230. package/studio/web/assets/{swagger-ui-react-lQrBxfwM.js → swagger-ui-react-CAi_s1PC.js} +2 -2
  231. package/studio/web/assets/{swagger-ui-react-lQrBxfwM.js.map → swagger-ui-react-CAi_s1PC.js.map} +1 -1
  232. package/studio/web/assets/{tsMode-CrHCRjTK.js → tsMode-DT74tlkM.js} +2 -2
  233. package/studio/web/assets/{tsMode-CrHCRjTK.js.map → tsMode-DT74tlkM.js.map} +1 -1
  234. package/studio/web/assets/{useEntityRestURL-DoaBMEvU.js → useEntityRestURL-CGRGc1n7.js} +2 -2
  235. package/studio/web/assets/{useEntityRestURL-DoaBMEvU.js.map → useEntityRestURL-CGRGc1n7.js.map} +1 -1
  236. package/studio/web/index.html +1 -1
  237. package/upgrade/upgradePrompt.ts +22 -3
  238. package/utility/errors/commonErrors.ts +2 -0
  239. package/utility/hdbTerms.ts +2 -0
  240. package/utility/install/installer.ts +37 -0
  241. package/utility/logging/harper_logger.ts +57 -26
@@ -1 +1 @@
1
- {"version":3,"file":"jsResource.js","sourceRoot":"","sources":["../../resources/jsResource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsResource.js","sourceRoot":"","sources":["../../resources/jsResource.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type ModelCallAnalyticsWriter } from './analyticsTable.ts';
2
2
  import { ServerError } from '../../utility/errors/hdbError.ts';
3
- import type { Capability, DefineBackendSpec, EmbedOpts, GenerateChunk, GenerateInput, GenerateOpts, GenerateResult, ModelBackend, ModelRouter, Models as ModelsContract } from './types.ts';
3
+ import type { Capability, DefineBackendSpec, EmbedOpts, GenerateChunk, GenerateInput, GenerateOpts, GenerateResult, ModelBackend, ModelRouter, Models as ModelsContract, TokenUsage } from './types.ts';
4
4
  type MetricEmitter = (value: number, metric: string, path?: string) => void;
5
5
  /**
6
6
  * Process-wide singleton. One shared instance serves all Scopes — `scope.models`,
@@ -43,6 +43,16 @@ export declare class Models implements ModelsContract {
43
43
  */
44
44
  registerRouter(router: ModelRouter): void;
45
45
  embed(input: string | string[], opts?: EmbedOpts): Promise<Float32Array[]>;
46
+ /**
47
+ * `embed()` plus the result-level `usage` the winning backend reported (all
48
+ * built-in embedding backends provide it). Internal path for callers that must
49
+ * surface usage on the wire — the `/v1/embeddings` gateway — without changing
50
+ * the public `embed()` contract. Not part of the stable models API.
51
+ */
52
+ embedWithUsage(input: string | string[], opts?: EmbedOpts): Promise<{
53
+ vectors: Float32Array[];
54
+ usage?: TokenUsage;
55
+ }>;
46
56
  generate(input: GenerateInput, opts?: GenerateOpts): Promise<GenerateResult>;
47
57
  generateStream(input: GenerateInput, opts?: GenerateOpts): AsyncIterable<GenerateChunk>;
48
58
  }
@@ -62,6 +62,15 @@ class Models {
62
62
  (0, routing_ts_1.registerRouter)(router);
63
63
  }
64
64
  async embed(input, opts = {}) {
65
+ return (await this.embedWithUsage(input, opts)).vectors;
66
+ }
67
+ /**
68
+ * `embed()` plus the result-level `usage` the winning backend reported (all
69
+ * built-in embedding backends provide it). Internal path for callers that must
70
+ * surface usage on the wire — the `/v1/embeddings` gateway — without changing
71
+ * the public `embed()` contract. Not part of the stable models API.
72
+ */
73
+ async embedWithUsage(input, opts = {}) {
65
74
  const { accounting, signal } = resolveCallContext(opts.signal);
66
75
  const startedAt = performance.now();
67
76
  const resolved = resolveCandidates('embedding', opts.model, buildRequires('embed', opts.requires, false));
@@ -90,7 +99,7 @@ class Models {
90
99
  if (result.status !== 'completed')
91
100
  throw new ModelPendingNotSupportedError(backend.name);
92
101
  this.#record(backend, 'embed', opts.model, accounting, undefined, result, attemptStart);
93
- return result.output;
102
+ return { vectors: result.output, usage: result.usage };
94
103
  }
95
104
  catch (err) {
96
105
  this.#recordFailure(backend, 'embed', opts.model, accounting, undefined, attemptStart, err);
@@ -1 +1 @@
1
- {"version":3,"file":"Models.js","sourceRoot":"","sources":["../../../resources/models/Models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Models.js","sourceRoot":"","sources":["../../../resources/models/Models.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,15 @@ export declare function setEmbedding(logicalName: string, backend: ModelBackend)
24
24
  export declare function setGenerative(logicalName: string, backend: ModelBackend): void;
25
25
  /** Non-throwing lookup of the backend mapped to `logicalName` for `kind`, or `undefined`. Used by the router to assemble + filter candidate lists without exceptions. */
26
26
  export declare function getBackend(kind: ModelKind, logicalName: string): ModelBackend | undefined;
27
+ /**
28
+ * Enumerate all registrations for `kind` as `{logicalName, backend}` pairs. Used by
29
+ * `GET /v1/models` (#631) to advertise selectable model names; `logicalName` is what a
30
+ * caller passes as `opts.model`, not the backend's own `.name`.
31
+ */
32
+ export declare function listBackends(kind: ModelKind): Array<{
33
+ logicalName: string;
34
+ backend: ModelBackend;
35
+ }>;
27
36
  /**
28
37
  * Resolve the embedding backend mapped to `logicalName` (default: `'default'`).
29
38
  * Throws `ModelBackendNotFoundError` if no backend is mapped.
@@ -4,6 +4,7 @@ exports.ModelBackendRegistrationError = exports.ModelBackendNotFoundError = void
4
4
  exports.setEmbedding = setEmbedding;
5
5
  exports.setGenerative = setGenerative;
6
6
  exports.getBackend = getBackend;
7
+ exports.listBackends = listBackends;
7
8
  exports.resolveEmbedding = resolveEmbedding;
8
9
  exports.resolveGenerative = resolveGenerative;
9
10
  exports.registerBackend = registerBackend;
@@ -24,6 +25,15 @@ function setGenerative(logicalName, backend) {
24
25
  function getBackend(kind, logicalName) {
25
26
  return (kind === 'embedding' ? embedding : generative).get(logicalName);
26
27
  }
28
+ /**
29
+ * Enumerate all registrations for `kind` as `{logicalName, backend}` pairs. Used by
30
+ * `GET /v1/models` (#631) to advertise selectable model names; `logicalName` is what a
31
+ * caller passes as `opts.model`, not the backend's own `.name`.
32
+ */
33
+ function listBackends(kind) {
34
+ const map = kind === 'embedding' ? embedding : generative;
35
+ return [...map.entries()].map(([logicalName, backend]) => ({ logicalName, backend }));
36
+ }
27
37
  /**
28
38
  * Resolve the embedding backend mapped to `logicalName` (default: `'default'`).
29
39
  * Throws `ModelBackendNotFoundError` if no backend is mapped.
@@ -1 +1 @@
1
- {"version":3,"file":"backendRegistry.js","sourceRoot":"","sources":["../../../resources/models/backendRegistry.ts"],"names":[],"mappings":";;;AA2BA,oCAEC;AAGD,sCAEC;AAGD,gCAEC;AAMD,4CAIC;AAMD,8CAIC;AAoBD,0CAuBC;AASD,sCA6BC;AA8BD,sCAGC;AA7KD,kEAA+D;AAuB/D,MAAM,SAAS,GAA8B,IAAI,GAAG,EAAE,CAAC;AACvD,MAAM,UAAU,GAA8B,IAAI,GAAG,EAAE,CAAC;AAExD,2EAA2E;AAC3E,SAAgB,YAAY,CAAC,WAAmB,EAAE,OAAqB;IACtE,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,4EAA4E;AAC5E,SAAgB,aAAa,CAAC,WAAmB,EAAE,OAAqB;IACvE,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,yKAAyK;AACzK,SAAgB,UAAU,CAAC,IAAe,EAAE,WAAmB;IAC9D,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,cAAsB,SAAS;IAC/D,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,yBAAyB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC5E,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,cAAsB,SAAS;IAChE,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,yBAAyB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC7E,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,eAAe,CAAC,IAAe,EAAE,EAAU,EAAE,OAAqB;IACjF,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,YAAY;QAChD,MAAM,IAAI,6BAA6B,CAAC,kDAAkD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5G,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAC5C,MAAM,IAAI,6BAA6B,CAAC,uCAAuC,CAAC,CAAC;IAClF,IACC,CAAC,OAAO;QACR,OAAO,OAAO,CAAC,YAAY,KAAK,UAAU;QAC1C,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;QAChC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAEzB,MAAM,IAAI,6BAA6B,CAAC,YAAY,EAAE,yDAAyD,CAAC,CAAC;IAClH,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QAC1B,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU;YACtC,MAAM,IAAI,6BAA6B,CAAC,sBAAsB,EAAE,0BAA0B,CAAC,CAAC;QAC7F,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACP,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,UAAU;YACzF,MAAM,IAAI,6BAA6B,CACtC,uBAAuB,EAAE,iDAAiD,CAC1E,CAAC;QACH,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5B,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,IAAuB;IACpD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QACnE,MAAM,IAAI,6BAA6B,CAAC,yCAAyC,CAAC,CAAC;IACpF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IACxF,mFAAmF;IACnF,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC;IAC7C,MAAM,WAAW,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC;IACnD,MAAM,SAAS,GAAG,OAAO,cAAc,KAAK,UAAU,CAAC;IACvD,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS;QAC1C,MAAM,IAAI,6BAA6B,CACtC,YAAY,IAAI,mFAAmF,CACnG,CAAC;IACH,MAAM,YAAY,GAAsB,MAAM,CAAC,MAAM,CAAC;QACrD,KAAK,EAAE,QAAQ;QACf,kEAAkE;QAClE,QAAQ,EAAE,WAAW,IAAI,SAAS;QAClC,MAAM,EAAE,SAAS;QACjB,KAAK;QACL,QAAQ;KACR,CAAC,CAAC;IACH,MAAM,OAAO,GAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC;IACzE,IAAI,QAAQ;QAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACpC,IAAI,WAAW;QAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7C,IAAI,SAAS;QAAE,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;IACvD,gFAAgF;IAChF,4EAA4E;IAC5E,IAAI,SAAS,IAAI,CAAC,WAAW;QAAE,OAAO,CAAC,QAAQ,GAAG,4BAA4B,CAAC,cAAe,CAAC,CAAC;IAChG,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,4BAA4B,CACpC,cAA2D;IAE3D,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC5B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,YAAY,GAAmC,MAAM,CAAC;QAC1D,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YACvD,IAAI,KAAK,CAAC,YAAY;gBAAE,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC;YACtD,IAAI,KAAK,CAAC,YAAY;gBAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YAC1D,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;gBAC7C,IAAI,OAAO,EAAE,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ;oBAAE,SAAS,CAAC,IAAI,CAAC,EAAc,CAAC,CAAC;YAC9F,CAAC;QACF,CAAC;QACD,MAAM,MAAM,GACX,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QACzF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IACxC,CAAC,CAAC;AACH,CAAC;AAED,mDAAmD;AACnD,SAAgB,aAAa;IAC5B,SAAS,CAAC,KAAK,EAAE,CAAC;IAClB,UAAU,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC;AAED,MAAa,yBAA0B,SAAQ,yBAAW;IACzD,0EAA0E;IAC1E,2EAA2E;IAC3E,YAAY,IAAe,EAAE,WAAmB;QAC/C,KAAK,CAAC,8BAA8B,IAAI,IAAI,WAAW,GAAG,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IACzC,CAAC;CACD;AAPD,8DAOC;AAED,mFAAmF;AACnF,MAAa,6BAA8B,SAAQ,yBAAW;IAC7D,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAC7C,CAAC;CACD;AALD,sEAKC"}
1
+ {"version":3,"file":"backendRegistry.js","sourceRoot":"","sources":["../../../resources/models/backendRegistry.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,19 @@ export interface OpenAIStreamOptions {
17
17
  model?: string;
18
18
  /** Reuse a caller-supplied completion id across all chunks; one is generated when omitted. */
19
19
  id?: string;
20
+ /**
21
+ * Map a mid-stream backend error to an OpenAI error body for a final `data: {error}`
22
+ * SSE frame. Lets the v1 gateway reuse its `toOpenAIError` mapping without this generic
23
+ * formatter depending on the v1 layer. When omitted, a generic server_error body is emitted.
24
+ */
25
+ formatError?: (err: unknown) => OpenAIErrorFrameBody;
26
+ }
27
+ /** OpenAI streaming error body (`{ message, type, code, param }` under an `error` key). */
28
+ export interface OpenAIErrorFrameBody {
29
+ message: string;
30
+ type: string;
31
+ code: string | null;
32
+ param: string | null;
20
33
  }
21
34
  interface OpenAIToolCallDelta {
22
35
  index: number;
@@ -45,7 +58,9 @@ interface OpenAIChunk {
45
58
  }
46
59
  /** SSE message envelope consumed by Harper's `text/event-stream` serializer. */
47
60
  export interface OpenAIStreamMessage {
48
- data: OpenAIChunk | string;
61
+ data: OpenAIChunk | {
62
+ error: OpenAIErrorFrameBody;
63
+ } | string;
49
64
  }
50
65
  /**
51
66
  * Wrap a `GenerateChunk` async iterable as OpenAI `chat.completion.chunk` SSE messages,
@@ -14,6 +14,51 @@
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.openaiStream = openaiStream;
16
16
  const node_crypto_1 = require("node:crypto");
17
+ // Bounds on per-stream tool-call assembly. The backend supplies both the call ids and the
18
+ // argument fields, and this runs on a public HTTP path, so neither can be unbounded. Overflow
19
+ // terminates the stream through the same sanitized error-frame path as any backend failure.
20
+ const MAX_TOOL_CALLS_PER_STREAM = 256;
21
+ const MAX_TOOL_ARGUMENT_KEYS = 1024;
22
+ // Cumulative serialized-character budget across the WHOLE stream's assembly (ids, names,
23
+ // and every argument value as it arrives, plus per-entry JSON syntax so the count is an
24
+ // upper bound on `JSON.stringify(arguments)`, not just the raw content). Call/key counts
25
+ // alone don't bound memory — one key can hold an arbitrarily large value, and the final
26
+ // JSON.stringify duplicates the retained allocation — so the budget is charged per delta
27
+ // (O(delta), no re-serialization of the accumulator) and monotonically: replacing an
28
+ // existing key charges the new value too, so churn cannot smuggle unbounded values under
29
+ // a stable key count. The SSE frame that flushes the calls adds only a bounded constant
30
+ // envelope per call plus string-escaping of the arguments blob (< 2x), so the frame size
31
+ // is bounded by a small multiple of this budget.
32
+ const MAX_TOOL_ASSEMBLY_CHARS = 1_048_576;
33
+ /** Signals that a stream exceeded the tool-assembly bounds; surfaced as an SSE error frame. */
34
+ class ToolAssemblyOverflowError extends Error {
35
+ statusCode = 502;
36
+ }
37
+ /**
38
+ * Merge `source` into `target`, returning the keys added and the serialized characters
39
+ * charged. Charging over-approximates `JSON.stringify(target).length`: each first add
40
+ * charges the key plus 4 chars of JSON syntax (`"key":` quotes and colon, plus the
41
+ * comma/brace share), and every assignment — replacements included — charges the
42
+ * serialized value. Since a replacement's earlier charge is never refunded, the
43
+ * cumulative total stays an upper bound on the retained serialization while keeping
44
+ * accumulation O(delta), not O(total).
45
+ */
46
+ function assignCountingNewKeys(target, source) {
47
+ let addedKeys = 0;
48
+ let addedChars = 0;
49
+ for (const key in source) {
50
+ if (!(key in target)) {
51
+ addedKeys++;
52
+ addedChars += key.length + 4;
53
+ }
54
+ const value = source[key];
55
+ // `?? ''`: JSON.stringify returns undefined for undefined/function/symbol values —
56
+ // impossible from JSON.parse but reachable from a custom backend's crafted object.
57
+ addedChars += (JSON.stringify(value) ?? '').length;
58
+ target[key] = value;
59
+ }
60
+ return { addedKeys, addedChars };
61
+ }
17
62
  /**
18
63
  * Wrap a `GenerateChunk` async iterable as OpenAI `chat.completion.chunk` SSE messages,
19
64
  * terminated by the `[DONE]` sentinel. Content deltas stream inline; tool calls are
@@ -32,6 +77,7 @@ async function* openaiStream(tokens, opts = {}) {
32
77
  // (`{"a":1}` + `{"b":2}` → invalid JSON) — Harper's already-buffered upstream model
33
78
  // means we cannot faithfully reproduce per-token argument fragments anyway.
34
79
  const toolAssembly = new Map();
80
+ let assemblyChars = 0;
35
81
  const chunk = (delta, finish) => ({
36
82
  data: {
37
83
  id,
@@ -41,30 +87,76 @@ async function* openaiStream(tokens, opts = {}) {
41
87
  choices: [{ index: 0, delta, finish_reason: finish }],
42
88
  },
43
89
  });
44
- for await (const token of tokens) {
45
- if (token.deltaContent !== undefined) {
46
- const delta = {};
47
- if (!roleSent) {
48
- delta.role = 'assistant';
49
- roleSent = true;
90
+ try {
91
+ for await (const token of tokens) {
92
+ if (token.deltaContent !== undefined) {
93
+ const delta = {};
94
+ if (!roleSent) {
95
+ delta.role = 'assistant';
96
+ roleSent = true;
97
+ }
98
+ delta.content = token.deltaContent;
99
+ yield chunk(delta, null);
50
100
  }
51
- delta.content = token.deltaContent;
52
- yield chunk(delta, null);
53
- }
54
- if (token.deltaToolCalls) {
55
- for (const incoming of token.deltaToolCalls) {
56
- if (!incoming.id)
57
- continue;
58
- const existing = toolAssembly.get(incoming.id) ?? { index: toolAssembly.size, arguments: {} };
59
- if (incoming.name)
60
- existing.name = incoming.name;
61
- if (incoming.arguments)
62
- existing.arguments = { ...existing.arguments, ...incoming.arguments };
63
- toolAssembly.set(incoming.id, existing);
101
+ if (token.deltaToolCalls) {
102
+ for (const incoming of token.deltaToolCalls) {
103
+ if (!incoming.id)
104
+ continue;
105
+ let existing = toolAssembly.get(incoming.id);
106
+ if (!existing) {
107
+ // Cap distinct calls per stream: ids come from the backend, and an
108
+ // unbounded map on a public HTTP path is a memory risk.
109
+ if (toolAssembly.size >= MAX_TOOL_CALLS_PER_STREAM) {
110
+ throw new ToolAssemblyOverflowError(`stream exceeded ${MAX_TOOL_CALLS_PER_STREAM} tool calls`);
111
+ }
112
+ // Null-prototype: arguments come from JSON.parse, so a field literally
113
+ // named `__proto__` is an own property. Object.assign uses [[Set]], which
114
+ // on an ordinary object would hit Object.prototype's inherited `__proto__`
115
+ // setter and silently drop the field (the previous spread did not).
116
+ existing = { index: toolAssembly.size, arguments: Object.create(null), argumentCount: 0 };
117
+ toolAssembly.set(incoming.id, existing);
118
+ // + 96: the flush frame's fixed per-call envelope (index/id/type/function
119
+ // syntax and the argument object's braces), so 256 calls of envelope are
120
+ // inside the budget too, not on top of it.
121
+ assemblyChars += incoming.id.length + 96;
122
+ }
123
+ if (incoming.name && incoming.name !== existing.name) {
124
+ assemblyChars += incoming.name.length;
125
+ existing.name = incoming.name;
126
+ }
127
+ // Guard the contract (`ToolCall.arguments` is an object): a string would be
128
+ // assigned index-wise, inflating the field count from characters.
129
+ if (incoming.arguments && typeof incoming.arguments === 'object') {
130
+ // Mutate rather than re-spread — spreading copied every previously
131
+ // accumulated property on each partial delta (O(n²) as fields grow) — and
132
+ // count only newly-introduced keys so the bound check stays O(delta) too.
133
+ const { addedKeys, addedChars } = assignCountingNewKeys(existing.arguments, incoming.arguments);
134
+ existing.argumentCount += addedKeys;
135
+ assemblyChars += addedChars;
136
+ if (existing.argumentCount > MAX_TOOL_ARGUMENT_KEYS) {
137
+ throw new ToolAssemblyOverflowError(`tool call arguments exceeded ${MAX_TOOL_ARGUMENT_KEYS} fields`);
138
+ }
139
+ }
140
+ if (assemblyChars > MAX_TOOL_ASSEMBLY_CHARS) {
141
+ throw new ToolAssemblyOverflowError(`stream tool-call assembly exceeded ${MAX_TOOL_ASSEMBLY_CHARS} serialized characters`);
142
+ }
143
+ }
64
144
  }
145
+ if (token.finishReason)
146
+ finishReason = token.finishReason;
65
147
  }
66
- if (token.finishReason)
67
- finishReason = token.finishReason;
148
+ }
149
+ catch (err) {
150
+ // The backend can throw partway through the stream (Models#wrapStream re-throws
151
+ // mid-stream backend errors). Headers/200 are already flushed, so this can't be an
152
+ // HTTP error status — emit a final OpenAI-shaped `data: {error}` frame so SDK clients
153
+ // see a parseable error (matching the non-streaming path) instead of an abrupt socket
154
+ // close. OpenAI terminates the stream on error and sends no `[DONE]`, so we do the same.
155
+ const error = opts.formatError
156
+ ? opts.formatError(err)
157
+ : { message: 'Internal server error', type: 'server_error', code: null, param: null };
158
+ yield { data: { error } };
159
+ return;
68
160
  }
69
161
  if (toolAssembly.size > 0) {
70
162
  const toolCalls = [];
@@ -1 +1 @@
1
- {"version":3,"file":"openaiStream.js","sourceRoot":"","sources":["../../../resources/models/openaiStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openaiStream.js","sourceRoot":"","sources":["../../../resources/models/openaiStream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * `POST /v1/chat/completions` — OpenAI-compatible chat endpoint (#631).
3
+ *
4
+ * SSE serving-path note: the OpenAI SDK sends `Accept: application/json` for
5
+ * ALL requests including streaming ones (`client.ts:1160` in the SDK source).
6
+ * Harper's REST layer dispatches `Accept: text/event-stream` as CONNECT, and
7
+ * everything else as the HTTP method. So `stream: true` from an OpenAI SDK
8
+ * client reaches this `post()` handler, NOT `connect()`. We detect the `stream`
9
+ * flag in the body and return `{ body: Readable }` which REST.ts bypasses
10
+ * serialisation on (REST.ts:165-193) — exactly like any SSE resource response,
11
+ * but initiated from `post()` rather than `connect()`.
12
+ */
13
+ import type { Readable } from 'node:stream';
14
+ import { Resource } from '../../Resource.ts';
15
+ export declare class V1ChatCompletions extends Resource {
16
+ static reservedPath: boolean;
17
+ static post(_target: unknown, body: unknown, request: unknown): Promise<import("./errors.ts").OpenAIErrorResponse | import("./translation.ts").OAIChatCompletion | {
18
+ status: number;
19
+ headers: {
20
+ 'Content-Type': string;
21
+ 'Cache-Control': string;
22
+ 'X-Accel-Buffering': string;
23
+ };
24
+ body: Readable;
25
+ }>;
26
+ /**
27
+ * A client that sends an explicit `Accept: text/event-stream` with its POST is
28
+ * dispatched by REST as CONNECT (REST.ts), not POST. The OpenAI SDK happens to send
29
+ * `Accept: application/json` even when streaming, but other valid SSE clients do not.
30
+ *
31
+ * Without this override the request reached `Resource`'s default `connect`, whose
32
+ * instance path returns `subscribe()` — an empty `IterableEventQueue` — so the client
33
+ * got a 200 SSE response that stayed open forever emitting nothing, rather than an
34
+ * error it could act on.
35
+ *
36
+ * REST passes `null` as the CONNECT body (`resource.connect(target, null, request)`),
37
+ * so the parsed body is taken off the request and handed to the same `post()`
38
+ * implementation — one code path, identical validation and error shaping.
39
+ *
40
+ * `connect` is also reachable from the WebSocket handler with a different signature
41
+ * (`resourceRequest, incomingMessages, request`), where there is no `request.data`;
42
+ * that case is rejected as a client error rather than returning an envelope the WS
43
+ * path would fail to iterate.
44
+ */
45
+ static connect(target: unknown, _data: unknown, request: unknown): Promise<import("./errors.ts").OpenAIErrorResponse | import("./translation.ts").OAIChatCompletion | {
46
+ status: number;
47
+ headers: {
48
+ 'Content-Type': string;
49
+ 'Cache-Control': string;
50
+ 'X-Accel-Buffering': string;
51
+ };
52
+ body: Readable;
53
+ }>;
54
+ }
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ /**
3
+ * `POST /v1/chat/completions` — OpenAI-compatible chat endpoint (#631).
4
+ *
5
+ * SSE serving-path note: the OpenAI SDK sends `Accept: application/json` for
6
+ * ALL requests including streaming ones (`client.ts:1160` in the SDK source).
7
+ * Harper's REST layer dispatches `Accept: text/event-stream` as CONNECT, and
8
+ * everything else as the HTTP method. So `stream: true` from an OpenAI SDK
9
+ * client reaches this `post()` handler, NOT `connect()`. We detect the `stream`
10
+ * flag in the body and return `{ body: Readable }` which REST.ts bypasses
11
+ * serialisation on (REST.ts:165-193) — exactly like any SSE resource response,
12
+ * but initiated from `post()` rather than `connect()`.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.V1ChatCompletions = void 0;
16
+ const contentTypes_ts_1 = require("../../../server/serverHelpers/contentTypes.js");
17
+ const Resource_ts_1 = require("../../Resource.js");
18
+ const Models_ts_1 = require("../Models.js");
19
+ const openaiStream_ts_1 = require("../openaiStream.js");
20
+ const errors_ts_1 = require("./errors.js");
21
+ const translation_ts_1 = require("./translation.js");
22
+ const sseHandler = contentTypes_ts_1.contentTypes.get('text/event-stream');
23
+ // @ts-ignore — Resource base class is not typed for static dispatch; pattern mirrors login.ts
24
+ class V1ChatCompletions extends Resource_ts_1.Resource {
25
+ // Reserve this fixed route: a later app registration at the same path becomes a
26
+ // loud conflict (ErrorResource) instead of silently replacing the gateway and its
27
+ // super_user gate. See Resources.set.
28
+ static reservedPath = true;
29
+ static async post(_target, body, request) {
30
+ const authError = (0, errors_ts_1.authorizeV1Request)(request);
31
+ if (authError)
32
+ return authError;
33
+ // REST.ts passes `request.data` directly, which is the (unawaited) streaming
34
+ // JSON deserializer's Promise — awaiting here is a no-op for callers (e.g.
35
+ // unit tests) that already pass a plain object. A malformed JSON body rejects
36
+ // this promise, which is a client error, not a 500.
37
+ try {
38
+ body = await body;
39
+ }
40
+ catch (err) {
41
+ return (0, errors_ts_1.badRequest)(`Could not parse request body: ${err instanceof Error ? err.message : 'invalid JSON'}`);
42
+ }
43
+ if (!body || typeof body !== 'object' || Array.isArray(body)) {
44
+ return (0, errors_ts_1.badRequest)('Request body must be a JSON object');
45
+ }
46
+ const req = body;
47
+ // Validate the nested wire shapes before mapping: the mappers assume well-formed
48
+ // input, so an unvalidated `messages:[null]` / `tools:[{}]` would throw a TypeError
49
+ // and surface as an RFC 9457 500 instead of an OpenAI 400.
50
+ const invalid = (0, translation_ts_1.validateChatRequest)(req);
51
+ if (invalid)
52
+ return (0, errors_ts_1.badRequest)(invalid);
53
+ const model = typeof req.model === 'string' ? req.model : 'default';
54
+ try {
55
+ const messages = (0, translation_ts_1.translateMessages)(req.messages);
56
+ // tool_choice: 'none' means "do not call tools" — the only faithful way to honor
57
+ // that against a returns-tool-calls backend is to not offer the tools at all.
58
+ // 'required'/named selection are rejected in validateChatRequest.
59
+ const tools = req.tool_choice === 'none' || !req.tools?.length ? undefined : (0, translation_ts_1.translateTools)(req.tools);
60
+ const input = (0, translation_ts_1.toGenerateInput)(messages, tools);
61
+ const opts = (0, translation_ts_1.toGenerateOpts)(req);
62
+ if (req.stream) {
63
+ const tokenStream = Models_ts_1.models.generateStream(input, opts);
64
+ // serializeStream wraps the async iterable in a Node Readable so REST.ts
65
+ // can return it without re-serialising. The `body` presence on the return
66
+ // value skips REST.ts's own serialize() call (REST.ts:165-193).
67
+ // formatError reuses the non-streaming error mapping so a mid-stream backend
68
+ // failure reaches the client as an OpenAI-shaped SSE error frame.
69
+ const readable = sseHandler.serializeStream((0, openaiStream_ts_1.openaiStream)(tokenStream, { model, formatError: (err) => (0, errors_ts_1.toOpenAIError)(err).data.error }));
70
+ return {
71
+ status: 200,
72
+ headers: {
73
+ 'Content-Type': 'text/event-stream',
74
+ 'Cache-Control': 'no-cache',
75
+ 'X-Accel-Buffering': 'no',
76
+ },
77
+ body: readable,
78
+ };
79
+ }
80
+ const result = await Models_ts_1.models.generate(input, opts);
81
+ return (0, translation_ts_1.toChatCompletion)(result, model);
82
+ }
83
+ catch (err) {
84
+ return (0, errors_ts_1.toOpenAIError)(err);
85
+ }
86
+ }
87
+ /**
88
+ * A client that sends an explicit `Accept: text/event-stream` with its POST is
89
+ * dispatched by REST as CONNECT (REST.ts), not POST. The OpenAI SDK happens to send
90
+ * `Accept: application/json` even when streaming, but other valid SSE clients do not.
91
+ *
92
+ * Without this override the request reached `Resource`'s default `connect`, whose
93
+ * instance path returns `subscribe()` — an empty `IterableEventQueue` — so the client
94
+ * got a 200 SSE response that stayed open forever emitting nothing, rather than an
95
+ * error it could act on.
96
+ *
97
+ * REST passes `null` as the CONNECT body (`resource.connect(target, null, request)`),
98
+ * so the parsed body is taken off the request and handed to the same `post()`
99
+ * implementation — one code path, identical validation and error shaping.
100
+ *
101
+ * `connect` is also reachable from the WebSocket handler with a different signature
102
+ * (`resourceRequest, incomingMessages, request`), where there is no `request.data`;
103
+ * that case is rejected as a client error rather than returning an envelope the WS
104
+ * path would fail to iterate.
105
+ */
106
+ static async connect(target, _data, request) {
107
+ const data = request?.data;
108
+ if (data === undefined) {
109
+ return (0, errors_ts_1.badRequest)('This endpoint requires a JSON request body; WebSocket connections are not supported');
110
+ }
111
+ return this.post(target, data, request);
112
+ }
113
+ }
114
+ exports.V1ChatCompletions = V1ChatCompletions;
115
+ //# sourceMappingURL=chatCompletions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatCompletions.js","sourceRoot":"","sources":["../../../../resources/models/v1/chatCompletions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * `POST /v1/embeddings` — OpenAI-compatible embedding endpoint (#631).
3
+ *
4
+ * Maps OpenAI's `{ model, input }` request body to `scope.models.embed()` and
5
+ * returns `{ object: 'list', data: [...], model, usage }` per the OpenAI wire spec.
6
+ */
7
+ import { Resource } from '../../Resource.ts';
8
+ export declare class V1Embeddings extends Resource {
9
+ static reservedPath: boolean;
10
+ static post(_target: unknown, body: Record<string, unknown>, request: unknown): Promise<import("./errors.ts").OpenAIErrorResponse | import("./translation.ts").OAIEmbedResponse>;
11
+ }