nexus-agents 2.75.1 → 2.76.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 (100) hide show
  1. package/dist/{adaptive-memory-OJY3IVNM.js → adaptive-memory-EI564K4C.js} +3 -3
  2. package/dist/{child-mcp-config-KMCKKPNY.js → child-mcp-config-MJMUF7TL.js} +2 -2
  3. package/dist/{chunk-Q3RFPJYK.js → chunk-3MRM53T4.js} +8 -2
  4. package/dist/{chunk-Q3RFPJYK.js.map → chunk-3MRM53T4.js.map} +1 -1
  5. package/dist/{chunk-EQHYXT56.js → chunk-3VWMM6UF.js} +2 -2
  6. package/dist/{chunk-QON7LR7J.js → chunk-5WHWKY32.js} +2 -2
  7. package/dist/{chunk-3SZBDLFX.js → chunk-6AY5DK4E.js} +3 -3
  8. package/dist/{chunk-PAFH336F.js → chunk-7NK7BTWP.js} +2 -2
  9. package/dist/{chunk-3ESCBV47.js → chunk-BJ2OMC7P.js} +2 -2
  10. package/dist/{chunk-Q6JDV36D.js → chunk-C2LLQ6TW.js} +3 -3
  11. package/dist/{chunk-DGELGUZF.js → chunk-CM3TORGV.js} +2 -2
  12. package/dist/{chunk-4K6L7RKC.js → chunk-DIB6V67T.js} +3 -3
  13. package/dist/{chunk-44MVIL3F.js → chunk-DSQ5XM4O.js} +4 -4
  14. package/dist/{chunk-VJD5LANR.js → chunk-ERWXGXV2.js} +3 -3
  15. package/dist/{chunk-BK54O5J5.js → chunk-G6ZPVADX.js} +2 -2
  16. package/dist/{chunk-MKIYBAGV.js → chunk-GAA7XTB6.js} +25 -25
  17. package/dist/{chunk-S6LQJZY4.js → chunk-GBILTGR6.js} +7 -7
  18. package/dist/{chunk-NQR7QAZX.js → chunk-IPWCD22D.js} +2 -2
  19. package/dist/{chunk-Q7FTNKPO.js → chunk-JN6UWGHH.js} +62 -28
  20. package/dist/chunk-JN6UWGHH.js.map +1 -0
  21. package/dist/{chunk-5LHKTF5L.js → chunk-JWQUKMR2.js} +4 -4
  22. package/dist/{chunk-2SVS5WRV.js → chunk-MGLWPN2I.js} +2 -2
  23. package/dist/{chunk-TBRNRW2Q.js → chunk-PWTJGGKB.js} +2 -2
  24. package/dist/{chunk-T5VPZZYX.js → chunk-TMOGKDC2.js} +30 -10
  25. package/dist/chunk-TMOGKDC2.js.map +1 -0
  26. package/dist/{chunk-NC2LECY6.js → chunk-VEF6DCQU.js} +3 -3
  27. package/dist/{chunk-UWJKMBPL.js → chunk-X3BU5MIG.js} +6 -6
  28. package/dist/{chunk-G5VE2DZS.js → chunk-YJ2IGAD2.js} +2 -2
  29. package/dist/{chunk-GS3GW7C7.js → chunk-YQMQSJQK.js} +2 -2
  30. package/dist/{chunk-CCODJRS6.js → chunk-ZKOBXAPK.js} +2 -2
  31. package/dist/{cli-circuit-breaker-STXIH563.js → cli-circuit-breaker-YX4BWZD5.js} +4 -4
  32. package/dist/cli.js +33 -31
  33. package/dist/cli.js.map +1 -1
  34. package/dist/{composite-router-7AHZN3VI.js → composite-router-S6E26BCI.js} +2 -2
  35. package/dist/{consensus-vote-XY55C7WQ.js → consensus-vote-KDSLAWQL.js} +11 -11
  36. package/dist/{doctor-deep-ONHJTGR4.js → doctor-deep-BRU5ZUJI.js} +3 -3
  37. package/dist/{expert-bridge-3AWQHR65.js → expert-bridge-DWBO2HXZ.js} +3 -3
  38. package/dist/{factory-E5NMAMZC.js → factory-A7DTCCUY.js} +5 -5
  39. package/dist/{factory-HWHQ44BB.js → factory-LXOVC44K.js} +4 -4
  40. package/dist/index.d.ts +1 -0
  41. package/dist/index.js +22 -22
  42. package/dist/{init-opencode-Z7OQ5RCB.js → init-opencode-CFE7M6XA.js} +25 -5
  43. package/dist/init-opencode-CFE7M6XA.js.map +1 -0
  44. package/dist/{issue-triage-UWBHMQHC.js → issue-triage-6XD6CVPB.js} +4 -4
  45. package/dist/{mobimem-G4UXJTCV.js → mobimem-CG2MNS7V.js} +2 -2
  46. package/dist/{registry-command-HYWVRAHE.js → registry-command-RPPC7N2K.js} +2 -2
  47. package/dist/{repo-security-plan-W35CXK3T.js → repo-security-plan-EIL2BV3S.js} +3 -3
  48. package/dist/{research-helpers-synthesize-GUQORWL4.js → research-helpers-synthesize-36TUTUUA.js} +5 -3
  49. package/dist/{routing-memory-VOJBOX3X.js → routing-memory-5VTX7LQX.js} +2 -2
  50. package/dist/{session-memory-B6LQMF4N.js → session-memory-7XBV6BMY.js} +3 -3
  51. package/dist/{setup-command-KP3QVBEW.js → setup-command-3H2XXBJ3.js} +9 -9
  52. package/dist/{setup-config-53MHJA7S.js → setup-config-EI5KROA3.js} +3 -3
  53. package/dist/{setup-custom-api-VD5W754A.js → setup-custom-api-WM5W5AY5.js} +4 -4
  54. package/dist/{weather-report-APASTJDQ.js → weather-report-YJMVKJGA.js} +2 -2
  55. package/package.json +1 -1
  56. package/dist/chunk-Q7FTNKPO.js.map +0 -1
  57. package/dist/chunk-T5VPZZYX.js.map +0 -1
  58. package/dist/init-opencode-Z7OQ5RCB.js.map +0 -1
  59. /package/dist/{adaptive-memory-OJY3IVNM.js.map → adaptive-memory-EI564K4C.js.map} +0 -0
  60. /package/dist/{child-mcp-config-KMCKKPNY.js.map → child-mcp-config-MJMUF7TL.js.map} +0 -0
  61. /package/dist/{chunk-EQHYXT56.js.map → chunk-3VWMM6UF.js.map} +0 -0
  62. /package/dist/{chunk-QON7LR7J.js.map → chunk-5WHWKY32.js.map} +0 -0
  63. /package/dist/{chunk-3SZBDLFX.js.map → chunk-6AY5DK4E.js.map} +0 -0
  64. /package/dist/{chunk-PAFH336F.js.map → chunk-7NK7BTWP.js.map} +0 -0
  65. /package/dist/{chunk-3ESCBV47.js.map → chunk-BJ2OMC7P.js.map} +0 -0
  66. /package/dist/{chunk-Q6JDV36D.js.map → chunk-C2LLQ6TW.js.map} +0 -0
  67. /package/dist/{chunk-DGELGUZF.js.map → chunk-CM3TORGV.js.map} +0 -0
  68. /package/dist/{chunk-4K6L7RKC.js.map → chunk-DIB6V67T.js.map} +0 -0
  69. /package/dist/{chunk-44MVIL3F.js.map → chunk-DSQ5XM4O.js.map} +0 -0
  70. /package/dist/{chunk-VJD5LANR.js.map → chunk-ERWXGXV2.js.map} +0 -0
  71. /package/dist/{chunk-BK54O5J5.js.map → chunk-G6ZPVADX.js.map} +0 -0
  72. /package/dist/{chunk-MKIYBAGV.js.map → chunk-GAA7XTB6.js.map} +0 -0
  73. /package/dist/{chunk-S6LQJZY4.js.map → chunk-GBILTGR6.js.map} +0 -0
  74. /package/dist/{chunk-NQR7QAZX.js.map → chunk-IPWCD22D.js.map} +0 -0
  75. /package/dist/{chunk-5LHKTF5L.js.map → chunk-JWQUKMR2.js.map} +0 -0
  76. /package/dist/{chunk-2SVS5WRV.js.map → chunk-MGLWPN2I.js.map} +0 -0
  77. /package/dist/{chunk-TBRNRW2Q.js.map → chunk-PWTJGGKB.js.map} +0 -0
  78. /package/dist/{chunk-NC2LECY6.js.map → chunk-VEF6DCQU.js.map} +0 -0
  79. /package/dist/{chunk-UWJKMBPL.js.map → chunk-X3BU5MIG.js.map} +0 -0
  80. /package/dist/{chunk-G5VE2DZS.js.map → chunk-YJ2IGAD2.js.map} +0 -0
  81. /package/dist/{chunk-GS3GW7C7.js.map → chunk-YQMQSJQK.js.map} +0 -0
  82. /package/dist/{chunk-CCODJRS6.js.map → chunk-ZKOBXAPK.js.map} +0 -0
  83. /package/dist/{cli-circuit-breaker-STXIH563.js.map → cli-circuit-breaker-YX4BWZD5.js.map} +0 -0
  84. /package/dist/{composite-router-7AHZN3VI.js.map → composite-router-S6E26BCI.js.map} +0 -0
  85. /package/dist/{consensus-vote-XY55C7WQ.js.map → consensus-vote-KDSLAWQL.js.map} +0 -0
  86. /package/dist/{doctor-deep-ONHJTGR4.js.map → doctor-deep-BRU5ZUJI.js.map} +0 -0
  87. /package/dist/{expert-bridge-3AWQHR65.js.map → expert-bridge-DWBO2HXZ.js.map} +0 -0
  88. /package/dist/{factory-E5NMAMZC.js.map → factory-A7DTCCUY.js.map} +0 -0
  89. /package/dist/{factory-HWHQ44BB.js.map → factory-LXOVC44K.js.map} +0 -0
  90. /package/dist/{issue-triage-UWBHMQHC.js.map → issue-triage-6XD6CVPB.js.map} +0 -0
  91. /package/dist/{mobimem-G4UXJTCV.js.map → mobimem-CG2MNS7V.js.map} +0 -0
  92. /package/dist/{registry-command-HYWVRAHE.js.map → registry-command-RPPC7N2K.js.map} +0 -0
  93. /package/dist/{repo-security-plan-W35CXK3T.js.map → repo-security-plan-EIL2BV3S.js.map} +0 -0
  94. /package/dist/{research-helpers-synthesize-GUQORWL4.js.map → research-helpers-synthesize-36TUTUUA.js.map} +0 -0
  95. /package/dist/{routing-memory-VOJBOX3X.js.map → routing-memory-5VTX7LQX.js.map} +0 -0
  96. /package/dist/{session-memory-B6LQMF4N.js.map → session-memory-7XBV6BMY.js.map} +0 -0
  97. /package/dist/{setup-command-KP3QVBEW.js.map → setup-command-3H2XXBJ3.js.map} +0 -0
  98. /package/dist/{setup-config-53MHJA7S.js.map → setup-config-EI5KROA3.js.map} +0 -0
  99. /package/dist/{setup-custom-api-VD5W754A.js.map → setup-custom-api-WM5W5AY5.js.map} +0 -0
  100. /package/dist/{weather-report-APASTJDQ.js.map → weather-report-YJMVKJGA.js.map} +0 -0
