nexus-agents 8.7.0 → 8.8.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.
Files changed (133) hide show
  1. package/dist/{ast-rule-runner-M4CLGNNW.js → ast-rule-runner-IESI3WWR.js} +3 -3
  2. package/dist/{child-mcp-config-VH6TABE5.js → child-mcp-config-WQNW5YFO.js} +2 -2
  3. package/dist/{chunk-5Z47V7HE.js → chunk-36AR3GCF.js} +8 -8
  4. package/dist/chunk-36AR3GCF.js.map +1 -0
  5. package/dist/{chunk-C6FKNMUA.js → chunk-37ONEK7R.js} +42 -9
  6. package/dist/chunk-37ONEK7R.js.map +1 -0
  7. package/dist/{chunk-77UZFA6D.js → chunk-3SO5DMHS.js} +4 -4
  8. package/dist/{chunk-VS2AWCQY.js → chunk-4AE2QO7Q.js} +2 -2
  9. package/dist/{chunk-DWN7RUDI.js → chunk-4HZCKQ25.js} +2 -2
  10. package/dist/{chunk-ORO7GDOD.js → chunk-66GKBIY2.js} +7 -7
  11. package/dist/{chunk-IXY6ISXK.js → chunk-6AGNJBHE.js} +2 -2
  12. package/dist/{chunk-IFF4SSOE.js → chunk-7BNB4YVO.js} +3 -3
  13. package/dist/{chunk-IDIMGCEX.js → chunk-7BYI5CBK.js} +42 -42
  14. package/dist/chunk-7BYI5CBK.js.map +1 -0
  15. package/dist/{chunk-BHG6YOBE.js → chunk-BBMGN7FS.js} +3 -3
  16. package/dist/{chunk-RM6WWFAV.js → chunk-BIHRU7WA.js} +8 -8
  17. package/dist/{chunk-FR7JE23L.js → chunk-BNPXE7BD.js} +2 -2
  18. package/dist/{chunk-OGSSJAVW.js → chunk-CRKF5LUZ.js} +4 -4
  19. package/dist/{chunk-C64WPHLB.js → chunk-DEXENQXS.js} +2 -2
  20. package/dist/{chunk-URKAE64B.js → chunk-DY6DVTX2.js} +2 -2
  21. package/dist/{chunk-RSMO6HZS.js → chunk-DZ5V47RU.js} +6 -6
  22. package/dist/{chunk-EFKGUOJP.js → chunk-F26X4N73.js} +2 -2
  23. package/dist/{chunk-N4VHPPWC.js → chunk-GUOMNRXZ.js} +2 -2
  24. package/dist/{chunk-PSCRZOGQ.js → chunk-HEV2C6VS.js} +51 -4
  25. package/dist/chunk-HEV2C6VS.js.map +1 -0
  26. package/dist/{chunk-7G2HFETT.js → chunk-HQ6K7OYH.js} +7 -7
  27. package/dist/{chunk-GUNDWP6A.js → chunk-NSHGFRGF.js} +2 -2
  28. package/dist/{chunk-MDVKS5FU.js → chunk-OLR2RIN2.js} +2 -2
  29. package/dist/{chunk-GB5DYFCU.js → chunk-OPHI2RB6.js} +4 -4
  30. package/dist/{chunk-34ANG6LA.js → chunk-PX422NHD.js} +2 -2
  31. package/dist/{chunk-C3Y274GP.js → chunk-REY2B5LO.js} +2 -2
  32. package/dist/{chunk-3JWQHPGZ.js → chunk-RWZJ2D2N.js} +2 -2
  33. package/dist/chunk-SAKV5TSH.js +7 -0
  34. package/dist/{chunk-IOPJR7R6.js → chunk-SNEUKIBK.js} +5 -5
  35. package/dist/{chunk-I4PHLZQC.js → chunk-TQT2BIZ7.js} +7 -7
  36. package/dist/chunk-TQT2BIZ7.js.map +1 -0
  37. package/dist/{chunk-XIC7XHIV.js → chunk-W37HHXDL.js} +2 -2
  38. package/dist/{chunk-MG4LAYXC.js → chunk-W5VBFX65.js} +2 -2
  39. package/dist/{chunk-NFCIUQE5.js → chunk-YUMKCIEL.js} +2 -2
  40. package/dist/{chunk-LQOLKNYU.js → chunk-ZN6BTFLD.js} +2 -2
  41. package/dist/{chunk-SM7A3QRA.js → chunk-ZQD67JES.js} +3 -3
  42. package/dist/{cli-circuit-breaker-6IKFVHKP.js → cli-circuit-breaker-YAAGSJ5N.js} +3 -3
  43. package/dist/cli.js +43 -43
  44. package/dist/{composite-router-EYZQABJD.js → composite-router-TU6MVJBG.js} +2 -2
  45. package/dist/{consensus-vote-E5RA4DWL.js → consensus-vote-FJWLHMQL.js} +17 -17
  46. package/dist/{context-retriever-VKTD245W.js → context-retriever-A4BZMTWM.js} +8 -8
  47. package/dist/{doctor-deep-LZVCM73P.js → doctor-deep-N4IFVZLP.js} +3 -3
  48. package/dist/{doctor-live-X2T7CKBI.js → doctor-live-G3EO5LQD.js} +9 -9
  49. package/dist/{expert-bridge-EQVYE6WD.js → expert-bridge-IKY5TTAH.js} +4 -4
  50. package/dist/{factory-TOA2DAKX.js → factory-EJ2ZMEQ7.js} +5 -5
  51. package/dist/{factory-K2LHSYKK.js → factory-VGRG7M62.js} +9 -9
  52. package/dist/{improvement-review-LE6COYNO.js → improvement-review-JNHEZ2DJ.js} +6 -6
  53. package/dist/index.d.ts +73 -17
  54. package/dist/index.js +34 -32
  55. package/dist/index.js.map +1 -1
  56. package/dist/{init-opencode-I3DNRHYN.js → init-opencode-KENOM2HA.js} +6 -6
  57. package/dist/issue-triage-IWMHDNUY.js +17 -0
  58. package/dist/{pr-reviewer-helpers-MT3N536G.js → pr-reviewer-helpers-C72VNWXU.js} +4 -4
  59. package/dist/{registry-command-A2R7GMD4.js → registry-command-53E7LRNR.js} +2 -2
  60. package/dist/{repo-security-plan-NW46RZXZ.js → repo-security-plan-ZSXHLYMU.js} +3 -3
  61. package/dist/{research-helpers-synthesize-GK6JLPAY.js → research-helpers-synthesize-X4O3S4SH.js} +4 -4
  62. package/dist/{routing-memory-CGOORLEE.js → routing-memory-5RYZJE45.js} +2 -2
  63. package/dist/{session-memory-EVTFDL4P.js → session-memory-3GE74TXJ.js} +3 -3
  64. package/dist/{setup-config-KLHUBAZC.js → setup-config-YGTQJTTC.js} +3 -3
  65. package/dist/{setup-custom-api-XAJSDQHR.js → setup-custom-api-5ZZQJ5WX.js} +4 -4
  66. package/dist/setup-data-dir-NKG6L7FO.js +29 -0
  67. package/dist/{tool-memory-X5XDTZX6.js → tool-memory-ZW2J3PMR.js} +5 -5
  68. package/dist/{unified-registry-XICJQUNW.js → unified-registry-IH3UEZLZ.js} +10 -10
  69. package/dist/{weather-report-UJTYF5EI.js → weather-report-OQ2UA3DZ.js} +2 -2
  70. package/package.json +1 -1
  71. package/dist/chunk-5Z47V7HE.js.map +0 -1
  72. package/dist/chunk-7G4BNM7E.js +0 -7
  73. package/dist/chunk-C6FKNMUA.js.map +0 -1
  74. package/dist/chunk-I4PHLZQC.js.map +0 -1
  75. package/dist/chunk-IDIMGCEX.js.map +0 -1
  76. package/dist/chunk-PSCRZOGQ.js.map +0 -1
  77. package/dist/issue-triage-N6EMSPMR.js +0 -17
  78. package/dist/setup-data-dir-KY2YWWF4.js +0 -29
  79. /package/dist/{ast-rule-runner-M4CLGNNW.js.map → ast-rule-runner-IESI3WWR.js.map} +0 -0
  80. /package/dist/{child-mcp-config-VH6TABE5.js.map → child-mcp-config-WQNW5YFO.js.map} +0 -0
  81. /package/dist/{chunk-77UZFA6D.js.map → chunk-3SO5DMHS.js.map} +0 -0
  82. /package/dist/{chunk-VS2AWCQY.js.map → chunk-4AE2QO7Q.js.map} +0 -0
  83. /package/dist/{chunk-DWN7RUDI.js.map → chunk-4HZCKQ25.js.map} +0 -0
  84. /package/dist/{chunk-ORO7GDOD.js.map → chunk-66GKBIY2.js.map} +0 -0
  85. /package/dist/{chunk-IXY6ISXK.js.map → chunk-6AGNJBHE.js.map} +0 -0
  86. /package/dist/{chunk-IFF4SSOE.js.map → chunk-7BNB4YVO.js.map} +0 -0
  87. /package/dist/{chunk-BHG6YOBE.js.map → chunk-BBMGN7FS.js.map} +0 -0
  88. /package/dist/{chunk-RM6WWFAV.js.map → chunk-BIHRU7WA.js.map} +0 -0
  89. /package/dist/{chunk-FR7JE23L.js.map → chunk-BNPXE7BD.js.map} +0 -0
  90. /package/dist/{chunk-OGSSJAVW.js.map → chunk-CRKF5LUZ.js.map} +0 -0
  91. /package/dist/{chunk-C64WPHLB.js.map → chunk-DEXENQXS.js.map} +0 -0
  92. /package/dist/{chunk-URKAE64B.js.map → chunk-DY6DVTX2.js.map} +0 -0
  93. /package/dist/{chunk-RSMO6HZS.js.map → chunk-DZ5V47RU.js.map} +0 -0
  94. /package/dist/{chunk-EFKGUOJP.js.map → chunk-F26X4N73.js.map} +0 -0
  95. /package/dist/{chunk-N4VHPPWC.js.map → chunk-GUOMNRXZ.js.map} +0 -0
  96. /package/dist/{chunk-7G2HFETT.js.map → chunk-HQ6K7OYH.js.map} +0 -0
  97. /package/dist/{chunk-GUNDWP6A.js.map → chunk-NSHGFRGF.js.map} +0 -0
  98. /package/dist/{chunk-MDVKS5FU.js.map → chunk-OLR2RIN2.js.map} +0 -0
  99. /package/dist/{chunk-GB5DYFCU.js.map → chunk-OPHI2RB6.js.map} +0 -0
  100. /package/dist/{chunk-34ANG6LA.js.map → chunk-PX422NHD.js.map} +0 -0
  101. /package/dist/{chunk-C3Y274GP.js.map → chunk-REY2B5LO.js.map} +0 -0
  102. /package/dist/{chunk-3JWQHPGZ.js.map → chunk-RWZJ2D2N.js.map} +0 -0
  103. /package/dist/{chunk-7G4BNM7E.js.map → chunk-SAKV5TSH.js.map} +0 -0
  104. /package/dist/{chunk-IOPJR7R6.js.map → chunk-SNEUKIBK.js.map} +0 -0
  105. /package/dist/{chunk-XIC7XHIV.js.map → chunk-W37HHXDL.js.map} +0 -0
  106. /package/dist/{chunk-MG4LAYXC.js.map → chunk-W5VBFX65.js.map} +0 -0
  107. /package/dist/{chunk-NFCIUQE5.js.map → chunk-YUMKCIEL.js.map} +0 -0
  108. /package/dist/{chunk-LQOLKNYU.js.map → chunk-ZN6BTFLD.js.map} +0 -0
  109. /package/dist/{chunk-SM7A3QRA.js.map → chunk-ZQD67JES.js.map} +0 -0
  110. /package/dist/{cli-circuit-breaker-6IKFVHKP.js.map → cli-circuit-breaker-YAAGSJ5N.js.map} +0 -0
  111. /package/dist/{composite-router-EYZQABJD.js.map → composite-router-TU6MVJBG.js.map} +0 -0
  112. /package/dist/{consensus-vote-E5RA4DWL.js.map → consensus-vote-FJWLHMQL.js.map} +0 -0
  113. /package/dist/{context-retriever-VKTD245W.js.map → context-retriever-A4BZMTWM.js.map} +0 -0
  114. /package/dist/{doctor-deep-LZVCM73P.js.map → doctor-deep-N4IFVZLP.js.map} +0 -0
  115. /package/dist/{doctor-live-X2T7CKBI.js.map → doctor-live-G3EO5LQD.js.map} +0 -0
  116. /package/dist/{expert-bridge-EQVYE6WD.js.map → expert-bridge-IKY5TTAH.js.map} +0 -0
  117. /package/dist/{factory-K2LHSYKK.js.map → factory-EJ2ZMEQ7.js.map} +0 -0
  118. /package/dist/{factory-TOA2DAKX.js.map → factory-VGRG7M62.js.map} +0 -0
  119. /package/dist/{improvement-review-LE6COYNO.js.map → improvement-review-JNHEZ2DJ.js.map} +0 -0
  120. /package/dist/{init-opencode-I3DNRHYN.js.map → init-opencode-KENOM2HA.js.map} +0 -0
  121. /package/dist/{issue-triage-N6EMSPMR.js.map → issue-triage-IWMHDNUY.js.map} +0 -0
  122. /package/dist/{pr-reviewer-helpers-MT3N536G.js.map → pr-reviewer-helpers-C72VNWXU.js.map} +0 -0
  123. /package/dist/{registry-command-A2R7GMD4.js.map → registry-command-53E7LRNR.js.map} +0 -0
  124. /package/dist/{repo-security-plan-NW46RZXZ.js.map → repo-security-plan-ZSXHLYMU.js.map} +0 -0
  125. /package/dist/{research-helpers-synthesize-GK6JLPAY.js.map → research-helpers-synthesize-X4O3S4SH.js.map} +0 -0
  126. /package/dist/{routing-memory-CGOORLEE.js.map → routing-memory-5RYZJE45.js.map} +0 -0
  127. /package/dist/{session-memory-EVTFDL4P.js.map → session-memory-3GE74TXJ.js.map} +0 -0
  128. /package/dist/{setup-config-KLHUBAZC.js.map → setup-config-YGTQJTTC.js.map} +0 -0
  129. /package/dist/{setup-custom-api-XAJSDQHR.js.map → setup-custom-api-5ZZQJ5WX.js.map} +0 -0
  130. /package/dist/{setup-data-dir-KY2YWWF4.js.map → setup-data-dir-NKG6L7FO.js.map} +0 -0
  131. /package/dist/{tool-memory-X5XDTZX6.js.map → tool-memory-ZW2J3PMR.js.map} +0 -0
  132. /package/dist/{unified-registry-XICJQUNW.js.map → unified-registry-IH3UEZLZ.js.map} +0 -0
  133. /package/dist/{weather-report-UJTYF5EI.js.map → weather-report-OQ2UA3DZ.js.map} +0 -0
