@cnstra/core 1.8.1 → 2.0.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 (58) hide show
  1. package/README.md +3 -3
  2. package/dist/CNS.d.ts +6 -9
  3. package/dist/CNS.d.ts.map +1 -1
  4. package/dist/CNSCollateral.d.ts +3 -5
  5. package/dist/CNSCollateral.d.ts.map +1 -1
  6. package/dist/CNSInstanceNeuronQueue.d.ts +0 -1
  7. package/dist/CNSInstanceNeuronQueue.d.ts.map +1 -1
  8. package/dist/CNSNetwork.d.ts +16 -20
  9. package/dist/CNSNetwork.d.ts.map +1 -1
  10. package/dist/CNSNeuronActivationPump.d.ts +5 -5
  11. package/dist/CNSNeuronActivationPump.d.ts.map +1 -1
  12. package/dist/CNSStimulation.d.ts +16 -15
  13. package/dist/CNSStimulation.d.ts.map +1 -1
  14. package/dist/CNSStimulationContextStore.d.ts +6 -6
  15. package/dist/CNSStimulationContextStore.d.ts.map +1 -1
  16. package/dist/factory/index.d.ts +97 -14
  17. package/dist/factory/index.d.ts.map +1 -1
  18. package/dist/index.cjs +235 -197
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.ts +4 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +234 -198
  23. package/dist/index.js.map +1 -1
  24. package/dist/interfaces/ICNS.d.ts +5 -4
  25. package/dist/interfaces/ICNS.d.ts.map +1 -1
  26. package/dist/interfaces/ICNSCollateral.d.ts +3 -3
  27. package/dist/interfaces/ICNSCollateral.d.ts.map +1 -1
  28. package/dist/interfaces/ICNSStimulationContextStore.d.ts +5 -6
  29. package/dist/interfaces/ICNSStimulationContextStore.d.ts.map +1 -1
  30. package/dist/types/TCNSAfferentPath.d.ts +4 -0
  31. package/dist/types/TCNSAfferentPath.d.ts.map +1 -0
  32. package/dist/types/TCNSAxon.d.ts +23 -2
  33. package/dist/types/TCNSAxon.d.ts.map +1 -1
  34. package/dist/types/TCNSDendrite.d.ts +6 -6
  35. package/dist/types/TCNSDendrite.d.ts.map +1 -1
  36. package/dist/types/TCNSModality.d.ts +5 -0
  37. package/dist/types/TCNSModality.d.ts.map +1 -0
  38. package/dist/types/TCNSNeuron.d.ts +3 -3
  39. package/dist/types/TCNSNeuron.d.ts.map +1 -1
  40. package/dist/types/TCNSNeuronActivationTask.d.ts +5 -5
  41. package/dist/types/TCNSNeuronActivationTask.d.ts.map +1 -1
  42. package/dist/types/TCNSNeuronActivationTaskFailure.d.ts +2 -2
  43. package/dist/types/TCNSNeuronActivationTaskFailure.d.ts.map +1 -1
  44. package/dist/types/TCNSNeuronResponseReturn.d.ts +8 -2
  45. package/dist/types/TCNSNeuronResponseReturn.d.ts.map +1 -1
  46. package/dist/types/TCNSPersist.d.ts +16 -0
  47. package/dist/types/TCNSPersist.d.ts.map +1 -0
  48. package/dist/types/TCNSSignal.d.ts +4 -3
  49. package/dist/types/TCNSSignal.d.ts.map +1 -1
  50. package/dist/types/TCNSStimulationOptions.d.ts +7 -9
  51. package/dist/types/TCNSStimulationOptions.d.ts.map +1 -1
  52. package/dist/types/TCNSStimulationQueueItem.d.ts +4 -3
  53. package/dist/types/TCNSStimulationQueueItem.d.ts.map +1 -1
  54. package/dist/types/TCNSStimulationResponse.d.ts +10 -11
  55. package/dist/types/TCNSStimulationResponse.d.ts.map +1 -1
  56. package/dist/types/TCNSSubscriber.d.ts +1 -1
  57. package/dist/types/TCNSSubscriber.d.ts.map +1 -1
  58. package/package.json +1 -1
package/README.md CHANGED
@@ -22,11 +22,11 @@ npm install @cnstra/core
22
22
  import { CNS, collateral, neuron } from '@cnstra/core';
23
23
 
24
24
  // Define collaterals (communication channels)
25
- const userCreated = collateral<{ id: string; name: string }>('user:created');
26
- const userRegistered = collateral<{ userId: string; status: string }>('user:registered');
25
+ const userCreated = collateral<{ id: string; name: string }>();
26
+ const userRegistered = collateral<{ userId: string; status: string }>();
27
27
 
28
28
  // Create a neuron
