nexus-agents 4.11.1 → 4.12.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 (121) hide show
  1. package/dist/{child-mcp-config-TXGCJ52M.js → child-mcp-config-SG5D6EHE.js} +2 -2
  2. package/dist/{chunk-5AYHIDVQ.js → chunk-2FKHVC6A.js} +3 -3
  3. package/dist/{chunk-H7C3YEVA.js → chunk-4BHQDCIT.js} +2 -2
  4. package/dist/{chunk-D62GTDJR.js → chunk-4KMXUSDA.js} +3 -3
  5. package/dist/{chunk-EZYPUUIK.js → chunk-5CN5DWZL.js} +35 -35
  6. package/dist/{chunk-OIMKKI76.js → chunk-5ML6GHQX.js} +8 -8
  7. package/dist/{chunk-US3LB5AL.js → chunk-6YPUY4DX.js} +2 -2
  8. package/dist/{chunk-YQAHWAVA.js → chunk-7LDOGIIK.js} +2 -2
  9. package/dist/{chunk-4A47PQKV.js → chunk-7ZCZDRTJ.js} +3 -3
  10. package/dist/{chunk-HYE3V7VA.js → chunk-ACYC2MQ6.js} +3 -3
  11. package/dist/{chunk-46EQSU7N.js → chunk-CUSNJVQP.js} +2 -2
  12. package/dist/{chunk-DG6P3UC5.js → chunk-EAF3SUOQ.js} +7 -7
  13. package/dist/{chunk-JRRUY4BL.js → chunk-FR5WCGPG.js} +2 -2
  14. package/dist/{chunk-W64J4UNG.js → chunk-GCBJOTZL.js} +2 -2
  15. package/dist/{chunk-NBKJ7L2S.js → chunk-HG2SQFVP.js} +2 -2
  16. package/dist/{chunk-TSEVXDKU.js → chunk-J2ZVAPGA.js} +2 -2
  17. package/dist/{chunk-ZLSHDEFS.js → chunk-KE3VSAM2.js} +2 -2
  18. package/dist/{chunk-SFKJXZMV.js → chunk-L47G4NGG.js} +2 -2
  19. package/dist/{chunk-TWWWWWSG.js → chunk-M5BG7NYZ.js} +2 -2
  20. package/dist/{chunk-EKEK2YEU.js → chunk-M6V7RJ4F.js} +8 -8
  21. package/dist/{chunk-2DOULPPA.js → chunk-NMQSNJPT.js} +4 -4
  22. package/dist/{chunk-BQWXGMZP.js → chunk-OAVU4XW2.js} +6 -6
  23. package/dist/{chunk-MN34HTJP.js → chunk-QAX4II24.js} +2 -2
  24. package/dist/{chunk-A2FENIHB.js → chunk-QDYDMKNY.js} +8 -8
  25. package/dist/{chunk-2A664K4J.js → chunk-RGCNKORY.js} +2 -2
  26. package/dist/{chunk-YSBADPHN.js → chunk-SIJBJRHO.js} +3 -3
  27. package/dist/{chunk-4576IZUB.js → chunk-SOZLET5T.js} +4 -4
  28. package/dist/{chunk-GRIOFYSO.js → chunk-SZB4YAPS.js} +4 -4
  29. package/dist/{chunk-LUL3Q5BT.js → chunk-U3PXZWHJ.js} +2 -2
  30. package/dist/{chunk-XOTWDMK3.js → chunk-VCEDQOKA.js} +5 -5
  31. package/dist/{chunk-RSNG6RDI.js → chunk-VNPF3XDJ.js} +2 -2
  32. package/dist/{chunk-7ZYXZWAM.js → chunk-WJZ2BV5H.js} +41 -19
  33. package/dist/chunk-WJZ2BV5H.js.map +1 -0
  34. package/dist/{chunk-HSWOBNVW.js → chunk-WTZZ6TS4.js} +5 -5
  35. package/dist/{chunk-IW3G6WVW.js → chunk-XQES4XMS.js} +2 -2
  36. package/dist/{cli-circuit-breaker-462DQCFX.js → cli-circuit-breaker-46QD5K4X.js} +3 -3
  37. package/dist/cli.js +41 -41
  38. package/dist/{composite-router-5PY2BSX6.js → composite-router-6UDWNWSG.js} +2 -2
  39. package/dist/{consensus-vote-4W5A6X7A.js → consensus-vote-BJTJBSAC.js} +16 -16
  40. package/dist/{context-retriever-P4WJDXNR.js → context-retriever-AF32AUWP.js} +8 -8
  41. package/dist/{doctor-deep-B5KM6DDQ.js → doctor-deep-HDG27DON.js} +3 -3
  42. package/dist/{doctor-live-EYAUDVPS.js → doctor-live-J4NKCAIC.js} +9 -9
  43. package/dist/{expert-bridge-UP75M6M7.js → expert-bridge-YL4XVDGZ.js} +4 -4
  44. package/dist/{factory-QD4SDWNF.js → factory-HUZJENBV.js} +5 -5
  45. package/dist/{factory-6W6FGGOC.js → factory-QHMJXPI7.js} +9 -9
  46. package/dist/{improvement-review-GU6I62HS.js → improvement-review-6TPXS3VW.js} +5 -5
  47. package/dist/index.js +30 -30
  48. package/dist/{init-opencode-RYCLBR3L.js → init-opencode-GVYBHTUJ.js} +6 -6
  49. package/dist/issue-triage-XHS65H3P.js +17 -0
  50. package/dist/{pr-reviewer-helpers-D6JW3343.js → pr-reviewer-helpers-FAVURSBY.js} +4 -4
  51. package/dist/{registry-command-634EYXX6.js → registry-command-MZF4QA7H.js} +2 -2
  52. package/dist/{repo-security-plan-AMRKVESS.js → repo-security-plan-BROJ243L.js} +3 -3
  53. package/dist/{research-helpers-synthesize-HQVI46LI.js → research-helpers-synthesize-VIUVR626.js} +4 -4
  54. package/dist/{routing-memory-CF6UFICB.js → routing-memory-TKRPQIOL.js} +2 -2
  55. package/dist/{session-memory-ZEM6EBBA.js → session-memory-EFWXUVUY.js} +3 -3
  56. package/dist/{setup-command-FKQMJ747.js → setup-command-DOQYI3SG.js} +14 -14
  57. package/dist/{setup-config-K5DG3KPR.js → setup-config-WL5FOPUX.js} +3 -3
  58. package/dist/{setup-custom-api-WCQTHVAW.js → setup-custom-api-OP5BHA7S.js} +4 -4
  59. package/dist/{tool-memory-TZE5ND7A.js → tool-memory-AQMUNZUN.js} +5 -5
  60. package/dist/{unified-registry-KXI3EMFF.js → unified-registry-UQBZMGUH.js} +10 -10
  61. package/dist/{weather-report-OBNLOQQX.js → weather-report-5USEJKDB.js} +2 -2
  62. package/package.json +1 -1
  63. package/dist/chunk-7ZYXZWAM.js.map +0 -1
  64. package/dist/issue-triage-CMR6TQ6V.js +0 -17
  65. /package/dist/{child-mcp-config-TXGCJ52M.js.map → child-mcp-config-SG5D6EHE.js.map} +0 -0
  66. /package/dist/{chunk-5AYHIDVQ.js.map → chunk-2FKHVC6A.js.map} +0 -0
  67. /package/dist/{chunk-H7C3YEVA.js.map → chunk-4BHQDCIT.js.map} +0 -0
  68. /package/dist/{chunk-D62GTDJR.js.map → chunk-4KMXUSDA.js.map} +0 -0
  69. /package/dist/{chunk-EZYPUUIK.js.map → chunk-5CN5DWZL.js.map} +0 -0
  70. /package/dist/{chunk-OIMKKI76.js.map → chunk-5ML6GHQX.js.map} +0 -0
  71. /package/dist/{chunk-US3LB5AL.js.map → chunk-6YPUY4DX.js.map} +0 -0
  72. /package/dist/{chunk-YQAHWAVA.js.map → chunk-7LDOGIIK.js.map} +0 -0
  73. /package/dist/{chunk-4A47PQKV.js.map → chunk-7ZCZDRTJ.js.map} +0 -0
  74. /package/dist/{chunk-HYE3V7VA.js.map → chunk-ACYC2MQ6.js.map} +0 -0
  75. /package/dist/{chunk-46EQSU7N.js.map → chunk-CUSNJVQP.js.map} +0 -0
  76. /package/dist/{chunk-DG6P3UC5.js.map → chunk-EAF3SUOQ.js.map} +0 -0
  77. /package/dist/{chunk-JRRUY4BL.js.map → chunk-FR5WCGPG.js.map} +0 -0
  78. /package/dist/{chunk-W64J4UNG.js.map → chunk-GCBJOTZL.js.map} +0 -0
  79. /package/dist/{chunk-NBKJ7L2S.js.map → chunk-HG2SQFVP.js.map} +0 -0
  80. /package/dist/{chunk-TSEVXDKU.js.map → chunk-J2ZVAPGA.js.map} +0 -0
  81. /package/dist/{chunk-ZLSHDEFS.js.map → chunk-KE3VSAM2.js.map} +0 -0
  82. /package/dist/{chunk-SFKJXZMV.js.map → chunk-L47G4NGG.js.map} +0 -0
  83. /package/dist/{chunk-TWWWWWSG.js.map → chunk-M5BG7NYZ.js.map} +0 -0
  84. /package/dist/{chunk-EKEK2YEU.js.map → chunk-M6V7RJ4F.js.map} +0 -0
  85. /package/dist/{chunk-2DOULPPA.js.map → chunk-NMQSNJPT.js.map} +0 -0
  86. /package/dist/{chunk-BQWXGMZP.js.map → chunk-OAVU4XW2.js.map} +0 -0
  87. /package/dist/{chunk-MN34HTJP.js.map → chunk-QAX4II24.js.map} +0 -0
  88. /package/dist/{chunk-A2FENIHB.js.map → chunk-QDYDMKNY.js.map} +0 -0
  89. /package/dist/{chunk-2A664K4J.js.map → chunk-RGCNKORY.js.map} +0 -0
  90. /package/dist/{chunk-YSBADPHN.js.map → chunk-SIJBJRHO.js.map} +0 -0
  91. /package/dist/{chunk-4576IZUB.js.map → chunk-SOZLET5T.js.map} +0 -0
  92. /package/dist/{chunk-GRIOFYSO.js.map → chunk-SZB4YAPS.js.map} +0 -0
  93. /package/dist/{chunk-LUL3Q5BT.js.map → chunk-U3PXZWHJ.js.map} +0 -0
  94. /package/dist/{chunk-XOTWDMK3.js.map → chunk-VCEDQOKA.js.map} +0 -0
  95. /package/dist/{chunk-RSNG6RDI.js.map → chunk-VNPF3XDJ.js.map} +0 -0
  96. /package/dist/{chunk-HSWOBNVW.js.map → chunk-WTZZ6TS4.js.map} +0 -0
  97. /package/dist/{chunk-IW3G6WVW.js.map → chunk-XQES4XMS.js.map} +0 -0
  98. /package/dist/{cli-circuit-breaker-462DQCFX.js.map → cli-circuit-breaker-46QD5K4X.js.map} +0 -0
  99. /package/dist/{composite-router-5PY2BSX6.js.map → composite-router-6UDWNWSG.js.map} +0 -0
  100. /package/dist/{consensus-vote-4W5A6X7A.js.map → consensus-vote-BJTJBSAC.js.map} +0 -0
  101. /package/dist/{context-retriever-P4WJDXNR.js.map → context-retriever-AF32AUWP.js.map} +0 -0
  102. /package/dist/{doctor-deep-B5KM6DDQ.js.map → doctor-deep-HDG27DON.js.map} +0 -0
  103. /package/dist/{doctor-live-EYAUDVPS.js.map → doctor-live-J4NKCAIC.js.map} +0 -0
  104. /package/dist/{expert-bridge-UP75M6M7.js.map → expert-bridge-YL4XVDGZ.js.map} +0 -0
  105. /package/dist/{factory-6W6FGGOC.js.map → factory-HUZJENBV.js.map} +0 -0
  106. /package/dist/{factory-QD4SDWNF.js.map → factory-QHMJXPI7.js.map} +0 -0
  107. /package/dist/{improvement-review-GU6I62HS.js.map → improvement-review-6TPXS3VW.js.map} +0 -0
  108. /package/dist/{init-opencode-RYCLBR3L.js.map → init-opencode-GVYBHTUJ.js.map} +0 -0
  109. /package/dist/{issue-triage-CMR6TQ6V.js.map → issue-triage-XHS65H3P.js.map} +0 -0
  110. /package/dist/{pr-reviewer-helpers-D6JW3343.js.map → pr-reviewer-helpers-FAVURSBY.js.map} +0 -0
  111. /package/dist/{registry-command-634EYXX6.js.map → registry-command-MZF4QA7H.js.map} +0 -0
  112. /package/dist/{repo-security-plan-AMRKVESS.js.map → repo-security-plan-BROJ243L.js.map} +0 -0
  113. /package/dist/{research-helpers-synthesize-HQVI46LI.js.map → research-helpers-synthesize-VIUVR626.js.map} +0 -0
  114. /package/dist/{routing-memory-CF6UFICB.js.map → routing-memory-TKRPQIOL.js.map} +0 -0
  115. /package/dist/{session-memory-ZEM6EBBA.js.map → session-memory-EFWXUVUY.js.map} +0 -0
  116. /package/dist/{setup-command-FKQMJ747.js.map → setup-command-DOQYI3SG.js.map} +0 -0
  117. /package/dist/{setup-config-K5DG3KPR.js.map → setup-config-WL5FOPUX.js.map} +0 -0
  118. /package/dist/{setup-custom-api-WCQTHVAW.js.map → setup-custom-api-OP5BHA7S.js.map} +0 -0
  119. /package/dist/{tool-memory-TZE5ND7A.js.map → tool-memory-AQMUNZUN.js.map} +0 -0
  120. /package/dist/{unified-registry-KXI3EMFF.js.map → unified-registry-UQBZMGUH.js.map} +0 -0
  121. /package/dist/{weather-report-OBNLOQQX.js.map → weather-report-5USEJKDB.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readOpenAICompatEnv
3
- } from "./chunk-XOTWDMK3.js";
3
+ } from "./chunk-VCEDQOKA.js";
4
4
  import {
5
5
  allOf
6
6
  } from "./chunk-OQB3XC5O.js";
