@cnstra/core 2.5.0 → 3.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 (68) hide show
  1. package/README.md +3 -4
  2. package/dist/CNS.d.ts +16 -12
  3. package/dist/CNS.d.ts.map +1 -1
  4. package/dist/CNSCollateral.d.ts +2 -2
  5. package/dist/CNSCollateral.d.ts.map +1 -1
  6. package/dist/CNSNetwork.d.ts +11 -10
  7. package/dist/CNSNetwork.d.ts.map +1 -1
  8. package/dist/CNSStimulation.d.ts +21 -48
  9. package/dist/CNSStimulation.d.ts.map +1 -1
  10. package/dist/factory/index.d.ts +45 -105
  11. package/dist/factory/index.d.ts.map +1 -1
  12. package/dist/index.cjs +44 -247
  13. package/dist/index.cjs.map +1 -1
  14. package/dist/index.d.ts +2 -18
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +45 -243
  17. package/dist/index.js.map +1 -1
  18. package/dist/utils/CNSStimulationGate.d.ts +9 -9
  19. package/dist/utils/CNSStimulationGate.d.ts.map +1 -1
  20. package/package.json +5 -2
  21. package/dist/CNSPersistOptionsRegistry.d.ts +0 -28
  22. package/dist/CNSPersistOptionsRegistry.d.ts.map +0 -1
  23. package/dist/CNSStimulationContextStore.d.ts +0 -11
  24. package/dist/CNSStimulationContextStore.d.ts.map +0 -1
  25. package/dist/interfaces/ICNS.d.ts +0 -27
  26. package/dist/interfaces/ICNS.d.ts.map +0 -1
  27. package/dist/interfaces/ICNSCollateral.d.ts +0 -6
  28. package/dist/interfaces/ICNSCollateral.d.ts.map +0 -1
  29. package/dist/interfaces/ICNSStimulationContextStore.d.ts +0 -8
  30. package/dist/interfaces/ICNSStimulationContextStore.d.ts.map +0 -1
  31. package/dist/types/TCNSAfferentPath.d.ts +0 -4
  32. package/dist/types/TCNSAfferentPath.d.ts.map +0 -1
  33. package/dist/types/TCNSAxon.d.ts +0 -26
  34. package/dist/types/TCNSAxon.d.ts.map +0 -1
  35. package/dist/types/TCNSDendrite.d.ts +0 -9
  36. package/dist/types/TCNSDendrite.d.ts.map +0 -1
  37. package/dist/types/TCNSHandlerContext.d.ts +0 -24
  38. package/dist/types/TCNSHandlerContext.d.ts.map +0 -1
  39. package/dist/types/TCNSLocalContextValueStore.d.ts +0 -6
  40. package/dist/types/TCNSLocalContextValueStore.d.ts.map +0 -1
  41. package/dist/types/TCNSModality.d.ts +0 -5
  42. package/dist/types/TCNSModality.d.ts.map +0 -1
  43. package/dist/types/TCNSNeuron.d.ts +0 -12
  44. package/dist/types/TCNSNeuron.d.ts.map +0 -1
  45. package/dist/types/TCNSNeuronActivationTask.d.ts +0 -8
  46. package/dist/types/TCNSNeuronActivationTask.d.ts.map +0 -1
  47. package/dist/types/TCNSNeuronActivationTaskFailure.d.ts +0 -7
  48. package/dist/types/TCNSNeuronActivationTaskFailure.d.ts.map +0 -1
  49. package/dist/types/TCNSNeuronResponseReturn.d.ts +0 -9
  50. package/dist/types/TCNSNeuronResponseReturn.d.ts.map +0 -1
  51. package/dist/types/TCNSOptions.d.ts +0 -11
  52. package/dist/types/TCNSOptions.d.ts.map +0 -1
  53. package/dist/types/TCNSPersist.d.ts +0 -16
  54. package/dist/types/TCNSPersist.d.ts.map +0 -1
  55. package/dist/types/TCNSSignal.d.ts +0 -6
  56. package/dist/types/TCNSSignal.d.ts.map +0 -1
  57. package/dist/types/TCNSStimulationDrain.d.ts +0 -37
  58. package/dist/types/TCNSStimulationDrain.d.ts.map +0 -1
  59. package/dist/types/TCNSStimulationOptions.d.ts +0 -32
  60. package/dist/types/TCNSStimulationOptions.d.ts.map +0 -1
  61. package/dist/types/TCNSStimulationQueueItem.d.ts +0 -11
  62. package/dist/types/TCNSStimulationQueueItem.d.ts.map +0 -1
  63. package/dist/types/TCNSStimulationResponse.d.ts +0 -57
  64. package/dist/types/TCNSStimulationResponse.d.ts.map +0 -1
  65. package/dist/types/TCNSStimulationSerializedContextValue.d.ts +0 -4
  66. package/dist/types/TCNSStimulationSerializedContextValue.d.ts.map +0 -1
  67. package/dist/types/TCNSSubscriber.d.ts +0 -7
  68. package/dist/types/TCNSSubscriber.d.ts.map +0 -1