29
- const userService = neuron('user-service', {
29
+ const userService = neuron({
30
30
  userRegistered
31
31
  })
32
32
  .dendrite({
package/dist/CNS.d.ts CHANGED
@@ -9,17 +9,14 @@ import { TCNSStimulationResponse } from './types/TCNSStimulationResponse';
9
9
  import { TCNSNeuronActivationTask } from './types/TCNSNeuronActivationTask';
10
10
  import { CNSNetwork } from './CNSNetwork';
11
11
  import { ICNS } from './interfaces/ICNS';
12
- export declare class CNS<TCollateralName extends string, TNeuronName extends string, TNeuron extends TCNSNeuron<any, TNeuronName, any, any, any, any, any>, TDendrite extends TCNSDendrite<any, any, any, any, any, any>> implements Omit<ICNS<TCollateralName, TNeuronName, TNeuron, TDendrite>, 'stimulate'> {
12
+ import { CNSCollateral } from './CNSCollateral';
13
+ export declare class CNS<TNeuron extends TCNSNeuron<any, any>, TDendrite extends TCNSDendrite<any, any, any> = TCNSDendrite<any, any, any>> implements ICNS<TNeuron, TDendrite> {
13
14
  protected readonly neurons: TNeuron[];
14
15
  readonly options?: TCNSOptions | undefined;
15
16
  /**
16
17
  * Network graph analysis and strongly connected components.
17
18
  */
18
- readonly network: CNSNetwork<TCollateralName, TNeuronName, TNeuron, TDendrite>;
19
- /**
20
- * Global per-neuron concurrency gates shared across all stimulations.
21
- */
22
- private readonly neuronGates;
19
+ readonly network: CNSNetwork<TNeuron, TDendrite>;
23
20
  /**
24
21
  * Global task queue used by stimulation to schedule per-neuron gated work.
25
22
  * Does not replace per-stimulation concurrency; only coordinates global per-neuron limits.
@@ -30,12 +27,12 @@ export declare class CNS<TCollateralName extends string, TNeuronName extends str
30
27
  */
31
28
  private readonly globalResponseListeners;
32
29
  constructor(neurons: TNeuron[], options?: TCNSOptions | undefined);
33
- addResponseListener<TInputPayload, TOutputPayload>(listener: (response: TCNSStimulationResponse<TCollateralName, TInputPayload, TOutputPayload, TNeuronName>) => void | Promise<void>): () => void;
30
+ addResponseListener(listener: (response: TCNSStimulationResponse) => void | Promise<void>): () => void;
34
31
  private wrapOnResponse;
35
- stimulate<TInputPayload extends TOutputPayload, TOutputPayload = TInputPayload>(signalOrSignals: TCNSSignal<TCollateralName, TInputPayload> | TCNSSignal<TCollateralName, TInputPayload>[], options?: TCNSStimulationOptions<TCollateralName, TInputPayload, TOutputPayload, TNeuronName, TNeuron, TDendrite>): CNSStimulation<TCollateralName, TNeuronName, TNeuron, TDendrite, TInputPayload, TOutputPayload>;
32
+ stimulate(signalOrSignals: TCNSSignal<CNSCollateral<unknown>> | TCNSSignal<CNSCollateral<unknown>>[], options?: TCNSStimulationOptions<TCNSStimulationResponse>): CNSStimulation<TNeuron, TDendrite>;
36
33
  /**
37
34
  * Start a stimulation with activation tasks directly
38
35
  */
39
- activate<TInputPayload, TOutputPayload>(tasks: TCNSNeuronActivationTask<TCollateralName, TNeuronName>[], options?: TCNSStimulationOptions<TCollateralName, TInputPayload, TOutputPayload, TNeuronName, TNeuron, TDendrite>): CNSStimulation<TCollateralName, TNeuronName, TNeuron, TDendrite, TInputPayload, TOutputPayload>;
36
+ activate(tasks: TCNSNeuronActivationTask<TNeuron>[], options?: TCNSStimulationOptions<TCNSStimulationResponse>): CNSStimulation<TNeuron, TDendrite>;
40
37
  }
41
38
  //# sourceMappingURL=CNS.d.ts.map
package/dist/CNS.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"CNS.d.ts","sourceRoot":"","sources":["../src/CNS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,qBAAa,GAAG,CACZ,eAAe,SAAS,MAAM,EAC9B,WAAW,SAAS,MAAM,EAC1B,OAAO,SAAS,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACrE,SAAS,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAC9D,YACM,IAAI,CACA,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,EACtD,WAAW,CACd;IAmCD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE;aACrB,OAAO,CAAC,EAAE,WAAW;IAlCzC;;OAEG;IACH,SAAgB,OAAO,EAAE,UAAU,CAC/B,eAAe,EACf,WAAW,EACX,OAAO,EACP,SAAS,CACZ,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAGxB;IAEJ;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,kCACI;IAE1C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAEjC;gBAGgB,OAAO,EAAE,OAAO,EAAE,EACrB,OAAO,CAAC,EAAE,WAAW,YAAA;IAKlC,mBAAmB,CAAC,aAAa,EAAE,cAAc,EACpD,QAAQ,EAAE,CACN,QAAQ,EAAE,uBAAuB,CAC7B,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,CACd,KACA,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC1B,MAAM,IAAI;IAWb,OAAO,CAAC,cAAc;IAkDf,SAAS,CACZ,aAAa,SAAS,cAAc,EACpC,cAAc,GAAG,aAAa,EAE9B,eAAe,EACT,UAAU,CAAC,eAAe,EAAE,aAAa,CAAC,GAC1C,UAAU,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,EAClD,OAAO,CAAC,EAAE,sBAAsB,CAC5B,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,EACX,OAAO,EACP,SAAS,CACZ,GACF,cAAc,CACb,eAAe,EACf,WAAW,EACX,OAAO,EACP,SAAS,EACT,aAAa,EACb,cAAc,CACjB;IAiBD;;OAEG;IACI,QAAQ,CAAC,aAAa,EAAE,cAAc,EACzC,KAAK,EAAE,wBAAwB,CAAC,eAAe,EAAE,WAAW,CAAC,EAAE,EAC/D,OAAO,CAAC,EAAE,sBAAsB,CAC5B,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,EACX,OAAO,EACP,SAAS,CACZ,GACF,cAAc,CACb,eAAe,EACf,WAAW,EACX,OAAO,EACP,SAAS,EACT,aAAa,EACb,cAAc,CACjB;CAgBJ"}
1
+ {"version":3,"file":"CNS.d.ts","sourceRoot":"","sources":["../src/CNS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,GAAG,CACZ,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,CAC7E,YAAW,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;IAsB7B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE;aACrB,OAAO,CAAC,EAAE,WAAW;IArBzC;;OAEG;IACH,SAAgB,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAExD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,kCACI;IAE1C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAEjC;gBAGgB,OAAO,EAAE,OAAO,EAAE,EACrB,OAAO,CAAC,EAAE,WAAW,YAAA;IAKlC,mBAAmB,CACtB,QAAQ,EAAE,CAAC,QAAQ,EAAE,uBAAuB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACtE,MAAM,IAAI;IAWb,OAAO,CAAC,cAAc;IAkDf,SAAS,CACZ,eAAe,EACT,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAClC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,EAC1C,OAAO,CAAC,EAAE,sBAAsB,CAAC,uBAAuB,CAAC,GAC1D,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC;IAcrC;;OAEG;IACI,QAAQ,CACX,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,EAAE,EAC1C,OAAO,CAAC,EAAE,sBAAsB,CAAC,uBAAuB,CAAC,GAC1D,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC;CAaxC"}
@@ -1,9 +1,7 @@
1
1
  import { TCNSSignal } from './types/TCNSSignal';
2
2
  import { ICNSCollateral } from './interfaces/ICNSCollateral';
3
- export declare class CNSCollateral<TName extends string, TPayload> implements ICNSCollateral<TName, TPayload> {
4
- readonly name: TName;
5
- constructor(name: TName);
6
- createSignal(): TCNSSignal<TName, TPayload>;
7
- createSignal(payload: TPayload): TCNSSignal<TName, TPayload>;
3
+ export declare class CNSCollateral<TPayload> implements ICNSCollateral<TPayload> {
4
+ createSignal(): TCNSSignal<CNSCollateral<TPayload>>;
5
+ createSignal(payload: TPayload): TCNSSignal<CNSCollateral<TPayload>>;
8
6
  }
9
7
  //# sourceMappingURL=CNSCollateral.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CNSCollateral.d.ts","sourceRoot":"","sources":["../src/CNSCollateral.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,qBAAa,aAAa,CAAC,KAAK,SAAS,MAAM,EAAE,QAAQ,CACrD,YAAW,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC;aAEd,IAAI,EAAE,KAAK;gBAAX,IAAI,EAAE,KAAK;IAEvC,YAAY,IAAI,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC;IAC3C,YAAY,CAAC,OAAO,EAAE,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC;CAI/D"}
1
+ {"version":3,"file":"CNSCollateral.d.ts","sourceRoot":"","sources":["../src/CNSCollateral.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,qBAAa,aAAa,CAAC,QAAQ,CAAE,YAAW,cAAc,CAAC,QAAQ,CAAC;IACpE,YAAY,IAAI,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACnD,YAAY,CAAC,OAAO,EAAE,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;CAIvE"}
@@ -1,5 +1,4 @@
1
1
  export declare class CNSInstanceNeuronQueue<TNeuron extends {
2
- name: string;
3
2
  concurrency?: number;
4
3
  }> {
5
4
  private readonly gates;
@@ -1 +1 @@
1
- {"version":3,"file":"CNSInstanceNeuronQueue.d.ts","sourceRoot":"","sources":["../src/CNSInstanceNeuronQueue.ts"],"names":[],"mappings":"AAAA,qBAAa,sBAAsB,CAC/B,OAAO,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE;IAEtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAGlB;IAEJ,GAAG,CACC,MAAM,EAAE,OAAO,EACf,EAAE,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,GAC7C,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;CAoDxC"}
1
+ {"version":3,"file":"CNSInstanceNeuronQueue.d.ts","sourceRoot":"","sources":["../src/CNSInstanceNeuronQueue.ts"],"names":[],"mappings":"AAAA,qBAAa,sBAAsB,CAC/B,OAAO,SAAS;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE;IAExC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAGlB;IAEJ,GAAG,CACC,MAAM,EAAE,OAAO,EACf,EAAE,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,GAC7C,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;CAoDxC"}
@@ -2,15 +2,15 @@ import { TCNSNeuron } from './types/TCNSNeuron';
2
2
  import { TCNSSubscriber } from './types/TCNSSubscriber';
3
3
  import { TCNSDendrite } from './types/TCNSDendrite';
4
4
  import { CNSCollateral } from './CNSCollateral';
5
- export declare class CNSNetwork<TCollateralName extends string, TNeuronName extends string, TNeuron extends TCNSNeuron<any, TNeuronName, any, any, any, any, any>, TDendrite extends TCNSDendrite<any, any, any, any, any, any>> {
5
+ export declare class CNSNetwork<TNeuron extends TCNSNeuron<any, any>, TDendrite extends TCNSDendrite<any, any, any>> {
6
6
  private readonly neurons;
7
7
  /**
8
8
  * Strongly Connected Components of the neuron graph.
9
- * Each component is a set of neuron IDs that can reach each other.
9
+ * Each component is a set of neuron objects that can reach each other.
10
10
  */
11
- stronglyConnectedComponents: Set<string>[];
11
+ stronglyConnectedComponents: Set<TNeuron>[];
12
12
  /**
13
- * Quick lookup: neuron ID -> SCC index for fast reachability checks.
13
+ * Quick lookup: neuron -> SCC index for fast reachability checks.
14
14
  */
15
15
  private neuronToSCC;
16
16
  /**
@@ -22,20 +22,19 @@ export declare class CNSNetwork<TCollateralName extends string, TNeuronName exte
22
22
  */
23
23
  private sccAncestors;
24
24
  /**
25
- * Fast lookup: collateralName -> list of (neuron, dendrite) subscribers.
25
+ * Fast lookup: collateral -> list of (neuron, dendrite) subscribers.
26
26
  * Built once at construction time.
27
27
  */
28
28
  private subIndex;
29
- private neuronIndex;
30
29
  private dendriteIndex;
31
30
  private collateralIndex;
32
- private parentNeuronByCollateralName;
31
+ private parentNeuronByCollateral;
33
32
  constructor(neurons: TNeuron[]);
34
33
  /**
35
34
  * Validate uniqueness constraints:
36
- * - neuron names are unique and non-empty
37
- * - axon collateral types are globally unique (single owner)
38
- * - the same collateral instance cannot be owned by multiple neurons
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.
39
38
  * Throws aggregated error if violations are found.
40
39
  */
41
40
  private validateUniqueIdentifiers;
@@ -65,23 +64,20 @@ export declare class CNSNetwork<TCollateralName extends string, TNeuronName exte
65
64
  * Returns true if the neuron is in a strongly connected component with more than one member,
66
65
  * or if it's in a single-member SCC that can reach itself.
67
66
  */
68
- getSCCSetByNeuronName(neuronName: string): Set<string> | undefined;
67
+ getSCCSetByNeuron(neuron: TNeuron): Set<TNeuron> | undefined;
69
68
  /**
70
- * Get the SCC index for a given neuron ID
69
+ * Get the SCC index for a given neuron
71
70
  */
72
- getSccIndexByNeuronName(neuronName: string): number | undefined;
71
+ getSccIndexByNeuron(neuron: TNeuron): number | undefined;
73
72
  /**
74
73
  * Check if a neuron can be guaranteed not to be visited again during the current propagation.
75
74
  * This is the core logic for safe context cleanup.
76
75
  */
77
- canNeuronBeGuaranteedDone(neuronName: string, activeSccCounts: Map<number, number>): boolean;
76
+ canNeuronBeGuaranteedDone(neuron: TNeuron, activeSccCounts: Map<number, number>): boolean;
78
77
  private buildIndexes;
79
- getParentNeuronByCollateralName(collateralName: TCollateralName): TNeuron | undefined;
78
+ getParentNeuronByCollateral(collateral: CNSCollateral<unknown>): TNeuron | undefined;
80
79
  getDendrites(): TDendrite[];
81
- getCollaterals(): CNSCollateral<TCollateralName, unknown>[];
82
- getNeurons(): TNeuron[];
83
- getCollateralByName<TName extends string = string>(collateralName: TName): CNSCollateral<TName, unknown> | undefined;
84
- getNeuronByName<TName extends string = string>(neuronName: TName): TNeuron | undefined;
85
- getSubscribers(collateralName: TCollateralName): TCNSSubscriber<TNeuron, TDendrite>[];
80
+ getCollaterals(): CNSCollateral<unknown>[];
81
+ getSubscribers(collateral: CNSCollateral<unknown>): TCNSSubscriber<TNeuron, TDendrite>[];
86
82
  }
87
83
  //# sourceMappingURL=CNSNetwork.d.ts.map
@@ -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,eAAe,SAAS,MAAM,EAC9B,WAAW,SAAS,MAAM,EAC1B,OAAO,SAAS,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACrE,SAAS,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAyChD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAvCpC;;;OAGG;IACI,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAM;IAEvD;;OAEG;IACH,OAAO,CAAC,WAAW,CAA6B;IAEhD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAuC;IAErD;;OAEG;IACH,OAAO,CAAC,YAAY,CAAuC;IAE3D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAGZ;IAEJ,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,eAAe,CAGnB;IAEJ,OAAO,CAAC,4BAA4B,CAAuC;gBAE9C,OAAO,EAAE,OAAO,EAAE;IAM/C;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAuBjC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAsEhB;;OAEG;IACH,OAAO,CAAC,WAAW;IA6BnB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAiDzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;;;OAIG;IACI,qBAAqB,CAAC,UAAU,EAAE,MAAM;IAQ/C;;OAEG;IACI,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAItE;;;OAGG;IACI,yBAAyB,CAC5B,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,OAAO;IA4BV,OAAO,CAAC,YAAY;IA8Bb,+BAA+B,CAAC,cAAc,EAAE,eAAe;IAI/D,YAAY;IAIZ,cAAc;IAId,UAAU;IAIV,mBAAmB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EACpD,cAAc,EAAE,KAAK,GAIL,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,SAAS;IAGtD,eAAe,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,KAAK;IAIhE,cAAc,CACjB,cAAc,EAAE,eAAe,GAChC,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;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,5 +1,5 @@
1
1
  import { TCNSNeuronActivationTask } from './types/TCNSNeuronActivationTask';
2
- export declare class CNSNeuronActivationPump<TCollateralName extends string, TNeuronName extends string> {
2
+ export declare class CNSNeuronActivationPump<TNeuron extends object> {
3
3
  private readonly processor;
4
4
  protected readonly concurrency?: number | undefined;
5
5
  protected readonly abortSignal?: AbortSignal | undefined;
@@ -12,16 +12,16 @@ export declare class CNSNeuronActivationPump<TCollateralName extends string, TNe
12
12
  private activeTasks;
13
13
  private pumping;
14
14
  private needsPump;
15
- constructor(processor: (neuronActivationTask: TCNSNeuronActivationTask<TCollateralName, TNeuronName>) => (() => void) | Promise<() => void>, concurrency?: number | undefined, abortSignal?: AbortSignal | undefined, initialCapacity?: number);
15
+ constructor(processor: (neuronActivationTask: TCNSNeuronActivationTask<TNeuron>) => (() => void) | Promise<() => void>, concurrency?: number | undefined, abortSignal?: AbortSignal | undefined, initialCapacity?: number);
16
16
  protected get canStartOperation(): boolean;
17
17
  private resize;
18
18
  private dequeue;
19
19
  private enqueueItem;
20
20
  protected pump(): void;
21
- enqueue(neuronActivationTask: TCNSNeuronActivationTask<TCollateralName, TNeuronName>): void;
21
+ enqueue(neuronActivationTask: TCNSNeuronActivationTask<TNeuron>): void;
22
22
  get length(): number;
23
23
  getActiveOperationsCount(): number;
24
- getQueuedTasks(): TCNSNeuronActivationTask<TCollateralName, TNeuronName>[];
25
- getActiveTasks(): TCNSNeuronActivationTask<TCollateralName, TNeuronName>[];
24
+ getQueuedTasks(): TCNSNeuronActivationTask<TNeuron>[];
25
+ getActiveTasks(): TCNSNeuronActivationTask<TNeuron>[];
26
26
  }
27
27
  //# sourceMappingURL=CNSNeuronActivationPump.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CNSNeuronActivationPump.d.ts","sourceRoot":"","sources":["../src/CNSNeuronActivationPump.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,qBAAa,uBAAuB,CAChC,eAAe,SAAS,MAAM,EAC9B,WAAW,SAAS,MAAM;IAkBtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAM1B,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM;IACvC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW;IAvBhD,OAAO,CAAC,KAAK,CACN;IACP,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,QAAQ,CAAM;IACtB,SAAS,CAAC,gBAAgB,SAAK;IAC/B,OAAO,CAAC,WAAW,CAEf;IAGJ,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;gBAGL,SAAS,EAAE,CACxB,oBAAoB,EAAE,wBAAwB,CAC1C,eAAe,EACf,WAAW,CACd,KACA,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,EACpB,WAAW,CAAC,EAAE,MAAM,YAAA,EACpB,WAAW,CAAC,EAAE,WAAW,YAAA,EAC5C,eAAe,CAAC,EAAE,MAAM;IAQ5B,SAAS,KAAK,iBAAiB,IAAI,OAAO,CAGzC;IAED,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,WAAW;IAenB,SAAS,CAAC,IAAI;IA4Dd,OAAO,CACH,oBAAoB,EAAE,wBAAwB,CAC1C,eAAe,EACf,WAAW,CACd;IAQL,IAAI,MAAM,WAET;IAED,wBAAwB;IAIjB,cAAc,IAAI,wBAAwB,CAC7C,eAAe,EACf,WAAW,CACd,EAAE;IAWI,cAAc,IAAI,wBAAwB,CAC7C,eAAe,EACf,WAAW,CACd,EAAE;CAGN"}
1
+ {"version":3,"file":"CNSNeuronActivationPump.d.ts","sourceRoot":"","sources":["../src/CNSNeuronActivationPump.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,qBAAa,uBAAuB,CAAC,OAAO,SAAS,MAAM;IAcnD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAG1B,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM;IACvC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW;IAjBhD,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,QAAQ,CAAM;IACtB,SAAS,CAAC,gBAAgB,SAAK;IAC/B,OAAO,CAAC,WAAW,CAAgD;IAGnE,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;gBAGL,SAAS,EAAE,CACxB,oBAAoB,EAAE,wBAAwB,CAAC,OAAO,CAAC,KACtD,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,EACpB,WAAW,CAAC,EAAE,MAAM,YAAA,EACpB,WAAW,CAAC,EAAE,WAAW,YAAA,EAC5C,eAAe,CAAC,EAAE,MAAM;IAQ5B,SAAS,KAAK,iBAAiB,IAAI,OAAO,CAGzC;IAED,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,WAAW;IAYnB,SAAS,CAAC,IAAI;IA4Dd,OAAO,CACH,oBAAoB,EAAE,wBAAwB,CAAC,OAAO,CAAC;IAQ3D,IAAI,MAAM,WAET;IAED,wBAAwB;IAIjB,cAAc,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE;IAUrD,cAAc,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE;CAG/D"}
@@ -8,9 +8,11 @@ import { TCNSSignal } from './types/TCNSSignal';
8
8
  import { TCNSNeuronActivationTask } from './types/TCNSNeuronActivationTask';
9
9
  import { CNS } from './CNS';
10
10
  import { TCNSNeuronActivationTaskFailure } from './types/TCNSNeuronActivationTaskFailure';
11
- export declare class CNSStimulation<TCollateralName extends string, TNeuronName extends string, TNeuron extends TCNSNeuron<any, TNeuronName, TCollateralName, any, any, any, any>, TDendrite extends TCNSDendrite<any, any, any, any, any, any>, TInputPayload, TOutputPayload> {
12
- private readonly cns;
13
- readonly options?: TCNSStimulationOptions<TCollateralName, TInputPayload, TOutputPayload, TNeuronName> | undefined;
11
+ import { TCNSStimulationResponse } from './types/TCNSStimulationResponse';
12
+ import { CNSCollateral } from './CNSCollateral';
13
+ export declare class CNSStimulation<TNeuron extends TCNSNeuron<any, any>, TDendrite extends TCNSDendrite<any, any, any> = TCNSDendrite<any, any, any>> {
14
+ readonly cns: CNS<TNeuron, TDendrite>;
15
+ readonly options?: TCNSStimulationOptions<TCNSStimulationResponse> | undefined;
14
16
  private readonly ctx;
15
17
  private readonly queue;
16
18
  private readonly nueronVisitMap?;
@@ -27,18 +29,17 @@ export declare class CNSStimulation<TCollateralName extends string, TNeuronName
27
29
  * Track active SCCs: SCC index -> count of active neurons in that SCC
28
30
  */
29
31
  private readonly activeSccCounts;
30
- readonly id: string;
31
- constructor(cns: CNS<TCollateralName, TNeuronName, TNeuron, TDendrite>, instanceNeuronQueue: CNSInstanceNeuronQueue<TNeuron>, options?: TCNSStimulationOptions<TCollateralName, TInputPayload, TOutputPayload, TNeuronName> | undefined);
32
+ constructor(cns: CNS<TNeuron, TDendrite>, instanceNeuronQueue: CNSInstanceNeuronQueue<TNeuron>, options?: TCNSStimulationOptions<TCNSStimulationResponse> | undefined);
32
33
  private tryResolveCompleted;
33
34
  waitUntilComplete(): Promise<void>;
34
35
  /**
35
36
  * Returns all current activation tasks: queued, active, and pending (scheduled but not yet enqueued)
36
37
  */
37
- getAllActivationTasks(): TCNSNeuronActivationTask<TCollateralName, TNeuronName>[];
38
+ getAllActivationTasks(): TCNSNeuronActivationTask<TNeuron>[];
38
39
  /**
39
40
  * Returns all tasks that failed or were aborted
40
41
  */
41
- getFailedTasks(): Array<TCNSNeuronActivationTaskFailure<TCollateralName, TNeuronName>>;
42
+ getFailedTasks(): Array<TCNSNeuronActivationTaskFailure<TNeuron>>;
42
43
  /**
43
44
  * Get the context store for this stimulation
44
45
  */
@@ -46,17 +47,17 @@ export declare class CNSStimulation<TCollateralName extends string, TNeuronName
46
47
  /**
47
48
  * Enqueue activation tasks directly into the stimulation queue
48
49
  */
49
- enqueueTasks(tasks: TCNSNeuronActivationTask<TCollateralName, TNeuronName>[]): void;
50
+ enqueueTasks(tasks: TCNSNeuronActivationTask<TNeuron>[]): void;
50
51
  protected get concurrencyEnabled(): boolean;
51
52
  protected get autoCleanupContextsEnabled(): boolean;
52
53
  /**
53
54
  * Mark a neuron as active (being processed)
54
55
  */
55
- protected markNeuronActive(neuronId: TNeuronName): void;
56
+ protected markNeuronActive(neuron: TNeuron): void;
56
57
  /**
57
58
  * Mark a neuron as inactive (finished processing)
58
59
  */
59
- protected markNeuronInactive(neuronId: TNeuronName): void;
60
+ protected markNeuronInactive(neuron: TNeuron): void;
60
61
  /**
61
62
  * Increment the active count for the SCC containing this neuron
62
63
  */
@@ -68,12 +69,12 @@ export declare class CNSStimulation<TCollateralName extends string, TNeuronName
68
69
  /**
69
70
  * Check if a neuron can be guaranteed not to be visited again
70
71
  */
71
- protected canNeuronBeGuaranteedDone(neuronId: TNeuronName): boolean;
72
+ protected canNeuronBeGuaranteedDone(neuron: TNeuron): boolean;
72
73
  protected cleanupCtxIfNeeded(neuron: TNeuron): void;
73
- protected createSubscriberQueueItem(subscriber: TCNSSubscriber<TNeuron, TDendrite>, inputSignal?: TCNSSignal<TCollateralName, any>): TCNSNeuronActivationTask<TCollateralName, TNeuronName>;
74
+ protected createSubscriberQueueItem(subscriber: TCNSSubscriber<TNeuron, TDendrite>, inputSignal?: TCNSSignal<CNSCollateral<unknown>>): TCNSNeuronActivationTask<TNeuron>;
74
75
  private executeActivationTask;
75
- protected processResponseOrResponses(inputSignal?: TCNSSignal<TCollateralName, TInputPayload>, outputSignalOrSignals?: TCNSSignal<TCollateralName, TOutputPayload> | TCNSSignal<TCollateralName, TOutputPayload>[], error?: any): void;
76
- protected processResponse(inputSignal?: TCNSSignal<TCollateralName, TInputPayload>, outputSignal?: TCNSSignal<TCollateralName, TOutputPayload>, error?: any): void;
77
- responseToSignal(signalOrSignals: TCNSSignal<TCollateralName, TOutputPayload> | TCNSSignal<TCollateralName, TOutputPayload>[]): void;
76
+ protected processResponseOrResponses(emitter: TNeuron | undefined, inputSignal?: TCNSSignal<CNSCollateral<unknown>>, outputSignalOrSignals?: TCNSSignal<CNSCollateral<unknown>> | TCNSSignal<CNSCollateral<unknown>>[], error?: any): void;
77
+ protected processResponse(emitter: TNeuron | undefined, inputSignal?: TCNSSignal<CNSCollateral<unknown>>, outputSignal?: TCNSSignal<CNSCollateral<unknown>>, error?: any): void;
78
+ responseToSignal(signalOrSignals: TCNSSignal<CNSCollateral<unknown>> | TCNSSignal<CNSCollateral<unknown>>[]): void;
78
79
  }
79
80
  //# sourceMappingURL=CNSStimulation.d.ts.map
@@ -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;AAExD,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;AAEhD,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;aA6BvD,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;aAE5B,OAAO,CAAC,EAAE,sBAAsB,CAAC,uBAAuB,CAAC;IA7B7E,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA8B;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;IAEzD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAuB;IACvD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAkC;IACtE,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAEzB;IACJ,OAAO,CAAC,QAAQ,CAAC,WAAW,CAErB;IACP,OAAO,CAAC,SAAS,CAGd;IACH,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAoB;IAE3C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;gBAGzC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,EAC5C,mBAAmB,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,OAAO,CAAC,EAAE,sBAAsB,CAAC,uBAAuB,CAAC,YAAA;IAiB7E,OAAO,CAAC,mBAAmB;IA+CpB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzC;;OAEG;IACI,qBAAqB,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE;IAOnE;;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;IAQzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,SAAS,CAAC,yBAAyB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IAQ7D,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IASnD,SAAS,CAAC,yBAAyB,CAC/B,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,EAC9C,WAAW,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IA0BpD,OAAO,CAAC,qBAAqB;IAoK7B,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;IA0FA,gBAAgB,CACnB,eAAe,EACT,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAClC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,GAC3C,IAAI;CAcV"}
@@ -1,11 +1,11 @@
1
1
  import { ICNSStimulationContextStore } from './interfaces/ICNSStimulationContextStore';
2
2
  export declare class CNSStimulationContextStore implements ICNSStimulationContextStore {
3
3
  private readonly ctx;
4
- constructor(ctx?: Map<string, unknown>);
5
- get(key: string): unknown;
6
- set(key: string, value: unknown): void;
7
- getAll(): Record<string, unknown>;
8
- setAll(values: Record<string, unknown>): void;
9
- delete(key: string): void;
4
+ constructor(ctx?: Map<object, unknown>);
5
+ get(key: object): unknown;
6
+ set(key: object, value: unknown): void;
7
+ getAll(): Map<object, unknown>;
8
+ setAll(values: Map<object, unknown>): void;
9
+ delete(key: object): void;
10
10
  }
11
11
  //# sourceMappingURL=CNSStimulationContextStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CNSStimulationContextStore.d.ts","sourceRoot":"","sources":["../src/CNSStimulationContextStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAEvF,qBAAa,0BAA2B,YAAW,2BAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,GAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAa;IAElE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAItC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIjC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM7C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAG5B"}
1
+ {"version":3,"file":"CNSStimulationContextStore.d.ts","sourceRoot":"","sources":["../src/CNSStimulationContextStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAEvF,qBAAa,0BAA2B,YAAW,2BAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,GAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAa;IAElE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAItC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAI9B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAK1C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAG5B"}
@@ -1,25 +1,108 @@
1
1
  import { CNSCollateral } from '../CNSCollateral';
2
2
  import { TCNSAxon } from '../types/TCNSAxon';
3
3
  import { TCNSDendrite } from '../types/TCNSDendrite';
4
- export declare const collateral: <TPayload = undefined, TName extends string = string>(name: TName) => CNSCollateral<TName, TPayload>;
5
- type PayloadOf<TAxon, K extends keyof TAxon> = TAxon[K] extends CNSCollateral<any, infer P> ? P : never;
6
- type NameOf<TAxon, K extends keyof TAxon> = TAxon[K] extends CNSCollateral<infer N, any> ? N : never;
7
- type InterNeuronAPI<TContextValue, TNameType extends string, TReceiverCollateralName extends string, TReceiverAxonCollateralPayload, TAxonType extends TCNSAxon<TReceiverCollateralName, TReceiverAxonCollateralPayload>> = {
8
- name: TNameType;
4
+ import { TCNSLocalContextValueStore } from '../types/TCNSLocalContextValueStore';
5
+ import { TNCNeuronResponseReturn } from '../types/TCNSNeuronResponseReturn';
6
+ import { ICNS } from '../interfaces/ICNS';
7
+ import { TCNSModality } from '../types/TCNSModality';
8
+ import { TCNSAfferentPath } from '../types/TCNSAfferentPath';
9
+ export declare const collateral: <TPayload = undefined>() => CNSCollateral<TPayload>;
10
+ type CollateralPayloadUnion<TCollaterals extends readonly CNSCollateral<unknown>[]> = {
11
+ [K in keyof TCollaterals]: TCollaterals[K] extends CNSCollateral<infer P> ? P : never;
12
+ }[number];
13
+ type InterNeuronAPI<TContextValue, TAxonType extends TCNSAxon = TCNSAxon> = {
9
14
  axon: TAxonType;
10
15
  concurrency?: number;
11
16
  maxDuration?: number;
12
- dendrites: TCNSDendrite<TContextValue, string, unknown, TReceiverCollateralName, TReceiverAxonCollateralPayload, TAxonType>[];
13
- setConcurrency: (n: number | undefined) => InterNeuronAPI<TContextValue, TNameType, TReceiverCollateralName, TReceiverAxonCollateralPayload, TAxonType>;
14
- setMaxDuration: (ms: number | undefined) => InterNeuronAPI<TContextValue, TNameType, TReceiverCollateralName, TReceiverAxonCollateralPayload, TAxonType>;
15
- bind: <TFollowAxon extends Record<string, CNSCollateral<any, any>>>(axon: TFollowAxon, dendrites: {
16
- [K in keyof TFollowAxon]: TCNSDendrite<TContextValue, NameOf<TFollowAxon, K> & string, PayloadOf<TFollowAxon, K>, TReceiverCollateralName, TReceiverAxonCollateralPayload, TAxonType> | TCNSDendrite<TContextValue, NameOf<TFollowAxon, K> & string, PayloadOf<TFollowAxon, K>, TReceiverCollateralName, TReceiverAxonCollateralPayload, TAxonType>['response'];
17
- }) => InterNeuronAPI<TContextValue, TNameType, TReceiverCollateralName, TReceiverAxonCollateralPayload, TAxonType>;
18
- dendrite: <TSenderExactCollateralName extends string, TSenderExactAxonCollateralPayload>(s: TCNSDendrite<TContextValue, TSenderExactCollateralName, TSenderExactAxonCollateralPayload, TReceiverCollateralName, TReceiverAxonCollateralPayload, TAxonType>) => InterNeuronAPI<TContextValue, TNameType, TReceiverCollateralName, TReceiverAxonCollateralPayload, TAxonType>;
17
+ dendrites: TCNSDendrite<TContextValue, CNSCollateral<unknown>, TAxonType>[];
18
+ setConcurrency: (n: number | undefined) => InterNeuronAPI<TContextValue, TAxonType>;
19
+ setMaxDuration: (ms: number | undefined) => InterNeuronAPI<TContextValue, TAxonType>;
20
+ bind: <TFollowAxon extends Record<string, CNSCollateral<unknown>>>(axon: TFollowAxon, dendrites: {
21
+ [K in keyof TFollowAxon]: TCNSDendrite<TContextValue, TFollowAxon[K], TAxonType> | TCNSDendrite<TContextValue, TFollowAxon[K], TAxonType>['response'];
22
+ }) => InterNeuronAPI<TContextValue, TAxonType>;
23
+ dendrite: {
24
+ <TSenderCollateral extends CNSCollateral<unknown>>(s: {
25
+ collateral: TSenderCollateral;
26
+ response: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSLocalContextValueStore<TContextValue> & {
27
+ abortSignal?: AbortSignal;
28
+ cns?: ICNS<any, any>;
29
+ stimulation?: any;
30
+ }) => TNCNeuronResponseReturn<TAxonType>;
31
+ }): InterNeuronAPI<TContextValue, TAxonType>;
32
+ <TCollaterals extends readonly [
33
+ CNSCollateral<unknown>,
34
+ ...CNSCollateral<unknown>[]
35
+ ]>(s: {
36
+ collateral: TCollaterals;
37
+ response: (payload: CollateralPayloadUnion<TCollaterals>, axon: TAxonType, ctx: TCNSLocalContextValueStore<TContextValue> & {
38
+ abortSignal?: AbortSignal;
39
+ cns?: ICNS<any, any>;
40
+ stimulation?: any;
41
+ }) => TNCNeuronResponseReturn<TAxonType>;
42
+ }): InterNeuronAPI<TContextValue, TAxonType>;
43
+ <TPayloadUnion>(s: {
44
+ collateral: CNSCollateral<unknown>[];
45
+ response: (payload: TPayloadUnion, axon: TAxonType, ctx: TCNSLocalContextValueStore<TContextValue> & {
46
+ abortSignal?: AbortSignal;
47
+ cns?: ICNS<any, any>;
48
+ stimulation?: any;
49
+ }) => TNCNeuronResponseReturn<TAxonType>;
50
+ }): InterNeuronAPI<TContextValue, TAxonType>;
51
+ (s: TCNSDendrite<TContextValue, CNSCollateral<unknown>, TAxonType>): InterNeuronAPI<TContextValue, TAxonType>;
52
+ };
53
+ modalityDendrite: {
54
+ <TSenderCollateral extends CNSCollateral<unknown>, TResult>(s: {
55
+ collateral: TSenderCollateral;
56
+ modality: TCNSModality;
57
+ afferentPaths?: Map<TCNSAfferentPath, (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSLocalContextValueStore<TContextValue> & {
58
+ abortSignal?: AbortSignal;
59
+ cns?: ICNS<any, any>;
60
+ stimulation?: any;
61
+ }) => TResult | Promise<TResult>>;
62
+ default?: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSLocalContextValueStore<TContextValue> & {
63
+ abortSignal?: AbortSignal;
64
+ cns?: ICNS<any, any>;
65
+ stimulation?: any;
66
+ }) => TResult | Promise<TResult>;
67
+ output: (result: TResult, axon: TAxonType, ctx: TCNSLocalContextValueStore<TContextValue> & {
68
+ abortSignal?: AbortSignal;
69
+ cns?: ICNS<any, any>;
70
+ stimulation?: any;
71
+ }) => TNCNeuronResponseReturn<TAxonType>;
72
+ }): InterNeuronAPI<TContextValue, TAxonType>;
73
+ <TSenderCollateral extends CNSCollateral<unknown>, TResult>(s: {
74
+ collateral: TSenderCollateral;
75
+ modalities: Array<{
76
+ modality: TCNSModality;
77
+ afferentPaths?: Map<TCNSAfferentPath, (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSLocalContextValueStore<TContextValue> & {
78
+ abortSignal?: AbortSignal;
79
+ cns?: ICNS<any, any>;
80
+ stimulation?: any;
81
+ }) => TResult | Promise<TResult>>;
82
+ default?: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSLocalContextValueStore<TContextValue> & {
83
+ abortSignal?: AbortSignal;
84
+ cns?: ICNS<any, any>;
85
+ stimulation?: any;
86
+ }) => TResult | Promise<TResult>;
87
+ }>;
88
+ default?: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSLocalContextValueStore<TContextValue> & {
89
+ abortSignal?: AbortSignal;
90
+ cns?: ICNS<any, any>;
91
+ stimulation?: any;
92
+ }) => TResult | Promise<TResult>;
93
+ output: (result: TResult, axon: TAxonType, ctx: TCNSLocalContextValueStore<TContextValue> & {
94
+ abortSignal?: AbortSignal;
95
+ cns?: ICNS<any, any>;
96
+ stimulation?: any;
97
+ }) => TNCNeuronResponseReturn<TAxonType>;
98
+ }): InterNeuronAPI<TContextValue, TAxonType>;
99
+ };
19
100
  };
20
- export declare const neuron: <TContextValue, TNameType extends string, TProvidedAxon extends Record<string, CNSCollateral<any, any>>, TReceiverCollateralName extends keyof TProvidedAxon & string = keyof TProvidedAxon & string, TReceiverAxonCollateralPayload = TProvidedAxon[keyof TProvidedAxon] extends CNSCollateral<any, infer P> ? P : never>(name: TNameType, axon: TProvidedAxon) => InterNeuronAPI<TContextValue, TNameType, TReceiverCollateralName, TReceiverAxonCollateralPayload, TCNSAxon<TReceiverCollateralName, TReceiverAxonCollateralPayload>>;
101
+ export declare const neuron: <TContextValue, TProvidedAxon extends Record<string, CNSCollateral<unknown>>>(axon: TProvidedAxon) => InterNeuronAPI<TContextValue, TCNSAxon<TProvidedAxon>>;
21
102
  export declare const withCtx: <TContextValue>() => {
22
- neuron: <TNameType extends string, TProvidedAxon extends Record<string, CNSCollateral<any, any>>>(name: TNameType, axon: TProvidedAxon) => InterNeuronAPI<TContextValue, TNameType, keyof TProvidedAxon & string, TProvidedAxon[keyof TProvidedAxon] extends CNSCollateral<any, infer P> ? P : never, TCNSAxon<keyof TProvidedAxon & string, TProvidedAxon[keyof TProvidedAxon] extends CNSCollateral<any, infer P> ? P : never>>;
103
+ neuron: <TProvidedAxon extends Record<string, CNSCollateral<unknown>>>(axon: TProvidedAxon) => InterNeuronAPI<TContextValue, TCNSAxon<TProvidedAxon>>;
23
104
  };
105
+ export declare const afferentPath: (parentAfferentPath?: TCNSAfferentPath) => TCNSAfferentPath;
106
+ export declare const modality: (afferentPaths: Record<string | number, TCNSAfferentPath>) => TCNSModality;
24
107
  export {};
25
108
  //# sourceMappingURL=index.d.ts.map
@@ -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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"}