@@ -13,10 +13,10 @@ import {
13
13
  import {
14
14
  createAllAdapters,
15
15
  probeCli
16
- } from "./chunk-OIMKKI76.js";
16
+ } from "./chunk-5ML6GHQX.js";
17
17
  import {
18
18
  DEFAULTS
19
- } from "./chunk-JRRUY4BL.js";
19
+ } from "./chunk-FR5WCGPG.js";
20
20
  import {
21
21
  getNexusTmpDir
22
22
  } from "./chunk-SNJNRDKZ.js";
@@ -36,7 +36,7 @@ import {
36
36
  ok,
37
37
  symbols,
38
38
  writeLine
39
- } from "./chunk-D62GTDJR.js";
39
+ } from "./chunk-4KMXUSDA.js";
40
40
  import {
41
41
  getLearningDir,
42
42
  getOutcomesFile,
@@ -52,7 +52,7 @@ import {
52
52
  } from "./chunk-OQLFRJCW.js";
53
53
 
54
54
  // src/version.ts
55
- var VERSION = true ? "4.11.1" : "dev";
55
+ var VERSION = true ? "4.12.0" : "dev";
56
56
 
57
57
  // src/config/schemas-core.ts
58
58
  import { z } from "zod";
@@ -2339,7 +2339,7 @@ async function runDoctorFix(result) {
2339
2339
  writeLine2("\u2500".repeat(40));
2340
2340
  let fixCount = 0;
2341
2341
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
2342
- const { runSetup } = await import("./setup-command-FKQMJ747.js");
2342
+ const { runSetup } = await import("./setup-command-DOQYI3SG.js");
2343
2343
  const setupResult = runSetup({
2344
2344
  skipMcp: true,
2345
2345
  skipRules: true,
@@ -2353,7 +2353,7 @@ async function runDoctorFix(result) {
2353
2353
  }
2354
2354
  }
2355
2355
  if (!result.configFile.found) {
2356
- const { runConfigInitSync } = await import("./setup-config-K5DG3KPR.js");
2356
+ const { runConfigInitSync } = await import("./setup-config-WL5FOPUX.js");
2357
2357
  const configResult = runConfigInitSync(process.cwd(), false, false);
2358
2358
  if (configResult.success && configResult.created) {
2359
2359
  writeLine2(`\u2713 Generated config: ${configResult.path}`);
@@ -2452,4 +2452,4 @@ export {
2452
2452
  startStdioServer,
2453
2453
  closeServer
2454
2454
  };
2455
- //# sourceMappingURL=chunk-EKEK2YEU.js.map
2455
+ //# sourceMappingURL=chunk-M6V7RJ4F.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createAutoAdapter
3
- } from "./chunk-OIMKKI76.js";
3
+ } from "./chunk-5ML6GHQX.js";
4
4
  import {
5
5
  getDefaultCliCircuitBreakerRegistry,
6
6
  mapModelErrorToCategory
7
- } from "./chunk-TWWWWWSG.js";
7
+ } from "./chunk-M5BG7NYZ.js";
8
8
  import {
9
9
  CLI_NAMES,
10
10
  CircularBuffer,
@@ -22,7 +22,7 @@ import {
22
22
  ok,
23
23
  recordRateLimitEvent,
24
24
  toRateLimitError
25
- } from "./chunk-D62GTDJR.js";
25
+ } from "./chunk-4KMXUSDA.js";
26
26
 
27
27
  // src/agents/collaboration/event-bus-helpers.ts
28
28
  import { randomUUID } from "crypto";
@@ -863,4 +863,4 @@ export {
863
863
  getGlobalRegistry,
864
864
  resetGlobalRegistry
865
865
  };
866
- //# sourceMappingURL=chunk-2DOULPPA.js.map
866
+ //# sourceMappingURL=chunk-NMQSNJPT.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  GitHubProvider,
3
3
  ScmError
4
- } from "./chunk-YQAHWAVA.js";
4
+ } from "./chunk-7LDOGIIK.js";
5
5
  import {
6
6
  ROLE_DEFAULT_TRUST,
7
7
  ReputationCache,
@@ -11,20 +11,20 @@ import {
11
11
  gateWithReputation,
12
12
  resolveReputationGatingMode,
13
13
  sanitizeInput
14
- } from "./chunk-US3LB5AL.js";
14
+ } from "./chunk-6YPUY4DX.js";
15
15
  import {
16
16
  emitPolicyEvent
17
- } from "./chunk-46EQSU7N.js";
17
+ } from "./chunk-CUSNJVQP.js";
18
18
  import {
19
19
  hasToken
20
- } from "./chunk-RSNG6RDI.js";
20
+ } from "./chunk-VNPF3XDJ.js";
21
21
  import {
22
22
  CLI_SUBPROCESS_TIMEOUTS,
23
23
  createLogger,
24
24
  err,
25
25
  getTimeProvider,
26
26
  ok
27
- } from "./chunk-D62GTDJR.js";
27
+ } from "./chunk-4KMXUSDA.js";
28
28
 
