@cnstra/core 2.2.1 → 2.3.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.
@@ -7,8 +7,13 @@ export declare class CNSNetwork<TNeuron extends TCNSNeuron<any, any>, TDendrite
7
7
  /**
8
8
  * Strongly Connected Components of the neuron graph.
9
9
  * Each component is a set of neuron objects that can reach each other.
10
+ *
11
+ * Computed lazily on first access: the SCC machinery is only needed for
12
+ * `autoCleanupContexts` (off by default), so most networks never pay for it.
10
13
  */
11
- stronglyConnectedComponents: Set<TNeuron>[];
14
+ private _stronglyConnectedComponents;
15
+ private sccBuilt;
16
+ get stronglyConnectedComponents(): Set<TNeuron>[];
12
17
  /**
13
18
  * Quick lookup: neuron -> SCC index for fast reachability checks.
14
19
  */
@@ -26,18 +31,10 @@ export declare class CNSNetwork<TNeuron extends TCNSNeuron<any, any>, TDendrite
26
31
  * Built once at construction time.
27
32
  */
28
33
  private subIndex;
29
- private dendriteIndex;
30
- private collateralIndex;
31
34
  private parentNeuronByCollateral;
32
35
  constructor(neurons: TNeuron[]);
33
- /**
34
- * Validate uniqueness constraints:
35
- * - (legacy) collateral instances used to be single-owner; in object-identity routing
36
- * a collateral can be emitted by multiple neurons (fan-in), so we no longer
37
- * enforce single ownership here.
38
- * Throws aggregated error if violations are found.
39
- */
40
- private validateUniqueIdentifiers;
36
+ /** Build the SCC analysis the first time anything needs it. */
37
+ private ensureSCC;
41
38
  /**
42
39
  * Build the neuron graph where neurons are connected if one can stimulate the other.
43
40
  */
@@ -55,10 +52,6 @@ export declare class CNSNetwork<TNeuron extends TCNSNeuron<any, any>, TDendrite
55
52
  * Uses topological sort for efficient computation
56
53
  */
57
54
  private buildSCCAncestors;
