@remnic/core 1.0.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abort-error.d.ts +32 -0
- package/dist/abort-error.js +11 -0
- package/dist/access-cli.js +41 -40
- package/dist/access-cli.js.map +1 -1
- package/dist/access-http.d.ts +3 -2
- package/dist/access-http.js +11 -11
- package/dist/access-mcp.d.ts +3 -2
- package/dist/access-mcp.js +7 -7
- package/dist/access-schema.d.ts +16 -16
- package/dist/access-service-HmO1Trrx.d.ts +732 -0
- package/dist/access-service.d.ts +11 -658
- package/dist/access-service.js +9 -9
- package/dist/bootstrap.d.ts +1 -1
- package/dist/briefing.js +6 -6
- package/dist/calibration.js +3 -3
- package/dist/causal-consolidation.js +10 -10
- package/dist/{chunk-PMB3WGDL.js → chunk-37UIFYWO.js} +64 -3
- package/dist/chunk-37UIFYWO.js.map +1 -0
- package/dist/{chunk-X4WESCKA.js → chunk-3QHL5ABG.js} +5 -5
- package/dist/{chunk-2VFW5K5U.js → chunk-3SV6CQHO.js} +10 -8
- package/dist/chunk-3SV6CQHO.js.map +1 -0
- package/dist/{chunk-U2IQTSBY.js → chunk-3WHVNEN7.js} +1 -1
- package/dist/chunk-3WHVNEN7.js.map +1 -0
- package/dist/{chunk-QKAH5B6E.js → chunk-44ICJRF3.js} +97 -9
- package/dist/chunk-44ICJRF3.js.map +1 -0
- package/dist/{chunk-S4LX5EBI.js → chunk-47UU5PU2.js} +48 -9
- package/dist/chunk-47UU5PU2.js.map +1 -0
- package/dist/{chunk-ECKDIK5F.js → chunk-4LACOVZX.js} +2 -2
- package/dist/{chunk-AYPYCLR7.js → chunk-6LX5ORAS.js} +2 -2
- package/dist/{chunk-GJQPH5G3.js → chunk-6UJ47TVX.js} +2 -2
- package/dist/{chunk-KWP7T3DP.js → chunk-7ECD5ATE.js} +2 -2
- package/dist/{chunk-74JR4N5J.js → chunk-7WQ6SLIE.js} +2 -2
- package/dist/{chunk-7PA4OZEU.js → chunk-BLKTA7MM.js} +6 -14
- package/dist/chunk-BLKTA7MM.js.map +1 -0
- package/dist/{chunk-XMGSSBFX.js → chunk-DEPL3635.js} +172 -100
- package/dist/chunk-DEPL3635.js.map +1 -0
- package/dist/{chunk-JROGC36Y.js → chunk-DHHP2Z4X.js} +2 -2
- package/dist/{chunk-BKQJBXXX.js → chunk-GGD5W7TB.js} +2 -2
- package/dist/chunk-GGD5W7TB.js.map +1 -0
- package/dist/{chunk-POMSFKTB.js → chunk-GV6NLQ4X.js} +14 -14
- package/dist/{chunk-AAI7JARD.js → chunk-HMDCOMYU.js} +8 -11
- package/dist/chunk-HMDCOMYU.js.map +1 -0
- package/dist/{chunk-POBPGDWI.js → chunk-ITRLGI2T.js} +2 -2
- package/dist/{chunk-MYQWXITD.js → chunk-JIU55F3X.js} +2 -2
- package/dist/{chunk-UPMD5XND.js → chunk-JL2PU6AI.js} +16 -5
- package/dist/chunk-JL2PU6AI.js.map +1 -0
- package/dist/{chunk-OJFGVJS6.js → chunk-MBJHSA7F.js} +65 -9
- package/dist/chunk-MBJHSA7F.js.map +1 -0
- package/dist/{chunk-V7XCAHIB.js → chunk-MVTHXUBX.js} +46 -23
- package/dist/chunk-MVTHXUBX.js.map +1 -0
- package/dist/{chunk-BTY5RRRF.js → chunk-N42IWANG.js} +5 -5
- package/dist/{chunk-NSB3WSYS.js → chunk-NQEVYWX6.js} +74 -3
- package/dist/chunk-NQEVYWX6.js.map +1 -0
- package/dist/chunk-OIT5QGG4.js +80 -0
- package/dist/chunk-OIT5QGG4.js.map +1 -0
- package/dist/chunk-PVGDJXVK.js +21 -0
- package/dist/chunk-PVGDJXVK.js.map +1 -0
- package/dist/{chunk-RCICHSHL.js → chunk-SYUK3VLY.js} +2 -2
- package/dist/{chunk-YFYL2SIJ.js → chunk-WBSAYXVI.js} +127 -39
- package/dist/chunk-WBSAYXVI.js.map +1 -0
- package/dist/{chunk-KEG4GNGI.js → chunk-XZ2TIKGC.js} +38 -8
- package/dist/chunk-XZ2TIKGC.js.map +1 -0
- package/dist/chunk-Y4FHOFJ2.js +140 -0
- package/dist/chunk-Y4FHOFJ2.js.map +1 -0
- package/dist/chunk-YNB73F22.js +137 -0
- package/dist/chunk-YNB73F22.js.map +1 -0
- package/dist/{chunk-HITJFT7E.js → chunk-ZVBB3T7V.js} +10 -5
- package/dist/chunk-ZVBB3T7V.js.map +1 -0
- package/dist/{cli-DwIBnp2g.d.ts → cli-BneVIEvh.d.ts} +2 -2
- package/dist/cli.d.ts +4 -3
- package/dist/cli.js +25 -24
- package/dist/config.js +1 -1
- package/dist/contradiction-review-WIUBAR52.js +21 -0
- package/dist/contradiction-review-WIUBAR52.js.map +1 -0
- package/dist/contradiction-scan-GR33PONM.js +376 -0
- package/dist/contradiction-scan-GR33PONM.js.map +1 -0
- package/dist/direct-answer-wiring.d.ts +77 -0
- package/dist/direct-answer-wiring.js +75 -0
- package/dist/direct-answer-wiring.js.map +1 -0
- package/dist/direct-answer.d.ts +106 -0
- package/dist/direct-answer.js +10 -0
- package/dist/direct-answer.js.map +1 -0
- package/dist/{engine-X7X3AAG3.js → engine-5TIQBYZR.js} +7 -7
- package/dist/engine-5TIQBYZR.js.map +1 -0
- package/dist/entity-retrieval.js +6 -6
- package/dist/explicit-capture.d.ts +1 -1
- package/dist/extraction.js +6 -6
- package/dist/fallback-llm.d.ts +11 -2
- package/dist/fallback-llm.js +3 -3
- package/dist/harmonic-retrieval.js +2 -1
- package/dist/index.d.ts +10 -124
- package/dist/index.js +74 -137
- package/dist/index.js.map +1 -1
- package/dist/intent.js +1 -1
- package/dist/local-llm.d.ts +10 -3
- package/dist/local-llm.js +1 -1
- package/dist/operator-toolkit.js +12 -11
- package/dist/{orchestrator-B9kwlCep.d.ts → orchestrator-DRYA6_lW.d.ts} +21 -2
- package/dist/orchestrator.d.ts +1 -1
- package/dist/orchestrator.js +36 -35
- package/dist/qmd.js +2 -1
- package/dist/recall-state.d.ts +28 -1
- package/dist/recall-state.js +1 -1
- package/dist/resolution-QBTDHTG7.js +100 -0
- package/dist/resolution-QBTDHTG7.js.map +1 -0
- package/dist/resolve-provider-secret.d.ts +24 -1
- package/dist/resolve-provider-secret.js +3 -1
- package/dist/resume-bundles.js +3 -3
- package/dist/schemas.d.ts +14 -14
- package/dist/semantic-consolidation.js +6 -6
- package/dist/semantic-rule-promotion.js +6 -6
- package/dist/semantic-rule-verifier.js +6 -6
- package/dist/storage.js +5 -5
- package/dist/summarizer.js +5 -5
- package/dist/types-DJhqDJUV.d.ts +50 -0
- package/dist/types.d.ts +34 -2
- package/dist/types.js +1 -1
- package/dist/verified-recall.js +6 -6
- package/package.json +1 -1
- package/dist/chunk-2VFW5K5U.js.map +0 -1
- package/dist/chunk-7PA4OZEU.js.map +0 -1
- package/dist/chunk-AAI7JARD.js.map +0 -1
- package/dist/chunk-BKQJBXXX.js.map +0 -1
- package/dist/chunk-HITJFT7E.js.map +0 -1
- package/dist/chunk-KEG4GNGI.js.map +0 -1
- package/dist/chunk-NSB3WSYS.js.map +0 -1
- package/dist/chunk-OJFGVJS6.js.map +0 -1
- package/dist/chunk-PMB3WGDL.js.map +0 -1
- package/dist/chunk-QKAH5B6E.js.map +0 -1
- package/dist/chunk-S4LX5EBI.js.map +0 -1
- package/dist/chunk-U2IQTSBY.js.map +0 -1
- package/dist/chunk-UPMD5XND.js.map +0 -1
- package/dist/chunk-V7XCAHIB.js.map +0 -1
- package/dist/chunk-XMGSSBFX.js.map +0 -1
- package/dist/chunk-YFYL2SIJ.js.map +0 -1
- /package/dist/{engine-X7X3AAG3.js.map → abort-error.js.map} +0 -0
- /package/dist/{chunk-X4WESCKA.js.map → chunk-3QHL5ABG.js.map} +0 -0
- /package/dist/{chunk-ECKDIK5F.js.map → chunk-4LACOVZX.js.map} +0 -0
- /package/dist/{chunk-AYPYCLR7.js.map → chunk-6LX5ORAS.js.map} +0 -0
- /package/dist/{chunk-GJQPH5G3.js.map → chunk-6UJ47TVX.js.map} +0 -0
- /package/dist/{chunk-KWP7T3DP.js.map → chunk-7ECD5ATE.js.map} +0 -0
- /package/dist/{chunk-74JR4N5J.js.map → chunk-7WQ6SLIE.js.map} +0 -0
- /package/dist/{chunk-JROGC36Y.js.map → chunk-DHHP2Z4X.js.map} +0 -0
- /package/dist/{chunk-POMSFKTB.js.map → chunk-GV6NLQ4X.js.map} +0 -0
- /package/dist/{chunk-POBPGDWI.js.map → chunk-ITRLGI2T.js.map} +0 -0
- /package/dist/{chunk-MYQWXITD.js.map → chunk-JIU55F3X.js.map} +0 -0
- /package/dist/{chunk-BTY5RRRF.js.map → chunk-N42IWANG.js.map} +0 -0
- /package/dist/{chunk-RCICHSHL.js.map → chunk-SYUK3VLY.js.map} +0 -0
package/dist/intent.js
CHANGED
package/dist/local-llm.d.ts
CHANGED
|
@@ -52,9 +52,16 @@ declare class LocalLlmClient {
|
|
|
52
52
|
private static readonly LMS_CACHE_INTERVAL_MS;
|
|
53
53
|
constructor(config: PluginConfig, modelRegistry?: ModelRegistry);
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
55
|
+
* Request thinking/reasoning suppression on the next chat completion.
|
|
56
|
+
*
|
|
57
|
+
* When `true`, the client will inject
|
|
58
|
+
* `chat_template_kwargs: { enable_thinking: false }` into the request
|
|
59
|
+
* body — **but only when the detected backend is known to support it**
|
|
60
|
+
* (LM Studio, vLLM; see `THINKING_COMPATIBLE_BACKENDS`). Strict
|
|
61
|
+
* OpenAI-compat backends reject unknown fields with 400; on those the
|
|
62
|
+
* client fails open (thinking runs normally). This is the safe
|
|
63
|
+
* default for Remnic extraction / consolidation: measurable latency
|
|
64
|
+
* win on thinking-capable backends, zero risk on others. Issue #548.
|
|
58
65
|
*/
|
|
59
66
|
set disableThinking(value: boolean);
|
|
60
67
|
private resolveHomeDir;
|
package/dist/local-llm.js
CHANGED
package/dist/operator-toolkit.js
CHANGED
|
@@ -5,32 +5,33 @@ import {
|
|
|
5
5
|
runOperatorInventory,
|
|
6
6
|
runOperatorRepair,
|
|
7
7
|
runOperatorSetup
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-3QHL5ABG.js";
|
|
9
|
+
import "./chunk-ZVBB3T7V.js";
|
|
10
10
|
import "./chunk-YRMVARQP.js";
|
|
11
|
+
import "./chunk-BLKTA7MM.js";
|
|
11
12
|
import "./chunk-U66YHYC7.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-LK6SGL53.js";
|
|
13
14
|
import "./chunk-7SEAZFFB.js";
|
|
14
15
|
import "./chunk-K6WK37A6.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-OJFGVJS6.js";
|
|
16
|
+
import "./chunk-MBJHSA7F.js";
|
|
17
17
|
import "./chunk-Z5LAYHGJ.js";
|
|
18
18
|
import "./chunk-C2EFFULQ.js";
|
|
19
|
+
import "./chunk-PVGDJXVK.js";
|
|
19
20
|
import "./chunk-MARWOCVP.js";
|
|
20
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-ITRLGI2T.js";
|
|
21
22
|
import "./chunk-QNJMBKFK.js";
|
|
22
23
|
import "./chunk-TBBDFYXW.js";
|
|
23
24
|
import "./chunk-LPSF4OQH.js";
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-GV6NLQ4X.js";
|
|
26
|
+
import "./chunk-3WHVNEN7.js";
|
|
26
27
|
import "./chunk-4KAN3GZ3.js";
|
|
27
28
|
import "./chunk-6ZH4TU6I.js";
|
|
28
|
-
import "./chunk-6PFRXT4K.js";
|
|
29
|
-
import "./chunk-TP4FZJIZ.js";
|
|
30
29
|
import "./chunk-SCU65EZI.js";
|
|
31
30
|
import "./chunk-BOUYNNYD.js";
|
|
32
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-6PFRXT4K.js";
|
|
32
|
+
import "./chunk-TP4FZJIZ.js";
|
|
33
33
|
import "./chunk-DM2T26WE.js";
|
|
34
|
+
import "./chunk-QSVPYQPG.js";
|
|
34
35
|
import "./chunk-M62O4P4T.js";
|
|
35
36
|
import "./chunk-4DJQYKMN.js";
|
|
36
37
|
import "./chunk-2ODBA7MQ.js";
|
|
@@ -240,11 +240,11 @@ declare const SharedFeedbackEntrySchema: z.ZodObject<{
|
|
|
240
240
|
date: string;
|
|
241
241
|
reason: string;
|
|
242
242
|
confidence?: number | undefined;
|
|
243
|
+
workflow?: string | undefined;
|
|
243
244
|
tags?: string[] | undefined;
|
|
244
245
|
severity?: "low" | "medium" | "high" | undefined;
|
|
245
246
|
outcome?: string | undefined;
|
|
246
247
|
refs?: string[] | undefined;
|
|
247
|
-
workflow?: string | undefined;
|
|
248
248
|
learning?: string | undefined;
|
|
249
249
|
evidenceWindowStart?: string | undefined;
|
|
250
250
|
evidenceWindowEnd?: string | undefined;
|
|
@@ -254,11 +254,11 @@ declare const SharedFeedbackEntrySchema: z.ZodObject<{
|
|
|
254
254
|
date: string;
|
|
255
255
|
reason: string;
|
|
256
256
|
confidence?: number | undefined;
|
|
257
|
+
workflow?: string | undefined;
|
|
257
258
|
tags?: string[] | undefined;
|
|
258
259
|
severity?: "low" | "medium" | "high" | undefined;
|
|
259
260
|
outcome?: string | undefined;
|
|
260
261
|
refs?: string[] | undefined;
|
|
261
|
-
workflow?: string | undefined;
|
|
262
262
|
learning?: string | undefined;
|
|
263
263
|
evidenceWindowStart?: string | undefined;
|
|
264
264
|
evidenceWindowEnd?: string | undefined;
|
|
@@ -917,6 +917,7 @@ declare class Orchestrator {
|
|
|
917
917
|
private autoRegisterDaySummaryCron;
|
|
918
918
|
private autoRegisterNightlyGovernanceCron;
|
|
919
919
|
private autoRegisterProceduralMiningCron;
|
|
920
|
+
private autoRegisterContradictionScanCron;
|
|
920
921
|
applyBehaviorRuntimePolicy(state: BehaviorLoopPolicyState): Promise<{
|
|
921
922
|
applied: boolean;
|
|
922
923
|
rolledBack: boolean;
|
|
@@ -1153,6 +1154,24 @@ declare class Orchestrator {
|
|
|
1153
1154
|
* Called automatically when items are queued.
|
|
1154
1155
|
*/
|
|
1155
1156
|
private processQueue;
|
|
1157
|
+
/**
|
|
1158
|
+
* Classify + log a failure from either the per-task catch inside
|
|
1159
|
+
* `processQueue()` or the outer `processQueue().catch(...)` in
|
|
1160
|
+
* `queueBufferedExtraction()`. Issue #549: `throwIfRecallAborted`
|
|
1161
|
+
* (used throughout `runExtraction`) raises an Error whose `name` is
|
|
1162
|
+
* `"AbortError"`. That path fires when `before_reset` aborts a
|
|
1163
|
+
* queued task to avoid duplicate extraction — it is intentional
|
|
1164
|
+
* cancellation, not a failure. Downgrading the log to debug
|
|
1165
|
+
* prevents spurious `error`-level lines that routinely appear
|
|
1166
|
+
* right next to a successful `persisted: N facts, M entities` log
|
|
1167
|
+
* and that confuse operators into thinking extraction is broken.
|
|
1168
|
+
* Genuine extraction failures (network, parse, I/O) still log at
|
|
1169
|
+
* `error`.
|
|
1170
|
+
*
|
|
1171
|
+
* Source differentiates the two call sites so the log message
|
|
1172
|
+
* names the right layer (`task` vs `processor`).
|
|
1173
|
+
*/
|
|
1174
|
+
private logExtractionQueueFailure;
|
|
1156
1175
|
private runExtraction;
|
|
1157
1176
|
private recordProcessedExtractionFingerprint;
|
|
1158
1177
|
private runTierMigrationCycle;
|
package/dist/orchestrator.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ import './negative.js';
|
|
|
10
10
|
import './recall-state.js';
|
|
11
11
|
import './session-observer-state.js';
|
|
12
12
|
import './embedding-fallback.js';
|
|
13
|
-
export { l as GraphRecallRankedResult, m as GraphRecallShadowComparison, G as GraphRecallSnapshot, I as IntentDebugSnapshot, O as Orchestrator, Q as QmdRecallSnapshot, n as RecallInvocationOptions, o as RecallModeDecision, q as appendMemoryToGraphContext, r as blendGraphExpandedRecallScore, t as buildCompressionGuidelinesMarkdown, u as buildMemoryPathById, w as computeArtifactCandidateFetchLimit, x as computeArtifactRecallLimit, y as computeQmdHybridFetchLimit, z as dedupeEntitySynthesisEvidenceEntries, j as defaultWorkspaceDir, A as deriveTopicsFromExtraction, D as filterRecallCandidates, E as formatCompressionGuidelinesForRecall, F as graphPathRelativeToStorage, H as hasIdentityRecoveryIntent, J as isArtifactMemoryPath, K as lifecycleRecallScoreAdjustment, L as mergeArtifactRecallCandidates, M as mergeGraphExpandedResults, N as resolveEffectiveIdentityInjectionMode, P as resolveEffectiveRecallMode, S as resolvePersistedMemoryRelativePath, T as resolveRecallModeDecision, U as resolveRecentThreadMemoryPaths, s as sanitizeSessionKeyForFilename, V as shouldFilterLifecycleRecallCandidate, W as summarizeGraphShadowComparison } from './orchestrator-
|
|
13
|
+
export { l as GraphRecallRankedResult, m as GraphRecallShadowComparison, G as GraphRecallSnapshot, I as IntentDebugSnapshot, O as Orchestrator, Q as QmdRecallSnapshot, n as RecallInvocationOptions, o as RecallModeDecision, q as appendMemoryToGraphContext, r as blendGraphExpandedRecallScore, t as buildCompressionGuidelinesMarkdown, u as buildMemoryPathById, w as computeArtifactCandidateFetchLimit, x as computeArtifactRecallLimit, y as computeQmdHybridFetchLimit, z as dedupeEntitySynthesisEvidenceEntries, j as defaultWorkspaceDir, A as deriveTopicsFromExtraction, D as filterRecallCandidates, E as formatCompressionGuidelinesForRecall, F as graphPathRelativeToStorage, H as hasIdentityRecoveryIntent, J as isArtifactMemoryPath, K as lifecycleRecallScoreAdjustment, L as mergeArtifactRecallCandidates, M as mergeGraphExpandedResults, N as resolveEffectiveIdentityInjectionMode, P as resolveEffectiveRecallMode, S as resolvePersistedMemoryRelativePath, T as resolveRecallModeDecision, U as resolveRecentThreadMemoryPaths, s as sanitizeSessionKeyForFilename, V as shouldFilterLifecycleRecallCandidate, W as summarizeGraphShadowComparison } from './orchestrator-DRYA6_lW.js';
|
|
14
14
|
import './types.js';
|
|
15
15
|
import './semantic-consolidation-DrvSYRdB.js';
|
|
16
16
|
import './policy-runtime.js';
|
package/dist/orchestrator.js
CHANGED
|
@@ -26,67 +26,72 @@ import {
|
|
|
26
26
|
sanitizeSessionKeyForFilename,
|
|
27
27
|
shouldFilterLifecycleRecallCandidate,
|
|
28
28
|
summarizeGraphShadowComparison
|
|
29
|
-
} from "./chunk-
|
|
30
|
-
import "./chunk-
|
|
29
|
+
} from "./chunk-DEPL3635.js";
|
|
30
|
+
import "./chunk-DHHP2Z4X.js";
|
|
31
|
+
import "./chunk-UHGBNIOS.js";
|
|
31
32
|
import "./chunk-FSFEQI74.js";
|
|
33
|
+
import "./chunk-N42IWANG.js";
|
|
34
|
+
import "./chunk-ETOW6ACV.js";
|
|
32
35
|
import "./chunk-W6SL7OFG.js";
|
|
33
36
|
import "./chunk-Z5AAYHUC.js";
|
|
34
37
|
import "./chunk-S75M5ZRK.js";
|
|
35
38
|
import "./chunk-TPB3I2AC.js";
|
|
36
|
-
import "./chunk-UHGBNIOS.js";
|
|
37
|
-
import "./chunk-BTY5RRRF.js";
|
|
38
|
-
import "./chunk-ETOW6ACV.js";
|
|
39
|
-
import "./chunk-KVE7R4CG.js";
|
|
40
39
|
import "./chunk-JR4ZC3G4.js";
|
|
40
|
+
import "./chunk-KVE7R4CG.js";
|
|
41
|
+
import "./chunk-X7XN6YU4.js";
|
|
42
|
+
import "./chunk-5NPGSAVB.js";
|
|
41
43
|
import "./chunk-C7VW7C3F.js";
|
|
42
44
|
import "./chunk-K4FLSOR5.js";
|
|
43
45
|
import "./chunk-V3RXWQIE.js";
|
|
44
46
|
import "./chunk-5IZL4DCV.js";
|
|
47
|
+
import "./chunk-YCN4BVDK.js";
|
|
45
48
|
import "./chunk-YDBIWGNI.js";
|
|
46
49
|
import "./chunk-7DHTMOND.js";
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-X7XN6YU4.js";
|
|
49
|
-
import "./chunk-5NPGSAVB.js";
|
|
50
|
-
import "./chunk-YCN4BVDK.js";
|
|
50
|
+
import "./chunk-47UU5PU2.js";
|
|
51
51
|
import "./chunk-D654IBA6.js";
|
|
52
52
|
import "./chunk-H63EDPFJ.js";
|
|
53
|
-
import "./chunk-BKQJBXXX.js";
|
|
54
53
|
import "./chunk-YAZNBMNF.js";
|
|
55
|
-
import "./chunk-
|
|
56
|
-
import "./chunk-74JR4N5J.js";
|
|
54
|
+
import "./chunk-GGD5W7TB.js";
|
|
57
55
|
import "./chunk-LAYN4LDC.js";
|
|
58
|
-
import "./chunk-
|
|
56
|
+
import "./chunk-3SV6CQHO.js";
|
|
59
57
|
import "./chunk-UEYA6UC7.js";
|
|
60
58
|
import "./chunk-NBNN5GOB.js";
|
|
61
|
-
import "./chunk-UPMD5XND.js";
|
|
62
59
|
import "./chunk-FEMOX5AD.js";
|
|
60
|
+
import "./chunk-JL2PU6AI.js";
|
|
61
|
+
import "./chunk-GZCUW5IC.js";
|
|
63
62
|
import "./chunk-VEWZZM3H.js";
|
|
63
|
+
import "./chunk-ALXMCZEU.js";
|
|
64
|
+
import "./chunk-7WQ6SLIE.js";
|
|
64
65
|
import "./chunk-PAORGQRI.js";
|
|
66
|
+
import "./chunk-6UJ47TVX.js";
|
|
65
67
|
import "./chunk-PYXS46O7.js";
|
|
66
68
|
import "./chunk-3QKK7QOS.js";
|
|
67
|
-
import "./chunk-GJQPH5G3.js";
|
|
68
69
|
import "./chunk-JRNQ3RNA.js";
|
|
69
|
-
import "./chunk-
|
|
70
|
+
import "./chunk-JIU55F3X.js";
|
|
70
71
|
import "./chunk-CULXMQJH.js";
|
|
71
72
|
import "./chunk-E6K4NIEU.js";
|
|
73
|
+
import "./chunk-ZVBB3T7V.js";
|
|
74
|
+
import "./chunk-YRMVARQP.js";
|
|
75
|
+
import "./chunk-BLKTA7MM.js";
|
|
72
76
|
import "./chunk-EABGC2TL.js";
|
|
73
77
|
import "./chunk-LOBRX7VD.js";
|
|
74
|
-
import "./chunk-
|
|
75
|
-
import "./chunk-YRMVARQP.js";
|
|
76
|
-
import "./chunk-7PA4OZEU.js";
|
|
78
|
+
import "./chunk-HMDCOMYU.js";
|
|
77
79
|
import "./chunk-J4IYOZZ5.js";
|
|
78
|
-
import "./chunk-
|
|
80
|
+
import "./chunk-LK6SGL53.js";
|
|
79
81
|
import "./chunk-7SEAZFFB.js";
|
|
80
82
|
import "./chunk-K6WK37A6.js";
|
|
81
|
-
import "./chunk-LK6SGL53.js";
|
|
82
83
|
import "./chunk-3PG3H5TD.js";
|
|
83
84
|
import "./chunk-FYIYMQ5N.js";
|
|
84
85
|
import "./chunk-2NMMFZ5T.js";
|
|
85
86
|
import "./chunk-Z5LAYHGJ.js";
|
|
86
87
|
import "./chunk-C6QPK5GG.js";
|
|
87
|
-
import "./chunk-
|
|
88
|
-
import "./chunk-RCICHSHL.js";
|
|
88
|
+
import "./chunk-SYUK3VLY.js";
|
|
89
89
|
import "./chunk-EJI5XIBB.js";
|
|
90
|
+
import "./chunk-44ICJRF3.js";
|
|
91
|
+
import "./chunk-XZ2TIKGC.js";
|
|
92
|
+
import "./chunk-Y27UJK6V.js";
|
|
93
|
+
import "./chunk-ODWDQNRE.js";
|
|
94
|
+
import "./chunk-UZB5KHKX.js";
|
|
90
95
|
import "./chunk-C2EFFULQ.js";
|
|
91
96
|
import "./chunk-4WMCPJWX.js";
|
|
92
97
|
import "./chunk-6HZ6AO2P.js";
|
|
@@ -95,11 +100,7 @@ import "./chunk-N53K2EXC.js";
|
|
|
95
100
|
import "./chunk-URB2WSKZ.js";
|
|
96
101
|
import "./chunk-UVJFDP7P.js";
|
|
97
102
|
import "./chunk-XYIK4LF6.js";
|
|
98
|
-
import "./chunk-
|
|
99
|
-
import "./chunk-KEG4GNGI.js";
|
|
100
|
-
import "./chunk-ODWDQNRE.js";
|
|
101
|
-
import "./chunk-Y27UJK6V.js";
|
|
102
|
-
import "./chunk-UZB5KHKX.js";
|
|
103
|
+
import "./chunk-PVGDJXVK.js";
|
|
103
104
|
import "./chunk-NGAVDO7E.js";
|
|
104
105
|
import "./chunk-MARWOCVP.js";
|
|
105
106
|
import "./chunk-EQINRHYR.js";
|
|
@@ -109,23 +110,23 @@ import "./chunk-EEQLFRUM.js";
|
|
|
109
110
|
import "./chunk-QDW3E4RD.js";
|
|
110
111
|
import "./chunk-4NRAJUDS.js";
|
|
111
112
|
import "./chunk-DT5TVLJE.js";
|
|
113
|
+
import "./chunk-N5AKDXAI.js";
|
|
112
114
|
import "./chunk-TBBDFYXW.js";
|
|
113
115
|
import "./chunk-DGXUHMOV.js";
|
|
114
116
|
import "./chunk-LPSF4OQH.js";
|
|
115
|
-
import "./chunk-
|
|
116
|
-
import "./chunk-
|
|
117
|
+
import "./chunk-GV6NLQ4X.js";
|
|
118
|
+
import "./chunk-3WHVNEN7.js";
|
|
117
119
|
import "./chunk-4KAN3GZ3.js";
|
|
118
120
|
import "./chunk-6ZH4TU6I.js";
|
|
119
|
-
import "./chunk-6PFRXT4K.js";
|
|
120
|
-
import "./chunk-TP4FZJIZ.js";
|
|
121
121
|
import "./chunk-SCU65EZI.js";
|
|
122
122
|
import "./chunk-BOUYNNYD.js";
|
|
123
|
-
import "./chunk-
|
|
123
|
+
import "./chunk-6PFRXT4K.js";
|
|
124
|
+
import "./chunk-TP4FZJIZ.js";
|
|
124
125
|
import "./chunk-DM2T26WE.js";
|
|
126
|
+
import "./chunk-QSVPYQPG.js";
|
|
125
127
|
import "./chunk-M62O4P4T.js";
|
|
126
128
|
import "./chunk-4DJQYKMN.js";
|
|
127
129
|
import "./chunk-2ODBA7MQ.js";
|
|
128
|
-
import "./chunk-N5AKDXAI.js";
|
|
129
130
|
export {
|
|
130
131
|
Orchestrator,
|
|
131
132
|
appendMemoryToGraphContext,
|
package/dist/qmd.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
QmdClient,
|
|
3
3
|
parseQmdExplain
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BLKTA7MM.js";
|
|
5
5
|
import "./chunk-LK6SGL53.js";
|
|
6
|
+
import "./chunk-PVGDJXVK.js";
|
|
6
7
|
import "./chunk-MARWOCVP.js";
|
|
7
8
|
import "./chunk-6PFRXT4K.js";
|
|
8
9
|
import "./chunk-2ODBA7MQ.js";
|
package/dist/recall-state.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RecallPlanMode, IdentityInjectionMode } from './types.js';
|
|
1
|
+
import { RecallPlanMode, IdentityInjectionMode, RecallTierExplain } from './types.js';
|
|
2
2
|
|
|
3
3
|
interface LastRecallBudgetSummary {
|
|
4
4
|
requestedTopK?: number;
|
|
@@ -32,6 +32,15 @@ interface LastRecallSnapshot {
|
|
|
32
32
|
identityInjectionMode?: IdentityInjectionMode | "none";
|
|
33
33
|
identityInjectedChars?: number;
|
|
34
34
|
identityInjectionTruncated?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Optional tier-level explanation of how recall was served
|
|
37
|
+
* (issue #518). Populated by orchestrator call sites that can
|
|
38
|
+
* identify a concrete tier; surfaces expose the block via
|
|
39
|
+
* `engram query --explain`, the `?explain=1` HTTP flag, and the
|
|
40
|
+
* `remnic_recall_explain` MCP tool. Orthogonal to the existing
|
|
41
|
+
* graph-path `recallExplain` operation.
|
|
42
|
+
*/
|
|
43
|
+
tierExplain?: RecallTierExplain;
|
|
35
44
|
}
|
|
36
45
|
interface GraphRecallExpandedEntry {
|
|
37
46
|
path: string;
|
|
@@ -99,7 +108,25 @@ declare class LastRecallStore {
|
|
|
99
108
|
injectedChars: number;
|
|
100
109
|
truncated: boolean;
|
|
101
110
|
};
|
|
111
|
+
/**
|
|
112
|
+
* Per-tier explain annotation (issue #518). When supplied, the
|
|
113
|
+
* snapshot carries it so downstream surfaces (CLI / HTTP / MCP)
|
|
114
|
+
* can render which retrieval tier served the query.
|
|
115
|
+
*/
|
|
116
|
+
tierExplain?: RecallTierExplain;
|
|
102
117
|
}): Promise<void>;
|
|
118
|
+
/**
|
|
119
|
+
* Attach a RecallTierExplain block to the existing snapshot for a
|
|
120
|
+
* session without rewriting the entire snapshot. Used by the
|
|
121
|
+
* post-recall direct-answer annotation path (issue #518 slice 3c):
|
|
122
|
+
* recallInternal records the snapshot first, then the orchestrator
|
|
123
|
+
* fires the direct-answer tier in observation mode and annotates
|
|
124
|
+
* the stored snapshot with whichever tier served the query.
|
|
125
|
+
*
|
|
126
|
+
* No-op when no snapshot exists for the given session; callers do
|
|
127
|
+
* not need to guard on existence.
|
|
128
|
+
*/
|
|
129
|
+
annotateTierExplain(sessionKey: string, tierExplain: RecallTierExplain): Promise<void>;
|
|
103
130
|
}
|
|
104
131
|
declare class TierMigrationStatusStore {
|
|
105
132
|
private readonly statePath;
|
package/dist/recall-state.js
CHANGED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import {
|
|
2
|
+
readPair,
|
|
3
|
+
resolvePair
|
|
4
|
+
} from "./chunk-YNB73F22.js";
|
|
5
|
+
import {
|
|
6
|
+
log
|
|
7
|
+
} from "./chunk-2ODBA7MQ.js";
|
|
8
|
+
|
|
9
|
+
// src/contradiction/resolution.ts
|
|
10
|
+
var VALID_VERBS = ["keep-a", "keep-b", "merge", "both-valid", "needs-more-context"];
|
|
11
|
+
function isValidResolutionVerb(value) {
|
|
12
|
+
return VALID_VERBS.includes(value);
|
|
13
|
+
}
|
|
14
|
+
async function executeResolution(memoryDir, storage, pairId, verb) {
|
|
15
|
+
const pair = readPair(memoryDir, pairId);
|
|
16
|
+
if (!pair) {
|
|
17
|
+
return { pairId, verb, affectedIds: [], message: `Pair ${pairId} not found` };
|
|
18
|
+
}
|
|
19
|
+
if (pair.resolution) {
|
|
20
|
+
return { pairId, verb, affectedIds: [], message: `Pair already resolved with verb "${pair.resolution}"` };
|
|
21
|
+
}
|
|
22
|
+
const [idA, idB] = pair.memoryIds;
|
|
23
|
+
const affectedIds = [];
|
|
24
|
+
let message = "";
|
|
25
|
+
let supersedeFailed = false;
|
|
26
|
+
switch (verb) {
|
|
27
|
+
case "keep-a": {
|
|
28
|
+
const ok = await supersedeSafe(storage, idB, idA, "contradiction-resolution:keep-a");
|
|
29
|
+
if (ok) {
|
|
30
|
+
affectedIds.push(idB);
|
|
31
|
+
message = `Kept ${idA}, superseded ${idB}`;
|
|
32
|
+
} else {
|
|
33
|
+
supersedeFailed = true;
|
|
34
|
+
message = `Supersede failed for ${idB}; not resolving`;
|
|
35
|
+
}
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
case "keep-b": {
|
|
39
|
+
const ok = await supersedeSafe(storage, idA, idB, "contradiction-resolution:keep-b");
|
|
40
|
+
if (ok) {
|
|
41
|
+
affectedIds.push(idA);
|
|
42
|
+
message = `Kept ${idB}, superseded ${idA}`;
|
|
43
|
+
} else {
|
|
44
|
+
supersedeFailed = true;
|
|
45
|
+
message = `Supersede failed for ${idA}; not resolving`;
|
|
46
|
+
}
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
case "merge": {
|
|
50
|
+
const mergedId = `merged-${pairId}`;
|
|
51
|
+
const okA = await supersedeSafe(storage, idA, mergedId, "contradiction-resolution:merge");
|
|
52
|
+
const okB = await supersedeSafe(storage, idB, mergedId, "contradiction-resolution:merge");
|
|
53
|
+
if (okA) affectedIds.push(idA);
|
|
54
|
+
if (okB) affectedIds.push(idB);
|
|
55
|
+
if (!okA || !okB) {
|
|
56
|
+
supersedeFailed = true;
|
|
57
|
+
message = `Merge incomplete: ${affectedIds.length}/2 superseded; not resolving to allow retry`;
|
|
58
|
+
} else {
|
|
59
|
+
message = `Both memories superseded by merged ${mergedId}`;
|
|
60
|
+
}
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
case "both-valid": {
|
|
64
|
+
message = "Pair marked as both-valid; cooldown applied";
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
case "needs-more-context": {
|
|
68
|
+
message = "Deferred; no action taken, short cooldown applied";
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (!supersedeFailed) {
|
|
73
|
+
resolvePair(memoryDir, pairId, verb);
|
|
74
|
+
}
|
|
75
|
+
log.info("[contradiction-resolution] pair=%s verb=%s affected=%d", pairId, verb, affectedIds.length);
|
|
76
|
+
return { pairId, verb, affectedIds, message };
|
|
77
|
+
}
|
|
78
|
+
async function supersedeSafe(storage, oldId, newId, reason) {
|
|
79
|
+
try {
|
|
80
|
+
const result = await storage.supersedeMemory(oldId, newId, reason);
|
|
81
|
+
if (result === false) {
|
|
82
|
+
log.warn("[contradiction-resolution] supersede returned false for %s \u2192 %s", oldId, newId);
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
return true;
|
|
86
|
+
} catch (err) {
|
|
87
|
+
log.warn(
|
|
88
|
+
"[contradiction-resolution] supersede failed %s \u2192 %s: %s",
|
|
89
|
+
oldId,
|
|
90
|
+
newId,
|
|
91
|
+
err instanceof Error ? err.message : err
|
|
92
|
+
);
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export {
|
|
97
|
+
executeResolution,
|
|
98
|
+
isValidResolutionVerb
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=resolution-QBTDHTG7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/contradiction/resolution.ts"],"sourcesContent":["/**\n * Resolution Verbs — executes user-chosen resolution actions on contradiction pairs (issue #520).\n *\n * All resolution paths delegate to StorageManager.supersedeMemory. Do not\n * reimplement supersession logic here (rule 22: deduplicate resolution).\n */\n\nimport type { StorageManager } from \"../storage.js\";\nimport type { ResolutionVerb } from \"./contradiction-review.js\";\nimport { resolvePair, readPair } from \"./contradiction-review.js\";\nimport { log } from \"../logger.js\";\n\nexport interface ResolutionResult {\n pairId: string;\n verb: ResolutionVerb;\n /** Memory IDs affected by the resolution. */\n affectedIds: string[];\n /** Human-readable status. */\n message: string;\n}\n\nconst VALID_VERBS: ResolutionVerb[] = [\"keep-a\", \"keep-b\", \"merge\", \"both-valid\", \"needs-more-context\"];\n\nexport function isValidResolutionVerb(value: string): value is ResolutionVerb {\n return VALID_VERBS.includes(value as ResolutionVerb);\n}\n\n/**\n * Execute a resolution verb on a contradiction pair.\n *\n * - `keep-a`: Supersede B, keep A active.\n * - `keep-b`: Supersede A, keep B active.\n * - `merge`: Mark both as superseded by a synthetic merged ID.\n * - `both-valid`: Mark pair as reviewed; no memories are superseded.\n * - `needs-more-context`: Defer; no action, short cooldown.\n */\nexport async function executeResolution(\n memoryDir: string,\n storage: StorageManager,\n pairId: string,\n verb: ResolutionVerb,\n): Promise<ResolutionResult> {\n const pair = readPair(memoryDir, pairId);\n if (!pair) {\n return { pairId, verb, affectedIds: [], message: `Pair ${pairId} not found` };\n }\n\n if (pair.resolution) {\n return { pairId, verb, affectedIds: [], message: `Pair already resolved with verb \"${pair.resolution}\"` };\n }\n\n const [idA, idB] = pair.memoryIds;\n const affectedIds: string[] = [];\n let message = \"\";\n let supersedeFailed = false;\n\n switch (verb) {\n case \"keep-a\": {\n const ok = await supersedeSafe(storage, idB, idA, \"contradiction-resolution:keep-a\");\n if (ok) { affectedIds.push(idB); message = `Kept ${idA}, superseded ${idB}`; }\n else { supersedeFailed = true; message = `Supersede failed for ${idB}; not resolving`; }\n break;\n }\n case \"keep-b\": {\n const ok = await supersedeSafe(storage, idA, idB, \"contradiction-resolution:keep-b\");\n if (ok) { affectedIds.push(idA); message = `Kept ${idB}, superseded ${idA}`; }\n else { supersedeFailed = true; message = `Supersede failed for ${idA}; not resolving`; }\n break;\n }\n case \"merge\": {\n const mergedId = `merged-${pairId}`;\n const okA = await supersedeSafe(storage, idA, mergedId, \"contradiction-resolution:merge\");\n const okB = await supersedeSafe(storage, idB, mergedId, \"contradiction-resolution:merge\");\n if (okA) affectedIds.push(idA);\n if (okB) affectedIds.push(idB);\n if (!okA || !okB) {\n supersedeFailed = true;\n message = `Merge incomplete: ${affectedIds.length}/2 superseded; not resolving to allow retry`;\n } else {\n message = `Both memories superseded by merged ${mergedId}`;\n }\n break;\n }\n case \"both-valid\": {\n message = \"Pair marked as both-valid; cooldown applied\";\n break;\n }\n case \"needs-more-context\": {\n message = \"Deferred; no action taken, short cooldown applied\";\n break;\n }\n }\n\n if (!supersedeFailed) {\n resolvePair(memoryDir, pairId, verb);\n }\n log.info(\"[contradiction-resolution] pair=%s verb=%s affected=%d\", pairId, verb, affectedIds.length);\n return { pairId, verb, affectedIds, message };\n}\n\nasync function supersedeSafe(\n storage: StorageManager,\n oldId: string,\n newId: string,\n reason: string,\n): Promise<boolean> {\n try {\n const result = await storage.supersedeMemory(oldId, newId, reason);\n if (result === false) {\n log.warn(\"[contradiction-resolution] supersede returned false for %s → %s\", oldId, newId);\n return false;\n }\n return true;\n } catch (err) {\n log.warn(\n \"[contradiction-resolution] supersede failed %s → %s: %s\",\n oldId,\n newId,\n err instanceof Error ? err.message : err,\n );\n return false;\n }\n}\n"],"mappings":";;;;;;;;;AAqBA,IAAM,cAAgC,CAAC,UAAU,UAAU,SAAS,cAAc,oBAAoB;AAE/F,SAAS,sBAAsB,OAAwC;AAC5E,SAAO,YAAY,SAAS,KAAuB;AACrD;AAWA,eAAsB,kBACpB,WACA,SACA,QACA,MAC2B;AAC3B,QAAM,OAAO,SAAS,WAAW,MAAM;AACvC,MAAI,CAAC,MAAM;AACT,WAAO,EAAE,QAAQ,MAAM,aAAa,CAAC,GAAG,SAAS,QAAQ,MAAM,aAAa;AAAA,EAC9E;AAEA,MAAI,KAAK,YAAY;AACnB,WAAO,EAAE,QAAQ,MAAM,aAAa,CAAC,GAAG,SAAS,oCAAoC,KAAK,UAAU,IAAI;AAAA,EAC1G;AAEA,QAAM,CAAC,KAAK,GAAG,IAAI,KAAK;AACxB,QAAM,cAAwB,CAAC;AAC/B,MAAI,UAAU;AACd,MAAI,kBAAkB;AAEtB,UAAQ,MAAM;AAAA,IACZ,KAAK,UAAU;AACb,YAAM,KAAK,MAAM,cAAc,SAAS,KAAK,KAAK,iCAAiC;AACnF,UAAI,IAAI;AAAE,oBAAY,KAAK,GAAG;AAAG,kBAAU,QAAQ,GAAG,gBAAgB,GAAG;AAAA,MAAI,OACxE;AAAE,0BAAkB;AAAM,kBAAU,wBAAwB,GAAG;AAAA,MAAmB;AACvF;AAAA,IACF;AAAA,IACA,KAAK,UAAU;AACb,YAAM,KAAK,MAAM,cAAc,SAAS,KAAK,KAAK,iCAAiC;AACnF,UAAI,IAAI;AAAE,oBAAY,KAAK,GAAG;AAAG,kBAAU,QAAQ,GAAG,gBAAgB,GAAG;AAAA,MAAI,OACxE;AAAE,0BAAkB;AAAM,kBAAU,wBAAwB,GAAG;AAAA,MAAmB;AACvF;AAAA,IACF;AAAA,IACA,KAAK,SAAS;AACZ,YAAM,WAAW,UAAU,MAAM;AACjC,YAAM,MAAM,MAAM,cAAc,SAAS,KAAK,UAAU,gCAAgC;AACxF,YAAM,MAAM,MAAM,cAAc,SAAS,KAAK,UAAU,gCAAgC;AACxF,UAAI,IAAK,aAAY,KAAK,GAAG;AAC7B,UAAI,IAAK,aAAY,KAAK,GAAG;AAC7B,UAAI,CAAC,OAAO,CAAC,KAAK;AAChB,0BAAkB;AAClB,kBAAU,qBAAqB,YAAY,MAAM;AAAA,MACnD,OAAO;AACL,kBAAU,sCAAsC,QAAQ;AAAA,MAC1D;AACA;AAAA,IACF;AAAA,IACA,KAAK,cAAc;AACjB,gBAAU;AACV;AAAA,IACF;AAAA,IACA,KAAK,sBAAsB;AACzB,gBAAU;AACV;AAAA,IACF;AAAA,EACF;AAEA,MAAI,CAAC,iBAAiB;AACpB,gBAAY,WAAW,QAAQ,IAAI;AAAA,EACrC;AACA,MAAI,KAAK,0DAA0D,QAAQ,MAAM,YAAY,MAAM;AACnG,SAAO,EAAE,QAAQ,MAAM,aAAa,QAAQ;AAC9C;AAEA,eAAe,cACb,SACA,OACA,OACA,QACkB;AAClB,MAAI;AACF,UAAM,SAAS,MAAM,QAAQ,gBAAgB,OAAO,OAAO,MAAM;AACjE,QAAI,WAAW,OAAO;AACpB,UAAI,KAAK,wEAAmE,OAAO,KAAK;AACxF,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT,SAAS,KAAK;AACZ,QAAI;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe,QAAQ,IAAI,UAAU;AAAA,IACvC;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve a provider API key using OpenClaw's own auth resolution system.
|
|
3
|
+
*
|
|
4
|
+
* This module delegates to the gateway's `resolveApiKeyForProvider()` function,
|
|
5
|
+
* which handles all secret reference formats (SecretRef objects, auth profiles,
|
|
6
|
+
* "secretref-managed" markers, environment variables, etc.) using the same
|
|
7
|
+
* codepath the gateway uses for its own agent sessions.
|
|
8
|
+
*
|
|
9
|
+
* For plain-text API keys, a fast path returns them directly without
|
|
10
|
+
* involving the gateway auth system.
|
|
11
|
+
*
|
|
12
|
+
* Results are cached per provider for the gateway process lifetime.
|
|
13
|
+
*/
|
|
14
|
+
type ResolveApiKeyFn = (params: {
|
|
15
|
+
provider: string;
|
|
16
|
+
cfg?: unknown;
|
|
17
|
+
agentDir?: string;
|
|
18
|
+
}) => Promise<{
|
|
19
|
+
apiKey?: string;
|
|
20
|
+
source?: string;
|
|
21
|
+
mode?: string;
|
|
22
|
+
} | null>;
|
|
1
23
|
/**
|
|
2
24
|
* Resolve request-ready auth for a model, including provider-owned transforms
|
|
3
25
|
* (e.g., OAuth token exchange, base URL override for openai-codex).
|
|
@@ -40,5 +62,6 @@ declare function getGatewayRuntimeAuthForModel(): Promise<GetRuntimeAuthForModel
|
|
|
40
62
|
* Clear the resolution cache (useful for testing or key rotation).
|
|
41
63
|
*/
|
|
42
64
|
declare function clearSecretCache(): void;
|
|
65
|
+
declare function __setGatewayResolverForTest(resolver: ResolveApiKeyFn | null): void;
|
|
43
66
|
|
|
44
|
-
export { type GetRuntimeAuthForModelFn, clearSecretCache, getGatewayRuntimeAuthForModel, resolveProviderApiKey };
|
|
67
|
+
export { type GetRuntimeAuthForModelFn, __setGatewayResolverForTest, clearSecretCache, getGatewayRuntimeAuthForModel, resolveProviderApiKey };
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
|
+
__setGatewayResolverForTest,
|
|
2
3
|
clearSecretCache,
|
|
3
4
|
getGatewayRuntimeAuthForModel,
|
|
4
5
|
resolveProviderApiKey
|
|
5
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-XZ2TIKGC.js";
|
|
6
7
|
import "./chunk-MARWOCVP.js";
|
|
7
8
|
import "./chunk-2ODBA7MQ.js";
|
|
8
9
|
export {
|
|
10
|
+
__setGatewayResolverForTest,
|
|
9
11
|
clearSecretCache,
|
|
10
12
|
getGatewayRuntimeAuthForModel,
|
|
11
13
|
resolveProviderApiKey
|
package/dist/resume-bundles.js
CHANGED
|
@@ -4,13 +4,13 @@ import {
|
|
|
4
4
|
recordResumeBundle,
|
|
5
5
|
resolveResumeBundleDir,
|
|
6
6
|
validateResumeBundle
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-6LX5ORAS.js";
|
|
8
8
|
import "./chunk-CULXMQJH.js";
|
|
9
9
|
import "./chunk-E6K4NIEU.js";
|
|
10
|
-
import "./chunk-LOBRX7VD.js";
|
|
11
10
|
import "./chunk-YRMVARQP.js";
|
|
11
|
+
import "./chunk-LOBRX7VD.js";
|
|
12
12
|
import "./chunk-FYIYMQ5N.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-MBJHSA7F.js";
|
|
14
14
|
import "./chunk-Z5LAYHGJ.js";
|
|
15
15
|
import "./chunk-MARWOCVP.js";
|
|
16
16
|
import "./chunk-DT5TVLJE.js";
|