29
29
  // src/security/trust-classifier.ts
30
30
  function mapAuthorAssociation(association) {
@@ -1247,4 +1247,4 @@ export {
1247
1247
  IssueTriage,
1248
1248
  createIssueTriage
1249
1249
  };
1250
- //# sourceMappingURL=chunk-BQWXGMZP.js.map
1250
+ //# sourceMappingURL=chunk-OAVU4XW2.js.map
@@ -13,7 +13,7 @@ import {
13
13
  lookupInTreeCapability,
14
14
  ok,
15
15
  resolveRetryAfterMs
16
- } from "./chunk-D62GTDJR.js";
16
+ } from "./chunk-4KMXUSDA.js";
17
17
 
18
18
  // src/config/model-parameter-support.ts
19
19
  function parseClaudeMajorMinor(bareId) {
@@ -834,4 +834,4 @@ export {
834
834
  DEFAULT_COLLECT_STREAM_MAX_CHUNKS,
835
835
  collectStream
836
836
  };
837
- //# sourceMappingURL=chunk-MN34HTJP.js.map
837
+ //# sourceMappingURL=chunk-QAX4II24.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  computeCostDetail,
3
3
  priceBasisOf
4
- } from "./chunk-SFKJXZMV.js";
4
+ } from "./chunk-L47G4NGG.js";
5
5
  import {
6
6
  allOf
7
7
  } from "./chunk-OQB3XC5O.js";
