@harperfast/harper 5.3.0-beta.3 → 5.3.0-beta.4

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 (311) hide show
  1. package/bin/cliOperations.ts +25 -3
  2. package/bin/run.ts +18 -0
  3. package/components/Application.ts +52 -78
  4. package/components/DESIGN.md +76 -3
  5. package/components/Scope.ts +10 -4
  6. package/components/anthropic/index.ts +10 -1
  7. package/components/bedrock/index.ts +10 -1
  8. package/components/componentLoader.ts +23 -14
  9. package/components/mcp/tools/operations.ts +3 -1
  10. package/components/ollama/index.ts +10 -1
  11. package/components/openai/index.ts +265 -18
  12. package/components/operations.js +40 -1
  13. package/config/configUtils.ts +3 -19
  14. package/dataLayer/DESIGN.md +29 -5
  15. package/dataLayer/harperBridge/ResourceBridge.ts +39 -3
  16. package/dataLayer/restoreMarker.ts +250 -14
  17. package/dataLayer/schema.ts +2 -7
  18. package/dataLayer/schemaDescribe.ts +10 -0
  19. package/dist/bin/cliOperations.js +28 -3
  20. package/dist/bin/cliOperations.js.map +1 -1
  21. package/dist/bin/run.js +19 -0
  22. package/dist/bin/run.js.map +1 -1
  23. package/dist/components/Application.d.ts +8 -2
  24. package/dist/components/Application.js +43 -69
  25. package/dist/components/Application.js.map +1 -1
  26. package/dist/components/Scope.d.ts +1 -1
  27. package/dist/components/Scope.js +9 -4
  28. package/dist/components/Scope.js.map +1 -1
  29. package/dist/components/anthropic/index.d.ts +0 -10
  30. package/dist/components/anthropic/index.js +9 -1
  31. package/dist/components/anthropic/index.js.map +1 -1
  32. package/dist/components/bedrock/index.d.ts +0 -12
  33. package/dist/components/bedrock/index.js +9 -1
  34. package/dist/components/bedrock/index.js.map +1 -1
  35. package/dist/components/componentLoader.js +23 -14
  36. package/dist/components/componentLoader.js.map +1 -1
  37. package/dist/components/mcp/tools/operations.js +1 -1
  38. package/dist/components/mcp/tools/operations.js.map +1 -1
  39. package/dist/components/ollama/index.d.ts +0 -13
  40. package/dist/components/ollama/index.js +9 -1
  41. package/dist/components/ollama/index.js.map +1 -1
  42. package/dist/components/openai/index.d.ts +11 -15
  43. package/dist/components/openai/index.js +224 -12
  44. package/dist/components/openai/index.js.map +1 -1
  45. package/dist/components/operations.d.ts +9 -0
  46. package/dist/components/operations.js +32 -2
  47. package/dist/components/operations.js.map +1 -1
  48. package/dist/config/configUtils.d.ts +1 -2
  49. package/dist/config/configUtils.js +7 -22
  50. package/dist/config/configUtils.js.map +1 -1
  51. package/dist/dataLayer/harperBridge/ResourceBridge.js +29 -2
  52. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  53. package/dist/dataLayer/restoreMarker.d.ts +25 -3
  54. package/dist/dataLayer/restoreMarker.js +213 -13
  55. package/dist/dataLayer/restoreMarker.js.map +1 -1
  56. package/dist/dataLayer/schema.js +1 -4
  57. package/dist/dataLayer/schema.js.map +1 -1
  58. package/dist/dataLayer/schemaDescribe.js +10 -0
  59. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  60. package/dist/index.d.ts +1 -1
  61. package/dist/index.js.map +1 -1
  62. package/dist/json/systemSchema.json +28 -0
  63. package/dist/resources/DatabaseTransaction.d.ts +21 -1
  64. package/dist/resources/DatabaseTransaction.js +147 -8
  65. package/dist/resources/DatabaseTransaction.js.map +1 -1
  66. package/dist/resources/PrimaryRocksDatabase.js +1 -1
  67. package/dist/resources/PrimaryRocksDatabase.js.map +1 -1
  68. package/dist/resources/Table.d.ts +31 -3
  69. package/dist/resources/Table.js +397 -79
  70. package/dist/resources/Table.js.map +1 -1
  71. package/dist/resources/auditStore.js +16 -10
  72. package/dist/resources/auditStore.js.map +1 -1
  73. package/dist/resources/blob.d.ts +1 -0
  74. package/dist/resources/blob.js +14 -5
  75. package/dist/resources/blob.js.map +1 -1
  76. package/dist/resources/branchDatabase.js +3 -3
  77. package/dist/resources/branchDatabase.js.map +1 -1
  78. package/dist/resources/databaseDropPreparation.d.ts +20 -0
  79. package/dist/resources/databaseDropPreparation.js +106 -0
  80. package/dist/resources/databaseDropPreparation.js.map +1 -0
  81. package/dist/resources/databases.d.ts +26 -21
  82. package/dist/resources/databases.js +1040 -204
  83. package/dist/resources/databases.js.map +1 -1
  84. package/dist/resources/derivedIndexRegistry.d.ts +23 -0
  85. package/dist/resources/derivedIndexRegistry.js +92 -0
  86. package/dist/resources/derivedIndexRegistry.js.map +1 -1
  87. package/dist/resources/derivedIndexRuntime.d.ts +10 -0
  88. package/dist/resources/derivedIndexRuntime.js +136 -25
  89. package/dist/resources/derivedIndexRuntime.js.map +1 -1
  90. package/dist/resources/derivedIndexes.d.ts +39 -0
  91. package/dist/resources/derivedIndexes.js +733 -0
  92. package/dist/resources/derivedIndexes.js.map +1 -0
  93. package/dist/resources/fullTextSchema.d.ts +8 -0
  94. package/dist/resources/fullTextSchema.js +42 -0
  95. package/dist/resources/fullTextSchema.js.map +1 -1
  96. package/dist/resources/fullTextSchemaLifecycle.d.ts +0 -5
  97. package/dist/resources/fullTextSchemaLifecycle.js +0 -9
  98. package/dist/resources/fullTextSchemaLifecycle.js.map +1 -1
  99. package/dist/resources/graphql.js +101 -9
  100. package/dist/resources/graphql.js.map +1 -1
  101. package/dist/resources/indexes/hnswDerivedIndex.d.ts +0 -10
  102. package/dist/resources/indexes/hnswDerivedIndex.js +0 -230
  103. package/dist/resources/indexes/hnswDerivedIndex.js.map +1 -1
  104. package/dist/resources/indexes/nativeFullTextDerivedIndexLifecycle.d.ts +3 -0
  105. package/dist/resources/indexes/nativeFullTextDerivedIndexLifecycle.js +57 -8
  106. package/dist/resources/indexes/nativeFullTextDerivedIndexLifecycle.js.map +1 -1
  107. package/dist/resources/models/Models.d.ts +26 -3
  108. package/dist/resources/models/Models.js +256 -13
  109. package/dist/resources/models/Models.js.map +1 -1
  110. package/dist/resources/models/TestBackend.d.ts +3 -1
  111. package/dist/resources/models/TestBackend.js +35 -1
  112. package/dist/resources/models/TestBackend.js.map +1 -1
  113. package/dist/resources/models/analyticsTable.d.ts +2 -2
  114. package/dist/resources/models/analyticsTable.js +4 -2
  115. package/dist/resources/models/analyticsTable.js.map +1 -1
  116. package/dist/resources/models/backendHelpers.d.ts +24 -0
  117. package/dist/resources/models/backendHelpers.js +18 -1
  118. package/dist/resources/models/backendHelpers.js.map +1 -1
  119. package/dist/resources/models/backendRegistry.d.ts +10 -21
  120. package/dist/resources/models/backendRegistry.js +74 -18
  121. package/dist/resources/models/backendRegistry.js.map +1 -1
  122. package/dist/resources/models/bootstrap.d.ts +7 -0
  123. package/dist/resources/models/bootstrap.js +36 -4
  124. package/dist/resources/models/bootstrap.js.map +1 -1
  125. package/dist/resources/models/decideHook.d.ts +33 -0
  126. package/dist/resources/models/decideHook.js +105 -0
  127. package/dist/resources/models/decideHook.js.map +1 -0
  128. package/dist/resources/models/decision.d.ts +64 -0
  129. package/dist/resources/models/decision.js +507 -0
  130. package/dist/resources/models/decision.js.map +1 -0
  131. package/dist/resources/models/decisionStore.d.ts +134 -0
  132. package/dist/resources/models/decisionStore.js +350 -0
  133. package/dist/resources/models/decisionStore.js.map +1 -0
  134. package/dist/resources/models/embedHook.d.ts +66 -8
  135. package/dist/resources/models/embedHook.js +228 -61
  136. package/dist/resources/models/embedHook.js.map +1 -1
  137. package/dist/resources/models/generativeDecision.d.ts +58 -0
  138. package/dist/resources/models/generativeDecision.js +315 -0
  139. package/dist/resources/models/generativeDecision.js.map +1 -0
  140. package/dist/resources/models/types.d.ts +232 -4
  141. package/dist/security/authn/oidc/tokenExchange.js +3 -33
  142. package/dist/security/authn/oidc/tokenExchange.js.map +1 -1
  143. package/dist/security/authn/oidc/tokenUseTable.d.ts +9 -0
  144. package/dist/security/authn/oidc/tokenUseTable.js +28 -0
  145. package/dist/security/authn/oidc/tokenUseTable.js.map +1 -0
  146. package/dist/security/certificateVerification/certificateVerificationSource.d.ts +0 -1
  147. package/dist/security/certificateVerification/certificateVerificationSource.js +3 -3
  148. package/dist/security/certificateVerification/certificateVerificationSource.js.map +1 -1
  149. package/dist/security/certificateVerification/crlVerification.js +77 -165
  150. package/dist/security/certificateVerification/crlVerification.js.map +1 -1
  151. package/dist/security/certificateVerification/types.d.ts +0 -3
  152. package/dist/security/certificateVerification/verificationTables.d.ts +19 -0
  153. package/dist/security/certificateVerification/verificationTables.js +125 -0
  154. package/dist/security/certificateVerification/verificationTables.js.map +1 -0
  155. package/dist/security/certificateVerification/verificationUtils.d.ts +1 -1
  156. package/dist/security/certificateVerification/verificationUtils.js +6 -31
  157. package/dist/security/certificateVerification/verificationUtils.js.map +1 -1
  158. package/dist/security/jsLoader.d.ts +5 -0
  159. package/dist/security/jsLoader.js +8 -0
  160. package/dist/security/jsLoader.js.map +1 -1
  161. package/dist/server/Server.d.ts +1 -0
  162. package/dist/server/Server.js.map +1 -1
  163. package/dist/server/http.js +2 -2
  164. package/dist/server/http.js.map +1 -1
  165. package/dist/server/itc/serverHandlers.js +21 -2
  166. package/dist/server/itc/serverHandlers.js.map +1 -1
  167. package/dist/server/jobs/jobOwnership.d.ts +25 -0
  168. package/dist/server/jobs/jobOwnership.js +127 -0
  169. package/dist/server/jobs/jobOwnership.js.map +1 -0
  170. package/dist/server/jobs/jobProcess.js +9 -2
  171. package/dist/server/jobs/jobProcess.js.map +1 -1
  172. package/dist/server/jobs/jobs.js +18 -5
  173. package/dist/server/jobs/jobs.js.map +1 -1
  174. package/dist/server/loadRootComponents.js +10 -0
  175. package/dist/server/loadRootComponents.js.map +1 -1
  176. package/dist/server/serverHelpers/contentTypes.js +11 -1
  177. package/dist/server/serverHelpers/contentTypes.js.map +1 -1
  178. package/dist/server/serverHelpers/serverHandlers.js +12 -2
  179. package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
  180. package/dist/server/threads/itc.d.ts +4 -1
  181. package/dist/server/threads/itc.js +29 -6
  182. package/dist/server/threads/itc.js.map +1 -1
  183. package/dist/server/threads/manageThreads.d.ts +12 -4
  184. package/dist/server/threads/manageThreads.js +241 -119
  185. package/dist/server/threads/manageThreads.js.map +1 -1
  186. package/dist/server/threads/threadServer.d.ts +1 -0
  187. package/dist/server/threads/threadServer.js +15 -1
  188. package/dist/server/threads/threadServer.js.map +1 -1
  189. package/dist/server/threads/windowsProcessTree.d.ts +91 -0
  190. package/dist/server/threads/windowsProcessTree.js +361 -0
  191. package/dist/server/threads/windowsProcessTree.js.map +1 -0
  192. package/dist/server/throttle.d.ts +1 -1
  193. package/dist/server/throttle.js +8 -1
  194. package/dist/server/throttle.js.map +1 -1
  195. package/dist/upgrade/directives/5-3-0.js +53 -46
  196. package/dist/upgrade/directives/5-3-0.js.map +1 -1
  197. package/dist/utility/errors/hdbError.d.ts +10 -1
  198. package/dist/utility/errors/hdbError.js +55 -11
  199. package/dist/utility/errors/hdbError.js.map +1 -1
  200. package/dist/utility/fsync.d.ts +2 -0
  201. package/dist/utility/fsync.js +20 -0
  202. package/dist/utility/fsync.js.map +1 -0
  203. package/dist/utility/globalSchema.d.ts +18 -0
  204. package/dist/utility/hdbTerms.d.ts +3 -0
  205. package/dist/utility/hdbTerms.js +3 -0
  206. package/dist/utility/hdbTerms.js.map +1 -1
  207. package/dist/utility/signalling.d.ts +7 -1
  208. package/dist/utility/signalling.js +27 -3
  209. package/dist/utility/signalling.js.map +1 -1
  210. package/dist/utility/when.d.ts +1 -0
  211. package/dist/utility/when.js +21 -0
  212. package/dist/utility/when.js.map +1 -1
  213. package/dist/validation/configValidator.js +30 -3
  214. package/dist/validation/configValidator.js.map +1 -1
  215. package/index.ts +13 -0
  216. package/json/systemSchema.json +28 -0
  217. package/npm-shrinkwrap.json +151 -55
  218. package/package.json +14 -13
  219. package/resources/DESIGN.md +80 -100
  220. package/resources/DatabaseTransaction.ts +157 -10
  221. package/resources/PrimaryRocksDatabase.ts +2 -2
  222. package/resources/Table.ts +494 -101
  223. package/resources/auditStore.ts +18 -10
  224. package/resources/blob.ts +13 -6
  225. package/resources/branchDatabase.ts +3 -3
  226. package/resources/databaseDropPreparation.ts +120 -0
  227. package/resources/databases.ts +1155 -205
  228. package/resources/derivedIndexRegistry.ts +122 -0
  229. package/resources/derivedIndexRuntime.ts +157 -30
  230. package/resources/derivedIndexes.ts +856 -0
  231. package/resources/fullTextSchema.ts +55 -0
  232. package/resources/fullTextSchemaLifecycle.ts +0 -15
  233. package/resources/graphql.ts +107 -12
  234. package/resources/indexes/DESIGN.md +7 -0
  235. package/resources/indexes/hnswDerivedIndex.ts +0 -260
  236. package/resources/indexes/nativeFullTextDerivedIndexLifecycle.ts +72 -9
  237. package/resources/models/DESIGN.md +39 -0
  238. package/resources/models/Models.ts +361 -18
  239. package/resources/models/TestBackend.ts +56 -1
  240. package/resources/models/analyticsTable.ts +6 -4
  241. package/resources/models/backendHelpers.ts +17 -0
  242. package/resources/models/backendRegistry.ts +76 -21
  243. package/resources/models/bootstrap.ts +57 -7
  244. package/resources/models/decideHook.ts +135 -0
  245. package/resources/models/decision.ts +505 -0
  246. package/resources/models/decisionStore.ts +419 -0
  247. package/resources/models/embedHook.ts +272 -55
  248. package/resources/models/generativeDecision.ts +459 -0
  249. package/resources/models/types.ts +231 -4
  250. package/security/DESIGN.md +22 -2
  251. package/security/authn/oidc/tokenExchange.ts +6 -34
  252. package/security/authn/oidc/tokenUseTable.ts +27 -0
  253. package/security/certificateVerification/certificateVerificationSource.ts +2 -3
  254. package/security/certificateVerification/crlVerification.ts +96 -174
  255. package/security/certificateVerification/types.ts +0 -3
  256. package/security/certificateVerification/verificationTables.ts +124 -0
  257. package/security/certificateVerification/verificationUtils.ts +8 -32
  258. package/security/jsLoader.ts +9 -1
  259. package/server/DESIGN.md +27 -1
  260. package/server/Server.ts +2 -1
  261. package/server/http.ts +4 -2
  262. package/server/itc/serverHandlers.js +29 -1
  263. package/server/jobs/jobOwnership.ts +89 -0
  264. package/server/jobs/jobProcess.ts +8 -2
  265. package/server/jobs/jobs.ts +15 -4
  266. package/server/loadRootComponents.js +11 -0
  267. package/server/serverHelpers/contentTypes.ts +13 -1
  268. package/server/serverHelpers/serverHandlers.js +11 -2
  269. package/server/threads/itc.js +32 -6
  270. package/server/threads/manageThreads.js +268 -122
  271. package/server/threads/threadServer.js +13 -1
  272. package/server/threads/windowsProcessTree.ts +409 -0
  273. package/server/throttle.ts +11 -1
  274. package/studio/web/assets/{Chat-CveGbxe6.js → Chat-Bq60AO-g.js} +1 -1
  275. package/studio/web/assets/{FloatingChat-IpCFgYWL.js → FloatingChat-D4560T0p.js} +3 -3
  276. package/studio/web/assets/{apiToken-CS8fFTgL.js → apiToken-BEvbFPMc.js} +1 -1
  277. package/studio/web/assets/{applications-D7F4Jopl.js → applications-CSUVTH4E.js} +1 -1
  278. package/studio/web/assets/{cssMode-Daw_oLPq.js → cssMode-DJyc9mHj.js} +1 -1
  279. package/studio/web/assets/{editor-B3Bs1zWX.js → editor-DDIsQfj6.js} +1 -1
  280. package/studio/web/assets/{html-CDaQwWiE.js → html-g1BJHxLy.js} +1 -1
  281. package/studio/web/assets/{htmlMode-Cb6emO4U.js → htmlMode-Vh5IglCQ.js} +1 -1
  282. package/studio/web/assets/{index-B4g2Fu_2.js → index-DGRAzvO4.js} +5 -5
  283. package/studio/web/assets/{index.lazy-NwhvF1q1.js → index.lazy-vgSic7et.js} +1 -1
  284. package/studio/web/assets/{javascript-2_86gB9Q.js → javascript-5VIolqf7.js} +1 -1
  285. package/studio/web/assets/{jsonMode-DX-i86uQ.js → jsonMode-DG4zQraI.js} +1 -1
  286. package/studio/web/assets/{languageServices-B85WN-Ej.js → languageServices-t5FBpX-i.js} +1 -1
  287. package/studio/web/assets/{lspLanguageFeatures-JCWHIsKg.js → lspLanguageFeatures-DgVnNPh-.js} +1 -1
  288. package/studio/web/assets/{notifications-D9ejzt52.js → notifications-BeWcX04m.js} +1 -1
  289. package/studio/web/assets/{notifications-B7hjKhai.js → notifications-DUGWrWoO.js} +1 -1
  290. package/studio/web/assets/{profile-D8B6No3F.js → profile-BvUEDBzW.js} +1 -1
  291. package/studio/web/assets/{regions-DFazIfTK.js → regions-CB-_2m7M.js} +1 -1
  292. package/studio/web/assets/{register-CwFLviLF.js → register-1w1Zr3b2.js} +2 -2
  293. package/studio/web/assets/{setComponentFile-VnJ80SSJ.js → setComponentFile-z4-qJCbA.js} +1 -1
  294. package/studio/web/assets/{setup-BYQxFy-C.js → setup-CS50uJ4x.js} +2 -2
  295. package/studio/web/assets/{status-Cn5XjmsL.js → status-CI0wOdOE.js} +1 -1
  296. package/studio/web/assets/{toggleHighContrast-g9xIh6TX.js → toggleHighContrast-BsAE4jPe.js} +1 -1
  297. package/studio/web/assets/{tsMode-EC-n0Wqc.js → tsMode-D83Gg3cq.js} +1 -1
  298. package/studio/web/assets/{typescript-DHmM9JCO.js → typescript-Dfp-GrNq.js} +1 -1
  299. package/studio/web/assets/{useEntityRestURL-BUdnVSVv.js → useEntityRestURL-BKetlINf.js} +1 -1
  300. package/studio/web/assets/{workers-BVl9bBB-.js → workers-CCvmDLH3.js} +1 -1
  301. package/studio/web/assets/{xml-C4_sqOkX.js → xml-06pZp00U.js} +1 -1
  302. package/studio/web/assets/{yaml-CVkbDqtW.js → yaml-iSnWMVlV.js} +1 -1
  303. package/studio/web/index.html +1 -1
  304. package/upgrade/directives/5-3-0.ts +61 -54
  305. package/utility/DESIGN.md +5 -1
  306. package/utility/errors/hdbError.ts +56 -8
  307. package/utility/fsync.ts +16 -0
  308. package/utility/hdbTerms.ts +3 -0
  309. package/utility/signalling.ts +33 -4
  310. package/utility/when.ts +22 -0
  311. package/validation/configValidator.ts +36 -7