@@ -4,7 +4,7 @@ import {
4
4
  CompositeRoutingError,
5
5
  DEFAULT_COMPOSITE_CONFIG,
6
6
  createCompositeRouter
7
- } from "./chunk-Q3RFPJYK.js";
7
+ } from "./chunk-3MRM53T4.js";
8
8
  import "./chunk-I7ORMAO7.js";
9
9
  import "./chunk-GOT7OAL5.js";
10
10
  import "./chunk-UP2VWCW5.js";
@@ -15,4 +15,4 @@ export {
15
15
  DEFAULT_COMPOSITE_CONFIG,
16
16
  createCompositeRouter
17
17
  };
18
- //# sourceMappingURL=composite-router-7AHZN3VI.js.map
18
+ //# sourceMappingURL=composite-router-S6E26BCI.js.map
@@ -5,17 +5,17 @@ import {
5
5
  executeVoting,
6
6
  registerConsensusVoteTool,
7
7
  resetCorrelationTracker
8
- } from "./chunk-T5VPZZYX.js";
9
- import "./chunk-NQR7QAZX.js";
10
- import "./chunk-PAFH336F.js";
11
- import "./chunk-QON7LR7J.js";
12
- import "./chunk-GS3GW7C7.js";
13
- import "./chunk-NC2LECY6.js";
14
- import "./chunk-EQHYXT56.js";
15
- import "./chunk-3ESCBV47.js";
8
+ } from "./chunk-TMOGKDC2.js";
9
+ import "./chunk-IPWCD22D.js";
10
+ import "./chunk-7NK7BTWP.js";
11
+ import "./chunk-5WHWKY32.js";
12
+ import "./chunk-YQMQSJQK.js";
13
+ import "./chunk-VEF6DCQU.js";
14
+ import "./chunk-3VWMM6UF.js";
15
+ import "./chunk-BJ2OMC7P.js";
16
16
  import "./chunk-633WH2ML.js";
