@cnstra/core 2.6.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.
- package/README.md +3 -4
- package/dist/CNS.d.ts +5 -1
- package/dist/CNS.d.ts.map +1 -1
- package/dist/CNSNetwork.d.ts +4 -3
- package/dist/CNSNetwork.d.ts.map +1 -1
- package/dist/CNSStimulation.d.ts +1 -36
- package/dist/CNSStimulation.d.ts.map +1 -1
- package/dist/factory/index.d.ts +30 -34
- package/dist/factory/index.d.ts.map +1 -1
- package/dist/index.cjs +25 -157
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -156
- package/dist/index.js.map +1 -1
- package/dist/utils/CNSStimulationGate.d.ts +2 -2
- package/dist/utils/CNSStimulationGate.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/CNSStimulationContextStore.d.ts +0 -11
- package/dist/CNSStimulationContextStore.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,
|
|
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 =
|
|
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,
|
|
124
|
+
- **[Advanced Topics](https://cnstra.org/docs/advanced)** — Performance, integrations
|
|
126
125
|
|
|
127
126
|
---
|
|
128
127
|
|
package/dist/CNS.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ import { TCNSStimulationDrain } from '@cnstra/types';
|
|
|
11
11
|
import { TCNSNeuronActivationTask } from '@cnstra/types';
|
|
12
12
|
import { CNSNetwork } from './CNSNetwork';
|
|
13
13
|
import { ICNS } from '@cnstra/types';
|
|
14
|
-
export declare class CNS<TNeuron extends TCNSNeuron<any
|
|
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,6 +59,8 @@ export declare class CNS<TNeuron extends TCNSNeuron<any, any>, TDendrite extends
|
|
|
57
59
|
*/
|
|
58
60
|
private wrapOnDrain;
|
|
59
61
|
private wrapOnResponse;
|
|
62
|
+
/** Build a stimulation (wired listeners, unseeded). Shared by stimulate/activate. */
|
|
63
|
+
private createStimulation;
|
|
60
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
|
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,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,
|
|
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"}
|
package/dist/CNSNetwork.d.ts
CHANGED
|
@@ -2,14 +2,15 @@ import type { ICNSCollateral } from '@cnstra/types';
|
|
|
2
2
|
import { TCNSNeuron } from '@cnstra/types';
|
|
3
3
|
import { TCNSSubscriber } from '@cnstra/types';
|
|
4
4
|
import { TCNSDendrite } from '@cnstra/types';
|
|
5
|
-
export declare class CNSNetwork<TNeuron extends TCNSNeuron<any
|
|
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
|
|
12
|
-
*
|
|
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;
|
package/dist/CNSNetwork.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
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"}
|
package/dist/CNSStimulation.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { ICNSCollateral } from '@cnstra/types';
|
|
2
|
-
import { ICNSStimulationContextStore } from '@cnstra/types';
|
|
3
2
|
import { TCNSStimulationOptions } from '@cnstra/types';
|
|
4
3
|
import { TCNSNeuron } from '@cnstra/types';
|
|
5
4
|
import { TCNSDendrite } from '@cnstra/types';
|
|
@@ -11,10 +10,9 @@ import { CNS } from './CNS';
|
|
|
11
10
|
import { TCNSNeuronActivationTaskFailure } from '@cnstra/types';
|
|
12
11
|
import { TCNSStimulationResponse } from '@cnstra/types';
|
|
13
12
|
import { TCNSStimulationDrain } from '@cnstra/types';
|
|
14
|
-
export declare class CNSStimulation<TNeuron extends TCNSNeuron<any
|
|
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;
|
|
@@ -109,37 +100,11 @@ export declare class CNSStimulation<TNeuron extends TCNSNeuron<any, any>, TDendr
|
|
|
109
100
|
* a run (for progress) or after it fails.
|
|
110
101
|
*/
|
|
111
102
|
getOutstandingTasks(): TCNSNeuronActivationTask<TNeuron>[];
|
|
112
|
-
/**
|
|
113
|
-
* Get the context store for this stimulation
|
|
114
|
-
*/
|
|
115
|
-
getContext(): ICNSStimulationContextStore;
|
|
116
103
|
/**
|
|
117
104
|
* Enqueue activation tasks directly into the stimulation queue
|
|
118
105
|
*/
|
|
119
106
|
enqueueTasks(tasks: TCNSNeuronActivationTask<TNeuron>[]): void;
|
|
120
107
|
protected get concurrencyEnabled(): boolean;
|
|
121
|
-
protected get autoCleanupContextsEnabled(): boolean;
|
|
122
|
-
/**
|
|
123
|
-
* Mark a neuron as active (being processed)
|
|
124
|
-
*/
|
|
125
|
-
protected markNeuronActive(neuron: TNeuron): void;
|
|
126
|
-
/**
|
|
127
|
-
* Mark a neuron as inactive (finished processing)
|
|
128
|
-
*/
|
|
129
|
-
protected markNeuronInactive(neuron: TNeuron): void;
|
|
130
|
-
/**
|
|
131
|
-
* Increment the active count for the SCC containing this neuron
|
|
132
|
-
*/
|
|
133
|
-
private incrementSccCount;
|
|
134
|
-
/**
|
|
135
|
-
* Decrement the active count for the SCC containing this neuron
|
|
136
|
-
*/
|
|
137
|
-
private decrementSccCount;
|
|
138
|
-
/**
|
|
139
|
-
* Check if a neuron can be guaranteed not to be visited again
|
|
140
|
-
*/
|
|
141
|
-
protected canNeuronBeGuaranteedDone(neuron: TNeuron): boolean;
|
|
142
|
-
protected cleanupCtxIfNeeded(neuron: TNeuron): void;
|
|
143
108
|
protected createSubscriberQueueItem(subscriber: TCNSSubscriber<TNeuron, TDendrite>, inputSignal?: TCNSSignal<ICNSCollateral<unknown>>): TCNSNeuronActivationTask<TNeuron>;
|
|
144
109
|
private executeActivationTask;
|
|
145
110
|
private runStarter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CNSStimulation.d.ts","sourceRoot":"","sources":["../src/CNSStimulation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"CNSStimulation.d.ts","sourceRoot":"","sources":["../src/CNSStimulation.ts"],"names":[],"mappings":"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"}
|
package/dist/factory/index.d.ts
CHANGED
|
@@ -3,62 +3,62 @@ import type { ICNSCollateral } from '@cnstra/types';
|
|
|
3
3
|
import { TCNSAxon } from '@cnstra/types';
|
|
4
4
|
import { TCNSDendrite } from '@cnstra/types';
|
|
5
5
|
import { TCNSHandlerContext } from '@cnstra/types';
|
|
6
|
-
import {
|
|
6
|
+
import { TCNSNeuronResponseReturn } from '@cnstra/types';
|
|
7
7
|
import { TCNSModality } from '@cnstra/types';
|
|
8
8
|
import { TCNSAfferentPath } from '@cnstra/types';
|
|
9
9
|
export declare const collateral: <TPayload = undefined>() => CNSCollateral<TPayload>;
|
|
10
10
|
type CollateralPayloadUnion<TCollaterals extends readonly ICNSCollateral<unknown>[]> = {
|
|
11
11
|
[K in keyof TCollaterals]: TCollaterals[K] extends ICNSCollateral<infer P> ? P : never;
|
|
12
12
|
}[number];
|
|
13
|
-
type InterNeuronAPI<
|
|
13
|
+
type InterNeuronAPI<TAxonType extends TCNSAxon = TCNSAxon, TGlobal = unknown> = {
|
|
14
14
|
axon: TAxonType;
|
|
15
15
|
concurrency?: number;
|
|
16
16
|
maxDuration?: number;
|
|
17
|
-
dendrites: TCNSDendrite<
|
|
18
|
-
setConcurrency: (n: number | undefined) => InterNeuronAPI<
|
|
19
|
-
setMaxDuration: (ms: number | undefined) => InterNeuronAPI<
|
|
17
|
+
dendrites: TCNSDendrite<ICNSCollateral<unknown>, TAxonType, TGlobal>[];
|
|
18
|
+
setConcurrency: (n: number | undefined) => InterNeuronAPI<TAxonType, TGlobal>;
|
|
19
|
+
setMaxDuration: (ms: number | undefined) => InterNeuronAPI<TAxonType, TGlobal>;
|
|
20
20
|
bind: <TFollowAxon extends Record<string, ICNSCollateral<unknown>>>(axon: TFollowAxon, dendrites: {
|
|
21
|
-
[K in keyof TFollowAxon]: TCNSDendrite<
|
|
22
|
-
}) => InterNeuronAPI<
|
|
21
|
+
[K in keyof TFollowAxon]: TCNSDendrite<TFollowAxon[K], TAxonType, TGlobal> | TCNSDendrite<TFollowAxon[K], TAxonType, TGlobal>['response'];
|
|
22
|
+
}) => InterNeuronAPI<TAxonType, TGlobal>;
|
|
23
23
|
dendrite: {
|
|
24
24
|
<TSenderCollateral extends ICNSCollateral<unknown>>(s: {
|
|
25
25
|
collateral: TSenderCollateral;
|
|
26
|
-
response: (payload: TSenderCollateral extends ICNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<
|
|
27
|
-
}): InterNeuronAPI<
|
|
26
|
+
response: (payload: TSenderCollateral extends ICNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TGlobal>) => TCNSNeuronResponseReturn<TAxonType>;
|
|
27
|
+
}): InterNeuronAPI<TAxonType, TGlobal>;
|
|
28
28
|
<TCollaterals extends readonly [
|
|
29
29
|
ICNSCollateral<unknown>,
|
|
30
30
|
...ICNSCollateral<unknown>[]
|
|
31
31
|
]>(s: {
|
|
32
32
|
collateral: TCollaterals;
|
|
33
|
-
response: (payload: CollateralPayloadUnion<TCollaterals>, axon: TAxonType, ctx: TCNSHandlerContext<
|
|
34
|
-
}): InterNeuronAPI<
|
|
33
|
+
response: (payload: CollateralPayloadUnion<TCollaterals>, axon: TAxonType, ctx: TCNSHandlerContext<TGlobal>) => TCNSNeuronResponseReturn<TAxonType>;
|
|
34
|
+
}): InterNeuronAPI<TAxonType, TGlobal>;
|
|
35
35
|
<TPayloadUnion>(s: {
|
|
36
36
|
collateral: ICNSCollateral<unknown>[];
|
|
37
|
-
response: (payload: TPayloadUnion, axon: TAxonType, ctx: TCNSHandlerContext<
|
|
38
|
-
}): InterNeuronAPI<
|
|
39
|
-
(s: TCNSDendrite<
|
|
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>;
|
|
40
40
|
};
|
|
41
41
|
modalityDendrite: {
|
|
42
42
|
<TSenderCollateral extends ICNSCollateral<unknown>, TResult>(s: {
|
|
43
43
|
collateral: TSenderCollateral;
|
|
44
44
|
modality: TCNSModality;
|
|
45
|
-
afferentPaths?: Map<TCNSAfferentPath, (payload: TSenderCollateral extends ICNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<
|
|
46
|
-
default?: (payload: TSenderCollateral extends ICNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<
|
|
47
|
-
output: (result: TResult, axon: TAxonType, ctx: TCNSHandlerContext<
|
|
48
|
-
}): InterNeuronAPI<
|
|
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
49
|
<TSenderCollateral extends ICNSCollateral<unknown>, TResult>(s: {
|
|
50
50
|
collateral: TSenderCollateral;
|
|
51
51
|
modalities: Array<{
|
|
52
52
|
modality: TCNSModality;
|
|
53
|
-
afferentPaths?: Map<TCNSAfferentPath, (payload: TSenderCollateral extends ICNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<
|
|
54
|
-
default?: (payload: TSenderCollateral extends ICNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<
|
|
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>;
|
|
55
55
|
}>;
|
|
56
|
-
default?: (payload: TSenderCollateral extends ICNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<
|
|
57
|
-
output: (result: TResult, axon: TAxonType, ctx: TCNSHandlerContext<
|
|
58
|
-
}): InterNeuronAPI<
|
|
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>;
|
|
59
59
|
};
|
|
60
60
|
};
|
|
61
|
-
export declare const neuron: <
|
|
61
|
+
export declare const neuron: <TProvidedAxon extends Record<string, ICNSCollateral<unknown>>, TGlobal = unknown>(axon: TProvidedAxon) => InterNeuronAPI<TCNSAxon<TProvidedAxon>, TGlobal>;
|
|
62
62
|
/**
|
|
63
63
|
* A composable neuron factory. Each `.withX<T>()` returns a *new typed view* of
|
|
64
64
|
* the same underlying builder (the layers are type-only — zero runtime cost, no
|
|
@@ -74,7 +74,7 @@ export declare const neuron: <TContextValue, TProvidedAxon extends Record<string
|
|
|
74
74
|
* @example
|
|
75
75
|
* // src/neurons/factory.ts — ctx shape baked once
|
|
76
76
|
* type TGlobal = { store: Store; now(): number; newId(): string };
|
|
77
|
-
* export const { neuron } = neuronFactory().withGlobal<TGlobal>()
|
|
77
|
+
* export const { neuron } = neuronFactory().withGlobal<TGlobal>();
|
|
78
78
|
*
|
|
79
79
|
* // any neuron file — plain value, reaches deps via ctx.global
|
|
80
80
|
* export const taskNeuron = neuron({ taskCreated }).bind({ createTask }, {
|
|
@@ -82,20 +82,16 @@ export declare const neuron: <TContextValue, TProvidedAxon extends Record<string
|
|
|
82
82
|
* axon.taskCreated.createSignal({ id: global.newId(), title, at: global.now() }),
|
|
83
83
|
* });
|
|
84
84
|
*/
|
|
85
|
-
export type TNeuronFactory<
|
|
86
|
-
/** Bake the per-stimulation, per-neuron context value type (`ctx.get()/set()`). */
|
|
87
|
-
withCtx: <T>() => TNeuronFactory<T, TExt>;
|
|
85
|
+
export type TNeuronFactory<TExt = unknown> = {
|
|
88
86
|
/** Add `{ global: T }` to ctx; the value is injected once at `createCNS`/`new CNS`. */
|
|
89
|
-
withGlobal: <T>() => TNeuronFactory<
|
|
87
|
+
withGlobal: <T>() => TNeuronFactory<TExt & {
|
|
90
88
|
global: T;
|
|
91
89
|
}>;
|
|
92
|
-
neuron: <TProvidedAxon extends Record<string, ICNSCollateral<unknown>>>(axon: TProvidedAxon) => InterNeuronAPI<
|
|
90
|
+
neuron: <TProvidedAxon extends Record<string, ICNSCollateral<unknown>>>(axon: TProvidedAxon) => InterNeuronAPI<TCNSAxon<TProvidedAxon>, TExt>;
|
|
93
91
|
};
|
|
94
|
-
export declare const neuronFactory: <
|
|
95
|
-
/** Sugar: `neuronFactory().withCtx<T>()`. Still exposes `.neuron`, so existing usage is unchanged. */
|
|
96
|
-
export declare const withCtx: <TContextValue>() => TNeuronFactory<TContextValue>;
|
|
92
|
+
export declare const neuronFactory: <TExt = unknown>() => TNeuronFactory<TExt>;
|
|
97
93
|
/** Sugar: `neuronFactory().withGlobal<T>()`. */
|
|
98
|
-
export declare const withGlobal: <T>() => TNeuronFactory<
|
|
94
|
+
export declare const withGlobal: <T>() => TNeuronFactory<{
|
|
99
95
|
global: T;
|
|
100
96
|
}>;
|
|
101
97
|
export declare const afferentPath: (parentAfferentPath?: TCNSAfferentPath) => TCNSAfferentPath;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,eAAO,MAAM,UAAU,GAAI,QAAQ,GAAG,SAAS,8BACd,CAAC;AAKlC,KAAK,sBAAsB,CACvB,YAAY,SAAS,SAAS,cAAc,CAAC,OAAO,CAAC,EAAE,IACvD;KACC,CAAC,IAAI,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,CAAC,GACpE,CAAC,GACD,KAAK;CACd,CAAC,MAAM,CAAC,CAAC;AAEV,KAAK,cAAc,CACf,SAAS,SAAS,QAAQ,GAAG,QAAQ,EACrC,OAAO,GAAG,OAAO,IACjB;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,YAAY,CACnB,cAAc,CAAC,OAAO,CAAC,EACvB,SAAS,EACT,OAAO,CACV,EAAE,CAAC;IACJ,cAAc,EAAE,CACZ,CAAC,EAAE,MAAM,GAAG,SAAS,KACpB,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,cAAc,EAAE,CACZ,EAAE,EAAE,MAAM,GAAG,SAAS,KACrB,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,IAAI,EAAE,CAAC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,EAC9D,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE;SACN,CAAC,IAAI,MAAM,WAAW,GACjB,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,GAChD,YAAY,CACR,WAAW,CAAC,CAAC,CAAC,EACd,SAAS,EACT,OAAO,CACV,CAAC,UAAU,CAAC;KACtB,KACA,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,QAAQ,EAAE;QACN,CAAC,iBAAiB,SAAS,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACnD,UAAU,EAAE,iBAAiB,CAAC;YAC9B,QAAQ,EAAE,CACN,OAAO,EAAE,iBAAiB,SAAS,cAAc,CAAC,MAAM,CAAC,CAAC,GACpD,CAAC,GACD,KAAK,EACX,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAC/B,wBAAwB,CAAC,SAAS,CAAC,CAAC;SAC5C,GAAG,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvC,CACI,YAAY,SAAS,SAAS;YAC1B,cAAc,CAAC,OAAO,CAAC;YACvB,GAAG,cAAc,CAAC,OAAO,CAAC,EAAE;SAC/B,EACH,CAAC,EAAE;YACD,UAAU,EAAE,YAAY,CAAC;YACzB,QAAQ,EAAE,CACN,OAAO,EAAE,sBAAsB,CAAC,YAAY,CAAC,EAC7C,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAC/B,wBAAwB,CAAC,SAAS,CAAC,CAAC;SAC5C,GAAG,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC,aAAa,EAAE,CAAC,EAAE;YACf,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,QAAQ,EAAE,CACN,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAC/B,wBAAwB,CAAC,SAAS,CAAC,CAAC;SAC5C,GAAG,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvC,CACI,CAAC,EAAE,YAAY,CACX,cAAc,CAAC,OAAO,CAAC,EACvB,SAAS,EACT,OAAO,CACV,GACF,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;KACzC,CAAC;IACF,gBAAgB,EAAE;QACd,CAAC,iBAAiB,SAAS,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;YAC5D,UAAU,EAAE,iBAAiB,CAAC;YAC9B,QAAQ,EAAE,YAAY,CAAC;YACvB,aAAa,CAAC,EAAE,GAAG,CACf,gBAAgB,EAChB,CACI,OAAO,EAAE,iBAAiB,SAAS,cAAc,CAAC,MAAM,CAAC,CAAC,GACpD,CAAC,GACD,KAAK,EACX,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAC/B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAClC,CAAC;YACF,OAAO,CAAC,EAAE,CACN,OAAO,EAAE,iBAAiB,SAAS,cAAc,CAAC,MAAM,CAAC,CAAC,GACpD,CAAC,GACD,KAAK,EACX,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAC/B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAChC,MAAM,EAAE,CACJ,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAC/B,wBAAwB,CAAC,SAAS,CAAC,CAAC;SAC5C,GAAG,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC,iBAAiB,SAAS,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;YAC5D,UAAU,EAAE,iBAAiB,CAAC;YAC9B,UAAU,EAAE,KAAK,CAAC;gBACd,QAAQ,EAAE,YAAY,CAAC;gBACvB,aAAa,CAAC,EAAE,GAAG,CACf,gBAAgB,EAChB,CACI,OAAO,EAAE,iBAAiB,SAAS,cAAc,CAC7C,MAAM,CAAC,CACV,GACK,CAAC,GACD,KAAK,EACX,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAC/B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAClC,CAAC;gBACF,OAAO,CAAC,EAAE,CACN,OAAO,EAAE,iBAAiB,SAAS,cAAc,CAAC,MAAM,CAAC,CAAC,GACpD,CAAC,GACD,KAAK,EACX,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAC/B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;aACnC,CAAC,CAAC;YACH,OAAO,CAAC,EAAE,CACN,OAAO,EAAE,iBAAiB,SAAS,cAAc,CAAC,MAAM,CAAC,CAAC,GACpD,CAAC,GACD,KAAK,EACX,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAC/B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAChC,MAAM,EAAE,CACJ,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAC/B,wBAAwB,CAAC,SAAS,CAAC,CAAC;SAC5C,GAAG,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;KAC1C,CAAC;CACL,CAAC;AAWF,eAAO,MAAM,MAAM,GACf,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,EAC7D,OAAO,GAAG,OAAO,EAEjB,MAAM,aAAa,KACpB,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAwMjD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,cAAc,CAAC,IAAI,GAAG,OAAO,IAAI;IACzC,uFAAuF;IACvF,UAAU,EAAE,CAAC,CAAC,OAAO,cAAc,CAAC,IAAI,GAAG;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,EAClE,IAAI,EAAE,aAAa,KAClB,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;CACtD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,GAAG,OAAO,OAAK,cAAc,CAAC,IAAI,CAQnE,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,UAAU,GAAI,CAAC,OAAK,cAAc,CAAC;IAAE,MAAM,EAAE,CAAC,CAAA;CAAE,CAC3B,CAAC;AAEnC,eAAO,MAAM,YAAY,GACrB,qBAAqB,gBAAgB,KACtC,gBAMF,CAAC;AAEF,eAAO,MAAM,QAAQ,GACjB,eAAe,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,gBAAgB,CAAC,KACzD,YAIF,CAAC"}
|