@@ -53,6 +53,14 @@ const MAX_TOOL_CALL_ACCUMULATOR_ENTRIES = 128;
53
53
  // cap (1 MiB) plus the 128-entry cap still allows ~128 MiB accumulated; this cap
54
54
  // keeps any single stream well-bounded. Real responses use tens of KB.
55
55
  const MAX_TOTAL_TOOL_CALL_ARGS_CHARS = 8 * 1024 * 1024; // 8 MiB
56
+ // `top_logprobs` accepts at most 20, so one scoring request can cover at most 20 choices with a
57
+ // single-letter label each; more must be declined (#2838).
58
+ const MAX_SCORED_CHOICES = 20;
59
+ const CHOICE_LABELS = 'ABCDEFGHIJKLMNOPQRST';
60
+ // A scoring response is one content token with at most 20 alternatives, a few KiB. The general
61
+ // 256 MiB cap is sized for embedding batches; an object schema scores its fields concurrently,
62
+ // so a faulty endpoint must not be able to hold that much per call.
63
+ const MAX_SCORE_RESPONSE_BODY_BYTES = 1 << 20; // 1 MiB
56
64
  const log = harper_logger_ts_1.default.forComponent('openai').conditional;
57
65
  /**
58
66
  * `ModelBackend` implementation talking to OpenAI's HTTP API (or any
@@ -62,12 +70,27 @@ const log = harper_logger_ts_1.default.forComponent('openai').conditional;
62
70
  * - `generate` → `POST {baseUrl}/chat/completions` (always chat shape)
63
71
  * - `generateStream` → same with `stream: true`; consumes SSE wire format and
64
72
  * yields `GenerateChunk` per delta.
73
+ * - `scoreChoices` → `POST {baseUrl}/chat/completions` with `logprobs` for one
74
+ * token, the choices labelled `A`..`T` (#2838).
65
75
  *
66
76
  * Capabilities advertise `tools: true` — first backend with native tool-call
67
77
  * support. `adapters: false` — OpenAI doesn't expose LoRA adapter selection
68
78
  * externally. `toolMode: 'return'` (Phase 1 default) is supported end-to-end;
69
79
  * `toolMode: 'auto'` is reserved for #612.
70
80
  */
