nexus-agents 2.129.2 → 2.130.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/{child-mcp-config-TQIZEHVP.js → child-mcp-config-F7R7BFEF.js} +2 -2
- package/dist/{chunk-U7HHO4UI.js → chunk-2ECAJTUP.js} +2 -2
- package/dist/{chunk-JQHZS7GU.js → chunk-4SDY75WA.js} +4 -4
- package/dist/{chunk-6RXWD3HT.js → chunk-6BF3BRJ3.js} +2 -2
- package/dist/{chunk-RAAMLWMY.js → chunk-AZFHCHYX.js} +7 -7
- package/dist/{chunk-BKZ5YD66.js → chunk-BPGSM6U5.js} +2 -2
- package/dist/{chunk-4FFWDTUE.js → chunk-CFXL5LJC.js} +2 -2
- package/dist/{chunk-EORN73QB.js → chunk-CXGIRMHT.js} +7 -7
- package/dist/{chunk-V2E74WBI.js → chunk-F6Y2CE24.js} +2 -2
- package/dist/{chunk-JAKYPFLI.js → chunk-FYECPZKQ.js} +3 -3
- package/dist/{chunk-NKAPCKHN.js → chunk-GIKZBQY7.js} +4 -4
- package/dist/{chunk-GO7JE2MA.js → chunk-GMC6DYG7.js} +2 -2
- package/dist/{chunk-YVJFUOHY.js → chunk-JDHCHN7U.js} +3 -3
- package/dist/{chunk-GZFECWWZ.js → chunk-KBX2Q3DG.js} +2 -2
- package/dist/{chunk-SDLDZL4K.js → chunk-KOICNQMN.js} +90 -129
- package/dist/chunk-KOICNQMN.js.map +1 -0
- package/dist/{chunk-QJ52FRQX.js → chunk-L4ETHMN6.js} +2 -2
- package/dist/{chunk-U3FNIYWH.js → chunk-LICM3H4J.js} +2 -2
- package/dist/{chunk-VBAGMX5I.js → chunk-MII2DHXL.js} +119 -10
- package/dist/chunk-MII2DHXL.js.map +1 -0
- package/dist/{chunk-GZTPQMD5.js → chunk-MJTTQCJS.js} +3 -3
- package/dist/{chunk-KYLVH42N.js → chunk-P5TYSLNS.js} +2 -2
- package/dist/{chunk-XMQ3EC2B.js → chunk-PLVZ64OM.js} +2 -2
- package/dist/{chunk-47M2C4SO.js → chunk-PP724WVD.js} +5 -5
- package/dist/{chunk-TP3VZUQL.js → chunk-QENZCLR2.js} +3 -3
- package/dist/{chunk-VLL4L5TK.js → chunk-R3ZNBC2O.js} +2 -2
- package/dist/{chunk-ZJPKYTH5.js → chunk-RBPGEUHT.js} +3 -3
- package/dist/{chunk-5QJTUA7Y.js → chunk-RDJMBYZ2.js} +3 -3
- package/dist/{chunk-FJREQSFG.js → chunk-SUJFJVAM.js} +2 -2
- package/dist/{chunk-IASJVOVO.js → chunk-SWKSR5R7.js} +2 -2
- package/dist/{chunk-4IBBMLNR.js → chunk-TT7DZ6XW.js} +4 -4
- package/dist/{chunk-HMOPW3XC.js → chunk-TULQAVRC.js} +7 -7
- package/dist/{chunk-RFXBV3A2.js → chunk-UXTCUMJM.js} +4 -4
- package/dist/{chunk-MXEUDSWT.js → chunk-V5EI2KEG.js} +5 -5
- package/dist/{chunk-6RXP55DL.js → chunk-W4PM3PLE.js} +7 -7
- package/dist/{cli-circuit-breaker-3CWRA7DZ.js → cli-circuit-breaker-VXHOHBE6.js} +4 -4
- package/dist/cli.js +39 -39
- package/dist/{composite-router-MN6W5CEQ.js → composite-router-NJZMYTXG.js} +2 -2
- package/dist/{consensus-vote-3EMLBZ25.js → consensus-vote-SH5CKJQR.js} +13 -13
- package/dist/{context-retriever-OLWFVOJG.js → context-retriever-LVW25GWO.js} +8 -8
- package/dist/{doctor-deep-W3QB24SM.js → doctor-deep-HCT3LW5G.js} +3 -3
- package/dist/{expert-bridge-LAB2W5ET.js → expert-bridge-FBYWLGB3.js} +4 -4
- package/dist/factory-5IYTNTA2.js +21 -0
- package/dist/{factory-7ZKKQDCI.js → factory-GP5SJCTQ.js} +5 -5
- package/dist/{improvement-review-ATYDIHSF.js → improvement-review-OUGGPW4A.js} +4 -4
- package/dist/index.d.ts +3030 -2943
- package/dist/index.js +28 -28
- package/dist/{init-opencode-4O2R5S72.js → init-opencode-6PZVSSZY.js} +5 -5
- package/dist/{issue-triage-G2AKATE4.js → issue-triage-TPPWEE5N.js} +5 -5
- package/dist/{pr-reviewer-helpers-Y6LEGX2P.js → pr-reviewer-helpers-MMVZFL2P.js} +4 -4
- package/dist/{registry-command-X6A27TNG.js → registry-command-IDC5G3EZ.js} +2 -2
- package/dist/{repo-security-plan-356NFHOZ.js → repo-security-plan-XL3LTBPN.js} +3 -3
- package/dist/{research-helpers-synthesize-7XWIAM5D.js → research-helpers-synthesize-6ROTFLGO.js} +4 -4
- package/dist/{routing-memory-YTLUUXXX.js → routing-memory-YAW2AIRX.js} +2 -2
- package/dist/{session-memory-IHQCJWBK.js → session-memory-VR3BJMWL.js} +3 -3
- package/dist/{setup-command-Q4RVDZOO.js → setup-command-SMJX3TES.js} +11 -11
- package/dist/{setup-config-UA4M5OQ4.js → setup-config-IXZAAYYH.js} +3 -3
- package/dist/{setup-custom-api-UXFN75SS.js → setup-custom-api-6ZBOVWEU.js} +3 -3
- package/dist/{tool-memory-SJ57ZJ5F.js → tool-memory-ZKMPHKG5.js} +5 -5
- package/dist/{unified-registry-WMJQUA43.js → unified-registry-WP4XC656.js} +9 -9
- package/dist/{weather-report-WSATZR44.js → weather-report-CETWTNE5.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-F7R7BFEF.js.map} +0 -0
- /package/dist/{chunk-U7HHO4UI.js.map → chunk-2ECAJTUP.js.map} +0 -0
- /package/dist/{chunk-JQHZS7GU.js.map → chunk-4SDY75WA.js.map} +0 -0
- /package/dist/{chunk-6RXWD3HT.js.map → chunk-6BF3BRJ3.js.map} +0 -0
- /package/dist/{chunk-RAAMLWMY.js.map → chunk-AZFHCHYX.js.map} +0 -0
- /package/dist/{chunk-BKZ5YD66.js.map → chunk-BPGSM6U5.js.map} +0 -0
- /package/dist/{chunk-4FFWDTUE.js.map → chunk-CFXL5LJC.js.map} +0 -0
- /package/dist/{chunk-EORN73QB.js.map → chunk-CXGIRMHT.js.map} +0 -0
- /package/dist/{chunk-V2E74WBI.js.map → chunk-F6Y2CE24.js.map} +0 -0
- /package/dist/{chunk-JAKYPFLI.js.map → chunk-FYECPZKQ.js.map} +0 -0
- /package/dist/{chunk-NKAPCKHN.js.map → chunk-GIKZBQY7.js.map} +0 -0
- /package/dist/{chunk-GO7JE2MA.js.map → chunk-GMC6DYG7.js.map} +0 -0
- /package/dist/{chunk-YVJFUOHY.js.map → chunk-JDHCHN7U.js.map} +0 -0
- /package/dist/{chunk-GZFECWWZ.js.map → chunk-KBX2Q3DG.js.map} +0 -0
- /package/dist/{chunk-QJ52FRQX.js.map → chunk-L4ETHMN6.js.map} +0 -0
- /package/dist/{chunk-U3FNIYWH.js.map → chunk-LICM3H4J.js.map} +0 -0
- /package/dist/{chunk-GZTPQMD5.js.map → chunk-MJTTQCJS.js.map} +0 -0
- /package/dist/{chunk-KYLVH42N.js.map → chunk-P5TYSLNS.js.map} +0 -0
- /package/dist/{chunk-XMQ3EC2B.js.map → chunk-PLVZ64OM.js.map} +0 -0
- /package/dist/{chunk-47M2C4SO.js.map → chunk-PP724WVD.js.map} +0 -0
- /package/dist/{chunk-TP3VZUQL.js.map → chunk-QENZCLR2.js.map} +0 -0
- /package/dist/{chunk-VLL4L5TK.js.map → chunk-R3ZNBC2O.js.map} +0 -0
- /package/dist/{chunk-ZJPKYTH5.js.map → chunk-RBPGEUHT.js.map} +0 -0
- /package/dist/{chunk-5QJTUA7Y.js.map → chunk-RDJMBYZ2.js.map} +0 -0
- /package/dist/{chunk-FJREQSFG.js.map → chunk-SUJFJVAM.js.map} +0 -0
- /package/dist/{chunk-IASJVOVO.js.map → chunk-SWKSR5R7.js.map} +0 -0
- /package/dist/{chunk-4IBBMLNR.js.map → chunk-TT7DZ6XW.js.map} +0 -0
- /package/dist/{chunk-HMOPW3XC.js.map → chunk-TULQAVRC.js.map} +0 -0
- /package/dist/{chunk-RFXBV3A2.js.map → chunk-UXTCUMJM.js.map} +0 -0
- /package/dist/{chunk-MXEUDSWT.js.map → chunk-V5EI2KEG.js.map} +0 -0
- /package/dist/{chunk-6RXP55DL.js.map → chunk-W4PM3PLE.js.map} +0 -0
- /package/dist/{cli-circuit-breaker-3CWRA7DZ.js.map → cli-circuit-breaker-VXHOHBE6.js.map} +0 -0
- /package/dist/{composite-router-MN6W5CEQ.js.map → composite-router-NJZMYTXG.js.map} +0 -0
- /package/dist/{consensus-vote-3EMLBZ25.js.map → consensus-vote-SH5CKJQR.js.map} +0 -0
- /package/dist/{context-retriever-OLWFVOJG.js.map → context-retriever-LVW25GWO.js.map} +0 -0
- /package/dist/{doctor-deep-W3QB24SM.js.map → doctor-deep-HCT3LW5G.js.map} +0 -0
- /package/dist/{expert-bridge-LAB2W5ET.js.map → expert-bridge-FBYWLGB3.js.map} +0 -0
- /package/dist/{factory-7ZKKQDCI.js.map → factory-5IYTNTA2.js.map} +0 -0
- /package/dist/{factory-JNLNQ67U.js.map → factory-GP5SJCTQ.js.map} +0 -0
- /package/dist/{improvement-review-ATYDIHSF.js.map → improvement-review-OUGGPW4A.js.map} +0 -0
- /package/dist/{init-opencode-4O2R5S72.js.map → init-opencode-6PZVSSZY.js.map} +0 -0
- /package/dist/{issue-triage-G2AKATE4.js.map → issue-triage-TPPWEE5N.js.map} +0 -0
- /package/dist/{pr-reviewer-helpers-Y6LEGX2P.js.map → pr-reviewer-helpers-MMVZFL2P.js.map} +0 -0
- /package/dist/{registry-command-X6A27TNG.js.map → registry-command-IDC5G3EZ.js.map} +0 -0
- /package/dist/{repo-security-plan-356NFHOZ.js.map → repo-security-plan-XL3LTBPN.js.map} +0 -0
- /package/dist/{research-helpers-synthesize-7XWIAM5D.js.map → research-helpers-synthesize-6ROTFLGO.js.map} +0 -0
- /package/dist/{routing-memory-YTLUUXXX.js.map → routing-memory-YAW2AIRX.js.map} +0 -0
- /package/dist/{session-memory-IHQCJWBK.js.map → session-memory-VR3BJMWL.js.map} +0 -0
- /package/dist/{setup-command-Q4RVDZOO.js.map → setup-command-SMJX3TES.js.map} +0 -0
- /package/dist/{setup-config-UA4M5OQ4.js.map → setup-config-IXZAAYYH.js.map} +0 -0
- /package/dist/{setup-custom-api-UXFN75SS.js.map → setup-custom-api-6ZBOVWEU.js.map} +0 -0
- /package/dist/{tool-memory-SJ57ZJ5F.js.map → tool-memory-ZKMPHKG5.js.map} +0 -0
- /package/dist/{unified-registry-WMJQUA43.js.map → unified-registry-WP4XC656.js.map} +0 -0
- /package/dist/{weather-report-WSATZR44.js.map → weather-report-CETWTNE5.js.map} +0 -0
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
getErrorMessage,
|
|
5
5
|
getTimeProvider,
|
|
6
6
|
ok
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MII2DHXL.js";
|
|
8
8
|
|
|
9
9
|
// src/context/session-memory.ts
|
|
10
10
|
import * as fs from "fs";
|
|
@@ -351,4 +351,4 @@ export {
|
|
|
351
351
|
SessionMemory,
|
|
352
352
|
createSessionMemory
|
|
353
353
|
};
|
|
354
|
-
//# sourceMappingURL=chunk-
|
|
354
|
+
//# sourceMappingURL=chunk-L4ETHMN6.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
getErrorMessage,
|
|
9
9
|
ok,
|
|
10
10
|
parseBoolEnv
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-MII2DHXL.js";
|
|
12
12
|
|
|
13
13
|
// src/cli/research-helpers-io.ts
|
|
14
14
|
import * as fs2 from "fs/promises";
|
|
@@ -146,4 +146,4 @@ export {
|
|
|
146
146
|
loadPapersRegistry,
|
|
147
147
|
savePapersRegistry
|
|
148
148
|
};
|
|
149
|
-
//# sourceMappingURL=chunk-
|
|
149
|
+
//# sourceMappingURL=chunk-LICM3H4J.js.map
|
|
@@ -2330,7 +2330,7 @@ function setDefaultRegistry(registry) {
|
|
|
2330
2330
|
}
|
|
2331
2331
|
async function reloadDefaultRegistry() {
|
|
2332
2332
|
globalRegistry = buildDefaultRegistry();
|
|
2333
|
-
const { resetGlobalRegistry } = await import("./unified-registry-
|
|
2333
|
+
const { resetGlobalRegistry } = await import("./unified-registry-WP4XC656.js");
|
|
2334
2334
|
resetGlobalRegistry();
|
|
2335
2335
|
return globalRegistry;
|
|
2336
2336
|
}
|
|
@@ -12757,7 +12757,7 @@ var CompositeRouter = class _CompositeRouter {
|
|
|
12757
12757
|
*/
|
|
12758
12758
|
async consultUnifiedContext(task) {
|
|
12759
12759
|
try {
|
|
12760
|
-
const { getContextForTask, inferTaskCategory } = await import("./context-retriever-
|
|
12760
|
+
const { getContextForTask, inferTaskCategory } = await import("./context-retriever-LVW25GWO.js");
|
|
12761
12761
|
const ctx = await getContextForTask({
|
|
12762
12762
|
task: task.content,
|
|
12763
12763
|
category: inferTaskCategory(task.content),
|
|
@@ -13480,6 +13480,10 @@ var ExperienceMemoryImpl = class {
|
|
|
13480
13480
|
(p) => p.successRate >= this.config.minExperienceSuccessRate && p.attemptCount >= 3
|
|
13481
13481
|
);
|
|
13482
13482
|
}
|
|
13483
|
+
/** #3234: all recorded entries across task types — for the research-maturity measurement surface. */
|
|
13484
|
+
getAllPatterns() {
|
|
13485
|
+
return [...this.patterns.values()];
|
|
13486
|
+
}
|
|
13483
13487
|
getBestPattern(taskType, contextSignature) {
|
|
13484
13488
|
let best = null;
|
|
13485
13489
|
let bestScore = -1;
|
|
@@ -13726,6 +13730,96 @@ function defaultSharedDbPath() {
|
|
|
13726
13730
|
return `${root}/memory/mobimem.db`;
|
|
13727
13731
|
}
|
|
13728
13732
|
|
|
13733
|
+
// src/pipeline/research-context.ts
|
|
13734
|
+
var MAX_RENDERED_ITEMS = 8;
|
|
13735
|
+
function sanitizeExternal(value, maxLen = 160) {
|
|
13736
|
+
const collapsed = value.replace(/`/g, "").replace(/[-]/g, " ").replace(/\s+/g, " ").trim();
|
|
13737
|
+
return collapsed.length > maxLen ? `${collapsed.slice(0, maxLen - 1)}\u2026` : collapsed;
|
|
13738
|
+
}
|
|
13739
|
+
function buildResearchContextMetadata(discover, analyze) {
|
|
13740
|
+
const discoveredItems = discover.items.map((item) => ({
|
|
13741
|
+
title: item.title,
|
|
13742
|
+
url: item.url,
|
|
13743
|
+
...item.relevanceScore !== void 0 ? { relevanceScore: item.relevanceScore } : {},
|
|
13744
|
+
alreadyInRegistry: item.alreadyInRegistry
|
|
13745
|
+
})).sort((a, b) => (b.relevanceScore ?? 0) - (a.relevanceScore ?? 0));
|
|
13746
|
+
return {
|
|
13747
|
+
discoveredItems,
|
|
13748
|
+
recommendations: analyze?.recommendations ?? [],
|
|
13749
|
+
qualitySignals: {
|
|
13750
|
+
totalFound: discover.totalFound,
|
|
13751
|
+
newItems: discover.newItems,
|
|
13752
|
+
alreadyInRegistry: discover.alreadyInRegistry
|
|
13753
|
+
}
|
|
13754
|
+
};
|
|
13755
|
+
}
|
|
13756
|
+
function renderResearchText(metadata, topic) {
|
|
13757
|
+
const { discoveredItems, recommendations, qualitySignals } = metadata;
|
|
13758
|
+
const lines = [];
|
|
13759
|
+
lines.push(`[Research] ${sanitizeExternal(topic, 120)}`);
|
|
13760
|
+
lines.push(
|
|
13761
|
+
`Maturity: ${String(qualitySignals.totalFound)} found, ${String(qualitySignals.newItems)} new, ${String(qualitySignals.alreadyInRegistry)} already in registry.`
|
|
13762
|
+
);
|
|
13763
|
+
if (discoveredItems.length > 0) {
|
|
13764
|
+
lines.push("Top discoveries (by relevance):");
|
|
13765
|
+
for (const item of discoveredItems.slice(0, MAX_RENDERED_ITEMS)) {
|
|
13766
|
+
const score = item.relevanceScore !== void 0 ? item.relevanceScore.toFixed(2) : "n/a";
|
|
13767
|
+
const known = item.alreadyInRegistry ? " [in registry]" : "";
|
|
13768
|
+
lines.push(`- ${sanitizeExternal(item.title)} (relevance ${score})${known}`);
|
|
13769
|
+
}
|
|
13770
|
+
} else {
|
|
13771
|
+
lines.push("Top discoveries (by relevance): none.");
|
|
13772
|
+
}
|
|
13773
|
+
if (recommendations.length > 0) {
|
|
13774
|
+
lines.push("Gap recommendations:");
|
|
13775
|
+
for (const rec of recommendations) lines.push(`- ${sanitizeExternal(rec)}`);
|
|
13776
|
+
}
|
|
13777
|
+
return lines.join("\n");
|
|
13778
|
+
}
|
|
13779
|
+
function buildResearchContext(discover, analyze, topic = discover.topic) {
|
|
13780
|
+
const metadata = buildResearchContextMetadata(discover, analyze);
|
|
13781
|
+
return { text: renderResearchText(metadata, topic), metadata };
|
|
13782
|
+
}
|
|
13783
|
+
var RESEARCH_MATURITY_SATURATION = 8;
|
|
13784
|
+
function deriveResearchMaturity(metadata) {
|
|
13785
|
+
const found = metadata.qualitySignals.totalFound;
|
|
13786
|
+
if (found <= 0) return 0;
|
|
13787
|
+
return Math.min(1, found / RESEARCH_MATURITY_SATURATION);
|
|
13788
|
+
}
|
|
13789
|
+
function researchMaturityBucket(score) {
|
|
13790
|
+
if (score <= 0) return "none";
|
|
13791
|
+
return score < 0.5 ? "low" : "high";
|
|
13792
|
+
}
|
|
13793
|
+
function computeResearchMaturityReport(records) {
|
|
13794
|
+
const acc = {
|
|
13795
|
+
none: { count: 0, succ: 0, att: 0 },
|
|
13796
|
+
low: { count: 0, succ: 0, att: 0 },
|
|
13797
|
+
high: { count: 0, succ: 0, att: 0 }
|
|
13798
|
+
};
|
|
13799
|
+
for (const r of records) {
|
|
13800
|
+
const b = acc[researchMaturityBucket(r.researchMaturity ?? 0)];
|
|
13801
|
+
b.count += 1;
|
|
13802
|
+
b.succ += r.successCount;
|
|
13803
|
+
b.att += r.attemptCount;
|
|
13804
|
+
}
|
|
13805
|
+
const rate = (b) => b.att > 0 ? b.succ / b.att : 0;
|
|
13806
|
+
const byBucket = {
|
|
13807
|
+
none: { count: acc.none.count, attempts: acc.none.att, successRate: rate(acc.none) },
|
|
13808
|
+
low: { count: acc.low.count, attempts: acc.low.att, successRate: rate(acc.low) },
|
|
13809
|
+
high: { count: acc.high.count, attempts: acc.high.att, successRate: rate(acc.high) }
|
|
13810
|
+
};
|
|
13811
|
+
const delta = byBucket.high.count > 0 && byBucket.none.count > 0 ? byBucket.high.successRate - byBucket.none.successRate : 0;
|
|
13812
|
+
return { byBucket, highVsNoneDelta: delta, totalRecords: records.length };
|
|
13813
|
+
}
|
|
13814
|
+
var EMPTY_RESEARCH_METADATA = {
|
|
13815
|
+
discoveredItems: [],
|
|
13816
|
+
recommendations: [],
|
|
13817
|
+
qualitySignals: { totalFound: 0, newItems: 0, alreadyInRegistry: 0 }
|
|
13818
|
+
};
|
|
13819
|
+
function researchContextFromText(text) {
|
|
13820
|
+
return { text, metadata: EMPTY_RESEARCH_METADATA };
|
|
13821
|
+
}
|
|
13822
|
+
|
|
13729
13823
|
// src/context/routing-memory.ts
|
|
13730
13824
|
var DEFAULT_ROUTING_MEMORY_CONFIG = {
|
|
13731
13825
|
minObservations: 5,
|
|
@@ -13816,15 +13910,13 @@ var RoutingMemory = class {
|
|
|
13816
13910
|
durationMs: Math.floor(metrics2.durationMs / models.length),
|
|
13817
13911
|
success
|
|
13818
13912
|
}));
|
|
13819
|
-
const outcome =
|
|
13820
|
-
success,
|
|
13821
|
-
qualityScore: metrics2.qualityScore,
|
|
13822
|
-
totalDurationMs: metrics2.durationMs,
|
|
13823
|
-
tokensUsed: metrics2.tokensUsed
|
|
13824
|
-
} : {
|
|
13913
|
+
const outcome = {
|
|
13825
13914
|
success,
|
|
13826
13915
|
totalDurationMs: metrics2.durationMs,
|
|
13827
|
-
tokensUsed: metrics2.tokensUsed
|
|
13916
|
+
tokensUsed: metrics2.tokensUsed,
|
|
13917
|
+
...metrics2.qualityScore !== void 0 ? { qualityScore: metrics2.qualityScore } : {},
|
|
13918
|
+
// #3234: record research-maturity for the measurement surface (#3815 gates use).
|
|
13919
|
+
...metrics2.researchMaturity !== void 0 ? { researchMaturity: metrics2.researchMaturity } : {}
|
|
13828
13920
|
};
|
|
13829
13921
|
this.mobimem.experience.recordExecution(workflow, actionSequence, outcome, contextSignature);
|
|
13830
13922
|
this.logger.debug("Recorded routing experience", {
|
|
@@ -13838,6 +13930,20 @@ var RoutingMemory = class {
|
|
|
13838
13930
|
const experiences = this.mobimem.experience.findPatterns(workflow);
|
|
13839
13931
|
return experiences.filter((exp) => exp.successRate >= this.config.successRateThreshold).map((exp) => this.mapExperienceToPattern(exp));
|
|
13840
13932
|
}
|
|
13933
|
+
/**
|
|
13934
|
+
* #3234 measurement surface: bucket ALL recorded experience by the run's
|
|
13935
|
+
* research-maturity and report the attempt-weighted success rate per bucket.
|
|
13936
|
+
* This is the read-only consumer of {@link ExecutionOutcome.researchMaturity} —
|
|
13937
|
+
* it does NOT influence routing (live weighting is gated on a measured lift, #3815).
|
|
13938
|
+
*/
|
|
13939
|
+
getResearchMaturityReport() {
|
|
13940
|
+
const records = this.mobimem.experience.getAllPatterns().map((exp) => ({
|
|
13941
|
+
successCount: exp.successCount,
|
|
13942
|
+
attemptCount: exp.attemptCount,
|
|
13943
|
+
researchMaturity: exp.outcome.researchMaturity
|
|
13944
|
+
}));
|
|
13945
|
+
return computeResearchMaturityReport(records);
|
|
13946
|
+
}
|
|
13841
13947
|
cacheAction(action, model, result, durationMs2) {
|
|
13842
13948
|
const input = { actionSignature: action, model };
|
|
13843
13949
|
this.mobimem.action.cache(input, result, durationMs2);
|
|
@@ -14104,6 +14210,9 @@ export {
|
|
|
14104
14210
|
DEFAULT_ZERO_ROUTER_CONFIG,
|
|
14105
14211
|
getSharedMobiMem,
|
|
14106
14212
|
setSharedMobiMemDbPathResolver,
|
|
14213
|
+
buildResearchContext,
|
|
14214
|
+
deriveResearchMaturity,
|
|
14215
|
+
researchContextFromText,
|
|
14107
14216
|
DEFAULT_ROUTING_MEMORY_CONFIG,
|
|
14108
14217
|
RoutingMemory,
|
|
14109
14218
|
createRoutingMemory,
|
|
@@ -14143,4 +14252,4 @@ export {
|
|
|
14143
14252
|
AgentCapability,
|
|
14144
14253
|
OrchestratorError
|
|
14145
14254
|
};
|
|
14146
|
-
//# sourceMappingURL=chunk-
|
|
14255
|
+
//# sourceMappingURL=chunk-MII2DHXL.js.map
|