nexus-agents 2.80.1 → 2.80.3

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 (139) hide show
  1. package/dist/{child-mcp-config-Q6UMCPGZ.js → child-mcp-config-LLLRMOTQ.js} +4 -4
  2. package/dist/{chunk-L7433REX.js → chunk-4OPS2AUD.js} +4 -4
  3. package/dist/{chunk-TFTP7EUQ.js → chunk-6GDF6FLC.js} +8 -8
  4. package/dist/{chunk-D4NEYNBO.js → chunk-6YQCLEHL.js} +2 -2
  5. package/dist/{chunk-D5C5N5Q4.js → chunk-73K7575Z.js} +2 -2
  6. package/dist/{chunk-EPZMFIAX.js → chunk-BMNWUPJO.js} +3 -3
  7. package/dist/{chunk-Q4DXTNGR.js → chunk-ERWTZSAR.js} +2 -2
  8. package/dist/{chunk-LDD272PW.js → chunk-HYOIDNBX.js} +33 -33
  9. package/dist/{chunk-LDD272PW.js.map → chunk-HYOIDNBX.js.map} +1 -1
  10. package/dist/{chunk-2JQXC3CK.js → chunk-I2HMWH4R.js} +42 -2
  11. package/dist/chunk-I2HMWH4R.js.map +1 -0
  12. package/dist/{chunk-7UM5XRGG.js → chunk-LIEFKEAO.js} +2 -2
  13. package/dist/{chunk-T4E6UFFC.js → chunk-LJIB6TNE.js} +6 -6
  14. package/dist/{chunk-I5KYDT23.js → chunk-M66MYHBT.js} +2 -2
  15. package/dist/{chunk-D3MQ4U2R.js → chunk-P4W7PV6L.js} +10 -10
  16. package/dist/{chunk-5WN3WGXG.js → chunk-PKBKWWPK.js} +3 -3
  17. package/dist/{chunk-UP2VWCW5.js → chunk-PR4QN5HX.js} +12 -7
  18. package/dist/{chunk-HR7C4DSA.js → chunk-PUSFT342.js} +4 -4
  19. package/dist/{chunk-ALDKPBOZ.js → chunk-PV3OEDLO.js} +2 -2
  20. package/dist/{chunk-NALIFUBD.js → chunk-PZEE6T5Y.js} +4 -4
  21. package/dist/{chunk-23XU4LE2.js → chunk-Q27M6KHP.js} +4 -4
  22. package/dist/{chunk-WZ2T4T7N.js → chunk-Q2PSRDW6.js} +6 -6
  23. package/dist/{chunk-O2ECPTFH.js → chunk-RLQZOEMX.js} +3 -3
  24. package/dist/{chunk-7ZKZ7K7J.js → chunk-S77SLJ2J.js} +2 -2
  25. package/dist/{chunk-UEKTTIDA.js → chunk-SVKH6ASN.js} +8 -8
  26. package/dist/{chunk-MVIYQMQM.js → chunk-SZ7VPIRA.js} +2 -2
  27. package/dist/{chunk-GODRGVF4.js → chunk-T7RGD5JW.js} +3 -3
  28. package/dist/{chunk-SX3P2PD2.js → chunk-UTL2SFIN.js} +2 -2
  29. package/dist/{chunk-NCBWA6RU.js → chunk-UZCDHAY3.js} +2 -2
  30. package/dist/{chunk-54UT2JUQ.js → chunk-V2KWEIV5.js} +2 -2
  31. package/dist/{chunk-MUIA32LU.js → chunk-WZGCVCRQ.js} +2 -2
  32. package/dist/{chunk-33LDLZCC.js → chunk-YLYT7GSG.js} +2 -2
  33. package/dist/cli-circuit-breaker-O5RV47BO.js +13 -0
  34. package/dist/cli.js +40 -39
  35. package/dist/cli.js.map +1 -1
  36. package/dist/{codebase-search-CZUA37RU.js → codebase-search-PIBRTGBE.js} +2 -2
  37. package/dist/{composite-router-ZP72LQFH.js → composite-router-SKHVZ4UF.js} +4 -4
  38. package/dist/consensus-vote-VBXLXVFF.js +30 -0
  39. package/dist/context-retriever-KLJ5X4TL.js +18 -0
  40. package/dist/dist-APHOQ26Z.js +45959 -0
  41. package/dist/dist-APHOQ26Z.js.map +1 -0
  42. package/dist/{dist-NIXVXYIH.js → dist-OFXI4GYH.js} +2 -2
  43. package/dist/doctor-deep-IH4FG5YZ.js +12 -0
  44. package/dist/expert-bridge-EKPDZKMD.js +11 -0
  45. package/dist/{expert-config-HN7U7X2K.js → expert-config-OIIUMJFB.js} +2 -2
  46. package/dist/factory-CQUDIMIG.js +17 -0
  47. package/dist/factory-FTE7TDCT.js +14 -0
  48. package/dist/index.d.ts +35 -5
  49. package/dist/index.js +51 -32
  50. package/dist/index.js.map +1 -1
  51. package/dist/{init-opencode-WFL4OXMB.js → init-opencode-MXZJKG32.js} +7 -7
  52. package/dist/issue-triage-H5VLNGWU.js +15 -0
  53. package/dist/{learning-persistence-TGOBRUUU.js → learning-persistence-NX2KHL5T.js} +3 -3
  54. package/dist/{outcome-store-adapter-QRFJJIKB.js → outcome-store-adapter-D3UDQFNQ.js} +2 -2
  55. package/dist/{pr-reviewer-helpers-L4L324FQ.js → pr-reviewer-helpers-WYPUYQ2U.js} +2 -2
  56. package/dist/{registry-command-YMZPSW7S.js → registry-command-ALVYOGQY.js} +4 -4
  57. package/dist/{repo-analyze-GBQT4LAK.js → repo-analyze-D2OY2QSR.js} +2 -2
  58. package/dist/{repo-security-plan-TGDXTSHS.js → repo-security-plan-VJCWWPWO.js} +5 -5
  59. package/dist/research-helpers-synthesize-XUTBDVI7.js +13 -0
  60. package/dist/{routing-memory-RG3U2MC2.js → routing-memory-QKQ3OGWW.js} +4 -4
  61. package/dist/{session-memory-C5GC2JAX.js → session-memory-N76TNRSK.js} +5 -5
  62. package/dist/{setup-command-OXJ32UAI.js → setup-command-IJ6WIK7O.js} +12 -12
  63. package/dist/setup-config-Y7KZSFX3.js +10 -0
  64. package/dist/{setup-custom-api-4EYRKCHB.js → setup-custom-api-QEKHNYQJ.js} +6 -6
  65. package/dist/{shared-memory-AEO2HJLC.js → shared-memory-CM6T2MYE.js} +2 -2
  66. package/dist/{symbol-extractor-UEBANFSN.js → symbol-extractor-WYXPJH65.js} +2 -2
  67. package/dist/{tool-memory-LUXUOE6Q.js → tool-memory-MFDLIJOB.js} +6 -6
  68. package/dist/{weather-report-3KSDTC7T.js → weather-report-IXPYIYE4.js} +4 -4
  69. package/package.json +16 -16
  70. package/dist/chunk-2JQXC3CK.js.map +0 -1
  71. package/dist/cli-circuit-breaker-EUERR2HK.js +0 -13
  72. package/dist/consensus-vote-TU3TQ4VH.js +0 -30
  73. package/dist/context-retriever-OTLV46DF.js +0 -18
  74. package/dist/dist-RLMRWMYO.js +0 -49531
  75. package/dist/dist-RLMRWMYO.js.map +0 -1
  76. package/dist/doctor-deep-ZMBSG2DF.js +0 -12
  77. package/dist/expert-bridge-IK4TY7HA.js +0 -11
  78. package/dist/factory-45NHZFLK.js +0 -17
  79. package/dist/factory-QDHYIYVE.js +0 -14
  80. package/dist/issue-triage-UHFCGTEJ.js +0 -15
  81. package/dist/research-helpers-synthesize-5BAN353Y.js +0 -13
  82. package/dist/setup-config-KNMVMGDD.js +0 -10
  83. /package/dist/{child-mcp-config-Q6UMCPGZ.js.map → child-mcp-config-LLLRMOTQ.js.map} +0 -0
  84. /package/dist/{chunk-L7433REX.js.map → chunk-4OPS2AUD.js.map} +0 -0
  85. /package/dist/{chunk-TFTP7EUQ.js.map → chunk-6GDF6FLC.js.map} +0 -0
  86. /package/dist/{chunk-D4NEYNBO.js.map → chunk-6YQCLEHL.js.map} +0 -0
  87. /package/dist/{chunk-D5C5N5Q4.js.map → chunk-73K7575Z.js.map} +0 -0
  88. /package/dist/{chunk-EPZMFIAX.js.map → chunk-BMNWUPJO.js.map} +0 -0
  89. /package/dist/{chunk-Q4DXTNGR.js.map → chunk-ERWTZSAR.js.map} +0 -0
  90. /package/dist/{chunk-7UM5XRGG.js.map → chunk-LIEFKEAO.js.map} +0 -0
  91. /package/dist/{chunk-T4E6UFFC.js.map → chunk-LJIB6TNE.js.map} +0 -0
  92. /package/dist/{chunk-I5KYDT23.js.map → chunk-M66MYHBT.js.map} +0 -0
  93. /package/dist/{chunk-D3MQ4U2R.js.map → chunk-P4W7PV6L.js.map} +0 -0
  94. /package/dist/{chunk-5WN3WGXG.js.map → chunk-PKBKWWPK.js.map} +0 -0
  95. /package/dist/{chunk-UP2VWCW5.js.map → chunk-PR4QN5HX.js.map} +0 -0
  96. /package/dist/{chunk-HR7C4DSA.js.map → chunk-PUSFT342.js.map} +0 -0
  97. /package/dist/{chunk-ALDKPBOZ.js.map → chunk-PV3OEDLO.js.map} +0 -0
  98. /package/dist/{chunk-NALIFUBD.js.map → chunk-PZEE6T5Y.js.map} +0 -0
  99. /package/dist/{chunk-23XU4LE2.js.map → chunk-Q27M6KHP.js.map} +0 -0
  100. /package/dist/{chunk-WZ2T4T7N.js.map → chunk-Q2PSRDW6.js.map} +0 -0
  101. /package/dist/{chunk-O2ECPTFH.js.map → chunk-RLQZOEMX.js.map} +0 -0
  102. /package/dist/{chunk-7ZKZ7K7J.js.map → chunk-S77SLJ2J.js.map} +0 -0
  103. /package/dist/{chunk-UEKTTIDA.js.map → chunk-SVKH6ASN.js.map} +0 -0
  104. /package/dist/{chunk-MVIYQMQM.js.map → chunk-SZ7VPIRA.js.map} +0 -0
  105. /package/dist/{chunk-GODRGVF4.js.map → chunk-T7RGD5JW.js.map} +0 -0
  106. /package/dist/{chunk-SX3P2PD2.js.map → chunk-UTL2SFIN.js.map} +0 -0
  107. /package/dist/{chunk-NCBWA6RU.js.map → chunk-UZCDHAY3.js.map} +0 -0
  108. /package/dist/{chunk-54UT2JUQ.js.map → chunk-V2KWEIV5.js.map} +0 -0
  109. /package/dist/{chunk-MUIA32LU.js.map → chunk-WZGCVCRQ.js.map} +0 -0
  110. /package/dist/{chunk-33LDLZCC.js.map → chunk-YLYT7GSG.js.map} +0 -0
  111. /package/dist/{cli-circuit-breaker-EUERR2HK.js.map → cli-circuit-breaker-O5RV47BO.js.map} +0 -0
  112. /package/dist/{codebase-search-CZUA37RU.js.map → codebase-search-PIBRTGBE.js.map} +0 -0
  113. /package/dist/{composite-router-ZP72LQFH.js.map → composite-router-SKHVZ4UF.js.map} +0 -0
  114. /package/dist/{consensus-vote-TU3TQ4VH.js.map → consensus-vote-VBXLXVFF.js.map} +0 -0
  115. /package/dist/{context-retriever-OTLV46DF.js.map → context-retriever-KLJ5X4TL.js.map} +0 -0
  116. /package/dist/{dist-NIXVXYIH.js.map → dist-OFXI4GYH.js.map} +0 -0
  117. /package/dist/{doctor-deep-ZMBSG2DF.js.map → doctor-deep-IH4FG5YZ.js.map} +0 -0
  118. /package/dist/{expert-bridge-IK4TY7HA.js.map → expert-bridge-EKPDZKMD.js.map} +0 -0
  119. /package/dist/{expert-config-HN7U7X2K.js.map → expert-config-OIIUMJFB.js.map} +0 -0
  120. /package/dist/{factory-45NHZFLK.js.map → factory-CQUDIMIG.js.map} +0 -0
  121. /package/dist/{factory-QDHYIYVE.js.map → factory-FTE7TDCT.js.map} +0 -0
  122. /package/dist/{init-opencode-WFL4OXMB.js.map → init-opencode-MXZJKG32.js.map} +0 -0
  123. /package/dist/{issue-triage-UHFCGTEJ.js.map → issue-triage-H5VLNGWU.js.map} +0 -0
  124. /package/dist/{learning-persistence-TGOBRUUU.js.map → learning-persistence-NX2KHL5T.js.map} +0 -0
  125. /package/dist/{outcome-store-adapter-QRFJJIKB.js.map → outcome-store-adapter-D3UDQFNQ.js.map} +0 -0
  126. /package/dist/{pr-reviewer-helpers-L4L324FQ.js.map → pr-reviewer-helpers-WYPUYQ2U.js.map} +0 -0
  127. /package/dist/{registry-command-YMZPSW7S.js.map → registry-command-ALVYOGQY.js.map} +0 -0
  128. /package/dist/{repo-analyze-GBQT4LAK.js.map → repo-analyze-D2OY2QSR.js.map} +0 -0
  129. /package/dist/{repo-security-plan-TGDXTSHS.js.map → repo-security-plan-VJCWWPWO.js.map} +0 -0
  130. /package/dist/{research-helpers-synthesize-5BAN353Y.js.map → research-helpers-synthesize-XUTBDVI7.js.map} +0 -0
  131. /package/dist/{routing-memory-RG3U2MC2.js.map → routing-memory-QKQ3OGWW.js.map} +0 -0
  132. /package/dist/{session-memory-C5GC2JAX.js.map → session-memory-N76TNRSK.js.map} +0 -0
  133. /package/dist/{setup-command-OXJ32UAI.js.map → setup-command-IJ6WIK7O.js.map} +0 -0
  134. /package/dist/{setup-config-KNMVMGDD.js.map → setup-config-Y7KZSFX3.js.map} +0 -0
  135. /package/dist/{setup-custom-api-4EYRKCHB.js.map → setup-custom-api-QEKHNYQJ.js.map} +0 -0
  136. /package/dist/{shared-memory-AEO2HJLC.js.map → shared-memory-CM6T2MYE.js.map} +0 -0
  137. /package/dist/{symbol-extractor-UEBANFSN.js.map → symbol-extractor-WYXPJH65.js.map} +0 -0
  138. /package/dist/{tool-memory-LUXUOE6Q.js.map → tool-memory-MFDLIJOB.js.map} +0 -0
  139. /package/dist/{weather-report-3KSDTC7T.js.map → weather-report-IXPYIYE4.js.map} +0 -0