@@ -22,20 +22,20 @@ import {
22
22
  toolSuccess,
23
23
  withProgressHeartbeat,
24
24
  wrapToolWithTimeout
25
- } from "./chunk-4A47PQKV.js";
25
+ } from "./chunk-7ZCZDRTJ.js";
26
26
  import {
27
27
  createEvent,
28
28
  getGlobalRegistry
29
- } from "./chunk-2DOULPPA.js";
29
+ } from "./chunk-NMQSNJPT.js";
30
30
  import {
31
31
  getToolMemory
32
- } from "./chunk-GRIOFYSO.js";
32
+ } from "./chunk-SZB4YAPS.js";
33
33
  import {
34
34
  authRemediation,
35
35
  delay,
36
36
  getAvailableClis,
37
37
  withTimeout
38
- } from "./chunk-OIMKKI76.js";
38
+ } from "./chunk-5ML6GHQX.js";
39
39
  import {
40
40
  AgentError,
41
41
  CLI_NAMES,
@@ -64,7 +64,7 @@ import {
64
64
  resolveClassGuardMs,
65
65
  resolveModelIdentitySync,
66
66
  resolveVoteTimeout
67
- } from "./chunk-D62GTDJR.js";
67
+ } from "./chunk-4KMXUSDA.js";
68
68
  import {
69
69
  ensureLearningDir,
70
70
  getOutcomesFile
@@ -6162,7 +6162,7 @@ async function processVotesWithCascade(engineVotes, opts) {
6162
6162
  var CONTRARIAN_ESCALATION_THRESHOLD = 0.8;
6163
6163
  async function runContrarianCheck(proposal, log) {
6164
6164
  try {
6165
- const { executeExpert } = await import("./expert-bridge-UP75M6M7.js");
6165
+ const { executeExpert } = await import("./expert-bridge-YL4XVDGZ.js");
6166
6166
  const prompt = [
6167
6167
  "You are a contrarian analyst. Your job is to find reasons this proposal should be REJECTED.",
6168
6168
  "Look for: YAGNI (not needed), MISALIGNED (wrong tech/architecture), SECURITY_RISK, SCOPE_CREEP.",
@@ -6728,4 +6728,4 @@ export {
6728
6728
  CONSENSUS_VOTE_TOOL_SCHEMA,
6729
6729
  registerConsensusVoteTool
6730
6730
  };
6731
- //# sourceMappingURL=chunk-A2FENIHB.js.map
6731
+ //# sourceMappingURL=chunk-QDYDMKNY.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  createLogger,
6
6
  getTimeProvider
7
- } from "./chunk-D62GTDJR.js";
7
+ } from "./chunk-4KMXUSDA.js";
8
8
 
9
9
  // src/mcp/tools/scanner-registry-fetcher.ts
10
10
  import { z } from "zod";
@@ -721,4 +721,4 @@ export {
721
721
  generateSecurityPlan,
722
722
  buildPlanFromAnalysis
723
723
  };
724
- //# sourceMappingURL=chunk-2A664K4J.js.map
724
+ //# sourceMappingURL=chunk-RGCNKORY.js.map
@@ -7,7 +7,7 @@ import {
7
7
  toolStructuredError,
8
8
  toolSuccessStructured,
9
9
  wrapToolWithTimeout
10
- } from "./chunk-4A47PQKV.js";
10
+ } from "./chunk-7ZCZDRTJ.js";
11
11
  import {
12
12
  JsonlStore,
13
13
  SECURITY_KEYWORDS,
@@ -19,7 +19,7 @@ import {
19
19
  getPipelineEventBus,
20
20
  getTimeProvider,
21
21
  isDeclaredNeverDeprecate
22
- } from "./chunk-D62GTDJR.js";
22
+ } from "./chunk-4KMXUSDA.js";
23
23
  import {
24
24
  getNexusDataDir,
25
25
  nexusDataPath
@@ -2132,4 +2132,4 @@ export {
2132
2132
  runImprovementReview,
2133
2133
  registerImprovementReviewTool
2134
2134
  };
2135
- //# sourceMappingURL=chunk-YSBADPHN.js.map
2135
+ //# sourceMappingURL=chunk-SIJBJRHO.js.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  GitHubProvider,
3
3
  ScmError
4
- } from "./chunk-YQAHWAVA.js";
4
+ } from "./chunk-7LDOGIIK.js";
5
5
  import {
6
6
  resolveToken
7
- } from "./chunk-RSNG6RDI.js";
7
+ } from "./chunk-VNPF3XDJ.js";
8
8
  import {
9
9
  err,
10
10
  ok
11
- } from "./chunk-D62GTDJR.js";
11
+ } from "./chunk-4KMXUSDA.js";
12
12
 