17
- import "./chunk-TBRNRW2Q.js";
18
- import "./chunk-Q3RFPJYK.js";
17
+ import "./chunk-PWTJGGKB.js";
18
+ import "./chunk-3MRM53T4.js";
19
19
  import "./chunk-I7ORMAO7.js";
20
20
  import "./chunk-GOT7OAL5.js";
21
21
  import "./chunk-UP2VWCW5.js";
@@ -27,4 +27,4 @@ export {
27
27
  registerConsensusVoteTool,
28
28
  resetCorrelationTracker
29
29
  };
30
- //# sourceMappingURL=consensus-vote-XY55C7WQ.js.map
30
+ //# sourceMappingURL=consensus-vote-KDSLAWQL.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  formatDeepDiagnostics,
3
3
  runDeepDiagnostics
4
- } from "./chunk-G5VE2DZS.js";
5
- import "./chunk-Q3RFPJYK.js";
4
+ } from "./chunk-YJ2IGAD2.js";
5
+ import "./chunk-3MRM53T4.js";
6
6
  import "./chunk-I7ORMAO7.js";
7
7
  import "./chunk-GOT7OAL5.js";
8
8
  import "./chunk-UP2VWCW5.js";
@@ -10,4 +10,4 @@ export {
10
10
  formatDeepDiagnostics,
11
11
  runDeepDiagnostics
12
12
  };
13
- //# sourceMappingURL=doctor-deep-ONHJTGR4.js.map
13
+ //# sourceMappingURL=doctor-deep-BRU5ZUJI.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  executeExpert
3
- } from "./chunk-UWJKMBPL.js";
4
- import "./chunk-Q3RFPJYK.js";
3
+ } from "./chunk-X3BU5MIG.js";
4
+ import "./chunk-3MRM53T4.js";
5
5
  import "./chunk-I7ORMAO7.js";
6
6
  import "./chunk-GOT7OAL5.js";
7
7
  import "./chunk-UP2VWCW5.js";
8
8
  export {
9
9
  executeExpert
10
10
  };
11
- //# sourceMappingURL=expert-bridge-3AWQHR65.js.map
11
+ //# sourceMappingURL=expert-bridge-DWBO2HXZ.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createGitHubProvider,
3
3
  createScmProvider
4
- } from "./chunk-44MVIL3F.js";
5
- import "./chunk-2SVS5WRV.js";
6
- import "./chunk-BK54O5J5.js";
7
- import "./chunk-Q3RFPJYK.js";
4
+ } from "./chunk-DSQ5XM4O.js";
5
+ import "./chunk-MGLWPN2I.js";
6
+ import "./chunk-G6ZPVADX.js";
7
+ import "./chunk-3MRM53T4.js";
8
8
  import "./chunk-I7ORMAO7.js";
9
9
  import "./chunk-GOT7OAL5.js";
10
10
  import "./chunk-UP2VWCW5.js";
@@ -12,4 +12,4 @@ export {
12
12
  createGitHubProvider,
13
13
  createScmProvider
14
14
  };
15
- //# sourceMappingURL=factory-E5NMAMZC.js.map
15
+ //# sourceMappingURL=factory-A7DTCCUY.js.map
@@ -3,9 +3,9 @@ import {
3
3
  createCliAdapter,
4
4
  getAvailableClis,
5
5
  isCliAvailable
6
- } from "./chunk-NC2LECY6.js";
7
- import "./chunk-TBRNRW2Q.js";
8
- import "./chunk-Q3RFPJYK.js";
6
+ } from "./chunk-VEF6DCQU.js";
7
+ import "./chunk-PWTJGGKB.js";
8
+ import "./chunk-3MRM53T4.js";
9
9
  import "./chunk-I7ORMAO7.js";
10
10
  import "./chunk-GOT7OAL5.js";
11
11
  import "./chunk-UP2VWCW5.js";
@@ -15,4 +15,4 @@ export {
15
15
  getAvailableClis,
16
16
  isCliAvailable
17
17
  };
18
- //# sourceMappingURL=factory-HWHQ44BB.js.map
18
+ //# sourceMappingURL=factory-LXOVC44K.js.map
package/dist/index.d.ts CHANGED
@@ -2543,6 +2543,7 @@ declare const TaskOutcomeSchema$2: z.ZodObject<{
2543
2543
  retryCount: z.ZodOptional<z.ZodNumber>;
2544
2544
  vendor: z.ZodOptional<z.ZodString>;
2545
2545
  family: z.ZodOptional<z.ZodString>;
2546
+ voterRole: z.ZodOptional<z.ZodString>;
2546
2547
  }, z.core.$strip>;
2547
2548
  /** Schema for filtering outcomes. */
2548
2549
  declare const OutcomeQuerySchema: z.ZodObject<{
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createGitHubProvider,
3
3
  createScmProvider
4
- } from "./chunk-44MVIL3F.js";
4
+ } from "./chunk-DSQ5XM4O.js";
5
5
  import {
6
6
  ALLOWED_COMMANDS,
7
7
  ARTIFACT_TYPES,
@@ -518,7 +518,7 @@ import {
518
518
  validateWorkflow,
519
519
  validateWorkflowDependencies,
520
520
  withLogging
521
- } from "./chunk-MKIYBAGV.js";
521
+ } from "./chunk-GAA7XTB6.js";
522
522
  import {
523
523
  SharedMemoryStore
524
524
  } from "./chunk-ED6VQWNG.js";