@@ -18,7 +18,7 @@ import {
18
18
  setMemoryRegistry,
19
19
  subscribeToMemoryEvents
20
20
  } from "./chunk-PQHVC4BD.js";
21
- import "./chunk-UP2VWCW5.js";
21
+ import "./chunk-PR4QN5HX.js";
22
22
  export {
23
23
  InMemoryBackend,
24
24
  MemoryRegistry,
@@ -39,4 +39,4 @@ export {
39
39
  setMemoryRegistry,
40
40
  subscribeToMemoryEvents
41
41
  };
42
- //# sourceMappingURL=dist-NIXVXYIH.js.map
42
+ //# sourceMappingURL=dist-OFXI4GYH.js.map
@@ -0,0 +1,12 @@
1
+ import {
2
+ formatDeepDiagnostics,
3
+ runDeepDiagnostics
4
+ } from "./chunk-S77SLJ2J.js";
5
+ import "./chunk-LJIB6TNE.js";
6
+ import "./chunk-I2HMWH4R.js";
7
+ import "./chunk-PR4QN5HX.js";
8
+ export {
9
+ formatDeepDiagnostics,
10
+ runDeepDiagnostics
11
+ };
12
+ //# sourceMappingURL=doctor-deep-IH4FG5YZ.js.map
@@ -0,0 +1,11 @@
1
+ import {
2
+ executeExpert
3
+ } from "./chunk-SVKH6ASN.js";
4
+ import "./chunk-WZGCVCRQ.js";
5
+ import "./chunk-LJIB6TNE.js";
6
+ import "./chunk-I2HMWH4R.js";
7
+ import "./chunk-PR4QN5HX.js";
8
+ export {
9
+ executeExpert
10
+ };
11
+ //# sourceMappingURL=expert-bridge-EKPDZKMD.js.map
@@ -8,7 +8,7 @@ import {
8
8
  safeValidateExpertConfig,
9
9
  validateExpertConfig
10
10
  } from "./chunk-ZM4O442V.js";
11
- import "./chunk-UP2VWCW5.js";
11
+ import "./chunk-PR4QN5HX.js";
12
12
  export {
13
13
  BUILT_IN_EXPERTS,
14
14
  BuiltInExpertTypeSchema,
@@ -19,4 +19,4 @@ export {
19
19
  safeValidateExpertConfig,
20
20
  validateExpertConfig
21
21
  };
22
- //# sourceMappingURL=expert-config-HN7U7X2K.js.map
22
+ //# sourceMappingURL=expert-config-OIIUMJFB.js.map
@@ -0,0 +1,17 @@
1
+ import {
2
+ createAllAdapters,
3
+ createCliAdapter,
4
+ getAvailableClis,
5
+ isCliAvailable
6
+ } from "./chunk-BMNWUPJO.js";
7
+ import "./chunk-LIEFKEAO.js";
8
+ import "./chunk-LJIB6TNE.js";
9
+ import "./chunk-I2HMWH4R.js";
10
+ import "./chunk-PR4QN5HX.js";
11
+ export {
12
+ createAllAdapters,
13
+ createCliAdapter,
14
+ getAvailableClis,
15
+ isCliAvailable
16
+ };
17
+ //# sourceMappingURL=factory-CQUDIMIG.js.map
@@ -0,0 +1,14 @@
1
+ import {
2
+ createGitHubProvider,
3
+ createScmProvider
4
+ } from "./chunk-Q27M6KHP.js";
5
+ import "./chunk-UZCDHAY3.js";
6
+ import "./chunk-UTL2SFIN.js";
7
+ import "./chunk-LJIB6TNE.js";
8
+ import "./chunk-I2HMWH4R.js";
9
+ import "./chunk-PR4QN5HX.js";
10
+ export {
11
+ createGitHubProvider,
12
+ createScmProvider
13
+ };
14
+ //# sourceMappingURL=factory-FTE7TDCT.js.map
package/dist/index.d.ts CHANGED
@@ -28434,6 +28434,15 @@ declare function createOrchestratorFactory(config?: OrchestratorFactoryConfig):
28434
28434
  *
28435
28435
  * Analyzes task characteristics and selects the optimal orchestration
28436
28436
  * pattern using a rule-based classification system.
28437
+ *
28438
+ * Scope of `recordOutcome` / `getMetrics` (#2824): the recorded
28439
+ * `PatternOutcome`s live in a buffer owned by this router instance.
28440
+ * `route()` is a deterministic, rule-based classifier — it does NOT
28441
+ * consume recorded outcomes, so there is no per-instance learning to
28442
+ * "lose", and nothing to aggregate across processes. The pair is an
28443
+ * observability surface only. If cross-process pattern metrics are
28444
+ * ever needed, add a dedicated consumer that writes to a shared
28445
+ * `OutcomeStore` rather than widening this router's responsibility.
28437
28446
  */
28438
28447
  declare function createWorkflowRouter(options?: {
28439
28448
  readonly logger?: ILogger | undefined;
@@ -28443,9 +28452,12 @@ declare function createWorkflowRouter(options?: {
28443
28452
  interface IWorkflowRouter {
28444
28453
  /** Routes a task to the optimal workflow pattern. */
28445
28454
  route(signals: TaskSignals, options?: WorkflowRouterOptions): RoutingDecision$1;
28446
- /** Records an execution outcome for performance tracking. */
28455
+ /**
28456
+ * Records an execution outcome into this router instance's buffer.
28457
+ * Observability only — `route()` never reads it back (#2824).
28458
+ */
28447
28459
  recordOutcome(outcome: PatternOutcome): void;
28448
- /** Gets aggregated metrics, optionally filtered by pattern. */
28460
+ /** Aggregates this instance's recorded outcomes, optionally filtered by pattern. */
28449
28461
  getMetrics(pattern?: WorkflowPattern): readonly PatternMetrics[];
28450
28462
  }
28451
28463
 
@@ -30861,7 +30873,7 @@ declare class EventBus implements IEventBus {
30861
30873
  /**
30862
30874
  * ArtifactStore — V2 Pipeline Artifact Storage (Issue #912, Phase 4-3)
30863
30875
  *
30864
- * In-memory artifact store with bounded capacity and LRU eviction.
30876
+ * In-memory artifact store with bounded capacity and FIFO eviction.
30865
30877
  * Tracks provenance chains for artifact traceability.
30866
30878
  *
30867
30879
  * @see docs/v2/08-observability-eventing.md
@@ -30906,8 +30918,15 @@ interface ArtifactStoreOptions {
30906
30918
  /**
30907
30919
  * In-memory artifact store with bounded capacity.
30908
30920
  *
30909
- * When the store exceeds maxArtifacts, the oldest artifacts
30910
- * are evicted (FIFO). Content size is validated on put().
30921
+ * When the store exceeds maxArtifacts, the oldest artifacts are evicted
30922
+ * (FIFO insertion order, never reordered on `get()`). Content size is
30923
+ * validated on put().
30924
+ *
30925
+ * This is a bounded in-memory working cache, NOT the durable audit
30926
+ * substrate (#2867): once `maxArtifacts` is reached, old artifacts and
30927
+ * their provenance are dropped. For tamper-evident, retained audit
30928
+ * history use the on-disk Merkle audit log via the `verify_audit_chain`
30929
+ * MCP tool.
30911
30930
  */
30912
30931
  declare class ArtifactStore implements IArtifactStore {
30913
30932
  private readonly artifacts;
@@ -30919,6 +30938,17 @@ declare class ArtifactStore implements IArtifactStore {
30919
30938
  put(artifact: Artifact): ArtifactRef;
30920
30939
  get(ref: ArtifactRef): Artifact | undefined;
30921
30940
  query(filter: ArtifactFilter): readonly ArtifactRef[];
30941
+ /**
30942
+ * Returns the full provenance chain for an artifact — the artifact
30943
+ * itself plus every ancestor transitively reachable via `inputRefs`
30944
+ * (#2867). Iterative DFS; the `visited` set makes it safe against
30945
+ * cycles and diamond/multi-parent DAGs (each artifact appears once).
30946
+ *
30947
+ * Entries are in reachability (start-node-first DFS) order, not
30948
+ * topological order. An ancestor that has been FIFO-evicted from the
30949
+ * store is silently skipped — the chain truncates there rather than
30950
+ * throwing. A missing root returns `[]`.
30951
+ */
30922
30952
  provenance(ref: ArtifactRef): readonly ProvenanceEntry[];
30923
30953
  private validateContentSize;
30924
30954
  private evictIfNeeded;
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createGitHubProvider,
3
3
  createScmProvider
4
- } from "./chunk-23XU4LE2.js";
4
+ } from "./chunk-Q27M6KHP.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-LDD272PW.js";
521
+ } from "./chunk-HYOIDNBX.js";
522
522
  import "./chunk-AP2FD37C.js";
523
523
  import {
524
524
  SharedMemoryStore
@@ -527,21 +527,21 @@ import {
527
527
  getTokenEnvVars,
528
528
  hasToken,
529
529
  resolveToken
530
- } from "./chunk-NCBWA6RU.js";
530
+ } from "./chunk-UZCDHAY3.js";
531
531
  import "./chunk-X2M7OF27.js";
532
532
  import {
533
533
  OPENAI_MODELS,
534
534
  OPENAI_MODEL_ALIASES,
535
535
  OpenAIAdapter,
536
536
  createOpenAIAdapter
537
- } from "./chunk-5WN3WGXG.js";
537
+ } from "./chunk-PKBKWWPK.js";
538
538
  import {
539
539
  CliCircuitBreakerIntegration,
540
540
  createCliCircuitBreakerIntegration
541
- } from "./chunk-GODRGVF4.js";
541
+ } from "./chunk-T7RGD5JW.js";
542
542
  import {
543
543
  executeExpert
544
- } from "./chunk-UEKTTIDA.js";
544
+ } from "./chunk-SVKH6ASN.js";
545
545
  import {
546
546
  AgentFindingSchema,
547
547
  AgentPerformanceSchema,
@@ -637,10 +637,10 @@ import {
637
637
  validateToolInput,
638
638
  withModelNotFoundFallback,
639
639
  wrapResilientWithFallback
640
- } from "./chunk-D3MQ4U2R.js";
640
+ } from "./chunk-P4W7PV6L.js";
641
641
  import {
642
642
  PROVIDER_ENV_KEYS
643
- } from "./chunk-I5KYDT23.js";
643
+ } from "./chunk-M66MYHBT.js";
644
644
  import {
645
645
  AdapterModelError,
646
646
  BaseAdapter,
@@ -664,8 +664,8 @@ import {
664
664
  transformStream,
665
665
  validateApiKeyPresence,
666
666
  withTimeout
667
- } from "./chunk-33LDLZCC.js";
668
- import "./chunk-Q4DXTNGR.js";
667
+ } from "./chunk-YLYT7GSG.js";
668
+ import "./chunk-ERWTZSAR.js";
669
669
  import {
670
670
  AgentActionSchema,
671
671
  GitHubReviewer,
@@ -698,11 +698,11 @@ import {
698
698
  sanitizeInput,
699
699
  validateAgentAction,
700
700
  validateCorroboration
701
- } from "./chunk-O2ECPTFH.js";
701
+ } from "./chunk-RLQZOEMX.js";
702
702
  import {
703
703
  GitHubProvider,
704
704
  ScmError
705
- } from "./chunk-SX3P2PD2.js";
705
+ } from "./chunk-UTL2SFIN.js";
706
706
  import {
707
707
  FALLBACK_SCANNER_DATA,
708
708
  buildPlanFromAnalysis,
@@ -710,7 +710,7 @@ import {
710
710
  generateSecurityPlan,
711
711
  getRegistryManifest,
712
712
  resolveScannerData
713
- } from "./chunk-MVIYQMQM.js";
713
+ } from "./chunk-SZ7VPIRA.js";
714
714
  import {
715
715
  analyzeGitHubRepo,
716
716
  analyzeRepo,
@@ -720,10 +720,10 @@ import "./chunk-BQ4YXGGQ.js";
720
720
  import {
721
721
  PersistentStrategyDistiller,
722
722
  RulesSnapshotSchema
723
- } from "./chunk-L7433REX.js";
723
+ } from "./chunk-4OPS2AUD.js";
724
724
  import {
725
725
  MemoryError
726
- } from "./chunk-NALIFUBD.js";
726
+ } from "./chunk-PZEE6T5Y.js";
727
727
  import {
728
728
  AppConfigSchema,
729
729
  ExpertConfigSchema,
@@ -742,7 +742,7 @@ import {
742
742
  getKnownNexusVarNames,
743
743
  startStdioServer,
744
744
  validateNexusEnv
745
- } from "./chunk-TFTP7EUQ.js";
745
+ } from "./chunk-6GDF6FLC.js";
746
746
  import {
747
747
  AvailabilityCache,
748
748
  filterAvailableModels,
@@ -751,15 +751,15 @@ import {
751
751
  getFallbackChain,
752
752
  resetAvailabilityCache,
753
753
  resolveFallback
754
- } from "./chunk-MUIA32LU.js";
754
+ } from "./chunk-WZGCVCRQ.js";
755
755
  import {
756
756
  AvailableModelsCache,
757
757
  getDefaultAvailableModelsCache,
758
758
  setDefaultAvailableModelsCache
759
- } from "./chunk-D5C5N5Q4.js";
759
+ } from "./chunk-73K7575Z.js";
760
760
  import {
761
761
  DEFAULTS
762
- } from "./chunk-54UT2JUQ.js";
762
+ } from "./chunk-V2KWEIV5.js";
763
763
  import "./chunk-NUBSJGQZ.js";