package/README.md CHANGED
@@ -76,14 +76,13 @@ import { CNSPersistOptionsRegistry } from '@cnstra/core';
76
76
  export const registry = new CNSPersistOptionsRegistry();
77
77
 
78
78
  // src/neurons/deck.ts — each neuron registers itself
79
- import { collateral, withCtx } from '@cnstra/core';
79
+ import { collateral, neuron } from '@cnstra/core';
80
80
  import { registry } from './registry';
81
81
 
82
82
  const deckCreated = collateral<{ deckId: string }>();
83
83
  const importStarted = collateral<{ importId: string }>(); // external entry point
84
84
 
85
- const deckNeuron = withCtx()
86
- .neuron({ deckCreated })
85
+ const deckNeuron = neuron({ deckCreated })
87
86
  .bind({ importStarted }, {
88
87
  importStarted: ({ importId }, axon) => axon.deckCreated.createSignal({ deckId: importId }),
89
88
  });
@@ -122,7 +121,7 @@ const { cns, registry } = createCNS({ deckNeuron, cardNeuron });
122
121
  - **[API Reference](https://cnstra.org/docs/core/api)** — Complete API documentation
123
122
  - **[Concepts](https://cnstra.org/docs/core/concepts)** — Neurons, collaterals, signals, and the CNS model (Central Neural Network of your app)
124
123
  - **[Recipes](https://cnstra.org/docs/recipes)** — Common patterns and use cases
125
- - **[Advanced Topics](https://cnstra.org/docs/advanced)** — Performance, context stores, integrations
124
+ - **[Advanced Topics](https://cnstra.org/docs/advanced)** — Performance, integrations
126
125
 
127
126
  ---
128
127
 
package/dist/CNS.d.ts CHANGED
@@ -1,17 +1,17 @@
1
- import { TCNSNeuron } from './types/TCNSNeuron';
2
- import { TCNSDendrite } from './types/TCNSDendrite';
3
- import { TCNSOptions } from './types/TCNSOptions';
4
- import { TCNSStimulationOptions } from './types/TCNSStimulationOptions';
1
+ import type { ICNSCollateral } from '@cnstra/types';
2
+ import { TCNSNeuron } from '@cnstra/types';
3
+ import { TCNSDendrite } from '@cnstra/types';
4
+ import { TCNSOptions } from '@cnstra/types';
5
+ import { TCNSStimulationOptions } from '@cnstra/types';
5
6
  import { CNSStimulation } from './CNSStimulation';
6
- import { TCNSSignal } from './types/TCNSSignal';
7
+ import { TCNSSignal } from '@cnstra/types';
7
8
  import { CNSInstanceNeuronQueue } from './CNSInstanceNeuronQueue';
8
- import { TCNSStimulationResponse } from './types/TCNSStimulationResponse';
9
- import { TCNSStimulationDrain } from './types/TCNSStimulationDrain';
10
- import { TCNSNeuronActivationTask } from './types/TCNSNeuronActivationTask';
9
+ import { TCNSStimulationResponse } from '@cnstra/types';
10
+ import { TCNSStimulationDrain } from '@cnstra/types';
11
+ import { TCNSNeuronActivationTask } from '@cnstra/types';
11
12
  import { CNSNetwork } from './CNSNetwork';
12
- import { ICNS } from './interfaces/ICNS';
13
- import { CNSCollateral } from './CNSCollateral';
14
- export declare class CNS<TNeuron extends TCNSNeuron<any, any>, TDendrite extends TCNSDendrite<any, any, any> = TCNSDendrite<any, any, any>> implements ICNS<TNeuron, TDendrite> {
13
+ import { ICNS } from '@cnstra/types';
14
+ export declare class CNS<TNeuron extends TCNSNeuron<any>, TDendrite extends TCNSDendrite<any, any, any> = TCNSDendrite<any, any, any>> implements ICNS<TNeuron, TDendrite> {
15
15
  protected readonly neurons: TNeuron[];
16
16
  readonly options?: TCNSOptions | undefined;
17
17
  /**
@@ -38,6 +38,8 @@ export declare class CNS<TNeuron extends TCNSNeuron<any, any>, TDendrite extends
38
38
  */
39
39
  readonly global?: unknown;
40
40
  constructor(neurons: TNeuron[], options?: TCNSOptions | undefined, global?: unknown);
41
+ /** Push a listener onto a list; return an idempotent unsubscribe. */
42
+ private addListener;
41
43
  addResponseListener(listener: (response: TCNSStimulationResponse) => void | Promise<void>): () => void;
42
44
  /**
43
45
  * Register a listener called once at the end of every synchronous turn of
@@ -57,7 +59,9 @@ export declare class CNS<TNeuron extends TCNSNeuron<any, any>, TDendrite extends
57
59
  */
58
60
  private wrapOnDrain;
59
61
  private wrapOnResponse;
60
- stimulate(signalOrSignals: TCNSSignal<CNSCollateral<unknown>> | TCNSSignal<CNSCollateral<unknown>>[], options?: TCNSStimulationOptions<TCNSStimulationResponse>): CNSStimulation<TNeuron, TDendrite>;
62
+ /** Build a stimulation (wired listeners, unseeded). Shared by stimulate/activate. */
63
+ private createStimulation;
64
+ stimulate(signalOrSignals: TCNSSignal<ICNSCollateral<unknown>> | TCNSSignal<ICNSCollateral<unknown>>[], options?: TCNSStimulationOptions<TCNSStimulationResponse>): CNSStimulation<TNeuron, TDendrite>;
61
65
  /**
62
66
  * Start a stimulation with activation tasks directly
63
67
  */
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,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,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;IAoC7B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE;aACrB,OAAO,CAAC,EAAE,WAAW;IAnCzC;;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;IAEP;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAE9B;IAEP;;;;OAIG;IACH,SAAgB,MAAM,CAAC,EAAE,OAAO,CAAC;gBAGV,OAAO,EAAE,OAAO,EAAE,EACrB,OAAO,CAAC,EAAE,WAAW,YAAA,EACrC,MAAM,CAAC,EAAE,OAAO;IAMb,mBAAmB,CACtB,QAAQ,EAAE,CAAC,QAAQ,EAAE,uBAAuB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACtE,MAAM,IAAI;IAWb;;;;;;;OAOG;IACI,gBAAgB,CACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,GAChD,MAAM,IAAI;IAWb;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,cAAc;IAmDf,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;IAarC;;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;CAYxC"}
1
+ {"version":3,"file":"CNS.d.ts","sourceRoot":"","sources":["../src/CNS.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,qBAAa,GAAG,CACZ,OAAO,SAAS,UAAU,CAAC,GAAG,CAAC,EAC/B,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;IAoC7B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE;aACrB,OAAO,CAAC,EAAE,WAAW;IAnCzC;;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;IAEP;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAE9B;IAEP;;;;OAIG;IACH,SAAgB,MAAM,CAAC,EAAE,OAAO,CAAC;gBAGV,OAAO,EAAE,OAAO,EAAE,EACrB,OAAO,CAAC,EAAE,WAAW,YAAA,EACrC,MAAM,CAAC,EAAE,OAAO;IAMpB,qEAAqE;IACrE,OAAO,CAAC,WAAW;IAWZ,mBAAmB,CACtB,QAAQ,EAAE,CAAC,QAAQ,EAAE,uBAAuB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACtE,MAAM,IAAI;IAIb;;;;;;;OAOG;IACI,gBAAgB,CACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,GAChD,MAAM,IAAI;IAIb;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,cAAc;IAmDtB,qFAAqF;IACrF,OAAO,CAAC,iBAAiB;IAYlB,SAAS,CACZ,eAAe,EACT,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GACnC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,EAC3C,OAAO,CAAC,EAAE,sBAAsB,CAAC,uBAAuB,CAAC,GAC1D,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC;IAMrC;;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;CAKxC"}
@@ -1,5 +1,5 @@
1
- import { TCNSSignal } from './types/TCNSSignal';
2
- import { ICNSCollateral } from './interfaces/ICNSCollateral';
1
+ import { TCNSSignal } from '@cnstra/types';
2
+ import { ICNSCollateral } from '@cnstra/types';
3
3
  export declare class CNSCollateral<TPayload> implements ICNSCollateral<TPayload> {
4
4
  createSignal(): TCNSSignal<CNSCollateral<TPayload>>;
5
5
  createSignal(payload: TPayload): TCNSSignal<CNSCollateral<TPayload>>;
@@ -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,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
+ {"version":3,"file":"CNSCollateral.d.ts","sourceRoot":"","sources":["../src/CNSCollateral.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,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,15 +1,16 @@
1
- import { TCNSNeuron } from './types/TCNSNeuron';
2
- import { TCNSSubscriber } from './types/TCNSSubscriber';
3
- import { TCNSDendrite } from './types/TCNSDendrite';
4
- import { CNSCollateral } from './CNSCollateral';
5
- export declare class CNSNetwork<TNeuron extends TCNSNeuron<any, any>, TDendrite extends TCNSDendrite<any, any, any>> {
1
+ import type { ICNSCollateral } from '@cnstra/types';
2
+ import { TCNSNeuron } from '@cnstra/types';
3
+ import { TCNSSubscriber } from '@cnstra/types';
4
+ import { TCNSDendrite } from '@cnstra/types';
5
+ export declare class CNSNetwork<TNeuron extends TCNSNeuron<any>, TDendrite extends TCNSDendrite<any, any, any>> {
6
6
  private readonly neurons;
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
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.
11
+ * Computed lazily on first access: the SCC machinery only drives graph
12
+ * introspection (`getSCCSetByNeuron`, `canNeuronBeGuaranteedDone`), so a
13
+ * network that never inspects reachability never pays for it.
13
14
  */
14
15
  private _stronglyConnectedComponents;
15
16
  private sccBuilt;
@@ -68,9 +69,9 @@ export declare class CNSNetwork<TNeuron extends TCNSNeuron<any, any>, TDendrite
68
69
  */
69
70
  canNeuronBeGuaranteedDone(neuron: TNeuron, activeSccCounts: Map<number, number>): boolean;
70
71
  private buildIndexes;
71
- getParentNeuronByCollateral(collateral: CNSCollateral<unknown>): TNeuron | undefined;
72
+ getParentNeuronByCollateral(collateral: ICNSCollateral<unknown>): TNeuron | undefined;
72
73
  getDendrites(): TDendrite[];
73
- getCollaterals(): CNSCollateral<unknown>[];
74
- getSubscribers(collateral: CNSCollateral<unknown>): TCNSSubscriber<TNeuron, TDendrite>[];
74
+ getCollaterals(): ICNSCollateral<unknown>[];
75
+ getSubscribers(collateral: ICNSCollateral<unknown>): TCNSSubscriber<TNeuron, TDendrite>[];
75
76
  }
76
77
  //# 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,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"}
1
+ {"version":3,"file":"CNSNetwork.d.ts","sourceRoot":"","sources":["../src/CNSNetwork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,qBAAa,UAAU,CACnB,OAAO,SAAS,UAAU,CAAC,GAAG,CAAC,EAC/B,SAAS,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IA4CjC,OAAO,CAAC,QAAQ,CAAC,OAAO;IA1CpC;;;;;;;OAOG;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,CAA+C;gBAElD,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,cAAc,CAAC,OAAO,CAAC;IAM/D,YAAY;IAaZ,cAAc;IAUd,cAAc,CACjB,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,GACpC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;CAG1C"}
@@ -1,20 +1,18 @@
1
- import { ICNSStimulationContextStore } from './interfaces/ICNSStimulationContextStore';
2
- import { TCNSStimulationOptions } from './types/TCNSStimulationOptions';
3
- import { TCNSNeuron } from './types/TCNSNeuron';
4
- import { TCNSDendrite } from './types/TCNSDendrite';
5
- import { TCNSSubscriber } from './types/TCNSSubscriber';
1
+ import type { ICNSCollateral } from '@cnstra/types';
2
+ import { TCNSStimulationOptions } from '@cnstra/types';
3
+ import { TCNSNeuron } from '@cnstra/types';
4
+ import { TCNSDendrite } from '@cnstra/types';
5
+ import { TCNSSubscriber } from '@cnstra/types';
6
6
  import { CNSInstanceNeuronQueue } from './CNSInstanceNeuronQueue';
7
- import { TCNSSignal } from './types/TCNSSignal';
8
- import { TCNSNeuronActivationTask } from './types/TCNSNeuronActivationTask';
7
+ import { TCNSSignal } from '@cnstra/types';
8
+ import { TCNSNeuronActivationTask } from '@cnstra/types';
9
9
  import { CNS } from './CNS';
10
- import { TCNSNeuronActivationTaskFailure } from './types/TCNSNeuronActivationTaskFailure';
11
- import { TCNSStimulationResponse } from './types/TCNSStimulationResponse';
12
- import { TCNSStimulationDrain } from './types/TCNSStimulationDrain';
13
- import { CNSCollateral } from './CNSCollateral';
14
- export declare class CNSStimulation<TNeuron extends TCNSNeuron<any, any>, TDendrite extends TCNSDendrite<any, any, any> = TCNSDendrite<any, any, any>> {
10
+ import { TCNSNeuronActivationTaskFailure } from '@cnstra/types';
11
+ import { TCNSStimulationResponse } from '@cnstra/types';
12
+ import { TCNSStimulationDrain } from '@cnstra/types';
13
+ export declare class CNSStimulation<TNeuron extends TCNSNeuron<any>, TDendrite extends TCNSDendrite<any, any, any> = TCNSDendrite<any, any, any>> {
15
14
  readonly cns: CNS<TNeuron, TDendrite>;
16
15
  readonly options?: TCNSStimulationOptions<TCNSStimulationResponse> | undefined;
17
- private ctxStore?;
18
16
  private qItems?;
19
17
  private qHead;
20
18
  private qTail;
@@ -49,17 +47,10 @@ export declare class CNSStimulation<TNeuron extends TCNSNeuron<any, any>, TDendr
49
47
  * stimulation with no drain listener pays only the turn depth counter.
50
48
  */
51
49
  private readonly onDrain?;
52
- /**
53
- * Track active SCCs: SCC index -> count of active neurons in that SCC.
54
- * Only allocated when context auto-cleanup is enabled.
55
- */
56
- private readonly activeSccCounts?;
57
50
  constructor(cns: CNS<TNeuron, TDendrite>, instanceNeuronQueue: CNSInstanceNeuronQueue<TNeuron>, options?: TCNSStimulationOptions<TCNSStimulationResponse> | undefined, onResponse?: (response: TCNSStimulationResponse) => void | Promise<void>, onDrain?: (drain: TCNSStimulationDrain) => void);
58
51
  private pushFailedTask;
59
52
  private finalizeResolve;
60
53
  private finalizeReject;
61
- /** Lazily-created neuron context store (see {@link ctxStore}). */
62
- private get ctx();
63
54
  private get canStartOperation();
64
55
  private qResize;
65
56
  private qDequeue;
@@ -102,41 +93,23 @@ export declare class CNSStimulation<TNeuron extends TCNSNeuron<any, any>, TDendr
102
93
  */
103
94
  getFailedTasks(): Array<TCNSNeuronActivationTaskFailure<TNeuron>>;
104
95
  /**
105
- * Get the context store for this stimulation
96
+ * The current outstanding frontier — every task that has not completed:
97
+ * queued, active, and pending (awaiting an async onResponse), plus any
98
+ * failed/aborted tasks. This is the set to persist for resume: re-activating
99
+ * it re-runs exactly the not-yet-done work. Safe to call at any point during
100
+ * a run (for progress) or after it fails.
106
101
  */
107
- getContext(): ICNSStimulationContextStore;
102
+ getOutstandingTasks(): TCNSNeuronActivationTask<TNeuron>[];
108
103
  /**
109
104
  * Enqueue activation tasks directly into the stimulation queue
110
105
  */
111
106
  enqueueTasks(tasks: TCNSNeuronActivationTask<TNeuron>[]): void;
112
107
  protected get concurrencyEnabled(): boolean;
113
- protected get autoCleanupContextsEnabled(): boolean;
114
- /**
115
- * Mark a neuron as active (being processed)
116
- */
117
- protected markNeuronActive(neuron: TNeuron): void;
118
- /**
119
- * Mark a neuron as inactive (finished processing)
120
- */
121
- protected markNeuronInactive(neuron: TNeuron): void;
122
- /**
123
- * Increment the active count for the SCC containing this neuron
124
- */
125
- private incrementSccCount;
126
- /**
127
- * Decrement the active count for the SCC containing this neuron
128
- */
129
- private decrementSccCount;
130
- /**
131
- * Check if a neuron can be guaranteed not to be visited again
132
- */
133
- protected canNeuronBeGuaranteedDone(neuron: TNeuron): boolean;
134
- protected cleanupCtxIfNeeded(neuron: TNeuron): void;
135
- protected createSubscriberQueueItem(subscriber: TCNSSubscriber<TNeuron, TDendrite>, inputSignal?: TCNSSignal<CNSCollateral<unknown>>): TCNSNeuronActivationTask<TNeuron>;
108
+ protected createSubscriberQueueItem(subscriber: TCNSSubscriber<TNeuron, TDendrite>, inputSignal?: TCNSSignal<ICNSCollateral<unknown>>): TCNSNeuronActivationTask<TNeuron>;
136
109
  private executeActivationTask;
137
110
  private runStarter;
138
- protected processResponseOrResponses(emitter: TNeuron | undefined, inputSignal?: TCNSSignal<CNSCollateral<unknown>>, outputSignalOrSignals?: TCNSSignal<CNSCollateral<unknown>> | TCNSSignal<CNSCollateral<unknown>>[], error?: any): void;
139
- protected processResponse(emitter: TNeuron | undefined, inputSignal?: TCNSSignal<CNSCollateral<unknown>>, outputSignal?: TCNSSignal<CNSCollateral<unknown>>, error?: any): void;
140
- responseToSignal(signalOrSignals: TCNSSignal<CNSCollateral<unknown>> | TCNSSignal<CNSCollateral<unknown>>[]): void;
111
+ protected processResponseOrResponses(emitter: TNeuron | undefined, inputSignal?: TCNSSignal<ICNSCollateral<unknown>>, outputSignalOrSignals?: TCNSSignal<ICNSCollateral<unknown>> | TCNSSignal<ICNSCollateral<unknown>>[], error?: any): void;
112
+ protected processResponse(emitter: TNeuron | undefined, inputSignal?: TCNSSignal<ICNSCollateral<unknown>>, outputSignal?: TCNSSignal<ICNSCollateral<unknown>>, error?: any): void;
113
+ responseToSignal(signalOrSignals: TCNSSignal<ICNSCollateral<unknown>> | TCNSSignal<ICNSCollateral<unknown>>[]): void;
141
114
  }
142
115
  //# 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":"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"}
@@ -1,67 +1,64 @@
1
- import { CNS } from '../CNS';
2
1
  import { CNSCollateral } from '../CNSCollateral';
3
- import { CNSPersistOptionsRegistry } from '../CNSPersistOptionsRegistry';
4
- import { TCNSAxon } from '../types/TCNSAxon';
5
- import { TCNSOptions } from '../types/TCNSOptions';
6
- import { TCNSDendrite } from '../types/TCNSDendrite';
7
- import { TCNSHandlerContext } from '../types/TCNSHandlerContext';
8
- import { TNCNeuronResponseReturn } from '../types/TCNSNeuronResponseReturn';
9
- import { TCNSNeuron } from '../types/TCNSNeuron';
10
- import { TCNSModality } from '../types/TCNSModality';
11
- import { TCNSAfferentPath } from '../types/TCNSAfferentPath';
2
+ import type { ICNSCollateral } from '@cnstra/types';
3
+ import { TCNSAxon } from '@cnstra/types';
4
+ import { TCNSDendrite } from '@cnstra/types';
5
+ import { TCNSHandlerContext } from '@cnstra/types';
6
+ import { TCNSNeuronResponseReturn } from '@cnstra/types';
7
+ import { TCNSModality } from '@cnstra/types';
8
+ import { TCNSAfferentPath } from '@cnstra/types';
12
9
  export declare const collateral: <TPayload = undefined>() => CNSCollateral<TPayload>;
13
- type CollateralPayloadUnion<TCollaterals extends readonly CNSCollateral<unknown>[]> = {
14
- [K in keyof TCollaterals]: TCollaterals[K] extends CNSCollateral<infer P> ? P : never;
10
+ type CollateralPayloadUnion<TCollaterals extends readonly ICNSCollateral<unknown>[]> = {
11
+ [K in keyof TCollaterals]: TCollaterals[K] extends ICNSCollateral<infer P> ? P : never;
15
12
  }[number];
16
- type InterNeuronAPI<TContextValue, TAxonType extends TCNSAxon = TCNSAxon, TGlobal = unknown> = {
13
+ type InterNeuronAPI<TAxonType extends TCNSAxon = TCNSAxon, TGlobal = unknown> = {
17
14
  axon: TAxonType;
18
15
  concurrency?: number;
19
16
  maxDuration?: number;
20
- dendrites: TCNSDendrite<TContextValue, CNSCollateral<unknown>, TAxonType, TGlobal>[];
21
- setConcurrency: (n: number | undefined) => InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
22
- setMaxDuration: (ms: number | undefined) => InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
23
- bind: <TFollowAxon extends Record<string, CNSCollateral<unknown>>>(axon: TFollowAxon, dendrites: {
24
- [K in keyof TFollowAxon]: TCNSDendrite<TContextValue, TFollowAxon[K], TAxonType, TGlobal> | TCNSDendrite<TContextValue, TFollowAxon[K], TAxonType, TGlobal>['response'];
25
- }) => InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
17
+ dendrites: TCNSDendrite<ICNSCollateral<unknown>, TAxonType, TGlobal>[];
18
+ setConcurrency: (n: number | undefined) => InterNeuronAPI<TAxonType, TGlobal>;
19
+ setMaxDuration: (ms: number | undefined) => InterNeuronAPI<TAxonType, TGlobal>;
20
+ bind: <TFollowAxon extends Record<string, ICNSCollateral<unknown>>>(axon: TFollowAxon, dendrites: {
21
+ [K in keyof TFollowAxon]: TCNSDendrite<TFollowAxon[K], TAxonType, TGlobal> | TCNSDendrite<TFollowAxon[K], TAxonType, TGlobal>['response'];
22
+ }) => InterNeuronAPI<TAxonType, TGlobal>;
26
23
  dendrite: {
27
- <TSenderCollateral extends CNSCollateral<unknown>>(s: {
24
+ <TSenderCollateral extends ICNSCollateral<unknown>>(s: {
28
25
  collateral: TSenderCollateral;
29
- response: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TNCNeuronResponseReturn<TAxonType>;
30
- }): InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
26
+ response: (payload: TSenderCollateral extends ICNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TGlobal>) => TCNSNeuronResponseReturn<TAxonType>;
27
+ }): InterNeuronAPI<TAxonType, TGlobal>;
31
28
  <TCollaterals extends readonly [
32
- CNSCollateral<unknown>,
33
- ...CNSCollateral<unknown>[]
29
+ ICNSCollateral<unknown>,
30
+ ...ICNSCollateral<unknown>[]
34
31
  ]>(s: {
35
32
  collateral: TCollaterals;
36
- response: (payload: CollateralPayloadUnion<TCollaterals>, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TNCNeuronResponseReturn<TAxonType>;
37
- }): InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
33
+ response: (payload: CollateralPayloadUnion<TCollaterals>, axon: TAxonType, ctx: TCNSHandlerContext<TGlobal>) => TCNSNeuronResponseReturn<TAxonType>;
34
+ }): InterNeuronAPI<TAxonType, TGlobal>;
38
35
  <TPayloadUnion>(s: {
39
- collateral: CNSCollateral<unknown>[];
40
- response: (payload: TPayloadUnion, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TNCNeuronResponseReturn<TAxonType>;
41
- }): InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
42
- (s: TCNSDendrite<TContextValue, CNSCollateral<unknown>, TAxonType, TGlobal>): InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
36
+ collateral: ICNSCollateral<unknown>[];
37
+ response: (payload: TPayloadUnion, axon: TAxonType, ctx: TCNSHandlerContext<TGlobal>) => TCNSNeuronResponseReturn<TAxonType>;
38
+ }): InterNeuronAPI<TAxonType, TGlobal>;
39
+ (s: TCNSDendrite<ICNSCollateral<unknown>, TAxonType, TGlobal>): InterNeuronAPI<TAxonType, TGlobal>;
43
40
  };
44
41
  modalityDendrite: {
45
- <TSenderCollateral extends CNSCollateral<unknown>, TResult>(s: {
42
+ <TSenderCollateral extends ICNSCollateral<unknown>, TResult>(s: {
46
43
  collateral: TSenderCollateral;
47
44
  modality: TCNSModality;
48
- afferentPaths?: Map<TCNSAfferentPath, (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TResult | Promise<TResult>>;
49
- default?: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TResult | Promise<TResult>;
50
- output: (result: TResult, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TNCNeuronResponseReturn<TAxonType>;
51
- }): InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
52
- <TSenderCollateral extends CNSCollateral<unknown>, TResult>(s: {
45
+ afferentPaths?: Map<TCNSAfferentPath, (payload: TSenderCollateral extends ICNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TGlobal>) => TResult | Promise<TResult>>;
46
+ default?: (payload: TSenderCollateral extends ICNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TGlobal>) => TResult | Promise<TResult>;
47
+ output: (result: TResult, axon: TAxonType, ctx: TCNSHandlerContext<TGlobal>) => TCNSNeuronResponseReturn<TAxonType>;
48
+ }): InterNeuronAPI<TAxonType, TGlobal>;
49
+ <TSenderCollateral extends ICNSCollateral<unknown>, TResult>(s: {
53
50
  collateral: TSenderCollateral;
54
51
  modalities: Array<{
55
52
  modality: TCNSModality;
56
- afferentPaths?: Map<TCNSAfferentPath, (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TResult | Promise<TResult>>;
57
- default?: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TResult | Promise<TResult>;
53
+ afferentPaths?: Map<TCNSAfferentPath, (payload: TSenderCollateral extends ICNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TGlobal>) => TResult | Promise<TResult>>;
54
+ default?: (payload: TSenderCollateral extends ICNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TGlobal>) => TResult | Promise<TResult>;
58
55
  }>;
59
- default?: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TResult | Promise<TResult>;
60
- output: (result: TResult, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TNCNeuronResponseReturn<TAxonType>;
61
- }): InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
56
+ default?: (payload: TSenderCollateral extends ICNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TGlobal>) => TResult | Promise<TResult>;
57
+ output: (result: TResult, axon: TAxonType, ctx: TCNSHandlerContext<TGlobal>) => TCNSNeuronResponseReturn<TAxonType>;
58
+ }): InterNeuronAPI<TAxonType, TGlobal>;
62
59
  };
63
60
  };
64
- export declare const neuron: <TContextValue, TProvidedAxon extends Record<string, CNSCollateral<unknown>>, TGlobal = unknown>(axon: TProvidedAxon) => InterNeuronAPI<TContextValue, TCNSAxon<TProvidedAxon>, TGlobal>;
61
+ export declare const neuron: <TProvidedAxon extends Record<string, ICNSCollateral<unknown>>, TGlobal = unknown>(axon: TProvidedAxon) => InterNeuronAPI<TCNSAxon<TProvidedAxon>, TGlobal>;
65
62
  /**
66
63
  * A composable neuron factory. Each `.withX<T>()` returns a *new typed view* of
67
64
  * the same underlying builder (the layers are type-only — zero runtime cost, no
@@ -77,7 +74,7 @@ export declare const neuron: <TContextValue, TProvidedAxon extends Record<string
77
74
  * @example
78
75
  * // src/neurons/factory.ts — ctx shape baked once
79
76
  * type TGlobal = { store: Store; now(): number; newId(): string };
80
- * export const { neuron } = neuronFactory().withGlobal<TGlobal>().withCtx<TCtx>();
77
+ * export const { neuron } = neuronFactory().withGlobal<TGlobal>();
81
78
  *
82
79
  * // any neuron file — plain value, reaches deps via ctx.global
83
80
  * export const taskNeuron = neuron({ taskCreated }).bind({ createTask }, {
@@ -85,76 +82,19 @@ export declare const neuron: <TContextValue, TProvidedAxon extends Record<string
85
82
  * axon.taskCreated.createSignal({ id: global.newId(), title, at: global.now() }),
86
83
  * });
87
84
  */
88
- export type TNeuronFactory<TContextValue, TExt = unknown> = {
89
- /** Bake the per-stimulation, per-neuron context value type (`ctx.get()/set()`). */
90
- withCtx: <T>() => TNeuronFactory<T, TExt>;
85
+ export type TNeuronFactory<TExt = unknown> = {
91
86
  /** Add `{ global: T }` to ctx; the value is injected once at `createCNS`/`new CNS`. */
92
- withGlobal: <T>() => TNeuronFactory<TContextValue, TExt & {
87
+ withGlobal: <T>() => TNeuronFactory<TExt & {
93
88
  global: T;
94
89
  }>;
95
- neuron: <TProvidedAxon extends Record<string, CNSCollateral<unknown>>>(axon: TProvidedAxon) => InterNeuronAPI<TContextValue, TCNSAxon<TProvidedAxon>, TExt>;
90
+ neuron: <TProvidedAxon extends Record<string, ICNSCollateral<unknown>>>(axon: TProvidedAxon) => InterNeuronAPI<TCNSAxon<TProvidedAxon>, TExt>;
96
91
  };
97
- export declare const neuronFactory: <TContextValue = undefined, TExt = unknown>() => TNeuronFactory<TContextValue, TExt>;
98
- /** Sugar: `neuronFactory().withCtx<T>()`. Still exposes `.neuron`, so existing usage is unchanged. */
99
- export declare const withCtx: <TContextValue>() => TNeuronFactory<TContextValue>;
92
+ export declare const neuronFactory: <TExt = unknown>() => TNeuronFactory<TExt>;
100
93
  /** Sugar: `neuronFactory().withGlobal<T>()`. */
101
- export declare const withGlobal: <T>() => TNeuronFactory<undefined, {
94
+ export declare const withGlobal: <T>() => TNeuronFactory<{
102
95
  global: T;
103
96
  }>;
104
97
  export declare const afferentPath: (parentAfferentPath?: TCNSAfferentPath) => TCNSAfferentPath;
105
98
  export declare const modality: (afferentPaths: Record<string | number, TCNSAfferentPath>) => TCNSModality;
106
- type CNSRegistryValue<N extends TCNSNeuron<any, any>> = N | (N extends TCNSNeuron<any, infer TAxon> ? {
107
- neuron: N;
108
- collaterals?: {
109
- [K in keyof TAxon]?: string;
110
- };
111
- } : never);
112
- /**
113
- * Creates a CNSPersistOptionsRegistry from a plain object of named neurons.
114
- * All axon collaterals are registered automatically.
115
- *
116
- * @example
117
- * // Auto names from JS identifiers:
118
- * export const registry = createPersistRegistry({ deckNeuron, cardNeuron });
119
- *
120
- * // Explicit neuron name:
121
- * export const registry = createPersistRegistry({ 'deck-neuron': deckNeuron });
122
- *
123
- * // Explicit collateral names (keys are type-checked against the neuron's axon):
124
- * export const registry = createPersistRegistry({
125
- * 'deck-neuron': { neuron: deckNeuron, collaterals: { deckCreated: 'deck-created' } }
126
- * });
127
- */
128
- export declare const createPersistRegistry: <TMap extends Record<string, TCNSNeuron<any, any>>>(namedNeurons: { [K in keyof TMap]: CNSRegistryValue<TMap[K]>; }) => CNSPersistOptionsRegistry;
129
- /**
130
- * Creates a CNS and its CNSPersistOptionsRegistry from a single plain object of
131
- * named neurons, so the neuron set is listed exactly once.
132
- *
133
- * `cns` is the runtime engine; `registry` carries the names used by devtools,
134
- * mcp and persistence. Both derive from the same map, so they can never drift.
135
- * If you don't need naming/persistence, just use `new CNS([...])` directly —
136
- * this factory is purely additive.
137
- *
138
- * @example
139
- * const { cns, registry } = createCNS({
140
- * task: createTaskNeuron(store),
141
- * comment: createCommentNeuron(store),
142
- * });
143
- *
144
- * // Explicit names / collateral names work exactly like createPersistRegistry:
145
- * const { cns, registry } = createCNS({
146
- * 'task-neuron': { neuron: taskNeuron, collaterals: { taskCreated: 'task-created' } },
147
- * });
148
- *
149
- * // Inject the shared `global` once — it surfaces as `ctx.global` in every neuron
150
- * // (type it once via `neuronFactory().withGlobal<T>()`). Swappable per instance:
151
- * const { cns } = createCNS(map, { global: { store, now, newId } });
152
- */
153
- export declare const createCNS: <TMap extends Record<string, TCNSNeuron<any, any>>, TGlobal = undefined>(namedNeurons: { [K in keyof TMap]: CNSRegistryValue<TMap[K]>; }, options?: TCNSOptions & {
154
- global?: TGlobal;
155
- }) => {
156
- cns: CNS<TCNSNeuron<any, any>>;
157
- registry: CNSPersistOptionsRegistry;
158
- };
159
99
  export {};
160
100
  //# 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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"}