@@ -526,17 +526,17 @@ import {
526
526
  getTokenEnvVars,
527
527
  hasToken,
528
528
  resolveToken
529
- } from "./chunk-2SVS5WRV.js";
529
+ } from "./chunk-MGLWPN2I.js";
530
530
  import "./chunk-X2M7OF27.js";
531
531
  import {
532
532
  OPENAI_MODELS,
533
533
  OPENAI_MODEL_ALIASES,
534
534
  OpenAIAdapter,
535
535
  createOpenAIAdapter
536
- } from "./chunk-4K6L7RKC.js";
536
+ } from "./chunk-DIB6V67T.js";
537
537
  import {
538
538
  executeExpert
539
- } from "./chunk-UWJKMBPL.js";
539
+ } from "./chunk-X3BU5MIG.js";
540
540
  import {
541
541
  AgentFindingSchema,
542
542
  AgentPerformanceSchema,
@@ -632,7 +632,7 @@ import {
632
632
  validateToolInput,
633
633
  withModelNotFoundFallback,
634
634
  wrapResilientWithFallback
635
- } from "./chunk-T5VPZZYX.js";
635
+ } from "./chunk-TMOGKDC2.js";
636
636
  import {
637
637
  AdapterModelError,
638
638
  BaseAdapter,
@@ -656,11 +656,11 @@ import {
656
656
  transformStream,
657
657
  validateApiKeyPresence,
658
658
  withTimeout
659
- } from "./chunk-NQR7QAZX.js";
659
+ } from "./chunk-IPWCD22D.js";
660
660
  import {
661
661
  PROVIDER_ENV_KEYS
662
- } from "./chunk-PAFH336F.js";
663
- import "./chunk-Q7FTNKPO.js";
662
+ } from "./chunk-7NK7BTWP.js";
663
+ import "./chunk-JN6UWGHH.js";
664
664
  import {
665
665
  AgentActionSchema,
666
666
  GitHubReviewer,
@@ -693,11 +693,11 @@ import {
693
693
  sanitizeInput,
694
694
  validateAgentAction,
695
695
  validateCorroboration
696
- } from "./chunk-VJD5LANR.js";
696
+ } from "./chunk-ERWXGXV2.js";
697
697
  import {
698
698
  GitHubProvider,
699
699
  ScmError
700
- } from "./chunk-BK54O5J5.js";
700
+ } from "./chunk-G6ZPVADX.js";
701
701
  import {
702
702
  FALLBACK_SCANNER_DATA,
703
703
  buildPlanFromAnalysis,
@@ -705,7 +705,7 @@ import {
705
705
  generateSecurityPlan,
706
706
  getRegistryManifest,
707
707
  resolveScannerData
708
- } from "./chunk-CCODJRS6.js";
708
+ } from "./chunk-ZKOBXAPK.js";
709
709
  import {
710
710
  analyzeGitHubRepo,
711
711
  analyzeRepo,
@@ -738,15 +738,15 @@ import {
738
738
  resolveFallback,
739
739
  startStdioServer,
740
740
  validateNexusEnv
741
- } from "./chunk-S6LQJZY4.js";
741
+ } from "./chunk-GBILTGR6.js";
742
742
  import {
743
743
  AvailableModelsCache,
744
744
  getDefaultAvailableModelsCache,
745
745
  setDefaultAvailableModelsCache
746
- } from "./chunk-QON7LR7J.js";
746
+ } from "./chunk-5WHWKY32.js";
747
747
  import {
748
748
  DEFAULTS
749
- } from "./chunk-GS3GW7C7.js";
749
+ } from "./chunk-YQMQSJQK.js";
750
750
  import "./chunk-NUBSJGQZ.js";
751
751
  import {
752
752
  BaseCliAdapter,
@@ -776,7 +776,7 @@ import {
776
776
  isCliAvailable,
777
777
  isRetryableError,
778
778
  sleep
779
- } from "./chunk-NC2LECY6.js";
779
+ } from "./chunk-VEF6DCQU.js";
780
780
  import {
781
781
  BUILT_IN_EXPERTS,
782
782
  BuiltInExpertTypeSchema,
@@ -786,16 +786,16 @@ import {
786
786
  safeValidateExpertConfig,
787
787
  validateExpertConfig
788
788
  } from "./chunk-ZM4O442V.js";
789
- import "./chunk-EQHYXT56.js";
789
+ import "./chunk-3VWMM6UF.js";
790
790
  import {
791
791
  MemoryError
792
- } from "./chunk-3ESCBV47.js";
792
+ } from "./chunk-BJ2OMC7P.js";
793
793
  import "./chunk-633WH2ML.js";
794
794
  import {
795
795
  CliCircuitBreakerIntegration,
796
796
  createCliCircuitBreakerIntegration
797
- } from "./chunk-3SZBDLFX.js";
798
- import "./chunk-TBRNRW2Q.js";
797
+ } from "./chunk-6AY5DK4E.js";
798
+ import "./chunk-PWTJGGKB.js";
799
799
  import {
800
800
  AgentCapability,
801
801
  AgentError,
@@ -873,7 +873,7 @@ import {
873
873
  toError,
874
874
  unwrap,
875
875
  unwrapOr
876
- } from "./chunk-Q3RFPJYK.js";
876
+ } from "./chunk-3MRM53T4.js";
877
877
  import {
878
878
  ensureLearningDir,
879
879
  getRulesFile
@@ -6090,7 +6090,7 @@ function buildVotingInput(plan, config) {
6090
6090
  }
6091
6091
  async function executeSingleVote(plan, config, log) {
6092
6092
  try {
6093
- const { executeVoting } = await import("./consensus-vote-XY55C7WQ.js");
6093
+ const { executeVoting } = await import("./consensus-vote-KDSLAWQL.js");
6094
6094
  const input = buildVotingInput(plan, config);
6095
6095
  const result = await executeVoting(input, log);
6096
6096
  return parseVotingResult(result);
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  discoverModels,
3
3
  readOpencodeGateway
4
- } from "./chunk-Q6JDV36D.js";
5
- import "./chunk-4K6L7RKC.js";
6
- import "./chunk-NQR7QAZX.js";
4
+ } from "./chunk-C2LLQ6TW.js";
5
+ import "./chunk-DIB6V67T.js";
6
+ import "./chunk-IPWCD22D.js";
7
7
  import {
8
8
  createLogger
9
- } from "./chunk-Q3RFPJYK.js";
9
+ } from "./chunk-3MRM53T4.js";
10
10
  import "./chunk-I7ORMAO7.js";