81
+ const CAPABILITIES = Object.freeze({
82
+ embed: true,
83
+ generate: true,
84
+ stream: true,
85
+ tools: true,
86
+ adapters: false,
87
+ scoreChoices: true,
88
+ structuredOutput: true,
89
+ maxScoredChoices: MAX_SCORED_CHOICES,
90
+ });
91
+ // The same shape for a model that refused `logprobs`; two frozen objects, so `capabilities()` allocates nothing.
92
+ const { maxScoredChoices: _scoringLimit, ...UNLIMITED } = CAPABILITIES;
93
+ const CAPABILITIES_WITHOUT_SCORING = Object.freeze({ ...UNLIMITED, scoreChoices: false });
71
94
  class OpenAIBackend {
72
95
  name = 'openai';
73
96
  #baseUrl;
@@ -80,6 +103,12 @@ class OpenAIBackend {
80
103
  // (o-series, gpt-5 family) reject `max_tokens` in favour of `max_completion_tokens`;
81
104
  // OpenAI-compatible shims (vLLM, Ollama-compat, older gateways) only know `max_tokens`.
82
105
  #isNativeOpenAI;
106
+ // Models this instance has seen refuse `logprobs`: a 400 naming the parameter (OpenAI's
107
+ // reasoning models), or an answer with no log-probability field at all (a compatible endpoint
108
+ // that ignores the parameter). Scoring stays off for them until a reload builds a new
109
+ // instance, and `capabilities()` says so for the configured model, so a decision against it
110
+ // votes without an attempt. An empty completion is this call's problem, not the model's.
111
+ #logprobsRejected = new Set();
83
112
  constructor(config = {}, fetchImpl = fetch) {
84
113
  this.#apiKey = (0, backendHelpers_ts_1.requireCredential)(config.apiKey, 'OpenAI', 'apiKey', OpenAIBackendError);
85
114
  this.#baseUrl = (0, backendHelpers_ts_1.normalizeOrigin)(config.baseUrl, { host: DEFAULT_BASE_URL, secure: true });
@@ -95,7 +124,9 @@ class OpenAIBackend {
95
124
  this.#fetch = fetchImpl;
96
125
  }
97
126
  capabilities() {
98
- return { embed: true, generate: true, stream: true, tools: true, adapters: false };
127
+ return this.#defaultModel === undefined || !this.#logprobsRejected.has(this.#defaultModel)
128
+ ? CAPABILITIES
129
+ : CAPABILITIES_WITHOUT_SCORING;
99
130
  }
100
131
  async embed(input, opts) {
101
132
  const model = opts.model ?? this.#defaultModel;
@@ -202,7 +233,57 @@ class OpenAIBackend {
202
233
  yield { deltaToolCalls: tail };
203
234
  }
204
235
  }
205
- async #post(path, body, callerSignal) {
236
+ /**
237
+ * Score `choices` from the first completion token's alternatives (#2838). The choices are
238
+ * listed under single-letter labels and the model is asked for the letter alone, so every
239
+ * choice is one token and the `top_logprobs` list can cover the whole set. What this model or
240
+ * endpoint cannot do is declined with `ChoiceScoringUnsupportedError`, not failed: more than
241
+ * 20 choices, a 400 that refuses `logprobs`, a response with no log-probabilities, no content
242
+ * token or no alternatives, no label among them, or too much mass outside the list to know the
243
+ * leading label. A malformed alternative is a failure like any other bad response.
244
+ */
245
+ async scoreChoices(input, choices, opts) {
246
+ const model = opts.model ?? this.#defaultModel;
247
+ (0, backendHelpers_ts_1.requireModel)(model, 'scoreChoices', OpenAIBackendError);
248
+ if (choices.length < 1 || choices.length > MAX_SCORED_CHOICES)
249
+ throw new backendHelpers_ts_1.ChoiceScoringUnsupportedError(`OpenAI scoreChoices covers 1 to ${MAX_SCORED_CHOICES} choices per call; got ${choices.length}`);
250
+ if (this.#logprobsRejected.has(model))
251
+ throw new backendHelpers_ts_1.ChoiceScoringUnsupportedError(`OpenAI model '${model}' rejects log-probabilities; scoring stays off for it until the backend is reloaded`);
252
+ const body = {
253
+ model,
254
+ messages: [...normalizeMessages(input), { role: 'user', content: labeledChoices(choices) }],
255
+ stream: false,
256
+ logprobs: true,
257
+ top_logprobs: MAX_SCORED_CHOICES,
258
+ };
259
+ if (this.#isNativeOpenAI)
260
+ body.max_completion_tokens = 1;
261
+ else
262
+ body.max_tokens = 1;
263
+ const res = await this.#post('/chat/completions', body, opts.signal, (status, error) => {
264
+ if (!rejectsLogprobs(status, error))
265
+ return undefined;
266
+ this.#logprobsRejected.add(model);
267
+ return new backendHelpers_ts_1.ChoiceScoringUnsupportedError(`OpenAI model '${model}' rejects log-probabilities (HTTP ${status})`);
268
+ });
269
+ const data = await (0, backendHelpers_ts_1.readBoundedJson)(res, 'OpenAI /chat/completions', OpenAIBackendError, MAX_SCORE_RESPONSE_BODY_BYTES);
270
+ const choice = data.choices?.[0];
271
+ if (!choice)
272
+ throw new OpenAIBackendError('OpenAI /chat/completions response missing choices[0]');
273
+ const usage = {};
274
+ (0, backendHelpers_ts_1.assignFiniteTokenCount)(usage, 'promptTokens', data.usage?.prompt_tokens);
275
+ (0, backendHelpers_ts_1.assignFiniteTokenCount)(usage, 'completionTokens', data.usage?.completion_tokens);
276
+ // Only an answer that carries no log-probabilities shows the endpoint ignores the parameter;
277
+ // an empty or filtered completion says nothing about the model.
278
+ const answered = typeof choice.message?.content === 'string' && choice.message.content.length > 0;
279
+ const logLikelihoods = scoreLabels(choice.logprobs, choices.length, (reason, structural) => {
280
+ if (structural && answered)
281
+ this.#logprobsRejected.add(model);
282
+ return new backendHelpers_ts_1.ChoiceScoringUnsupportedError(`OpenAI model '${model}' ${reason}`, usage);
283
+ });
284
+ return { status: 'completed', output: { logLikelihoods }, usage };
285
+ }
286
+ async #post(path, body, callerSignal, translate) {
206
287
  const signal = (0, backendHelpers_ts_1.composeSignal)(callerSignal, this.#requestTimeoutMs);
207
288
  const headers = {
208
289
  'Content-Type': 'application/json',
@@ -223,27 +304,158 @@ class OpenAIBackend {
223
304
  // doesn't leak request content. Cap length defensively against a
224
305
  // misbehaving compat shim. Falls back to status-only if the body
225
306
  // isn't JSON or doesn't have the envelope.
226
- throw new OpenAIBackendError(`OpenAI ${path} returned HTTP ${res.status}${await readErrorSuffix(res)}`, res.status);
307
+ const error = await readErrorEnvelope(res);
308
+ const translated = translate?.(res.status, error);
309
+ if (translated)
310
+ throw translated;
311
+ throw new OpenAIBackendError(`OpenAI ${path} returned HTTP ${res.status}${errorSuffix(error)}`, res.status);
227
312
  }
228
313
  return res;
229
314
  }
230
315
  }
231
316
  exports.OpenAIBackend = OpenAIBackend;
232
- async function readErrorSuffix(res) {
317
+ async function readErrorEnvelope(res) {
233
318
  try {
234
319
  const body = await (0, backendHelpers_ts_1.readBoundedJson)(res, 'OpenAI error response', OpenAIBackendError, backendHelpers_ts_1.MAX_ERROR_BODY_BYTES);
235
- const message = body?.error?.message;
236
- if (typeof message === 'string' && message.length > 0) {
237
- const truncated = message.length > MAX_UPSTREAM_ERROR_MESSAGE_CHARS
238
- ? message.slice(0, MAX_UPSTREAM_ERROR_MESSAGE_CHARS) + '…'
239
- : message;
240
- return `: ${truncated}`;
241
- }
242
- return '';
320
+ const error = {};
321
+ if (typeof body?.error?.message === 'string')
322
+ error.message = body.error.message;
323
+ if (typeof body?.error?.param === 'string')
324
+ error.param = body.error.param;
325
+ if (typeof body?.error?.code === 'string')
326
+ error.code = body.error.code;
327
+ return error;
243
328
  }
244
329
  catch {
330
+ return {};
331
+ }
332
+ }
333
+ function errorSuffix(error) {
334
+ const message = error.message;
335
+ if (typeof message !== 'string' || message.length === 0)
245
336
  return '';
337
+ const truncated = message.length > MAX_UPSTREAM_ERROR_MESSAGE_CHARS
338
+ ? message.slice(0, MAX_UPSTREAM_ERROR_MESSAGE_CHARS) + '…'
339
+ : message;
340
+ return `: ${truncated}`;
341
+ }
342
+ /**
343
+ * Whether a 400 says this model or endpoint does not take log-probabilities at all, as opposed to
344
+ * rejecting this request for another reason. OpenAI names the parameter (`param: 'logprobs'`);
345
+ * a compatible shim tends to say so only in the message, which must then both name the parameter
346
+ * and say it is unsupported, so a request-specific complaint that merely mentions it does not
347
+ * switch scoring off.
348
+ */
349
+ function rejectsLogprobs(status, error) {
350
+ if (status !== 400)
351
+ return false;
352
+ if (error.param === 'logprobs' || error.param === 'top_logprobs')
353
+ return true;
354
+ const message = error.message ?? '';
355
+ return (/\b(?:top_)?logprobs\b/i.test(message) &&
356
+ /\b(not supported|unsupported|not available|unavailable|disabled|not allowed|does not support|doesn't support)\b/i.test(message));
357
+ }
358
+ /**
359
+ * One line per choice under its label. A value that cannot sit on one line as itself (a line
360
+ * break or other control character, leading or trailing space, a quote or backslash, or nothing
361
+ * at all) is JSON-quoted, so no value can pose as a further option and values that differ only in
362
+ * whitespace stay distinct; a plain value never starts with a quote, so the two forms cannot
363
+ * collide.
364
+ */
365
+ function labeledChoices(choices) {
366
+ const lines = ['Choose exactly one option and reply with its letter only.'];
367
+ choices.forEach((choice, i) => lines.push(`${CHOICE_LABELS[i]}. ${plainOrQuoted(choice)}`));
368
+ return lines.join('\n');
369
+ }
370
+ // Anything that cannot sit on one line as itself. Built from code points so the source carries
371
+ // no raw line terminator, which would end a regex literal.
372
+ const LINE_TERMINATORS = String.fromCharCode(0x2028, 0x2029);
373
+ const NEEDS_QUOTING = new RegExp(`^$|^\\s|\\s$|["\\\\\\x00-\\x1f\\x7f${LINE_TERMINATORS}]`);
374
+ const LINE_TERMINATOR = new RegExp(`[${LINE_TERMINATORS}]`, 'g');
375
+ function plainOrQuoted(choice) {
376
+ if (!NEEDS_QUOTING.test(choice))
377
+ return choice;
378
+ // JSON.stringify leaves the two Unicode line terminators unescaped; they must not break the line.
379
+ return JSON.stringify(choice).replace(LINE_TERMINATOR, (c) => `\\u${c.charCodeAt(0).toString(16)}`);
380
+ }
381
+ // How far below the smallest listed alternative an unlisted label sits when the list leaves no mass
382
+ // over: finite, so the vector normalizes.
383
+ const UNLISTED_MARGIN = Math.log(1e6);
384
+ /**
385
+ * One log-likelihood per label from the first content token's alternatives. Spellings of the same
386
+ * letter (`A`, ` A`, `a.`) combine by log-sum-exp, so a label's score is the mass of its listed
387
+ * spellings; spellings outside the list are unknown, bounded together by the mass the list leaves
388
+ * over. A label with no listed spelling is placed only when that leftover is smaller than the
389
+ * leading observed label's mass, so a wholly unlisted label can never be the chosen value;
390
+ * otherwise the call is declined rather than guessed. Unlisted labels then share the leftover
391
+ * equally, so together they never exceed it and each stays below the leader; when the list leaves
392
+ * nothing over they sit a fixed margin below its smallest entry. Every placed score is still an estimate: an observed label's own unlisted
393
+ * spellings can add up to the leftover to it, so two observed labels closer than that may be
394
+ * ordered wrongly. No label at all means the model was not answering with a letter, and the call
395
+ * is declined. A malformed entry is a bad response, not a decline. Messages never quote tokens,
396
+ * which are upstream text.
397
+ *
398
+ * `unsupported(reason, structural)`: `structural` marks a response with no log-probability field
399
+ * at all, which the caller may remember for the model; a missing or empty alternatives list is
400
+ * this call's.
401
+ */
402
+ function scoreLabels(logprobs, count, unsupported) {
403
+ if (logprobs == null || logprobs.content === undefined)
404
+ throw unsupported('returned no log-probabilities', true);
405
+ const first = Array.isArray(logprobs.content) ? logprobs.content[0] : undefined;
406
+ if (!first)
407
+ throw unsupported('returned no scored content token', false);
408
+ if (!Array.isArray(first.top_logprobs) || first.top_logprobs.length === 0)
409
+ throw unsupported('returned no alternatives for the scored token', false);
410
+ const seen = new Map();
411
+ for (const alternative of [first, ...first.top_logprobs]) {
412
+ const token = alternative?.token;
413
+ const logprob = alternative?.logprob;
414
+ if (typeof token !== 'string' || typeof logprob !== 'number' || !Number.isFinite(logprob))
415
+ throw new OpenAIBackendError('OpenAI /chat/completions returned a malformed log-probability entry');
416
+ if (!seen.has(token))
417
+ seen.set(token, logprob);
418
+ }
419
+ const scores = new Array(count).fill(undefined);
420
+ let smallestListed = Infinity;
421
+ let listedMass = 0;
422
+ for (const [token, logprob] of seen) {
423
+ smallestListed = Math.min(smallestListed, logprob);
424
+ listedMass += Math.exp(logprob);
425
+ const index = labelIndex(token);
426
+ if (index === undefined || index >= count)
427
+ continue;
428
+ const current = scores[index];
429
+ scores[index] = current === undefined ? logprob : logAddExp(current, logprob);
246
430
  }
431
+ const observed = scores.filter((score) => score !== undefined);
432
+ if (observed.length === 0)
433
+ throw unsupported('did not answer with one of the choice labels', false);
434
+ if (observed.length === count)
435
+ return observed;
436
+ const leftover = Math.max(0, 1 - listedMass);
437
+ if (leftover >= Math.exp(Math.max(...observed)))
438
+ throw unsupported('left too much probability outside its listed alternatives to know the leading choice', false);
439
+ // The leftover is every token outside the list, so it bounds the unlisted labels together; each
440
+ // takes an equal share of it, because one token's worth understates a label whose spellings are
441
+ // all unlisted. A share of nothing sits a fixed margin below the list.
442
+ const share = leftover / (count - observed.length);
443
+ const floor = share > 0 ? Math.log(share) : smallestListed - UNLISTED_MARGIN;
444
+ return scores.map((score) => score ?? floor);
445
+ }
446
+ function labelIndex(token) {
447
+ const letter = token
448
+ .trim()
449
+ .replace(/^[("'[]+|[.)\]:"',]+$/g, '')
450
+ .toUpperCase();
451
+ if (letter.length !== 1)
452
+ return undefined;
453
+ const index = CHOICE_LABELS.indexOf(letter);
454
+ return index === -1 ? undefined : index;
455
+ }
456
+ function logAddExp(a, b) {
457
+ const max = Math.max(a, b);
458
+ return max + Math.log(Math.exp(a - max) + Math.exp(b - max));
247
459
  }
248
460
  /**
249
461
  * Boot-bridge helper. Called from `resources/models/bootstrap.ts` for each
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../components/openai/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../components/openai/index.ts"],"names":[],"mappings":"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"}
@@ -104,6 +104,15 @@ export function deployComponent(req: any): Promise<string>;
104
104
  * fully-upgraded cluster as unconfirmed.
105
105
  */
106
106
  export function unconfirmedStagingPeers(replicated: any): any[];
107
+ /**
108
+ * How long the origin waits for each peer to answer a replicated deploy: every wait and command the peer is
109
+ * allowed for this request, each at its full allowance. That includes the preparation lock's wait: a peer already
110
+ * preparing the same component for another deploy holds this one there for a preparation budget before the lock
111
+ * re-checks the holder. The lock keeps waiting while that holder is alive, so a peer queued behind a longer
112
+ * preparation, or behind several, can take longer; so can one validating plugins whose configured timeouts outlast
113
+ * the margin. Such a peer is reported as not answering, which says nothing of its outcome.
114
+ */
115
+ export function peerDeployAnswerTimeoutMs(req: any): number;
107
116
  /**
108
117
  * Gets a JSON directory tree of the components dir and all nested files/folders
109
118
  * @returns {Promise<*>}
@@ -17,7 +17,7 @@ const { HDB_ERROR_MSGS, HTTP_STATUS_CODES } = hdbErrors;
17
17
  const manageThreads = require('../server/threads/manageThreads.js');
18
18
  const { packageDirectory, scanPackageDirectory, streamPackagedDirectory, } = require("../components/packageComponent.js");
19
19
  const { Resources } = require("../resources/Resources.js");
20
- const { Application, prepareApplication, ASIDE_STAGING_DIR, DEPLOY_STAGING_DIR, dropComponentDirectory, retireComponentDirectory, } = require("./Application.js");
20
+ const { Application, prepareApplication, componentPreparationBudgetMs, ASIDE_STAGING_DIR, DEPLOY_STAGING_DIR, dropComponentDirectory, retireComponentDirectory, } = require("./Application.js");
21
21
  const { COMPONENT_PREPARATION_LOCK_DIR, withComponentPreparationLock } = require("./componentPreparationLock.js");
22
22
  const { applyRootConfigEffect, assertRootConfigEffectPublishable, hasRootConfigEntry, withRootConfigPublicationLock, } = require("./rootConfigPublication.js");
23
23
  const { server } = require("../server/Server.js");
@@ -341,6 +341,8 @@ async function packageComponent(req) {
341
341
  *
342
342
  * A no-op on the main thread, and the operations API deploys there — so operator deploys are unvalidated
343
343
  * (#2315 step 2). What this guarantees is ORDER: where validation runs, a rejected candidate never goes live.
344
+ *
345
+ * Also a no-op on a worker that `freeze-after-load` froze after its boot load; see components/DESIGN.md.
344
346
  */
345
347
  // `componentLoader.setErrorReporter` is ONE process-global callback, so two components validating
346
348
  // concurrently on the same worker cross-attribute their failures: B installs its reporter while A is
@@ -349,6 +351,10 @@ async function packageComponent(req) {
349
351
  // global is only ever owned by one in-flight validation.
350
352
  let validationChain = Promise.resolve();
351
353
  async function validateComponentLoads(candidateDirPath, emit) {
354
+ if (!isMainThread && require("../security/jsLoader.js").laterLoadsMeetFrozenIntrinsics()) {
355
+ log.trace(`Not load-validating ${path.basename(candidateDirPath)}: this worker's intrinsics are frozen after its boot load, so the load would not match the one a restarted worker performs`);
356
+ return;
357
+ }
352
358
  const run = validationChain.then(() => validateComponentLoadsExclusive(candidateDirPath, emit), () => validateComponentLoadsExclusive(candidateDirPath, emit));
353
359
  validationChain = run.then(() => { }, () => { });
354
360
  return run;
@@ -444,6 +450,26 @@ function logRestartOutcome(restart, what) {
444
450
  else if (!restart.completed)
445
451
  log.warn(`The restart after ${what} was still running after ${RESTART_WAIT_CEILING_MS}ms; worker threads may still be running the previous code`);
446
452
  }
453
+ // A peer's validation load and swap, which have no allowance of their own to sum.
454
+ const PEER_DEPLOY_VALIDATION_MARGIN_MS = 10 * 60 * 1000;
455
+ /**
456
+ * How long the origin waits for each peer to answer a replicated deploy: every wait and command the peer is
457
+ * allowed for this request, each at its full allowance. That includes the preparation lock's wait: a peer already
458
+ * preparing the same component for another deploy holds this one there for a preparation budget before the lock
459
+ * re-checks the holder. The lock keeps waiting while that holder is alive, so a peer queued behind a longer
460
+ * preparation, or behind several, can take longer; so can one validating plugins whose configured timeouts outlast
461
+ * the margin. Such a peer is reported as not answering, which says nothing of its outcome.
462
+ */
463
+ function peerDeployAnswerTimeoutMs(req) {
464
+ const { RESTART_WAIT_CEILING_MS } = require("./awaitRestart.js");
465
+ const payloadWaitMs = coerceTimeoutMs(req.deployment_timeout, DEFAULT_AWAIT_ROW_TIMEOUT_MS);
466
+ const installTimeoutMs = coerceTimeoutMs(req.install_timeout, undefined);
467
+ return Math.min(payloadWaitMs * (req.credentials?.length ? 2 : 1) +
468
+ // the lock's wait on another deploy's preparation, then this deploy's own
469
+ 2 * componentPreparationBudgetMs(installTimeoutMs) +
470
+ PEER_DEPLOY_VALIDATION_MARGIN_MS +
471
+ (req.restart === true ? RESTART_WAIT_CEILING_MS : 0), hdbTerms.MAX_SET_TIMEOUT_MS);
472
+ }
447
473
  /**
448
474
  * Can deploy a component in multiple ways. If a 'package' is provided all it will do is write that package to
449
475
  * harperdb-config, when HDB is restarted the package will be installed in hdb/nodeModules. If a base64 encoded string is passed it
@@ -751,7 +777,10 @@ async function deployComponent(req) {
751
777
  // finish()'s single write; live SSE 'peer' events still fire below.
752
778
  recorder?.seal();
753
779
  emit('phase', { phase: 'replicate', status: 'start' });
754
- let response = await server.replication.replicateOperation(req, { onPeerResult });
780
+ let response = await server.replication.replicateOperation(req, {
781
+ onPeerResult,
782
+ timeoutMs: peerDeployAnswerTimeoutMs(req),
783
+ });
755
784
  emit('phase', { phase: 'replicate', status: 'done' });
756
785
  if (recorder && response?.replicated) {
757
786
  // Fallback path for replicators that don't honor onPeerResult: re-record the
@@ -1413,6 +1442,7 @@ exports.dropCustomFunctionProject = dropCustomFunctionProject;
1413
1442
  exports.packageComponent = packageComponent;
1414
1443
  exports.deployComponent = deployComponent;
1415
1444
  exports.unconfirmedStagingPeers = unconfirmedStagingPeers;
1445
+ exports.peerDeployAnswerTimeoutMs = peerDeployAnswerTimeoutMs;
1416
1446
  exports.getComponents = getComponents;
1417
1447
  exports.getComponentFile = getComponentFile;
1418
1448
  exports.setComponentFile = setComponentFile;