@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.
- package/bin/cliOperations.ts +25 -3
- package/bin/run.ts +18 -0
- package/components/Application.ts +52 -78
- package/components/DESIGN.md +76 -3
- package/components/Scope.ts +10 -4
- package/components/anthropic/index.ts +10 -1
- package/components/bedrock/index.ts +10 -1
- package/components/componentLoader.ts +23 -14
- package/components/mcp/tools/operations.ts +3 -1
- package/components/ollama/index.ts +10 -1
- package/components/openai/index.ts +265 -18
- package/components/operations.js +40 -1
- package/config/configUtils.ts +3 -19
- package/dataLayer/DESIGN.md +29 -5
- package/dataLayer/harperBridge/ResourceBridge.ts +39 -3
- package/dataLayer/restoreMarker.ts +250 -14
- package/dataLayer/schema.ts +2 -7
- package/dataLayer/schemaDescribe.ts +10 -0
- package/dist/bin/cliOperations.js +28 -3
- package/dist/bin/cliOperations.js.map +1 -1
- package/dist/bin/run.js +19 -0
- package/dist/bin/run.js.map +1 -1
- package/dist/components/Application.d.ts +8 -2
- package/dist/components/Application.js +43 -69
- package/dist/components/Application.js.map +1 -1
- package/dist/components/Scope.d.ts +1 -1
- package/dist/components/Scope.js +9 -4
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/anthropic/index.d.ts +0 -10
- package/dist/components/anthropic/index.js +9 -1
- package/dist/components/anthropic/index.js.map +1 -1
- package/dist/components/bedrock/index.d.ts +0 -12
- package/dist/components/bedrock/index.js +9 -1
- package/dist/components/bedrock/index.js.map +1 -1
- package/dist/components/componentLoader.js +23 -14
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/mcp/tools/operations.js +1 -1
- package/dist/components/mcp/tools/operations.js.map +1 -1
- package/dist/components/ollama/index.d.ts +0 -13
- package/dist/components/ollama/index.js +9 -1
- package/dist/components/ollama/index.js.map +1 -1
- package/dist/components/openai/index.d.ts +11 -15
- package/dist/components/openai/index.js +224 -12
- package/dist/components/openai/index.js.map +1 -1
- package/dist/components/operations.d.ts +9 -0
- package/dist/components/operations.js +32 -2
- package/dist/components/operations.js.map +1 -1
- package/dist/config/configUtils.d.ts +1 -2
- package/dist/config/configUtils.js +7 -22
- package/dist/config/configUtils.js.map +1 -1
- package/dist/dataLayer/harperBridge/ResourceBridge.js +29 -2
- package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
- package/dist/dataLayer/restoreMarker.d.ts +25 -3
- package/dist/dataLayer/restoreMarker.js +213 -13
- package/dist/dataLayer/restoreMarker.js.map +1 -1
- package/dist/dataLayer/schema.js +1 -4
- package/dist/dataLayer/schema.js.map +1 -1
- package/dist/dataLayer/schemaDescribe.js +10 -0
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/json/systemSchema.json +28 -0
- package/dist/resources/DatabaseTransaction.d.ts +21 -1
- package/dist/resources/DatabaseTransaction.js +147 -8
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/PrimaryRocksDatabase.js +1 -1
- package/dist/resources/PrimaryRocksDatabase.js.map +1 -1
- package/dist/resources/Table.d.ts +31 -3
- package/dist/resources/Table.js +397 -79
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/auditStore.js +16 -10
- package/dist/resources/auditStore.js.map +1 -1
- package/dist/resources/blob.d.ts +1 -0
- package/dist/resources/blob.js +14 -5
- package/dist/resources/blob.js.map +1 -1
- package/dist/resources/branchDatabase.js +3 -3
- package/dist/resources/branchDatabase.js.map +1 -1
- package/dist/resources/databaseDropPreparation.d.ts +20 -0
- package/dist/resources/databaseDropPreparation.js +106 -0
- package/dist/resources/databaseDropPreparation.js.map +1 -0
- package/dist/resources/databases.d.ts +26 -21
- package/dist/resources/databases.js +1040 -204
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/derivedIndexRegistry.d.ts +23 -0
- package/dist/resources/derivedIndexRegistry.js +92 -0
- package/dist/resources/derivedIndexRegistry.js.map +1 -1
- package/dist/resources/derivedIndexRuntime.d.ts +10 -0
- package/dist/resources/derivedIndexRuntime.js +136 -25
- package/dist/resources/derivedIndexRuntime.js.map +1 -1
- package/dist/resources/derivedIndexes.d.ts +39 -0
- package/dist/resources/derivedIndexes.js +733 -0
- package/dist/resources/derivedIndexes.js.map +1 -0
- package/dist/resources/fullTextSchema.d.ts +8 -0
- package/dist/resources/fullTextSchema.js +42 -0
- package/dist/resources/fullTextSchema.js.map +1 -1
- package/dist/resources/fullTextSchemaLifecycle.d.ts +0 -5
- package/dist/resources/fullTextSchemaLifecycle.js +0 -9
- package/dist/resources/fullTextSchemaLifecycle.js.map +1 -1
- package/dist/resources/graphql.js +101 -9
- package/dist/resources/graphql.js.map +1 -1
- package/dist/resources/indexes/hnswDerivedIndex.d.ts +0 -10
- package/dist/resources/indexes/hnswDerivedIndex.js +0 -230
- package/dist/resources/indexes/hnswDerivedIndex.js.map +1 -1
- package/dist/resources/indexes/nativeFullTextDerivedIndexLifecycle.d.ts +3 -0
- package/dist/resources/indexes/nativeFullTextDerivedIndexLifecycle.js +57 -8
- package/dist/resources/indexes/nativeFullTextDerivedIndexLifecycle.js.map +1 -1
- package/dist/resources/models/Models.d.ts +26 -3
- package/dist/resources/models/Models.js +256 -13
- package/dist/resources/models/Models.js.map +1 -1
- package/dist/resources/models/TestBackend.d.ts +3 -1
- package/dist/resources/models/TestBackend.js +35 -1
- package/dist/resources/models/TestBackend.js.map +1 -1
- package/dist/resources/models/analyticsTable.d.ts +2 -2
- package/dist/resources/models/analyticsTable.js +4 -2
- package/dist/resources/models/analyticsTable.js.map +1 -1
- package/dist/resources/models/backendHelpers.d.ts +24 -0
- package/dist/resources/models/backendHelpers.js +18 -1
- package/dist/resources/models/backendHelpers.js.map +1 -1
- package/dist/resources/models/backendRegistry.d.ts +10 -21
- package/dist/resources/models/backendRegistry.js +74 -18
- package/dist/resources/models/backendRegistry.js.map +1 -1
- package/dist/resources/models/bootstrap.d.ts +7 -0
- package/dist/resources/models/bootstrap.js +36 -4
- package/dist/resources/models/bootstrap.js.map +1 -1
- package/dist/resources/models/decideHook.d.ts +33 -0
- package/dist/resources/models/decideHook.js +105 -0
- package/dist/resources/models/decideHook.js.map +1 -0
- package/dist/resources/models/decision.d.ts +64 -0
- package/dist/resources/models/decision.js +507 -0
- package/dist/resources/models/decision.js.map +1 -0
- package/dist/resources/models/decisionStore.d.ts +134 -0
- package/dist/resources/models/decisionStore.js +350 -0
- package/dist/resources/models/decisionStore.js.map +1 -0
- package/dist/resources/models/embedHook.d.ts +66 -8
- package/dist/resources/models/embedHook.js +228 -61
- package/dist/resources/models/embedHook.js.map +1 -1
- package/dist/resources/models/generativeDecision.d.ts +58 -0
- package/dist/resources/models/generativeDecision.js +315 -0
- package/dist/resources/models/generativeDecision.js.map +1 -0
- package/dist/resources/models/types.d.ts +232 -4
- package/dist/security/authn/oidc/tokenExchange.js +3 -33
- package/dist/security/authn/oidc/tokenExchange.js.map +1 -1
- package/dist/security/authn/oidc/tokenUseTable.d.ts +9 -0
- package/dist/security/authn/oidc/tokenUseTable.js +28 -0
- package/dist/security/authn/oidc/tokenUseTable.js.map +1 -0
- package/dist/security/certificateVerification/certificateVerificationSource.d.ts +0 -1
- package/dist/security/certificateVerification/certificateVerificationSource.js +3 -3
- package/dist/security/certificateVerification/certificateVerificationSource.js.map +1 -1
- package/dist/security/certificateVerification/crlVerification.js +77 -165
- package/dist/security/certificateVerification/crlVerification.js.map +1 -1
- package/dist/security/certificateVerification/types.d.ts +0 -3
- package/dist/security/certificateVerification/verificationTables.d.ts +19 -0
- package/dist/security/certificateVerification/verificationTables.js +125 -0
- package/dist/security/certificateVerification/verificationTables.js.map +1 -0
- package/dist/security/certificateVerification/verificationUtils.d.ts +1 -1
- package/dist/security/certificateVerification/verificationUtils.js +6 -31
- package/dist/security/certificateVerification/verificationUtils.js.map +1 -1
- package/dist/security/jsLoader.d.ts +5 -0
- package/dist/security/jsLoader.js +8 -0
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/server/Server.d.ts +1 -0
- package/dist/server/Server.js.map +1 -1
- package/dist/server/http.js +2 -2
- package/dist/server/http.js.map +1 -1
- package/dist/server/itc/serverHandlers.js +21 -2
- package/dist/server/itc/serverHandlers.js.map +1 -1
- package/dist/server/jobs/jobOwnership.d.ts +25 -0
- package/dist/server/jobs/jobOwnership.js +127 -0
- package/dist/server/jobs/jobOwnership.js.map +1 -0
- package/dist/server/jobs/jobProcess.js +9 -2
- package/dist/server/jobs/jobProcess.js.map +1 -1
- package/dist/server/jobs/jobs.js +18 -5
- package/dist/server/jobs/jobs.js.map +1 -1
- package/dist/server/loadRootComponents.js +10 -0
- package/dist/server/loadRootComponents.js.map +1 -1
- package/dist/server/serverHelpers/contentTypes.js +11 -1
- package/dist/server/serverHelpers/contentTypes.js.map +1 -1
- package/dist/server/serverHelpers/serverHandlers.js +12 -2
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
- package/dist/server/threads/itc.d.ts +4 -1
- package/dist/server/threads/itc.js +29 -6
- package/dist/server/threads/itc.js.map +1 -1
- package/dist/server/threads/manageThreads.d.ts +12 -4
- package/dist/server/threads/manageThreads.js +241 -119
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/server/threads/threadServer.d.ts +1 -0
- package/dist/server/threads/threadServer.js +15 -1
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/server/threads/windowsProcessTree.d.ts +91 -0
- package/dist/server/threads/windowsProcessTree.js +361 -0
- package/dist/server/threads/windowsProcessTree.js.map +1 -0
- package/dist/server/throttle.d.ts +1 -1
- package/dist/server/throttle.js +8 -1
- package/dist/server/throttle.js.map +1 -1
- package/dist/upgrade/directives/5-3-0.js +53 -46
- package/dist/upgrade/directives/5-3-0.js.map +1 -1
- package/dist/utility/errors/hdbError.d.ts +10 -1
- package/dist/utility/errors/hdbError.js +55 -11
- package/dist/utility/errors/hdbError.js.map +1 -1
- package/dist/utility/fsync.d.ts +2 -0
- package/dist/utility/fsync.js +20 -0
- package/dist/utility/fsync.js.map +1 -0
- package/dist/utility/globalSchema.d.ts +18 -0
- package/dist/utility/hdbTerms.d.ts +3 -0
- package/dist/utility/hdbTerms.js +3 -0
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/signalling.d.ts +7 -1
- package/dist/utility/signalling.js +27 -3
- package/dist/utility/signalling.js.map +1 -1
- package/dist/utility/when.d.ts +1 -0
- package/dist/utility/when.js +21 -0
- package/dist/utility/when.js.map +1 -1
- package/dist/validation/configValidator.js +30 -3
- package/dist/validation/configValidator.js.map +1 -1
- package/index.ts +13 -0
- package/json/systemSchema.json +28 -0
- package/npm-shrinkwrap.json +151 -55
- package/package.json +14 -13
- package/resources/DESIGN.md +80 -100
- package/resources/DatabaseTransaction.ts +157 -10
- package/resources/PrimaryRocksDatabase.ts +2 -2
- package/resources/Table.ts +494 -101
- package/resources/auditStore.ts +18 -10
- package/resources/blob.ts +13 -6
- package/resources/branchDatabase.ts +3 -3
- package/resources/databaseDropPreparation.ts +120 -0
- package/resources/databases.ts +1155 -205
- package/resources/derivedIndexRegistry.ts +122 -0
- package/resources/derivedIndexRuntime.ts +157 -30
- package/resources/derivedIndexes.ts +856 -0
- package/resources/fullTextSchema.ts +55 -0
- package/resources/fullTextSchemaLifecycle.ts +0 -15
- package/resources/graphql.ts +107 -12
- package/resources/indexes/DESIGN.md +7 -0
- package/resources/indexes/hnswDerivedIndex.ts +0 -260
- package/resources/indexes/nativeFullTextDerivedIndexLifecycle.ts +72 -9
- package/resources/models/DESIGN.md +39 -0
- package/resources/models/Models.ts +361 -18
- package/resources/models/TestBackend.ts +56 -1
- package/resources/models/analyticsTable.ts +6 -4
- package/resources/models/backendHelpers.ts +17 -0
- package/resources/models/backendRegistry.ts +76 -21
- package/resources/models/bootstrap.ts +57 -7
- package/resources/models/decideHook.ts +135 -0
- package/resources/models/decision.ts +505 -0
- package/resources/models/decisionStore.ts +419 -0
- package/resources/models/embedHook.ts +272 -55
- package/resources/models/generativeDecision.ts +459 -0
- package/resources/models/types.ts +231 -4
- package/security/DESIGN.md +22 -2
- package/security/authn/oidc/tokenExchange.ts +6 -34
- package/security/authn/oidc/tokenUseTable.ts +27 -0
- package/security/certificateVerification/certificateVerificationSource.ts +2 -3
- package/security/certificateVerification/crlVerification.ts +96 -174
- package/security/certificateVerification/types.ts +0 -3
- package/security/certificateVerification/verificationTables.ts +124 -0
- package/security/certificateVerification/verificationUtils.ts +8 -32
- package/security/jsLoader.ts +9 -1
- package/server/DESIGN.md +27 -1
- package/server/Server.ts +2 -1
- package/server/http.ts +4 -2
- package/server/itc/serverHandlers.js +29 -1
- package/server/jobs/jobOwnership.ts +89 -0
- package/server/jobs/jobProcess.ts +8 -2
- package/server/jobs/jobs.ts +15 -4
- package/server/loadRootComponents.js +11 -0
- package/server/serverHelpers/contentTypes.ts +13 -1
- package/server/serverHelpers/serverHandlers.js +11 -2
- package/server/threads/itc.js +32 -6
- package/server/threads/manageThreads.js +268 -122
- package/server/threads/threadServer.js +13 -1
- package/server/threads/windowsProcessTree.ts +409 -0
- package/server/throttle.ts +11 -1
- package/studio/web/assets/{Chat-CveGbxe6.js → Chat-Bq60AO-g.js} +1 -1
- package/studio/web/assets/{FloatingChat-IpCFgYWL.js → FloatingChat-D4560T0p.js} +3 -3
- package/studio/web/assets/{apiToken-CS8fFTgL.js → apiToken-BEvbFPMc.js} +1 -1
- package/studio/web/assets/{applications-D7F4Jopl.js → applications-CSUVTH4E.js} +1 -1
- package/studio/web/assets/{cssMode-Daw_oLPq.js → cssMode-DJyc9mHj.js} +1 -1
- package/studio/web/assets/{editor-B3Bs1zWX.js → editor-DDIsQfj6.js} +1 -1
- package/studio/web/assets/{html-CDaQwWiE.js → html-g1BJHxLy.js} +1 -1
- package/studio/web/assets/{htmlMode-Cb6emO4U.js → htmlMode-Vh5IglCQ.js} +1 -1
- package/studio/web/assets/{index-B4g2Fu_2.js → index-DGRAzvO4.js} +5 -5
- package/studio/web/assets/{index.lazy-NwhvF1q1.js → index.lazy-vgSic7et.js} +1 -1
- package/studio/web/assets/{javascript-2_86gB9Q.js → javascript-5VIolqf7.js} +1 -1
- package/studio/web/assets/{jsonMode-DX-i86uQ.js → jsonMode-DG4zQraI.js} +1 -1
- package/studio/web/assets/{languageServices-B85WN-Ej.js → languageServices-t5FBpX-i.js} +1 -1
- package/studio/web/assets/{lspLanguageFeatures-JCWHIsKg.js → lspLanguageFeatures-DgVnNPh-.js} +1 -1
- package/studio/web/assets/{notifications-D9ejzt52.js → notifications-BeWcX04m.js} +1 -1
- package/studio/web/assets/{notifications-B7hjKhai.js → notifications-DUGWrWoO.js} +1 -1
- package/studio/web/assets/{profile-D8B6No3F.js → profile-BvUEDBzW.js} +1 -1
- package/studio/web/assets/{regions-DFazIfTK.js → regions-CB-_2m7M.js} +1 -1
- package/studio/web/assets/{register-CwFLviLF.js → register-1w1Zr3b2.js} +2 -2
- package/studio/web/assets/{setComponentFile-VnJ80SSJ.js → setComponentFile-z4-qJCbA.js} +1 -1
- package/studio/web/assets/{setup-BYQxFy-C.js → setup-CS50uJ4x.js} +2 -2
- package/studio/web/assets/{status-Cn5XjmsL.js → status-CI0wOdOE.js} +1 -1
- package/studio/web/assets/{toggleHighContrast-g9xIh6TX.js → toggleHighContrast-BsAE4jPe.js} +1 -1
- package/studio/web/assets/{tsMode-EC-n0Wqc.js → tsMode-D83Gg3cq.js} +1 -1
- package/studio/web/assets/{typescript-DHmM9JCO.js → typescript-Dfp-GrNq.js} +1 -1
- package/studio/web/assets/{useEntityRestURL-BUdnVSVv.js → useEntityRestURL-BKetlINf.js} +1 -1
- package/studio/web/assets/{workers-BVl9bBB-.js → workers-CCvmDLH3.js} +1 -1
- package/studio/web/assets/{xml-C4_sqOkX.js → xml-06pZp00U.js} +1 -1
- package/studio/web/assets/{yaml-CVkbDqtW.js → yaml-iSnWMVlV.js} +1 -1
- package/studio/web/index.html +1 -1
- package/upgrade/directives/5-3-0.ts +61 -54
- package/utility/DESIGN.md +5 -1
- package/utility/errors/hdbError.ts +56 -8
- package/utility/fsync.ts +16 -0
- package/utility/hdbTerms.ts +3 -0
- package/utility/signalling.ts +33 -4
- package/utility/when.ts +22 -0
- 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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
236
|
-
if (typeof message === 'string'
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
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":";;;;;;AA4SA,sDAQC;AApTD;;;;;;;;;;;;;;;;;GAiBG;AACH,kFAAwF;AACxF,gFASkD;AAClD,kEAA+D;AAC/D,8FAAkE;AAiBlE,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AACrD,gFAAgF;AAChF,8EAA8E;AAC9E,4EAA4E;AAC5E,4CAA4C;AAC5C,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,CAAC;AACrC,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,4EAA4E;AAC5E,0DAA0D;AAC1D,MAAM,wBAAwB,GAAG,CAAC,IAAI,EAAE,CAAC;AACzC,wEAAwE;AACxE,4EAA4E;AAC5E,0EAA0E;AAC1E,iBAAiB;AACjB,MAAM,gCAAgC,GAAG,GAAG,CAAC;AAC7C,2EAA2E;AAC3E,yEAAyE;AACzE,0EAA0E;AAC1E,qCAAqC;AACrC,MAAM,iCAAiC,GAAG,GAAG,CAAC;AAC9C,iFAAiF;AACjF,iFAAiF;AACjF,uEAAuE;AACvE,MAAM,8BAA8B,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,QAAQ;AAEhE,MAAM,GAAG,GAAG,0BAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC;AAiB5D;;;;;;;;;;;;;GAaG;AACH,MAAa,aAAa;IAChB,IAAI,GAAG,QAAQ,CAAC;IAChB,QAAQ,CAAS;IACjB,aAAa,CAAU;IACvB,OAAO,CAAS;IAChB,aAAa,CAAU;IACvB,iBAAiB,CAAU;IAC3B,MAAM,CAAe;IAC9B,6EAA6E;IAC7E,qFAAqF;IACrF,wFAAwF;IAC/E,eAAe,CAAU;IAElC,YAAY,SAA8B,EAAE,EAAE,YAA0B,KAAK;QAC5E,IAAI,CAAC,OAAO,GAAG,IAAA,qCAAiB,EAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACxF,IAAI,CAAC,QAAQ,GAAG,IAAA,mCAAe,EAAC,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC;YACJ,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,KAAK,gBAAgB,CAAC;QAC7E,CAAC;QAAC,MAAM,CAAC;YACR,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,YAAY;QACX,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAwB,EAAE,IAA4B;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC;QAC/C,IAAA,gCAAY,EAAC,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACjD,qEAAqE;QACrE,sEAAsE;QACtE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,IAAI,GAA4B,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,IAAA,qCAAiB,EAAsB,GAAG,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;QACzG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,kBAAkB,CAAC,kDAAkD,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,IAAI,kBAAkB,CAC3B,+BAA+B,IAAI,CAAC,IAAI,CAAC,MAAM,gBAAgB,KAAK,CAAC,MAAM,SAAS,CACpF,CAAC;QACH,CAAC;QACD,mEAAmE;QACnE,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChF,MAAM,IAAI,kBAAkB,CAAC,sCAAsC,CAAC,oCAAoC,CAAC,CAAC;YAC3G,CAAC;YACD,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,IAAA,0CAAsB,EAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAC5E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAoB,EAAE,IAA+B;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC;QAC/C,IAAA,gCAAY,EAAC,KAAK,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,MAAM,IAAA,qCAAiB,EAAqB,GAAG,EAAE,0BAA0B,EAAE,kBAAkB,CAAC,CAAC;QAC9G,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,kBAAkB,CAAC,sDAAsD,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;QAC3C,IAAI,UAAU,IAAI,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC1D,MAAM,IAAI,kBAAkB,CAAC,kDAAkD,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,IAAA,0CAAsB,EAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QACzE,IAAA,0CAAsB,EAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACjF,MAAM,MAAM,GAAmB;YAC9B,OAAO,EAAE,UAAU,IAAI,EAAE;YACzB,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC;SACnD,CAAC;QACF,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QACpE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,CAAC,cAAc,CAAC,KAAoB,EAAE,IAA+B;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC;QAC/C,IAAA,gCAAY,EAAC,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,MAAM,IAAI,kBAAkB,CAAC,yDAAyD,CAAC,CAAC;QAEvG,uEAAuE;QACvE,kEAAkE;QAClE,oEAAoE;QACpE,sEAAsE;QACtE,0BAA0B;QAC1B,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;QACvD,IAAI,iBAA6D,CAAC;QAClE,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,MAAM,KAAK,GAAkB,EAAE,CAAC;YAChC,IAAI,OAAO,KAAK,EAAE,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpE,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;YACpC,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;gBACtC,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oBACxC,aAAa,GAAG,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;gBAC1E,CAAC;YACF,CAAC;YACD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC1B,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAC1D,iEAAiE;gBACjE,gEAAgE;gBAChE,yDAAyD;gBACzD,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAChD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;oBAAE,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC;gBAC7D,KAAK,CAAC,YAAY,GAAG,iBAAiB,CAAC;YACxC,CAAC;YACD,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACtE,MAAM,KAAK,CAAC;YACb,CAAC;QACF,CAAC;QAED,oEAAoE;QACpE,oEAAoE;QACpE,qCAAqC;QACrC,IAAI,CAAC,iBAAiB,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;QACrD,CAAC;IACF,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,IAAY,EAAE,YAA0B;QACjE,MAAM,MAAM,GAAG,IAAA,iCAAa,EAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACnE,MAAM,OAAO,GAA2B;YACvC,cAAc,EAAE,kBAAkB;YAClC,eAAe,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE;SACzC,CAAC;QACF,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QAC5E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,EAAE;YACxD,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM;SACN,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACb,kEAAkE;YAClE,sEAAsE;YACtE,mEAAmE;YACnE,iEAAiE;YACjE,iEAAiE;YACjE,2CAA2C;YAC3C,MAAM,IAAI,kBAAkB,CAC3B,UAAU,IAAI,kBAAkB,GAAG,CAAC,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,EACzE,GAAG,CAAC,MAAM,CACV,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;CACD;AAtKD,sCAsKC;AAED,KAAK,UAAU,eAAe,CAAC,GAAa;IAC3C,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,MAAM,IAAA,mCAAe,EACjC,GAAG,EACH,uBAAuB,EACvB,kBAAkB,EAClB,wCAAoB,CACpB,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;QACrC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,SAAS,GACd,OAAO,CAAC,MAAM,GAAG,gCAAgC;gBAChD,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,gCAAgC,CAAC,GAAG,GAAG;gBAC1D,CAAC,CAAC,OAAO,CAAC;YACZ,OAAO,KAAK,SAAS,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,CAAC;IACX,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,IAIrC;IACA,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;QAAE,IAAA,iCAAY,EAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;;QAClE,IAAA,kCAAa,EAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,MAAa,kBAAmB,SAAQ,yBAAW;IAIlD,YAAY,OAAe,EAAE,cAAuB;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,cAAc,KAAK,SAAS;YAAE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACxE,CAAC;CACD;AATD,gDASC;AAED,kCAAkC;AAElC,SAAS,gBAAgB,CACxB,KAAa,EACb,KAAoB,EACpB,IAA+B,EAC/B,MAAe,EACf,cAAuB;IAEvB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,IAAI,GAA4B;QACrC,KAAK;QACL,QAAQ;QACR,MAAM;KACN,CAAC;IACF,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrC,yEAAyE;QACzE,0EAA0E;QAC1E,wDAAwD;IACzD,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC9E,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACxC,yEAAyE;QACzE,+EAA+E;QAC/E,6EAA6E;QAC7E,sBAAsB;QACtB,IAAI,cAAc,EAAE,CAAC;YACpB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7C,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,CAAC;IACF,CAAC;IACD,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9D,IAAI,cAAc;QAAE,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IAC1D,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CACzB,KAAoB;IAEpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,KAAoB;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACxE,OAAO,KAAK,CAAC,KAAK,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,CAAU;IAClC,MAAM,GAAG,GAAoF;QAC5F,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO;KAClB,CAAC;IACF,IAAI,CAAC,CAAC,UAAU;QAAE,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,UAAU,CAAC;IAClD,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACzC,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;SAC1E,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,CAAU;IAI/B,OAAO;QACN,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACT,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;SACxB;KACD,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,cAA8C;IACxE,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,cAAc,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACvD,IAAI,cAAc,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAC9D,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAC;QACtE,OAAO;YACN,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;SAC5E,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,MAAsB;IAC9C,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,QAAQ;YACZ,OAAO,QAAQ,CAAC;QACjB,KAAK,YAAY,CAAC;QAClB,KAAK,eAAe;YACnB,OAAO,YAAY,CAAC;QACrB,KAAK,gBAAgB;YACpB,OAAO,gBAAgB,CAAC;QACzB,KAAK,MAAM,CAAC;QACZ;YACC,OAAO,MAAM,CAAC;IAChB,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,GAAiC;IACxD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI;YAAE,SAAS;QAC3C,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACR,mEAAmE;YACnE,kEAAkE;YAClE,gEAAgE;YAChE,8DAA8D;YAC9D,kEAAkE;YAClE,GAAG,CAAC,IAAI,EAAE,CAAC,qDAAqD,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;YACpG,SAAS;QACV,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACzC,CAAC;AAQD,SAAS,uBAAuB,CAC/B,GAAqC,EACrC,KAA0B,EAC1B,aAAqB;IAErB,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,CAAC,GAAG,EAAE,CAAC;QACV,uEAAuE;QACvE,4EAA4E;QAC5E,IAAI,GAAG,CAAC,IAAI,IAAI,iCAAiC,EAAE,CAAC;YACnD,MAAM,IAAI,kBAAkB,CAC3B,yCAAyC,iCAAiC,6BAA6B,CACvG,CAAC;QACH,CAAC;QACD,GAAG,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IAChC,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI;QAAE,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;IACzD,IAAI,OAAO,KAAK,CAAC,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;QACnD,6EAA6E;QAC7E,qEAAqE;QACrE,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;YAC1F,MAAM,IAAI,kBAAkB,CAC3B,qCAAqC,wBAAwB,iBAAiB,KAAK,GAAG,CACtF,CAAC;QACH,CAAC;QACD,iFAAiF;QACjF,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;QACjD,IAAI,aAAa,GAAG,8BAA8B,EAAE,CAAC;YACpD,MAAM,IAAI,kBAAkB,CAC3B,yDAAyD,8BAA8B,QAAQ,CAC/F,CAAC;QACH,CAAC;QACD,GAAG,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,aAAa,CAAC;AACtB,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAqC;IACjE,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,kDAAkD;IAClD,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,SAAS;QACnC,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACR,gEAAgE;YAChE,gEAAgE;YAChE,GAAG,CAAC,IAAI,EAAE,CAAC,qDAAqD,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;YAC7F,SAAS;QACV,CAAC;IACF,CAAC;IACD,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,OAAO,GAAG,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,KAAK,SAAS,CAAC,CAAC,OAAO,CAAC,IAAgC;IACvD,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAA4C,EAAE,CAAC;QACxE,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,IAAI,GAAG,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;YACvC,MAAM,IAAI,kBAAkB,CAAC,6BAA6B,oBAAoB,iCAAiC,CAAC,CAAC;QAClH,CAAC;QACD,IAAI,QAAgB,CAAC;QACrB,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC1C,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,MAAM,KAAK,MAAM;gBAAE,OAAO;YAC9B,IAAI,MAAM;gBAAE,MAAM,MAAM,CAAC;QAC1B,CAAC;IACF,CAAC;IACD,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACxB,IAAI,IAAI,EAAE,CAAC;QACV,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM;YAAE,MAAM,MAAM,CAAC;IAC/C,CAAC;AACF,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IACnC,yEAAyE;IACzE,2DAA2D;IAC3D,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAS;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,yCAAyC;QAC1F,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/C,CAAC;IACD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IACrC,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACR,uEAAuE;QACvE,4BAA4B;QAC5B,MAAM,IAAI,kBAAkB,CAAC,mCAAmC,CAAC,CAAC;IACnE,CAAC;AACF,CAAC"}
|
|
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, {
|
|
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;
|