11
11
  import "./chunk-GOT7OAL5.js";
12
12
  import "./chunk-UP2VWCW5.js";
@@ -15,6 +15,22 @@ import "./chunk-UP2VWCW5.js";
15
15
  import { existsSync, readFileSync, writeFileSync } from "fs";
16
16
  import { dirname } from "path";
17
17
  var logger = createLogger({ component: "init-opencode" });
18
+ function buildDefaultPermissionBlock() {
19
+ return {
20
+ edit: {
21
+ "*": "ask",
22
+ "**/.env": "deny",
23
+ "**/.env.*": "deny",
24
+ "**/*.pem": "deny",
25
+ "**/*.key": "deny",
26
+ "**/id_rsa*": "deny",
27
+ "**/secrets/**": "deny",
28
+ "**/.git/**": "deny"
29
+ },
30
+ bash: "ask",
31
+ skill: "allow"
32
+ };
33
+ }
18
34
  function buildNexusMcpBlock(opts) {
19
35
  const env = {
20
36
  NEXUS_DATA_DIR: "{env:NEXUS_DATA_DIR}",
@@ -71,6 +87,7 @@ function mergeNexusBlock(existing, opts) {
71
87
  return {
72
88
  $schema: "https://opencode.ai/config.json",
73
89
  providers: { "openai-compat": stubOpenaiCompatProvider() },
90
+ permission: buildDefaultPermissionBlock(),
74
91
  mcp: { "nexus-agents": block }
75
92
  };
76
93
  }
@@ -83,8 +100,10 @@ function mergeNexusBlock(existing, opts) {
83
100
  enabled: existingNexus.enabled ?? block.enabled,
84
101
  environment: { ...block.environment, ...existingNexus.environment ?? {} }
85
102
  };
103
+ const permission = existing.permission ?? buildDefaultPermissionBlock();
86
104
  return {
87
105
  ...existing,
106
+ permission,
88
107
  mcp: { ...existingMcp, "nexus-agents": mergedBlock }
89
108
  };
90
109
  }
@@ -150,9 +169,10 @@ async function runOpencodeValidate(opencodePath) {
150
169
  };
151
170
  }
152
171
  export {
172
+ buildDefaultPermissionBlock,
153
173
  buildNexusMcpBlock,
154
174
  ensureOpencodeDirExists,
155
175
  runInitOpencode,
156
176
  runOpencodeValidate
157
177
  };