58
- /**
59
- * Get outgoing edges for a given SCC index
60
- */
61
- private getOutgoingEdges;
62
55
  /**
63
56
  * Check if a neuron can be reached again (including self-calling).
64
57
  * Returns true if the neuron is in a strongly connected component with more than one member,
@@ -1 +1 @@
1
- {"version":3,"file":"CNSNetwork.d.ts","sourceRoot":"","sources":["../src/CNSNetwork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,UAAU,CACnB,OAAO,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EACpC,SAAS,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAqCjC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAnCpC;;;OAGG;IACI,2BAA2B,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAM;IAExD;;OAEG;IACH,OAAO,CAAC,WAAW,CAA8B;IAEjD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAuC;IAErD;;OAEG;IACH,OAAO,CAAC,YAAY,CAAuC;IAE3D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAGZ;IAEJ,OAAO,CAAC,aAAa,CAAgD;IACrE,OAAO,CAAC,eAAe,CAAqC;IAE5D,OAAO,CAAC,wBAAwB,CAA8C;gBAEjD,OAAO,EAAE,OAAO,EAAE;IAM/C;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAIjC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAqEhB;;OAEG;IACH,OAAO,CAAC,WAAW;IA6BnB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAiDzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;;;OAIG;IACI,iBAAiB,CAAC,MAAM,EAAE,OAAO;IAQxC;;OAEG;IACI,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAI/D;;;OAGG;IACI,yBAAyB,CAC5B,MAAM,EAAE,OAAO,EACf,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,OAAO;IA4BV,OAAO,CAAC,YAAY;IA0Bb,2BAA2B,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC;IAI9D,YAAY;IAIZ,cAAc;IAId,cAAc,CACjB,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,GACnC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;CAG1C"}
1
+ {"version":3,"file":"CNSNetwork.d.ts","sourceRoot":"","sources":["../src/CNSNetwork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,UAAU,CACnB,OAAO,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EACpC,SAAS,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IA2CjC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAzCpC;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B,CAAsB;IAC1D,OAAO,CAAC,QAAQ,CAAS;IAEzB,IAAW,2BAA2B,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,CAGvD;IAED;;OAEG;IACH,OAAO,CAAC,WAAW,CAA8B;IAEjD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAuC;IAErD;;OAEG;IACH,OAAO,CAAC,YAAY,CAAuC;IAE3D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAGZ;IAEJ,OAAO,CAAC,wBAAwB,CAA8C;gBAEjD,OAAO,EAAE,OAAO,EAAE;IAM/C,+DAA+D;IAC/D,OAAO,CAAC,SAAS;IAMjB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAqEhB;;OAEG;IACH,OAAO,CAAC,WAAW;IA6BnB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAmDzB;;;;OAIG;IACI,iBAAiB,CAAC,MAAM,EAAE,OAAO;IASxC;;OAEG;IACI,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAK/D;;;OAGG;IACI,yBAAyB,CAC5B,MAAM,EAAE,OAAO,EACf,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,OAAO;IA6BV,OAAO,CAAC,YAAY;IAsBb,2BAA2B,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC;IAM9D,YAAY;IAaZ,cAAc;IAUd,cAAc,CACjB,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,GACnC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;CAG1C"}
@@ -23,7 +23,7 @@ export declare class CNSStimulation<TNeuron extends TCNSNeuron<any, any>, TDendr
23
23
  private activeTasks?;
24
24
  private pumping;
25
25
  private needsPump;
26
- private readonly nueronVisitMap?;
26
+ private readonly neuronVisitMap?;
27
27
  private readonly instanceNeuronQueue;
28
28
  private scheduledCount;
29
29
  private pendingTasks?;
@@ -1 +1 @@
1
- {"version":3,"file":"CNSStimulation.d.ts","sourceRoot":"","sources":["../src/CNSStimulation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CNSStimulation.d.ts","sourceRoot":"","sources":["../src/CNSStimulation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA8DhD,qBAAa,cAAc,CACvB,OAAO,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EACpC,SAAS,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;aA0DvD,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;aAE5B,OAAO,CAAC,EAAE,sBAAsB,CAAC,uBAAuB,CAAC;IAvD7E,OAAO,CAAC,QAAQ,CAAC,CAA8B;IAM/C,OAAO,CAAC,MAAM,CAAC,CAAuD;IACtE,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,WAAW,CAAC,CAAyC;IAE7D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAuB;IACvD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAkC;IACtE,OAAO,CAAC,cAAc,CAAK;IAG3B,OAAO,CAAC,YAAY,CAAC,CAAyC;IAE9D,OAAO,CAAC,WAAW,CAAC,CAAkD;IAItE,OAAO,CAAC,SAAS,CAAC,CAAgB;IAClC,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,eAAe,CAAC,CAAmB;IAC3C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,eAAe,CAAoB;IAE3C;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAEF;IAE1B;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAsB;gBAGnC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,EAC5C,mBAAmB,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,OAAO,CAAC,EAAE,sBAAsB,CAAC,uBAAuB,CAAC,YAAA,EACzE,UAAU,CAAC,EAAE,CACT,QAAQ,EAAE,uBAAuB,KAChC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB7B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,cAAc;IAMtB,kEAAkE;IAClE,OAAO,KAAK,GAAG,GAEd;IAID,OAAO,KAAK,iBAAiB,GAM5B;IAED,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,YAAY;IAWpB,uEAAuE;IACvE,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,IAAI;IA0DZ,OAAO,CAAC,mBAAmB;IAgDpB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBzC;;OAEG;IACI,qBAAqB,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE;IASnE;;OAEG;IACI,cAAc,IAAI,KAAK,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAIxE;;OAEG;IACI,UAAU,IAAI,2BAA2B;IAIhD;;OAEG;IACI,YAAY,CACf,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,EAAE,GAC3C,IAAI;IAOP,SAAS,KAAK,kBAAkB,IAAI,OAAO,CAK1C;IAED,SAAS,KAAK,0BAA0B,IAAI,OAAO,CAElD;IAED;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAMjD;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAMnD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,SAAS,CAAC,yBAAyB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IAS7D,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAUnD,SAAS,CAAC,yBAAyB,CAC/B,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,EAC9C,WAAW,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IA6BpD,OAAO,CAAC,qBAAqB;IA0D7B,OAAO,CAAC,UAAU;IA4IlB,SAAS,CAAC,0BAA0B,CAChC,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,WAAW,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAChD,qBAAqB,CAAC,EAChB,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAClC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,EAC1C,KAAK,CAAC,EAAE,GAAG,GACZ,IAAI;IAmBP,SAAS,CAAC,eAAe,CACrB,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,WAAW,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAChD,YAAY,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EACjD,KAAK,CAAC,EAAE,GAAG,GACZ,IAAI;IAwHA,gBAAgB,CACnB,eAAe,EACT,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAClC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,GAC3C,IAAI;CAcV"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -25,6 +25,7 @@ var CNSStimulationContextStore = class {
25
25
  };
26
26
 
27
27
  // src/CNSStimulation.ts
28
+ var TASK_DENDRITE = /* @__PURE__ */ Symbol("cnstra.taskDendrite");
28
29
  var CNSDendriteContext = class {
29
30
  constructor(stimulation, neuron2, abortSignal, cns) {
30
31
  this.stimulation = stimulation;
@@ -75,7 +76,7 @@ var CNSStimulation = class {
75
76
  this.instanceNeuronQueue = instanceNeuronQueue;
76
77
  this.onResponse = onResponse;
77
78
  if (this.options?.maxNeuronHops) {
78
- this.nueronVisitMap = /* @__PURE__ */ new Map();
79
+ this.neuronVisitMap = /* @__PURE__ */ new Map();
79
80
  }
80
81
  if (this.autoCleanupContextsEnabled) {
81
82
  this.activeSccCounts = /* @__PURE__ */ new Map();
@@ -340,14 +341,14 @@ var CNSStimulation = class {
340
341
  }
341
342
  createSubscriberQueueItem(subscriber, inputSignal) {
342
343
  if (this.options?.maxNeuronHops) {
343
- if ((this.nueronVisitMap?.get(subscriber.neuron) ?? 0) >= this.options?.maxNeuronHops) {
344
+ if ((this.neuronVisitMap?.get(subscriber.neuron) ?? 0) >= this.options?.maxNeuronHops) {
344
345
  throw new Error(
345
346
  `Max neuron hops reached when trying to enqueue subscriber`
346
347
  );
347
348
  } else {
348
- this.nueronVisitMap?.set(
349
+ this.neuronVisitMap?.set(
349
350
  subscriber.neuron,
350
- (this.nueronVisitMap?.get(subscriber.neuron) ?? 0) + 1
351
+ (this.neuronVisitMap?.get(subscriber.neuron) ?? 0) + 1
351
352
  );
352
353
  }
353
354
  }
@@ -356,17 +357,20 @@ var CNSStimulation = class {
356
357
  dendriteCollateral: subscriber.dendrite.collateral,
357
358
  input: inputSignal
358
359
  };
360
+ neuronActivationTask[TASK_DENDRITE] = subscriber;
359
361
  return neuronActivationTask;
360
362
  }
361
363
  executeActivationTask(neuronActivationTask) {
362
- const subscribers = this.cns.network.getSubscribers(
363
- neuronActivationTask.dendriteCollateral
364
- );
365
- let subscriber;
366
- for (let i = 0; i < subscribers.length; i++) {
367
- if (subscribers[i].neuron === neuronActivationTask.neuron) {
368
- subscriber = subscribers[i];
369
- break;
364
+ let subscriber = neuronActivationTask[TASK_DENDRITE];
365
+ if (!subscriber) {
366
+ const subscribers = this.cns.network.getSubscribers(
367
+ neuronActivationTask.dendriteCollateral
368
+ );
369
+ for (let i = 0; i < subscribers.length; i++) {
370
+ if (subscribers[i].neuron === neuronActivationTask.neuron) {
371
+ subscriber = subscribers[i];
372
+ break;
373
+ }
370
374
  }
371
375
  }
372
376
  if (!subscriber) {
@@ -556,7 +560,7 @@ var CNSStimulation = class {
556
560
  inputSignal,
557
561
  outputSignal,
558
562
  this.qSize + this.scheduledCount,
559
- this.options?.maxNeuronHops && emitter ? this.nueronVisitMap?.get(emitter) ?? 0 : void 0,
563
+ this.options?.maxNeuronHops && emitter ? this.neuronVisitMap?.get(emitter) ?? 0 : void 0,
560
564
  error
561
565
  )
562
566
  );
@@ -671,8 +675,12 @@ var CNSNetwork = class {
671
675
  /**
672
676
  * Strongly Connected Components of the neuron graph.
673
677
  * Each component is a set of neuron objects that can reach each other.
678
+ *
679
+ * Computed lazily on first access: the SCC machinery is only needed for
680
+ * `autoCleanupContexts` (off by default), so most networks never pay for it.
674
681
  */
675
- this.stronglyConnectedComponents = [];
682
+ this._stronglyConnectedComponents = [];
683
+ this.sccBuilt = false;
676
684
  /**
677
685
  * Quick lookup: neuron -> SCC index for fast reachability checks.
678
686
  */
@@ -690,21 +698,18 @@ var CNSNetwork = class {
690
698
  * Built once at construction time.
691
699
  */
692
700
  this.subIndex = /* @__PURE__ */ new Map();
693
- this.dendriteIndex = /* @__PURE__ */ new Map();
694
- this.collateralIndex = /* @__PURE__ */ new Set();
695
701
  this.parentNeuronByCollateral = /* @__PURE__ */ new Map();
696
- this.validateUniqueIdentifiers();
697
702
  this.buildIndexes();
698
- this.buildSCC();
699
703
  }
700
- /**
701
- * Validate uniqueness constraints:
702
- * - (legacy) collateral instances used to be single-owner; in object-identity routing
703
- * a collateral can be emitted by multiple neurons (fan-in), so we no longer
704
- * enforce single ownership here.
705
- * Throws aggregated error if violations are found.
706
- */
707
- validateUniqueIdentifiers() {
704
+ get stronglyConnectedComponents() {
705
+ this.ensureSCC();
706
+ return this._stronglyConnectedComponents;
707
+ }
708
+ /** Build the SCC analysis the first time anything needs it. */
709
+ ensureSCC() {
710
+ if (this.sccBuilt) return;
711
+ this.sccBuilt = true;
712
+ this.buildSCC();
708
713
  }
709
714
  /**
710
715
  * Build the neuron graph where neurons are connected if one can stimulate the other.
@@ -779,7 +784,7 @@ var CNSNetwork = class {
779
784
  strongConnect(neuron2);
780
785
  }
781
786
  }
782
- this.stronglyConnectedComponents = components;
787
+ this._stronglyConnectedComponents = components;
783
788
  for (let i = 0; i < components.length; i++) {
784
789
  for (const neuronId of Array.from(components[i])) {
785
790
  this.neuronToSCC.set(neuronId, i);
@@ -793,11 +798,11 @@ var CNSNetwork = class {
793
798
  */
794
799
  buildSCCDAG(neuronGraph) {
795
800
  this.sccDag.clear();
796
- for (let i = 0; i < this.stronglyConnectedComponents.length; i++) {
801
+ for (let i = 0; i < this._stronglyConnectedComponents.length; i++) {
797
802
  this.sccDag.set(i, /* @__PURE__ */ new Set());
798
803
  }
799
- for (let i = 0; i < this.stronglyConnectedComponents.length; i++) {
800
- const scc = this.stronglyConnectedComponents[i];
804
+ for (let i = 0; i < this._stronglyConnectedComponents.length; i++) {
805
+ const scc = this._stronglyConnectedComponents[i];
801
806
  for (const neuron2 of Array.from(scc)) {
802
807
  const neighbors = neuronGraph.get(neuron2) || /* @__PURE__ */ new Set();
803
808
  for (const neighbor of Array.from(neighbors)) {
@@ -815,25 +820,27 @@ var CNSNetwork = class {
815
820
  */
816
821
  buildSCCAncestors() {
817
822
  this.sccAncestors.clear();
818
- for (let i = 0; i < this.stronglyConnectedComponents.length; i++) {
823
+ for (let i = 0; i < this._stronglyConnectedComponents.length; i++) {
819
824
  this.sccAncestors.set(i, /* @__PURE__ */ new Set());
820
825
  }
826
+ const n = this._stronglyConnectedComponents.length;
827
+ const forward = Array.from({ length: n }, () => []);
821
828
  const inDegree = /* @__PURE__ */ new Map();
822
829
  const queue = [];
823
- for (let i = 0; i < this.stronglyConnectedComponents.length; i++) {
824
- const incomingEdges = this.sccDag.get(i) || /* @__PURE__ */ new Set();
825
- inDegree.set(i, incomingEdges.size);
826
- if (incomingEdges.size === 0) {
827
- queue.push(i);
830
+ for (let target = 0; target < n; target++) {
831
+ const sources = this.sccDag.get(target) || /* @__PURE__ */ new Set();
832
+ inDegree.set(target, sources.size);
833
+ if (sources.size === 0) queue.push(target);
834
+ for (const source of Array.from(sources)) {
835
+ forward[source].push(target);
828
836
  }
829
837
  }
830
838
  while (queue.length > 0) {
831
839
  const current = queue.shift();
832
- const outgoingEdges = this.getOutgoingEdges(current);
833
- for (const neighbor of Array.from(outgoingEdges)) {
840
+ const currentAncestors = this.sccAncestors.get(current);
841
+ for (const neighbor of forward[current]) {
834
842
  const neighborAncestors = this.sccAncestors.get(neighbor);
835
843
  neighborAncestors.add(current);
836
- const currentAncestors = this.sccAncestors.get(current);
837
844
  for (const ancestor of Array.from(currentAncestors)) {
838
845
  neighborAncestors.add(ancestor);
839
846
  }
@@ -845,32 +852,22 @@ var CNSNetwork = class {
845
852
  }
846
853
  }
847
854
  }
848
- /**
849
- * Get outgoing edges for a given SCC index
850
- */
851
- getOutgoingEdges(sccIndex) {
852
- const outgoing = /* @__PURE__ */ new Set();
853
- for (const [targetScc, incomingEdges] of Array.from(this.sccDag)) {
854
- if (incomingEdges.has(sccIndex)) {
855
- outgoing.add(targetScc);
856
- }
857
- }
858
- return outgoing;
859
- }
860
855
  /**
861
856
  * Check if a neuron can be reached again (including self-calling).
862
857
  * Returns true if the neuron is in a strongly connected component with more than one member,
863
858
  * or if it's in a single-member SCC that can reach itself.
864
859
  */
865
860
  getSCCSetByNeuron(neuron2) {
861
+ this.ensureSCC();
866
862
  const sccIndex = this.neuronToSCC.get(neuron2);
867
863
  if (sccIndex === void 0) return;
868
- return this.stronglyConnectedComponents[sccIndex];
864
+ return this._stronglyConnectedComponents[sccIndex];
869
865
  }
870
866
  /**
871
867
  * Get the SCC index for a given neuron
872
868
  */
873
869
  getSccIndexByNeuron(neuron2) {
870
+ this.ensureSCC();
874
871
  return this.neuronToSCC.get(neuron2);
875
872
  }
876
873
  /**
@@ -878,6 +875,7 @@ var CNSNetwork = class {
878
875
  * This is the core logic for safe context cleanup.
879
876
  */
880
877
  canNeuronBeGuaranteedDone(neuron2, activeSccCounts) {
878
+ this.ensureSCC();
881
879
  const sccIndex = this.neuronToSCC.get(neuron2);
882
880
  if (sccIndex === void 0) return true;
883
881
  if (activeSccCounts.get(sccIndex) && activeSccCounts.get(sccIndex) > 0) {
@@ -895,8 +893,6 @@ var CNSNetwork = class {
895
893
  buildIndexes() {
896
894
  this.subIndex.clear();
897
895
  this.parentNeuronByCollateral.clear();
898
- this.dendriteIndex.clear();
899
- this.collateralIndex.clear();
900
896
  for (const neuron2 of this.neurons) {
901
897
  for (const dendrite of neuron2.dendrites) {
902
898
  const key = dendrite.collateral;
@@ -906,25 +902,40 @@ var CNSNetwork = class {
906
902
  key,
907
903
  arr
908
904
  );
909
- this.dendriteIndex.set(key, dendrite);
910
905
  }
911
906
  Object.values(neuron2.axon).forEach((collateral2) => {
912
907
  this.parentNeuronByCollateral.set(
913
908
  collateral2,
914
909
  neuron2
915
910
  );
916
- this.collateralIndex.add(collateral2);
917
911
  });
918
912
  }
919
913
  }
920
914
  getParentNeuronByCollateral(collateral2) {
921
915
  return this.parentNeuronByCollateral.get(collateral2);
922
916
  }
917
+ // Computed on demand (rarely used): one dendrite per collateral, last wins —
918
+ // preserving the previous index semantics without building it every construct.
923
919
  getDendrites() {
924
- return Array.from(this.dendriteIndex.values());
920
+ const byCollateral = /* @__PURE__ */ new Map();
921
+ for (const neuron2 of this.neurons) {
922
+ for (const dendrite of neuron2.dendrites) {
923
+ byCollateral.set(
924
+ dendrite.collateral,
925
+ dendrite
926
+ );
927
+ }
928
+ }
929
+ return Array.from(byCollateral.values());
925
930
  }
926
931
  getCollaterals() {
927
- return Array.from(this.collateralIndex.values());
932
+ const collaterals = /* @__PURE__ */ new Set();
933
+ for (const neuron2 of this.neurons) {
934
+ for (const collateral2 of Object.values(neuron2.axon)) {
935
+ collaterals.add(collateral2);
936
+ }
937
+ }
938
+ return Array.from(collaterals);
928
939
  }
929
940
  getSubscribers(collateral2) {
930
941
  return this.subIndex.get(collateral2) ?? [];
@@ -1198,27 +1209,26 @@ var neuron = (axon) => {
1198
1209
  modality: singleModality,
1199
1210
  modalities: multipleModalities,
1200
1211
  afferentPaths: singleAfferentPaths,
1201
- default: singleDefaultHandler,
1202
- default: globalDefaultHandler,
1212
+ default: defaultHandler,
1203
1213
  output
1204
1214
  } = s;
1205
1215
  const modalityConfigs = multipleModalities ? multipleModalities : singleModality ? [
1206
1216
  {
1207
1217
  modality: singleModality,
1208
1218
  afferentPaths: singleAfferentPaths,
1209
- default: singleDefaultHandler
1219
+ default: defaultHandler
1210
1220
  }
1211
1221
  ] : [];
1212
1222
  const response = (payload, axon2, ctx) => {
1213
1223
  const stimulation = ctx.stimulation;
1214
1224
  const stimOptions = stimulation?.options;
1215
1225
  const runGlobalDefault = () => {
1216
- if (!globalDefaultHandler) {
1226
+ if (!defaultHandler) {
1217
1227
  throw new Error(
1218
1228
  `modalityDendrite: No handler found for modality and no default handler provided`
1219
1229
  );
1220
1230
  }
1221
- const res = globalDefaultHandler(payload, axon2, ctx);
1231
+ const res = defaultHandler(payload, axon2, ctx);
1222
1232
  if (res && typeof res.then === "function") {
1223
1233
  return res.then(
1224
1234
  (result) => output(result, axon2, ctx)
@@ -1237,7 +1247,7 @@ var neuron = (axon) => {
1237
1247
  }
1238
1248
  const stimAfferentPath = stimOptions.afferentPath;
1239
1249
  const handler = stimAfferentPath && matchingConfig.afferentPaths ? matchingConfig.afferentPaths.get(stimAfferentPath) : void 0;
1240
- const effectiveHandler = handler ?? matchingConfig.default ?? globalDefaultHandler;
1250
+ const effectiveHandler = handler ?? matchingConfig.default ?? defaultHandler;
1241
1251
  if (!effectiveHandler) {
1242
1252
  throw new Error(
1243
1253
  `modalityDendrite: No handler found for afferent path in modality and no default handler provided`