13
13
  // src/scm/factory.ts
14
14
  async function createScmProvider(config) {
@@ -41,4 +41,4 @@ export {
41
41
  createScmProvider,
42
42
  createGitHubProvider
43
43
  };
44
- //# sourceMappingURL=chunk-4576IZUB.js.map
44
+ //# sourceMappingURL=chunk-SOZLET5T.js.map
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-6T3EPABN.js";
6
6
  import {
7
7
  SessionMemory
8
- } from "./chunk-W64J4UNG.js";
8
+ } from "./chunk-GCBJOTZL.js";
9
9
  import {
10
10
  StatsOnlyAdapter,
11
11
  ensureSharedMemoryRegistry
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-KSQSWEFH.js";
16
16
  import {
17
17
  generateId
18
- } from "./chunk-LUL3Q5BT.js";
18
+ } from "./chunk-U3PXZWHJ.js";
19
19
  import {
20
20
  ErrorCode,
21
21
  NexusError,
@@ -28,7 +28,7 @@ import {
28
28
  getTimeProvider,
29
29
  ok,
30
30
  setSharedMobiMemDbPathResolver
31
- } from "./chunk-D62GTDJR.js";
31
+ } from "./chunk-4KMXUSDA.js";
32
32
  import {
33
33
  nexusDataPath
34
34
  } from "./chunk-OQLFRJCW.js";