158
- //# sourceMappingURL=init-opencode-Z7OQ5RCB.js.map
178
+ //# sourceMappingURL=init-opencode-CFE7M6XA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/init-opencode.ts"],"sourcesContent":["/**\n * `nexus-agents init --opencode <path>` setup helper (#2504, child 4 of #2500).\n *\n * Injects the nexus-agents MCP block + recommended environment into an\n * existing `opencode.json` without overwriting other operator-set keys.\n * Pairs with the existing `init --portable --mcp-config` (which targets\n * Claude Code's `.mcp.json`). Different harness, same merge-not-overwrite\n * pattern.\n *\n * Behaviour:\n * - File exists → merge `mcp.nexus-agents` into the existing JSON.\n * Preserve every other key the operator has set (provider config,\n * model lists, theme, …). Idempotent: re-running produces the same\n * final file.\n * - File missing → write a minimal template with the nexus-agents MCP\n * block + a stubbed `providers.openai-compat` shell the operator\n * fills in (placeholder baseURL + `{env:WORKSPACE_PROXY_KEY}`).\n * - `--dry-run` → print the diff (proposed vs existing) without writing.\n * - `--validate` → after merge (or alongside dry-run), probe\n * `providers.openai-compat.options.baseURL/v1/models` with the\n * resolved apiKey, exit non-zero if unreachable.\n *\n * @module cli/init-opencode\n */\n\nimport { existsSync, readFileSync, writeFileSync } from 'node:fs';\nimport { dirname } from 'node:path';\n\nimport { createLogger } from '../core/index.js';\nimport { readOpencodeGateway } from '../config/opencode-bridge.js';\nimport { discoverModels } from '../adapters/openai-compat-adapter.js';\n\nconst logger = createLogger({ component: 'init-opencode' });\n\nexport interface InitOpencodeOptions {\n /** Absolute or relative path to opencode.json. */\n readonly path: string;\n /** Path to the nexus-agents CLI binary that the MCP block will spawn. */\n readonly cliPath: string;\n /** Sandbox flavor written to NEXUS_SANDBOX in the MCP environment. */\n readonly sandboxFlavor?: string;\n /** Print the diff without writing. */\n readonly dryRun?: boolean;\n}\n\nexport interface InitOpencodeResult {\n readonly path: string;\n readonly action: 'created' | 'updated' | 'unchanged' | 'dry-run';\n readonly diff: string;\n}\n\ninterface OpencodeMcpBlock {\n type: 'local';\n command: string[];\n enabled: boolean;\n environment: Record<string, string>;\n}\n\ninterface OpencodeFile {\n $schema?: string;\n providers?: Record<string, unknown>;\n mcp?: Record<string, unknown>;\n permission?: Record<string, unknown>;\n [key: string]: unknown;\n}\n\n/**\n * Conservative default OpenCode `permission` block (#2658). OpenCode\n * evaluates a glob map with **last-matching-rule-winning**, so the broad\n * `\"*\"` rule is listed first and the hard `deny` patterns last.\n *\n * - `edit` — everything `ask`s; secrets, keys, and `.git/` are hard-denied\n * regardless of operator confirmation. The deny patterns come after\n * `\"*\"` so last-match-wins makes them stick.\n * - `bash` — `ask` unconditionally. Shell is the highest-risk surface.\n * - `skill` — `allow`. Skills are trusted, in-repo, CI-validated content.\n *\n * Emitted only when the operator has not already set their own\n * `permission` block — never overwrites operator config.\n */\nexport function buildDefaultPermissionBlock(): Record<string, unknown> {\n return {\n edit: {\n '*': 'ask',\n '**/.env': 'deny',\n '**/.env.*': 'deny',\n '**/*.pem': 'deny',\n '**/*.key': 'deny',\n '**/id_rsa*': 'deny',\n '**/secrets/**': 'deny',\n '**/.git/**': 'deny',\n },\n bash: 'ask',\n skill: 'allow',\n };\n}\n\n/**\n * Build the canonical nexus-agents MCP block. Mirrors what\n * `Dockerfile.sandbox` writes today plus the env vars from #2501 + #2503.\n */\nexport function buildNexusMcpBlock(opts: {\n readonly cliPath: string;\n readonly sandboxFlavor?: string;\n readonly opencodeConfigPath: string;\n}): OpencodeMcpBlock {\n const env: Record<string, string> = {\n NEXUS_DATA_DIR: '{env:NEXUS_DATA_DIR}',\n NEXUS_OPENCODE_CONFIG: opts.opencodeConfigPath,\n };\n if (opts.sandboxFlavor !== undefined && opts.sandboxFlavor !== '') {\n env['NEXUS_SANDBOX'] = opts.sandboxFlavor;\n }\n return {\n type: 'local',\n command: ['node', opts.cliPath, '--mode=server'],\n enabled: true,\n environment: env,\n };\n}\n\n/**\n * Execute the merge. Pure with respect to `opts.dryRun: true` — no fs\n * writes. Returns the final-or-proposed JSON + a diff string suitable\n * for printing.\n */\nexport function runInitOpencode(opts: InitOpencodeOptions): InitOpencodeResult {\n const existing = readExisting(opts.path);\n const merged = mergeNexusBlock(existing, opts);\n const before = existing === null ? '' : `${JSON.stringify(existing, null, 2)}\\n`;\n const after = `${JSON.stringify(merged, null, 2)}\\n`;\n const diff = simpleDiff(before, after);\n\n if (opts.dryRun === true) {\n return { path: opts.path, action: 'dry-run', diff };\n }\n\n if (existing !== null && before === after) {\n return { path: opts.path, action: 'unchanged', diff };\n }\n\n writeFileSync(opts.path, after, 'utf8');\n return { path: opts.path, action: existing === null ? 'created' : 'updated', diff };\n}\n\nfunction readExisting(path: string): OpencodeFile | null {\n if (!existsSync(path)) return null;\n try {\n const raw = readFileSync(path, 'utf8');\n const parsed = JSON.parse(raw) as unknown;\n if (typeof parsed !== 'object' || parsed === null) {\n throw new Error('opencode.json root must be an object');\n }\n return parsed as OpencodeFile;\n } catch (err: unknown) {\n const msg = err instanceof Error ? err.message : String(err);\n throw new Error(`Failed to parse opencode.json at ${path}: ${msg}`);\n }\n}\n\nfunction mergeNexusBlock(existing: OpencodeFile | null, opts: InitOpencodeOptions): OpencodeFile {\n const block = buildNexusMcpBlock({\n cliPath: opts.cliPath,\n ...(opts.sandboxFlavor !== undefined && { sandboxFlavor: opts.sandboxFlavor }),\n opencodeConfigPath: opts.path,\n });\n\n if (existing === null) {\n return {\n $schema: 'https://opencode.ai/config.json',\n providers: { 'openai-compat': stubOpenaiCompatProvider() },\n permission: buildDefaultPermissionBlock(),\n mcp: { 'nexus-agents': block },\n };\n }\n\n // Idempotent merge: preserve user-customised fields if they exist on the\n // current MCP block (e.g. `enabled: false`). Update anything else.\n const existingMcp: Record<string, unknown> = existing.mcp ?? {};\n const rawNexus = existingMcp['nexus-agents'];\n const existingNexus: Partial<OpencodeMcpBlock> =\n typeof rawNexus === 'object' && rawNexus !== null ? rawNexus : {};\n const mergedBlock: OpencodeMcpBlock = {\n type: 'local',\n command: block.command,\n enabled: existingNexus.enabled ?? block.enabled,\n environment: { ...block.environment, ...(existingNexus.environment ?? {}) },\n };\n\n // Add the default permission block only when the operator has not set\n // their own — never overwrite an existing `permission` key.\n const permission = existing.permission ?? buildDefaultPermissionBlock();\n\n return {\n ...existing,\n permission,\n mcp: { ...existingMcp, 'nexus-agents': mergedBlock },\n };\n}\n\n/**\n * Stub for `providers.openai-compat`. Operators replace the placeholder\n * baseURL + key with their workspace-proxy values. Empty by design — we\n * never overwrite an existing provider block (see `mergeNexusBlock`).\n */\nfunction stubOpenaiCompatProvider(): Record<string, unknown> {\n return {\n npm: '@ai-sdk/openai-compatible',\n options: {\n baseURL: '<replace with workspace proxy URL>',\n apiKey: '{env:WORKSPACE_PROXY_KEY}',\n },\n };\n}\n\n/**\n * Cheap line-based diff. Three-line context, +/- prefixes. Good enough\n * for an operator preview; not a unified-diff replacement.\n */\nfunction simpleDiff(before: string, after: string): string {\n if (before === after) return '(no changes)';\n const beforeLines = before.split('\\n');\n const afterLines = after.split('\\n');\n const out: string[] = [];\n const max = Math.max(beforeLines.length, afterLines.length);\n for (let i = 0; i < max; i += 1) {\n const b = beforeLines[i];\n const a = afterLines[i];\n if (b === a) {\n out.push(` ${b ?? ''}`);\n } else {\n if (b !== undefined) out.push(`- ${b}`);\n if (a !== undefined) out.push(`+ ${a}`);\n }\n }\n return out.join('\\n');\n}\n\nexport function ensureOpencodeDirExists(path: string): void {\n const dir = dirname(path);\n if (!existsSync(dir)) {\n throw new Error(\n `Parent directory does not exist: ${dir}. Create it first or pass a path under an existing dir.`\n );\n }\n logger.debug('opencode.json target directory exists', { dir });\n}\n\n/**\n * --validate flow for `init --opencode` (follow-up to #2504).\n *\n * After the merge step writes the file, optionally probe the gateway it\n * points at. Reuses the same opencode-bridge loader (#2503) that the\n * runtime uses, so what we validate is exactly what the server will see\n * at boot.\n *\n * Returns:\n * - `{ ok: true, models }` when the gateway is reachable and returns ≥1 model\n * - `{ ok: false, reason }` for every failure path (config missing,\n * probe failed, zero models)\n *\n * Caller (cli-commands-handlers) maps to exit codes + stderr / stdout.\n * The API key never reaches the returned object — only model IDs +\n * baseURL appear in the success payload.\n */\nexport interface OpencodeValidateResult {\n readonly ok: boolean;\n readonly baseURL?: string;\n readonly models?: readonly string[];\n readonly reason?: string;\n}\n\nexport async function runOpencodeValidate(opencodePath: string): Promise<OpencodeValidateResult> {\n const config = readOpencodeGateway(opencodePath);\n if (config === null) {\n return {\n ok: false,\n reason:\n 'opencode.json does not resolve a usable gateway. Check that providers.openai-compat.options.{baseURL, apiKey} are set and that any {env:VAR} interpolation references are exported.',\n };\n }\n const result = await discoverModels({ baseUrl: config.baseURL, apiKey: config.apiKey });\n if (!result.ok) {\n return { ok: false, baseURL: config.baseURL, reason: result.error.message };\n }\n if (result.value.length === 0) {\n return {\n ok: false,\n baseURL: config.baseURL,\n reason: 'gateway returned 0 models. Check upstream provider quotas / list filters.',\n };\n }\n return {\n ok: true,\n baseURL: config.baseURL,\n models: result.value.map((m) => m.id),\n };\n}\n"],"mappings":"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","names":[]}
@@ -2,9 +2,9 @@ import {
2
2
  IssueTriage,
3
3
  createIssueTriage,
4
4
  formatTriageComment
5
- } from "./chunk-VJD5LANR.js";
6
- import "./chunk-BK54O5J5.js";
7
- import "./chunk-Q3RFPJYK.js";
5
+ } from "./chunk-ERWXGXV2.js";
6
+ import "./chunk-G6ZPVADX.js";
7
+ import "./chunk-3MRM53T4.js";
8
8
  import "./chunk-I7ORMAO7.js";
