nexus-agents 2.129.2 → 2.130.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{child-mcp-config-TQIZEHVP.js → child-mcp-config-M7WR4XBB.js} +2 -2
- package/dist/{chunk-SDLDZL4K.js → chunk-233PA3DF.js} +90 -129
- package/dist/chunk-233PA3DF.js.map +1 -0
- package/dist/{chunk-6RXP55DL.js → chunk-2GTW7RSB.js} +7 -7
- package/dist/{chunk-FJREQSFG.js → chunk-2Z4V5THE.js} +2 -2
- package/dist/{chunk-GO7JE2MA.js → chunk-3N7TSFKQ.js} +2 -2
- package/dist/{chunk-4FFWDTUE.js → chunk-3UXCVSLJ.js} +2 -2
- package/dist/{chunk-GZFECWWZ.js → chunk-4A6MSCNJ.js} +2 -2
- package/dist/{chunk-JAKYPFLI.js → chunk-5CADWTFO.js} +3 -3
- package/dist/{chunk-TP3VZUQL.js → chunk-5GQMP7QN.js} +3 -3
- package/dist/{chunk-RFXBV3A2.js → chunk-6GGHPZB5.js} +4 -4
- package/dist/{chunk-MXEUDSWT.js → chunk-6LNLTWHE.js} +5 -5
- package/dist/{chunk-ZJPKYTH5.js → chunk-7IMI64LW.js} +3 -3
- package/dist/{chunk-6RXWD3HT.js → chunk-A4MPCXZ7.js} +2 -2
- package/dist/{chunk-BKZ5YD66.js → chunk-ACARS7NG.js} +2 -2
- package/dist/{chunk-IASJVOVO.js → chunk-ADIJIYFA.js} +2 -2
- package/dist/{chunk-5QJTUA7Y.js → chunk-AVRE45DO.js} +3 -3
- package/dist/{chunk-YVJFUOHY.js → chunk-CMRQR57K.js} +3 -3
- package/dist/{chunk-KYLVH42N.js → chunk-E4LAXVQE.js} +2 -2
- package/dist/{chunk-QJ52FRQX.js → chunk-FDY6YOFG.js} +2 -2
- package/dist/{chunk-V2E74WBI.js → chunk-FFJEERPZ.js} +2 -2
- package/dist/{chunk-EORN73QB.js → chunk-IZO437XR.js} +7 -7
- package/dist/{chunk-4IBBMLNR.js → chunk-OGOE3NW5.js} +4 -4
- package/dist/{chunk-JQHZS7GU.js → chunk-PM4MZHQK.js} +4 -4
- package/dist/{chunk-NKAPCKHN.js → chunk-TA5HYM3H.js} +4 -4
- package/dist/{chunk-VLL4L5TK.js → chunk-TGDWL7FG.js} +2 -2
- package/dist/{chunk-U7HHO4UI.js → chunk-ULIAUMQD.js} +2 -2
- package/dist/{chunk-U3FNIYWH.js → chunk-VTTPYENR.js} +2 -2
- package/dist/{chunk-VBAGMX5I.js → chunk-VY5WEC2D.js} +124 -10
- package/dist/chunk-VY5WEC2D.js.map +1 -0
- package/dist/{chunk-47M2C4SO.js → chunk-YEK3ZHO6.js} +5 -5
- package/dist/{chunk-XMQ3EC2B.js → chunk-YHBVFTRG.js} +2 -2
- package/dist/{chunk-RAAMLWMY.js → chunk-YXFQ3L56.js} +7 -7
- package/dist/{chunk-GZTPQMD5.js → chunk-ZM3S6PTN.js} +3 -3
- package/dist/{chunk-HMOPW3XC.js → chunk-ZQ5K3PG4.js} +7 -7
- package/dist/{cli-circuit-breaker-3CWRA7DZ.js → cli-circuit-breaker-XRXLO2V6.js} +4 -4
- package/dist/cli.js +39 -39
- package/dist/{composite-router-MN6W5CEQ.js → composite-router-V36PBE7B.js} +2 -2
- package/dist/{consensus-vote-3EMLBZ25.js → consensus-vote-3REPKLK4.js} +13 -13
- package/dist/{context-retriever-OLWFVOJG.js → context-retriever-KCSSXI6X.js} +8 -8
- package/dist/{doctor-deep-W3QB24SM.js → doctor-deep-WID6FQ2F.js} +3 -3
- package/dist/{expert-bridge-LAB2W5ET.js → expert-bridge-F4UMZFWS.js} +4 -4
- package/dist/factory-B3SPS47O.js +21 -0
- package/dist/{factory-7ZKKQDCI.js → factory-YVHULPTE.js} +5 -5
- package/dist/{improvement-review-ATYDIHSF.js → improvement-review-AMVJW3SI.js} +4 -4
- package/dist/index.d.ts +3030 -2943
- package/dist/index.js +28 -28
- package/dist/{init-opencode-4O2R5S72.js → init-opencode-3UPZL2UQ.js} +5 -5
- package/dist/{issue-triage-G2AKATE4.js → issue-triage-KMDQN2UU.js} +5 -5
- package/dist/{pr-reviewer-helpers-Y6LEGX2P.js → pr-reviewer-helpers-2WBM5GL7.js} +4 -4
- package/dist/{registry-command-X6A27TNG.js → registry-command-AXNA2H35.js} +2 -2
- package/dist/{repo-security-plan-356NFHOZ.js → repo-security-plan-P2KJ4FDT.js} +3 -3
- package/dist/{research-helpers-synthesize-7XWIAM5D.js → research-helpers-synthesize-UHWT62F2.js} +4 -4
- package/dist/{routing-memory-YTLUUXXX.js → routing-memory-7RNR6A45.js} +2 -2
- package/dist/{session-memory-IHQCJWBK.js → session-memory-2J2UBZJA.js} +3 -3
- package/dist/{setup-command-Q4RVDZOO.js → setup-command-22IVI4T6.js} +11 -11
- package/dist/{setup-config-UA4M5OQ4.js → setup-config-Y3S2L4RD.js} +3 -3
- package/dist/{setup-custom-api-UXFN75SS.js → setup-custom-api-AZMHKIHE.js} +3 -3
- package/dist/{tool-memory-SJ57ZJ5F.js → tool-memory-MIZVB4ZT.js} +5 -5
- package/dist/{unified-registry-WMJQUA43.js → unified-registry-V4AZ6UYA.js} +9 -9
- package/dist/{weather-report-WSATZR44.js → weather-report-WZKEEAC7.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-SDLDZL4K.js.map +0 -1
- package/dist/chunk-VBAGMX5I.js.map +0 -1
- package/dist/factory-JNLNQ67U.js +0 -21
- /package/dist/{child-mcp-config-TQIZEHVP.js.map → child-mcp-config-M7WR4XBB.js.map} +0 -0
- /package/dist/{chunk-6RXP55DL.js.map → chunk-2GTW7RSB.js.map} +0 -0
- /package/dist/{chunk-FJREQSFG.js.map → chunk-2Z4V5THE.js.map} +0 -0
- /package/dist/{chunk-GO7JE2MA.js.map → chunk-3N7TSFKQ.js.map} +0 -0
- /package/dist/{chunk-4FFWDTUE.js.map → chunk-3UXCVSLJ.js.map} +0 -0
- /package/dist/{chunk-GZFECWWZ.js.map → chunk-4A6MSCNJ.js.map} +0 -0
- /package/dist/{chunk-JAKYPFLI.js.map → chunk-5CADWTFO.js.map} +0 -0
- /package/dist/{chunk-TP3VZUQL.js.map → chunk-5GQMP7QN.js.map} +0 -0
- /package/dist/{chunk-RFXBV3A2.js.map → chunk-6GGHPZB5.js.map} +0 -0
- /package/dist/{chunk-MXEUDSWT.js.map → chunk-6LNLTWHE.js.map} +0 -0
- /package/dist/{chunk-ZJPKYTH5.js.map → chunk-7IMI64LW.js.map} +0 -0
- /package/dist/{chunk-6RXWD3HT.js.map → chunk-A4MPCXZ7.js.map} +0 -0
- /package/dist/{chunk-BKZ5YD66.js.map → chunk-ACARS7NG.js.map} +0 -0
- /package/dist/{chunk-IASJVOVO.js.map → chunk-ADIJIYFA.js.map} +0 -0
- /package/dist/{chunk-5QJTUA7Y.js.map → chunk-AVRE45DO.js.map} +0 -0
- /package/dist/{chunk-YVJFUOHY.js.map → chunk-CMRQR57K.js.map} +0 -0
- /package/dist/{chunk-KYLVH42N.js.map → chunk-E4LAXVQE.js.map} +0 -0
- /package/dist/{chunk-QJ52FRQX.js.map → chunk-FDY6YOFG.js.map} +0 -0
- /package/dist/{chunk-V2E74WBI.js.map → chunk-FFJEERPZ.js.map} +0 -0
- /package/dist/{chunk-EORN73QB.js.map → chunk-IZO437XR.js.map} +0 -0
- /package/dist/{chunk-4IBBMLNR.js.map → chunk-OGOE3NW5.js.map} +0 -0
- /package/dist/{chunk-JQHZS7GU.js.map → chunk-PM4MZHQK.js.map} +0 -0
- /package/dist/{chunk-NKAPCKHN.js.map → chunk-TA5HYM3H.js.map} +0 -0
- /package/dist/{chunk-VLL4L5TK.js.map → chunk-TGDWL7FG.js.map} +0 -0
- /package/dist/{chunk-U7HHO4UI.js.map → chunk-ULIAUMQD.js.map} +0 -0
- /package/dist/{chunk-U3FNIYWH.js.map → chunk-VTTPYENR.js.map} +0 -0
- /package/dist/{chunk-47M2C4SO.js.map → chunk-YEK3ZHO6.js.map} +0 -0
- /package/dist/{chunk-XMQ3EC2B.js.map → chunk-YHBVFTRG.js.map} +0 -0
- /package/dist/{chunk-RAAMLWMY.js.map → chunk-YXFQ3L56.js.map} +0 -0
- /package/dist/{chunk-GZTPQMD5.js.map → chunk-ZM3S6PTN.js.map} +0 -0
- /package/dist/{chunk-HMOPW3XC.js.map → chunk-ZQ5K3PG4.js.map} +0 -0
- /package/dist/{cli-circuit-breaker-3CWRA7DZ.js.map → cli-circuit-breaker-XRXLO2V6.js.map} +0 -0
- /package/dist/{composite-router-MN6W5CEQ.js.map → composite-router-V36PBE7B.js.map} +0 -0
- /package/dist/{consensus-vote-3EMLBZ25.js.map → consensus-vote-3REPKLK4.js.map} +0 -0
- /package/dist/{context-retriever-OLWFVOJG.js.map → context-retriever-KCSSXI6X.js.map} +0 -0
- /package/dist/{doctor-deep-W3QB24SM.js.map → doctor-deep-WID6FQ2F.js.map} +0 -0
- /package/dist/{expert-bridge-LAB2W5ET.js.map → expert-bridge-F4UMZFWS.js.map} +0 -0
- /package/dist/{factory-7ZKKQDCI.js.map → factory-B3SPS47O.js.map} +0 -0
- /package/dist/{factory-JNLNQ67U.js.map → factory-YVHULPTE.js.map} +0 -0
- /package/dist/{improvement-review-ATYDIHSF.js.map → improvement-review-AMVJW3SI.js.map} +0 -0
- /package/dist/{init-opencode-4O2R5S72.js.map → init-opencode-3UPZL2UQ.js.map} +0 -0
- /package/dist/{issue-triage-G2AKATE4.js.map → issue-triage-KMDQN2UU.js.map} +0 -0
- /package/dist/{pr-reviewer-helpers-Y6LEGX2P.js.map → pr-reviewer-helpers-2WBM5GL7.js.map} +0 -0
- /package/dist/{registry-command-X6A27TNG.js.map → registry-command-AXNA2H35.js.map} +0 -0
- /package/dist/{repo-security-plan-356NFHOZ.js.map → repo-security-plan-P2KJ4FDT.js.map} +0 -0
- /package/dist/{research-helpers-synthesize-7XWIAM5D.js.map → research-helpers-synthesize-UHWT62F2.js.map} +0 -0
- /package/dist/{routing-memory-YTLUUXXX.js.map → routing-memory-7RNR6A45.js.map} +0 -0
- /package/dist/{session-memory-IHQCJWBK.js.map → session-memory-2J2UBZJA.js.map} +0 -0
- /package/dist/{setup-command-Q4RVDZOO.js.map → setup-command-22IVI4T6.js.map} +0 -0
- /package/dist/{setup-config-UA4M5OQ4.js.map → setup-config-Y3S2L4RD.js.map} +0 -0
- /package/dist/{setup-custom-api-UXFN75SS.js.map → setup-custom-api-AZMHKIHE.js.map} +0 -0
- /package/dist/{tool-memory-SJ57ZJ5F.js.map → tool-memory-MIZVB4ZT.js.map} +0 -0
- /package/dist/{unified-registry-WMJQUA43.js.map → unified-registry-V4AZ6UYA.js.map} +0 -0
- /package/dist/{weather-report-WSATZR44.js.map → weather-report-WZKEEAC7.js.map} +0 -0
|
@@ -2153,6 +2153,11 @@ import { existsSync as existsSync3, readFileSync as readFileSync3 } from "fs";
|
|
|
2153
2153
|
import { dirname as dirname2, join as join2 } from "path";
|
|
2154
2154
|
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
2155
2155
|
function defaultGeneratedPath() {
|
|
2156
|
+
try {
|
|
2157
|
+
const dataPath = nexusDataPath("model-registry.generated.json");
|
|
2158
|
+
if (existsSync3(dataPath)) return dataPath;
|
|
2159
|
+
} catch {
|
|
2160
|
+
}
|
|
2156
2161
|
const here = dirname2(fileURLToPath2(import.meta.url));
|
|
2157
2162
|
return join2(here, "model-registry.generated.json");
|
|
2158
2163
|
}
|
|
@@ -2330,7 +2335,7 @@ function setDefaultRegistry(registry) {
|
|
|
2330
2335
|
}
|
|
2331
2336
|
async function reloadDefaultRegistry() {
|
|
2332
2337
|
globalRegistry = buildDefaultRegistry();
|
|
2333
|
-
const { resetGlobalRegistry } = await import("./unified-registry-
|
|
2338
|
+
const { resetGlobalRegistry } = await import("./unified-registry-V4AZ6UYA.js");
|
|
2334
2339
|
resetGlobalRegistry();
|
|
2335
2340
|
return globalRegistry;
|
|
2336
2341
|
}
|
|
@@ -12757,7 +12762,7 @@ var CompositeRouter = class _CompositeRouter {
|
|
|
12757
12762
|
*/
|
|
12758
12763
|
async consultUnifiedContext(task) {
|
|
12759
12764
|
try {
|
|
12760
|
-
const { getContextForTask, inferTaskCategory } = await import("./context-retriever-
|
|
12765
|
+
const { getContextForTask, inferTaskCategory } = await import("./context-retriever-KCSSXI6X.js");
|
|
12761
12766
|
const ctx = await getContextForTask({
|
|
12762
12767
|
task: task.content,
|
|
12763
12768
|
category: inferTaskCategory(task.content),
|
|
@@ -13480,6 +13485,10 @@ var ExperienceMemoryImpl = class {
|
|
|
13480
13485
|
(p) => p.successRate >= this.config.minExperienceSuccessRate && p.attemptCount >= 3
|
|
13481
13486
|
);
|
|
13482
13487
|
}
|
|
13488
|
+
/** #3234: all recorded entries across task types — for the research-maturity measurement surface. */
|
|
13489
|
+
getAllPatterns() {
|
|
13490
|
+
return [...this.patterns.values()];
|
|
13491
|
+
}
|
|
13483
13492
|
getBestPattern(taskType, contextSignature) {
|
|
13484
13493
|
let best = null;
|
|
13485
13494
|
let bestScore = -1;
|
|
@@ -13726,6 +13735,96 @@ function defaultSharedDbPath() {
|
|
|
13726
13735
|
return `${root}/memory/mobimem.db`;
|
|
13727
13736
|
}
|
|
13728
13737
|
|
|
13738
|
+
// src/pipeline/research-context.ts
|
|
13739
|
+
var MAX_RENDERED_ITEMS = 8;
|
|
13740
|
+
function sanitizeExternal(value, maxLen = 160) {
|
|
13741
|
+
const collapsed = value.replace(/`/g, "").replace(/[-]/g, " ").replace(/\s+/g, " ").trim();
|
|
13742
|
+
return collapsed.length > maxLen ? `${collapsed.slice(0, maxLen - 1)}\u2026` : collapsed;
|
|
13743
|
+
}
|
|
13744
|
+
function buildResearchContextMetadata(discover, analyze) {
|
|
13745
|
+
const discoveredItems = discover.items.map((item) => ({
|
|
13746
|
+
title: item.title,
|
|
13747
|
+
url: item.url,
|
|
13748
|
+
...item.relevanceScore !== void 0 ? { relevanceScore: item.relevanceScore } : {},
|
|
13749
|
+
alreadyInRegistry: item.alreadyInRegistry
|
|
13750
|
+
})).sort((a, b) => (b.relevanceScore ?? 0) - (a.relevanceScore ?? 0));
|
|
13751
|
+
return {
|
|
13752
|
+
discoveredItems,
|
|
13753
|
+
recommendations: analyze?.recommendations ?? [],
|
|
13754
|
+
qualitySignals: {
|
|
13755
|
+
totalFound: discover.totalFound,
|
|
13756
|
+
newItems: discover.newItems,
|
|
13757
|
+
alreadyInRegistry: discover.alreadyInRegistry
|
|
13758
|
+
}
|
|
13759
|
+
};
|
|
13760
|
+
}
|
|
13761
|
+
function renderResearchText(metadata, topic) {
|
|
13762
|
+
const { discoveredItems, recommendations, qualitySignals } = metadata;
|
|
13763
|
+
const lines = [];
|
|
13764
|
+
lines.push(`[Research] ${sanitizeExternal(topic, 120)}`);
|
|
13765
|
+
lines.push(
|
|
13766
|
+
`Maturity: ${String(qualitySignals.totalFound)} found, ${String(qualitySignals.newItems)} new, ${String(qualitySignals.alreadyInRegistry)} already in registry.`
|
|
13767
|
+
);
|
|
13768
|
+
if (discoveredItems.length > 0) {
|
|
13769
|
+
lines.push("Top discoveries (by relevance):");
|
|
13770
|
+
for (const item of discoveredItems.slice(0, MAX_RENDERED_ITEMS)) {
|
|
13771
|
+
const score = item.relevanceScore !== void 0 ? item.relevanceScore.toFixed(2) : "n/a";
|
|
13772
|
+
const known = item.alreadyInRegistry ? " [in registry]" : "";
|
|
13773
|
+
lines.push(`- ${sanitizeExternal(item.title)} (relevance ${score})${known}`);
|
|
13774
|
+
}
|
|
13775
|
+
} else {
|
|
13776
|
+
lines.push("Top discoveries (by relevance): none.");
|
|
13777
|
+
}
|
|
13778
|
+
if (recommendations.length > 0) {
|
|
13779
|
+
lines.push("Gap recommendations:");
|
|
13780
|
+
for (const rec of recommendations) lines.push(`- ${sanitizeExternal(rec)}`);
|
|
13781
|
+
}
|
|
13782
|
+
return lines.join("\n");
|
|
13783
|
+
}
|
|
13784
|
+
function buildResearchContext(discover, analyze, topic = discover.topic) {
|
|
13785
|
+
const metadata = buildResearchContextMetadata(discover, analyze);
|
|
13786
|
+
return { text: renderResearchText(metadata, topic), metadata };
|
|
13787
|
+
}
|
|
13788
|
+
var RESEARCH_MATURITY_SATURATION = 8;
|
|
13789
|
+
function deriveResearchMaturity(metadata) {
|
|
13790
|
+
const found = metadata.qualitySignals.totalFound;
|
|
13791
|
+
if (found <= 0) return 0;
|
|
13792
|
+
return Math.min(1, found / RESEARCH_MATURITY_SATURATION);
|
|
13793
|
+
}
|
|
13794
|
+
function researchMaturityBucket(score) {
|
|
13795
|
+
if (score <= 0) return "none";
|
|
13796
|
+
return score < 0.5 ? "low" : "high";
|
|
13797
|
+
}
|
|
13798
|
+
function computeResearchMaturityReport(records) {
|
|
13799
|
+
const acc = {
|
|
13800
|
+
none: { count: 0, succ: 0, att: 0 },
|
|
13801
|
+
low: { count: 0, succ: 0, att: 0 },
|
|
13802
|
+
high: { count: 0, succ: 0, att: 0 }
|
|
13803
|
+
};
|
|
13804
|
+
for (const r of records) {
|
|
13805
|
+
const b = acc[researchMaturityBucket(r.researchMaturity ?? 0)];
|
|
13806
|
+
b.count += 1;
|
|
13807
|
+
b.succ += r.successCount;
|
|
13808
|
+
b.att += r.attemptCount;
|
|
13809
|
+
}
|
|
13810
|
+
const rate = (b) => b.att > 0 ? b.succ / b.att : 0;
|
|
13811
|
+
const byBucket = {
|
|
13812
|
+
none: { count: acc.none.count, attempts: acc.none.att, successRate: rate(acc.none) },
|
|
13813
|
+
low: { count: acc.low.count, attempts: acc.low.att, successRate: rate(acc.low) },
|
|
13814
|
+
high: { count: acc.high.count, attempts: acc.high.att, successRate: rate(acc.high) }
|
|
13815
|
+
};
|
|
13816
|
+
const delta = byBucket.high.count > 0 && byBucket.none.count > 0 ? byBucket.high.successRate - byBucket.none.successRate : 0;
|
|
13817
|
+
return { byBucket, highVsNoneDelta: delta, totalRecords: records.length };
|
|
13818
|
+
}
|
|
13819
|
+
var EMPTY_RESEARCH_METADATA = {
|
|
13820
|
+
discoveredItems: [],
|
|
13821
|
+
recommendations: [],
|
|
13822
|
+
qualitySignals: { totalFound: 0, newItems: 0, alreadyInRegistry: 0 }
|
|
13823
|
+
};
|
|
13824
|
+
function researchContextFromText(text) {
|
|
13825
|
+
return { text, metadata: EMPTY_RESEARCH_METADATA };
|
|
13826
|
+
}
|
|
13827
|
+
|
|
13729
13828
|
// src/context/routing-memory.ts
|
|
13730
13829
|
var DEFAULT_ROUTING_MEMORY_CONFIG = {
|
|
13731
13830
|
minObservations: 5,
|
|
@@ -13816,15 +13915,13 @@ var RoutingMemory = class {
|
|
|
13816
13915
|
durationMs: Math.floor(metrics2.durationMs / models.length),
|
|
13817
13916
|
success
|
|
13818
13917
|
}));
|
|
13819
|
-
const outcome =
|
|
13918
|
+
const outcome = {
|
|
13820
13919
|
success,
|
|
13821
|
-
qualityScore: metrics2.qualityScore,
|
|
13822
13920
|
totalDurationMs: metrics2.durationMs,
|
|
13823
|
-
tokensUsed: metrics2.tokensUsed
|
|
13824
|
-
|
|
13825
|
-
|
|
13826
|
-
|
|
13827
|
-
tokensUsed: metrics2.tokensUsed
|
|
13921
|
+
tokensUsed: metrics2.tokensUsed,
|
|
13922
|
+
...metrics2.qualityScore !== void 0 ? { qualityScore: metrics2.qualityScore } : {},
|
|
13923
|
+
// #3234: record research-maturity for the measurement surface (#3815 gates use).
|
|
13924
|
+
...metrics2.researchMaturity !== void 0 ? { researchMaturity: metrics2.researchMaturity } : {}
|
|
13828
13925
|
};
|
|
13829
13926
|
this.mobimem.experience.recordExecution(workflow, actionSequence, outcome, contextSignature);
|
|
13830
13927
|
this.logger.debug("Recorded routing experience", {
|
|
@@ -13838,6 +13935,20 @@ var RoutingMemory = class {
|
|
|
13838
13935
|
const experiences = this.mobimem.experience.findPatterns(workflow);
|
|
13839
13936
|
return experiences.filter((exp) => exp.successRate >= this.config.successRateThreshold).map((exp) => this.mapExperienceToPattern(exp));
|
|
13840
13937
|
}
|
|
13938
|
+
/**
|
|
13939
|
+
* #3234 measurement surface: bucket ALL recorded experience by the run's
|
|
13940
|
+
* research-maturity and report the attempt-weighted success rate per bucket.
|
|
13941
|
+
* This is the read-only consumer of {@link ExecutionOutcome.researchMaturity} —
|
|
13942
|
+
* it does NOT influence routing (live weighting is gated on a measured lift, #3815).
|
|
13943
|
+
*/
|
|
13944
|
+
getResearchMaturityReport() {
|
|
13945
|
+
const records = this.mobimem.experience.getAllPatterns().map((exp) => ({
|
|
13946
|
+
successCount: exp.successCount,
|
|
13947
|
+
attemptCount: exp.attemptCount,
|
|
13948
|
+
researchMaturity: exp.outcome.researchMaturity
|
|
13949
|
+
}));
|
|
13950
|
+
return computeResearchMaturityReport(records);
|
|
13951
|
+
}
|
|
13841
13952
|
cacheAction(action, model, result, durationMs2) {
|
|
13842
13953
|
const input = { actionSignature: action, model };
|
|
13843
13954
|
this.mobimem.action.cache(input, result, durationMs2);
|
|
@@ -14104,6 +14215,9 @@ export {
|
|
|
14104
14215
|
DEFAULT_ZERO_ROUTER_CONFIG,
|
|
14105
14216
|
getSharedMobiMem,
|
|
14106
14217
|
setSharedMobiMemDbPathResolver,
|
|
14218
|
+
buildResearchContext,
|
|
14219
|
+
deriveResearchMaturity,
|
|
14220
|
+
researchContextFromText,
|
|
14107
14221
|
DEFAULT_ROUTING_MEMORY_CONFIG,
|
|
14108
14222
|
RoutingMemory,
|
|
14109
14223
|
createRoutingMemory,
|
|
@@ -14143,4 +14257,4 @@ export {
|
|
|
14143
14257
|
AgentCapability,
|
|
14144
14258
|
OrchestratorError
|
|
14145
14259
|
};
|
|
14146
|
-
//# sourceMappingURL=chunk-
|
|
14260
|
+
//# sourceMappingURL=chunk-VY5WEC2D.js.map
|