@@ -5550,4 +5550,4 @@ export {
5550
5550
  reinitializeMemoryBackends,
5551
5551
  ToolMemoryManager
5552
5552
  };
5553
- //# sourceMappingURL=chunk-GRIOFYSO.js.map
5553
+ //# sourceMappingURL=chunk-SZB4YAPS.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getRandomProvider,
3
3
  getTimeProvider
4
- } from "./chunk-D62GTDJR.js";
4
+ } from "./chunk-4KMXUSDA.js";
5
5
 
6
6
  // src/utils/id-utils.ts
7
7
  import { randomUUID } from "crypto";
@@ -24,4 +24,4 @@ export {
24
24
  generateHyphenId,
25
25
  generateUUID
26
26
  };
27
- //# sourceMappingURL=chunk-LUL3Q5BT.js.map
27
+ //# sourceMappingURL=chunk-U3PXZWHJ.js.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  computeCostDetail,
3
3
  recordUsageEvent
4
- } from "./chunk-SFKJXZMV.js";
4
+ } from "./chunk-L47G4NGG.js";
5
5
  import {
6
6
  BaseAdapter,
7
7
  createStream,
8
8
  planOptionalParams,
9
9
  requireApiKey,
10
10
  validateApiKeyPresence
11
- } from "./chunk-MN34HTJP.js";
11
+ } from "./chunk-QAX4II24.js";
12
12
  import {
13
13
  assertCustomApiHostResolvesPublic
14
- } from "./chunk-ZLSHDEFS.js";
14
+ } from "./chunk-KE3VSAM2.js";
15
15
  import {
16
16
  ConfigError,
17
17
  ModelCapability,
@@ -22,7 +22,7 @@ import {
22
22
  getTimeProvider,
23
23
  getTokenEstimator,
24
24
  ok
25
- } from "./chunk-D62GTDJR.js";
25
+ } from "./chunk-4KMXUSDA.js";
26
26
 