764
764
  import "./chunk-633WH2ML.js";
765
765
  import {
@@ -790,8 +790,8 @@ import {
790
790
  isCliAvailable,
791
791
  isRetryableError,
792
792
  sleep
793
- } from "./chunk-EPZMFIAX.js";
794
- import "./chunk-7UM5XRGG.js";
793
+ } from "./chunk-BMNWUPJO.js";
794
+ import "./chunk-LIEFKEAO.js";
795
795
  import {
796
796
  BUILT_IN_EXPERTS,
797
797
  BuiltInExpertTypeSchema,
@@ -802,7 +802,7 @@ import {
802
802
  validateExpertConfig
803
803
  } from "./chunk-ZM4O442V.js";
804
804
  import "./chunk-PQHVC4BD.js";
805
- import "./chunk-ALDKPBOZ.js";
805
+ import "./chunk-PV3OEDLO.js";
806
806
  import {
807
807
  AgentCapability,
808
808
  AgentError,
@@ -879,9 +879,9 @@ import {
879
879
  toError,
880
880
  unwrap,
881
881
  unwrapOr
882
- } from "./chunk-T4E6UFFC.js";
883
- import "./chunk-2JQXC3CK.js";
884
- import "./chunk-UP2VWCW5.js";
882
+ } from "./chunk-LJIB6TNE.js";
883
+ import "./chunk-I2HMWH4R.js";
884
+ import "./chunk-PR4QN5HX.js";
885
885
 
886
886
  // src/adapters/factory.ts
887
887
  import { z } from "zod";
@@ -5683,17 +5683,36 @@ var ArtifactStore = class {
5683
5683
  }
5684
5684
  return refs;
5685
5685
  }