9
9
  import "./chunk-GOT7OAL5.js";
10
10
  import "./chunk-UP2VWCW5.js";
@@ -13,4 +13,4 @@ export {
13
13
  createIssueTriage,
14
14
  formatTriageComment
15
15
  };
16
- //# sourceMappingURL=issue-triage-UWBHMQHC.js.map
16
+ //# sourceMappingURL=issue-triage-6XD6CVPB.js.map
@@ -2,7 +2,7 @@ import {
2
2
  DEFAULT_MOBIMEM_CONFIG,
3
3
  MobiMem,
4
4
  createMobiMem
5
- } from "./chunk-Q3RFPJYK.js";
5
+ } from "./chunk-3MRM53T4.js";
6
6
  import "./chunk-I7ORMAO7.js";
7
7
  import "./chunk-GOT7OAL5.js";
8
8
  import "./chunk-UP2VWCW5.js";
@@ -11,4 +11,4 @@ export {
11
11
  MobiMem,
12
12
  createMobiMem
13
13
  };
14
- //# sourceMappingURL=mobimem-G4UXJTCV.js.map
14
+ //# sourceMappingURL=mobimem-CG2MNS7V.js.map
@@ -2,7 +2,7 @@ import {
2
2
  ModelCapabilitySchema,
3
3
  createLogger,
4
4
  getInTreeCapabilitiesMatrix
5
- } from "./chunk-Q3RFPJYK.js";
5
+ } from "./chunk-3MRM53T4.js";
6
6
  import "./chunk-I7ORMAO7.js";
7
7
  import {
8
8
  nexusDataPath
@@ -576,4 +576,4 @@ export {
576
576
  isValidRegistrySubcommand,
577
577
  registryCommand
578
578
  };
579
- //# sourceMappingURL=registry-command-HYWVRAHE.js.map
579
+ //# sourceMappingURL=registry-command-RPPC7N2K.js.map
@@ -3,9 +3,9 @@ import {
3
3
  buildPlanFromAnalysis,
4
4
  generateSecurityPlan,
5
5
  resolveScannerData
6
- } from "./chunk-CCODJRS6.js";
6
+ } from "./chunk-ZKOBXAPK.js";
7
7
  import "./chunk-BC3M4VLP.js";
8
- import "./chunk-Q3RFPJYK.js";
8
+ import "./chunk-3MRM53T4.js";
9
9
  import "./chunk-I7ORMAO7.js";
10
10
  import "./chunk-GOT7OAL5.js";
11
11
  import "./chunk-UP2VWCW5.js";
@@ -15,4 +15,4 @@ export {
15
15
  generateSecurityPlan,
16
16
  resolveScannerData
17
17
  };
18
- //# sourceMappingURL=repo-security-plan-W35CXK3T.js.map
18
+ //# sourceMappingURL=repo-security-plan-EIL2BV3S.js.map
@@ -1,12 +1,14 @@
1
1
  import {
2
+ AttributedInsightSchema,
2
3
  synthesizeResearch
3
- } from "./chunk-Q7FTNKPO.js";
4
+ } from "./chunk-JN6UWGHH.js";
4
5
  import "./chunk-NUBSJGQZ.js";
5
- import "./chunk-Q3RFPJYK.js";
6
+ import "./chunk-3MRM53T4.js";
6
7
  import "./chunk-I7ORMAO7.js";
7
8
  import "./chunk-GOT7OAL5.js";
8
9
  import "./chunk-UP2VWCW5.js";
9
10
  export {
11
+ AttributedInsightSchema,
10
12
  synthesizeResearch
11
13
  };