27
27
  // src/adapters/openai-types.ts
28
28
  var OPENAI_MODELS = {
@@ -831,4 +831,4 @@ export {
831
831
  discoverModels,
832
832
  buildOpenAICompatAdapters
833
833
  };
834
- //# sourceMappingURL=chunk-XOTWDMK3.js.map
834
+ //# sourceMappingURL=chunk-VCEDQOKA.js.map
@@ -2,7 +2,7 @@ import {
2
2
  createLogger,
3
3
  err,
4
4
  ok
5
- } from "./chunk-D62GTDJR.js";
5
+ } from "./chunk-4KMXUSDA.js";
6
6
 
7
7
  // src/scm/token-resolver.ts
8
8
  import { execFile } from "child_process";
@@ -87,4 +87,4 @@ export {
87
87
  hasToken,
88
88
  getTokenEnvVars
89
89
  };
90
- //# sourceMappingURL=chunk-RSNG6RDI.js.map
90
+ //# sourceMappingURL=chunk-VNPF3XDJ.js.map
@@ -4,16 +4,16 @@ import {
4
4
  loadPapersRegistry,
5
5
  loadTechniquesRegistry,
6
6
  savePapersRegistry
7
- } from "./chunk-NBKJ7L2S.js";
7
+ } from "./chunk-HG2SQFVP.js";
8
8
  import {
9
9
  resolveInsideRoot
10
10
  } from "./chunk-NUBSJGQZ.js";
11
11
  import {
12
12
  resolveToken
13
- } from "./chunk-RSNG6RDI.js";
13
+ } from "./chunk-VNPF3XDJ.js";
14
14
  import {
15
15
  getToolMemory
16
- } from "./chunk-GRIOFYSO.js";
16
+ } from "./chunk-SZB4YAPS.js";
17
17
  import {
18
18
  capitalizeWords,
19
19
  tokenizeFiltered,
@@ -39,7 +39,7 @@ import {
39
39
  getTimeProvider,
40
40
  ok,
41
41
  registerPersistentDistillerFactory
42
- } from "./chunk-D62GTDJR.js";
42
+ } from "./chunk-4KMXUSDA.js";
43
43
  import {
44
44
  ensureLearningDir,
45
45
  getRulesFile
@@ -853,7 +853,15 @@ var GitHubRepoSchema = z2.object({
853
853
  full_name: z2.string().optional(),
854
854
  html_url: z2.string().optional(),
855
855
  description: z2.string().nullable().optional(),
856
- stargazers_count: z2.number().optional()
856
+ stargazers_count: z2.number().optional(),
857
+ /**
858
+ * Last push, used as the recency signal for a repository (#4841).
859
+ *
860
+ * `created_at` would answer "how old is this project", which is the wrong
861
+ * question — an actively maintained 2019 repo is not stale. For a paper the
862
+ * publication date is the age; for a repo it is the last activity.
863
+ */
864
+ pushed_at: z2.string().nullable().optional()
857
865
  });
858
866
  var GitHubSearchResponseSchema = z2.object({
859
867
  items: z2.array(GitHubRepoSchema).optional()
@@ -900,7 +908,8 @@ function parseGitHubRepos(data) {
900
908
  url: repo.html_url ?? "",
901
909
  description: repo.description ?? "",
902
910
  relevance: (repo.stargazers_count ?? 0) > 1e3 ? "high" : (repo.stargazers_count ?? 0) > 100 ? "medium" : "low",
903
- discoveredAt: getToday()
911
+ discoveredAt: getToday(),
912
+ ...repo.pushed_at === null || repo.pushed_at === void 0 ? {} : { publishedAt: repo.pushed_at }
904
913
  }));
905
914
  }
906
915
  async function discoverGitHubRepos(topic, maxResults = 10) {
@@ -1004,7 +1013,10 @@ function parseArxivEntries(xml, source, topic = "") {
1004
1013
  url: arxivId !== "" ? `https://arxiv.org/abs/${arxivId}` : id,
1005
1014
  description: truncate(extractTag(entry, "summary")),
1006
1015
  relevance: topic !== "" ? scoreRelevance(title, topic) : "medium",
1007
- discoveredAt: getToday()
1016
+ discoveredAt: getToday(),
1017
+ // arXiv returns <published> on every entry; extractTag already existed
1018
+ // and was simply never called for it (#4841).
1019
+ ...extractTag(entry, "published") === "" ? {} : { publishedAt: extractTag(entry, "published") }
1008
1020
  });