5686
+ /**
5687
+ * Returns the full provenance chain for an artifact — the artifact
5688
+ * itself plus every ancestor transitively reachable via `inputRefs`
5689
+ * (#2867). Iterative DFS; the `visited` set makes it safe against
5690
+ * cycles and diamond/multi-parent DAGs (each artifact appears once).
5691
+ *
5692
+ * Entries are in reachability (start-node-first DFS) order, not
5693
+ * topological order. An ancestor that has been FIFO-evicted from the
5694
+ * store is silently skipped — the chain truncates there rather than
5695
+ * throwing. A missing root returns `[]`.
5696
+ */
5686
5697
  provenance(ref) {
5687
- const artifact = this.artifacts.get(ref.id);
5688
- if (artifact === void 0) return [];
5689
- return [
5690
- {
5698
+ const entries = [];
5699
+ const visited = /* @__PURE__ */ new Set();
5700
+ const stack = [ref.id];
5701
+ while (stack.length > 0) {
5702
+ const id = stack.pop();
5703
+ if (id === void 0 || visited.has(id)) continue;
5704
+ visited.add(id);
5705
+ const artifact = this.artifacts.get(id);
5706
+ if (artifact === void 0) continue;
5707
+ entries.push({
5691
5708
  artifactId: artifact.id,
5692
5709
  plugin: artifact.createdBy,
5693
5710
  timestamp: artifact.createdAt,
5694
5711
  inputArtifacts: artifact.inputRefs.map((r) => r.id)
5695
- }
5696
- ];
5712
+ });
5713
+ for (const r of artifact.inputRefs) stack.push(r.id);
5714
+ }
5715
+ return entries;
5697
5716
  }
5698
5717
  // ==========================================================================
5699
5718
  // Internal
@@ -5984,7 +6003,7 @@ function buildVotingInput(plan, config) {
5984
6003
  }
5985
6004
  async function executeSingleVote(plan, config, log) {
5986
6005
  try {
5987
- const { executeVoting } = await import("./consensus-vote-TU3TQ4VH.js");
6006
+ const { executeVoting } = await import("./consensus-vote-VBXLXVFF.js");
5988
6007
  const input = buildVotingInput(plan, config);
5989
6008
  const result = await executeVoting(input, log);
5990
6009
  return parseVotingResult(result);