12
- //# sourceMappingURL=research-helpers-synthesize-GUQORWL4.js.map
14
+ //# sourceMappingURL=research-helpers-synthesize-36TUTUUA.js.map
@@ -2,7 +2,7 @@ import {
2
2
  DEFAULT_ROUTING_MEMORY_CONFIG,
3
3
  RoutingMemory,
4
4
  createRoutingMemory
5
- } from "./chunk-Q3RFPJYK.js";
5
+ } from "./chunk-3MRM53T4.js";
6
6
  import "./chunk-I7ORMAO7.js";
7
7
  import "./chunk-GOT7OAL5.js";
8
8
  import "./chunk-UP2VWCW5.js";
@@ -11,4 +11,4 @@ export {
11
11
  RoutingMemory,
12
12
  createRoutingMemory
13
13
  };
14
- //# sourceMappingURL=routing-memory-VOJBOX3X.js.map
14
+ //# sourceMappingURL=routing-memory-5VTX7LQX.js.map
@@ -6,8 +6,8 @@ import {
6
6
  SessionMemory,
7
7
  SessionMemoryError,
8
8
  createSessionMemory
9
- } from "./chunk-EQHYXT56.js";
10
- import "./chunk-Q3RFPJYK.js";
9
+ } from "./chunk-3VWMM6UF.js";
10
+ import "./chunk-3MRM53T4.js";
11
11
  import "./chunk-I7ORMAO7.js";
12
12
  import "./chunk-GOT7OAL5.js";
13
13
  import "./chunk-UP2VWCW5.js";
@@ -20,4 +20,4 @@ export {
20
20
  SessionMemoryError,
21
21
  createSessionMemory
22
22
  };
23
- //# sourceMappingURL=session-memory-B6LQMF4N.js.map
23
+ //# sourceMappingURL=session-memory-7XBV6BMY.js.map
@@ -7,17 +7,17 @@ import {
7
7
  runWizard,
8
8
  setupCommand,
9
9
  setupCommandAsync
10
- } from "./chunk-5LHKTF5L.js";
11
- import "./chunk-DGELGUZF.js";
12
- import "./chunk-S6LQJZY4.js";
13
- import "./chunk-QON7LR7J.js";
14
- import "./chunk-GS3GW7C7.js";
10
+ } from "./chunk-JWQUKMR2.js";
11
+ import "./chunk-CM3TORGV.js";
12
+ import "./chunk-GBILTGR6.js";
13
+ import "./chunk-5WHWKY32.js";
14
+ import "./chunk-YQMQSJQK.js";
15
15
  import "./chunk-NUBSJGQZ.js";
16
- import "./chunk-NC2LECY6.js";
16
+ import "./chunk-VEF6DCQU.js";
17
17
  import "./chunk-ZM4O442V.js";
18
18
  import "./chunk-633WH2ML.js";
19
- import "./chunk-TBRNRW2Q.js";
20
- import "./chunk-Q3RFPJYK.js";
19
+ import "./chunk-PWTJGGKB.js";
20
+ import "./chunk-3MRM53T4.js";
21
21
  import "./chunk-I7ORMAO7.js";
22
22
  import "./chunk-GOT7OAL5.js";
23
23
  import "./chunk-UP2VWCW5.js";
@@ -31,4 +31,4 @@ export {
31
31
  setupCommand,
32
32
  setupCommandAsync
33
33
  };
34
- //# sourceMappingURL=setup-command-KP3QVBEW.js.map
34
+ //# sourceMappingURL=setup-command-3H2XXBJ3.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  runConfigInitSync
3
- } from "./chunk-DGELGUZF.js";
4
- import "./chunk-Q3RFPJYK.js";
3
+ } from "./chunk-CM3TORGV.js";
4
+ import "./chunk-3MRM53T4.js";
5
5
  import "./chunk-I7ORMAO7.js";
6
6
  import "./chunk-GOT7OAL5.js";
7
7
  import "./chunk-UP2VWCW5.js";
8
8
  export {
9
9
  runConfigInitSync
10
10
  };
11
- //# sourceMappingURL=setup-config-53MHJA7S.js.map
11
+ //# sourceMappingURL=setup-config-EI5KROA3.js.map
@@ -2,14 +2,14 @@ import {
2
2
  CUSTOM_API_ALLOW_PRIVATE_ENV,
3
3
  CUSTOM_API_BASE_URL_ENV,
4
4
  validateCustomApiBaseUrl
5
- } from "./chunk-PAFH336F.js";
5
+ } from "./chunk-7NK7BTWP.js";
6
6
  import {
7
7
  CUSTOM_API_DEFAULT_MODEL
8
- } from "./chunk-GS3GW7C7.js";
8
+ } from "./chunk-YQMQSJQK.js";
9
9
  import {
10
10
  err,
11
11
  ok
12
- } from "./chunk-Q3RFPJYK.js";
12
+ } from "./chunk-3MRM53T4.js";
13
13
  import "./chunk-I7ORMAO7.js";
14
14
  import "./chunk-GOT7OAL5.js";
15
15
  import "./chunk-UP2VWCW5.js";
@@ -107,4 +107,4 @@ function buildShellFragment(params) {
107
107
  export {
108
108
  configureCustomApi
109
109
  };
110
- //# sourceMappingURL=setup-custom-api-VD5W754A.js.map
110
+ //# sourceMappingURL=setup-custom-api-WM5W5AY5.js.map
@@ -3,7 +3,7 @@ import {
3
3
  getAdaptiveBonus,
4
4
  queryWithLookback,
5
5
  shouldExplore
6
- } from "./chunk-Q3RFPJYK.js";
6
+ } from "./chunk-3MRM53T4.js";
7
7
  import "./chunk-I7ORMAO7.js";
8
8
  import "./chunk-GOT7OAL5.js";
9
9
  import "./chunk-UP2VWCW5.js";
@@ -13,4 +13,4 @@ export {
13
13
  queryWithLookback,
14
14
  shouldExplore
15
15
  };
16
- //# sourceMappingURL=weather-report-APASTJDQ.js.map
16
+ //# sourceMappingURL=weather-report-YJMVKJGA.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nexus-agents",
3
- "version": "2.75.1",
3
+ "version": "2.76.0",
4
4
  "description": "Intelligent orchestration platform for AI coding tools — routes tasks to the best model, learns from outcomes, and enforces quality through multi-model consensus",
5
5
  "mcpName": "io.github.williamzujkowski/nexus-agents",
6
6
  "license": "MIT",