1009
1021
  }
1010
1022
  return items;
@@ -1141,7 +1153,10 @@ function mapSemanticScholarPaper(paper) {
1141
1153
  url: paperUrl,
1142
1154
  description: truncate2(paper.abstract ?? ""),
1143
1155
  relevance: citationRelevance(paper.citationCount ?? 0),
1144
- discoveredAt: getToday2()
1156
+ discoveredAt: getToday2(),
1157
+ // Year only — the API gives no finer granularity. Jan 1 of that year is
1158
+ // the conservative reading: it never scores a paper fresher than it is.
1159
+ ...paper.year === void 0 ? {} : { publishedAt: `${String(paper.year)}-01-01` }
1145
1160
  };
1146
1161
  }
1147
1162
  async function discoverSemanticScholar(topic, maxResults = 10) {
@@ -1266,7 +1281,9 @@ function mapOpenAlexWork(work) {
1266
1281
  url,
1267
1282
  description: truncate2(reconstructAbstract(work.abstract_inverted_index)),
1268
1283
  relevance: citationRelevance(work.cited_by_count ?? 0),
1269
- discoveredAt: getToday2()
1284
+ discoveredAt: getToday2(),
1285
+ // Already parsed by the schema and previously discarded here (#4841).
1286
+ ...work.publication_date === null || work.publication_date === void 0 ? {} : { publishedAt: work.publication_date }
1270
1287
  };
1271
1288
  }
1272
1289
  function openAlexParseError(message) {
@@ -1327,12 +1344,16 @@ function relevanceLabelToScore(relevance) {
1327
1344
  return 0.5;
1328
1345
  }
1329
1346
  }
1330
- function scoreRecency(discoveredAt) {
1331
- const discoveredDate = new Date(discoveredAt);
1332
- if (isNaN(discoveredDate.getTime())) return 0.5;
1333
- const now = /* @__PURE__ */ new Date();
1334
- const daysSince = (now.getTime() - discoveredDate.getTime()) / (1e3 * 60 * 60 * 24);
1335
- return Math.max(0, 1 - daysSince / 730);
1347
+ var NEUTRAL_RECENCY = 0.5;
1348
+ var RECENCY_DECAY_DAYS = 730;
1349
+ function scoreRecency(publishedAt) {
1350
+ if (publishedAt === void 0 || publishedAt === "") {
1351
+ return { value: NEUTRAL_RECENCY, measured: false };
1352
+ }
1353
+ const published = new Date(publishedAt);
1354
+ if (isNaN(published.getTime())) return { value: NEUTRAL_RECENCY, measured: false };
1355
+ const daysSince = (Date.now() - published.getTime()) / (1e3 * 60 * 60 * 24);
1356
+ return { value: Math.max(0, 1 - daysSince / RECENCY_DECAY_DAYS), measured: true };
1336
1357
  }
1337
1358
  function scoreReproducibility(source) {
1338
1359
  switch (source) {
@@ -1347,13 +1368,14 @@ function scoreReproducibility(source) {
1347
1368
  function scoreDiscoveredItem(item, topic) {
1348
1369
  const relevance = topic !== "" ? scoreRelevance2(item.title, topic) : relevanceLabelToScore(item.relevance);
1349
1370
  const impact = relevanceLabelToScore(item.relevance);
1350
- const recency = scoreRecency(item.discoveredAt);
1371
+ const recency = scoreRecency(item.publishedAt);
1351
1372
  const reproducibility = scoreReproducibility(item.source);
1352
- const composite = WEIGHTS.relevance * relevance + WEIGHTS.impact * impact + WEIGHTS.recency * recency + WEIGHTS.reproducibility * reproducibility;
1373
+ const composite = WEIGHTS.relevance * relevance + WEIGHTS.impact * impact + WEIGHTS.recency * recency.value + WEIGHTS.reproducibility * reproducibility;
1353
1374
  return {
1354
1375
  relevance: Math.round(relevance * 100) / 100,
1355
1376
  impact: Math.round(impact * 100) / 100,
1356
- recency: Math.round(recency * 100) / 100,
1377
+ recency: Math.round(recency.value * 100) / 100,
1378
+ recencyMeasured: recency.measured,
1357
1379
  reproducibility: Math.round(reproducibility * 100) / 100,
1358
1380
  composite: Math.round(composite * 100) / 100
1359
1381
  };
@@ -4107,4 +4129,4 @@ export {
4107
4129
  DEFAULT_CONTEXT_BUDGET_TOKENS,
4108
4130
  getContextPromptPrefix
4109
4131
  };
4110
- //# sourceMappingURL=chunk-7ZYXZWAM.js.map
4132
+ //# sourceMappingURL=chunk-WJZ2BV5H.js.map