@@ -5,13 +5,13 @@ import {
5
5
  loadTechniquesRegistry,
6
6
  resolveInsideRoot,
7
7
  savePapersRegistry
8
- } from "./chunk-C64WPHLB.js";
8
+ } from "./chunk-DEXENQXS.js";
9
9
  import {
10
10
  resolveToken
11
- } from "./chunk-3JWQHPGZ.js";
11
+ } from "./chunk-RWZJ2D2N.js";
12
12
  import {
13
13
  getToolMemory
14
- } from "./chunk-OGSSJAVW.js";
14
+ } from "./chunk-CRKF5LUZ.js";
15
15
  import {
16
16
  capitalizeWords,
17
17
  tokenizeFiltered,
@@ -26,18 +26,21 @@ import {
26
26
  API_TIMEOUTS,
27
27
  CLI_NAMES,
28
28
  CLI_SUBPROCESS_TIMEOUTS,
29
+ DEFAULT_DISTILLER_CONFIG,
29
30
  ErrorCode,
30
31
  JsonlStore,
31
32
  NexusError,
32
33
  StrategyDistiller,
33
34
  createLogger,
35
+ effectFor,
34
36
  err,
35
37
  getErrorMessage,
36
38
  getOutcomeStore,
37
39
  getTimeProvider,
38
40
  ok,
39
- registerPersistentDistillerFactory
40
- } from "./chunk-PSCRZOGQ.js";
41
+ registerPersistentDistillerFactory,
42
+ sigmoidConfidence
43
+ } from "./chunk-HEV2C6VS.js";
41
44
  import {
42
45
  ensureLearningDir,
43
46
  getRulesFile
@@ -57,6 +60,11 @@ var DistilledRuleSchema = z.object({
57
60
  category: z.string(),
58
61
  action: z.enum(["penalize", "boost", "avoid"]),
59
62
  confidence: z.number(),
63
+ // Optional only for records written before #5004 finding 3, when
64
+ // `confidence` was the sigmoid alone. `hydrateRule` fills them in; a
65
+ // current-shape record always carries both.
66
+ support: z.number().optional(),
67
+ effect: z.number().optional(),
60
68
  observationCount: z.number(),
61
69
  metric: z.number(),
62
70
  status: z.enum(["draft", "active", "promoted", "expired"]),
@@ -69,6 +77,23 @@ var RulesSnapshotSchema = z.object({
69
77
  savedAt: z.string(),
70
78
  rules: z.array(DistilledRuleSchema)
71
79
  });
80
+ function hydrateRule(raw, thresholds) {
81
+ const { support, effect, ...rest } = raw;
82
+ if (support !== void 0 && effect !== void 0) {
83
+ return { rule: { ...rest, support, effect }, legacy: false };
84
+ }
85
+ const derivedSupport = support ?? sigmoidConfidence(raw.observationCount);
86
+ const derivedEffect = effect ?? effectFor(raw.patternType, raw.metric, thresholds);
87
+ return {
88
+ rule: {
89
+ ...rest,
90
+ support: derivedSupport,
91
+ effect: derivedEffect,
92
+ confidence: derivedSupport * derivedEffect
93
+ },
94
+ legacy: true
95
+ };
96
+ }
72
97
  var PersistentStrategyDistiller = class extends StrategyDistiller {
73
98
  filePath;
74
99
  persistLogger;
@@ -106,9 +131,17 @@ var PersistentStrategyDistiller = class extends StrategyDistiller {
106
131
  });
107
132
  return;
108
133
  }
109
- this.loadRules(result.data.rules);
134
+ const hydrated = result.data.rules.map((raw) => hydrateRule(raw, this.config));
135
+ const legacyIds = hydrated.filter((h) => h.legacy).map((h) => h.rule.id);
136
+ if (legacyIds.length > 0) {
137
+ this.persistLogger.debug(
138
+ "Hydrated legacy rules without support/effect; derived them under the current thresholds (#5004)",
139
+ { legacyCount: legacyIds.length, ruleIds: legacyIds, path: this.filePath }
140
+ );
141
+ }
142
+ this.loadRules(hydrated.map((h) => h.rule));
110
143
  this.persistLogger.info("Hydrated distilled rules from disk", {
111
- ruleCount: result.data.rules.length,
144
+ ruleCount: hydrated.length,
112
145
  savedAt: result.data.savedAt,
113
146
  path: this.filePath
114
147
  });
@@ -160,7 +193,7 @@ function loadPersistedRules(filePath = getRulesFile()) {
160
193
  const parsed = JSON.parse(content);
161
194
  const result = RulesSnapshotSchema.safeParse(parsed);
162
195
  if (!result.success) return [];
163
- return result.data.rules;
196
+ return result.data.rules.map((raw) => hydrateRule(raw, DEFAULT_DISTILLER_CONFIG).rule);
164
197
  } catch {
165
198
  return [];
166
199
  }
@@ -4132,4 +4165,4 @@ export {
4132
4165
  DEFAULT_CONTEXT_BUDGET_TOKENS,
4133
4166
  getContextPromptPrefix
4134
4167
  };
4135
- //# sourceMappingURL=chunk-C6FKNMUA.js.map
4168
+ //# sourceMappingURL=chunk-37ONEK7R.js.map