@iworkforces/tracelattice 2.1.1 → 2.2.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 +20 -3
- package/dist/contracts/PersistenceBackend.d.ts +10 -1
- package/dist/contracts/PersistenceBackend.d.ts.map +1 -1
- package/dist/contracts/calibrator.d.ts +9 -6
- package/dist/contracts/calibrator.d.ts.map +1 -1
- package/dist/contracts/interfaces.d.ts +6 -0
- package/dist/contracts/interfaces.d.ts.map +1 -1
- package/dist/contracts/persistence-work.d.ts +13 -1
- package/dist/contracts/persistence-work.d.ts.map +1 -1
- package/dist/contracts/strategy.d.ts +14 -9
- package/dist/contracts/strategy.d.ts.map +1 -1
- package/dist/core/DurableThoughtIdentityIndex.d.ts +35 -0
- package/dist/core/DurableThoughtIdentityIndex.d.ts.map +1 -0
- package/dist/core/DurableThoughtIdentityIndex.js +94 -0
- package/dist/core/DurableThoughtIdentityIndex.js.map +1 -0
- package/dist/core/HistoryManager.d.ts +5 -0
- package/dist/core/HistoryManager.d.ts.map +1 -1
- package/dist/core/HistoryManager.js +37 -4
- package/dist/core/HistoryManager.js.map +1 -1
- package/dist/core/IHistoryManager.d.ts +2 -0
- package/dist/core/IHistoryManager.d.ts.map +1 -1
- package/dist/core/PersistenceBuffer.d.ts +7 -1
- package/dist/core/PersistenceBuffer.d.ts.map +1 -1
- package/dist/core/PersistenceBuffer.js +13 -1
- package/dist/core/PersistenceBuffer.js.map +1 -1
- package/dist/core/PersistenceRestore.d.ts.map +1 -1
- package/dist/core/PersistenceRestore.js +11 -3
- package/dist/core/PersistenceRestore.js.map +1 -1
- package/dist/core/PersistenceWorkQueue.d.ts +13 -1
- package/dist/core/PersistenceWorkQueue.d.ts.map +1 -1
- package/dist/core/PersistenceWorkQueue.js +86 -11
- package/dist/core/PersistenceWorkQueue.js.map +1 -1
- package/dist/core/PersistenceWriter.d.ts.map +1 -1
- package/dist/core/PersistenceWriter.js +3 -0
- package/dist/core/PersistenceWriter.js.map +1 -1
- package/dist/core/ThoughtEvaluator.d.ts +7 -4
- package/dist/core/ThoughtEvaluator.d.ts.map +1 -1
- package/dist/core/ThoughtEvaluator.js +15 -7
- package/dist/core/ThoughtEvaluator.js.map +1 -1
- package/dist/core/ThoughtProcessor.d.ts.map +1 -1
- package/dist/core/ThoughtProcessor.js +19 -7
- package/dist/core/ThoughtProcessor.js.map +1 -1
- package/dist/core/ThoughtReferenceIndex.d.ts +4 -0
- package/dist/core/ThoughtReferenceIndex.d.ts.map +1 -1
- package/dist/core/ThoughtReferenceIndex.js +28 -1
- package/dist/core/ThoughtReferenceIndex.js.map +1 -1
- package/dist/core/VerificationOutcomeAdmission.d.ts +8 -1
- package/dist/core/VerificationOutcomeAdmission.d.ts.map +1 -1
- package/dist/core/VerificationOutcomeAdmission.js.map +1 -1
- package/dist/core/VerificationTargetRestore.d.ts +5 -0
- package/dist/core/VerificationTargetRestore.d.ts.map +1 -0
- package/dist/core/VerificationTargetRestore.js +61 -0
- package/dist/core/VerificationTargetRestore.js.map +1 -0
- package/dist/core/evaluator/Aggregator.d.ts +2 -1
- package/dist/core/evaluator/Aggregator.d.ts.map +1 -1
- package/dist/core/evaluator/Aggregator.js +4 -12
- package/dist/core/evaluator/Aggregator.js.map +1 -1
- package/dist/core/evaluator/Calibrator.d.ts +13 -9
- package/dist/core/evaluator/Calibrator.d.ts.map +1 -1
- package/dist/core/evaluator/Calibrator.js +25 -11
- package/dist/core/evaluator/Calibrator.js.map +1 -1
- package/dist/core/evaluator/PatternDetector.d.ts +2 -1
- package/dist/core/evaluator/PatternDetector.d.ts.map +1 -1
- package/dist/core/evaluator/PatternDetector.js +13 -12
- package/dist/core/evaluator/PatternDetector.js.map +1 -1
- package/dist/core/evaluator/SignalComputer.d.ts +3 -2
- package/dist/core/evaluator/SignalComputer.d.ts.map +1 -1
- package/dist/core/evaluator/SignalComputer.js +4 -9
- package/dist/core/evaluator/SignalComputer.js.map +1 -1
- package/dist/core/evaluator/VerificationLinks.d.ts +19 -0
- package/dist/core/evaluator/VerificationLinks.d.ts.map +1 -0
- package/dist/core/evaluator/VerificationLinks.js +113 -0
- package/dist/core/evaluator/VerificationLinks.js.map +1 -0
- package/dist/core/evaluator/calibration-math.d.ts +12 -2
- package/dist/core/evaluator/calibration-math.d.ts.map +1 -1
- package/dist/core/evaluator/calibration-math.js +11 -2
- package/dist/core/evaluator/calibration-math.js.map +1 -1
- package/dist/core/graph/EdgeEmitter.d.ts.map +1 -1
- package/dist/core/graph/EdgeEmitter.js +2 -1
- package/dist/core/graph/EdgeEmitter.js.map +1 -1
- package/dist/core/graph/GraphView.d.ts +5 -5
- package/dist/core/graph/GraphView.d.ts.map +1 -1
- package/dist/core/graph/GraphView.js +11 -11
- package/dist/core/graph/GraphView.js.map +1 -1
- package/dist/core/reasoning/ActiveEvidenceProjection.d.ts +20 -0
- package/dist/core/reasoning/ActiveEvidenceProjection.d.ts.map +1 -0
- package/dist/core/reasoning/ActiveEvidenceProjection.js +100 -0
- package/dist/core/reasoning/ActiveEvidenceProjection.js.map +1 -0
- package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.d.ts +5 -4
- package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.d.ts.map +1 -1
- package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.js +24 -14
- package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.js.map +1 -1
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +3 -1
- package/dist/lib.js.map +1 -1
- package/dist/persistence/BacktrackPersistence.d.ts +13 -0
- package/dist/persistence/BacktrackPersistence.d.ts.map +1 -0
- package/dist/persistence/BacktrackPersistence.js +90 -0
- package/dist/persistence/BacktrackPersistence.js.map +1 -0
- package/dist/persistence/FilePersistence.d.ts +2 -1
- package/dist/persistence/FilePersistence.d.ts.map +1 -1
- package/dist/persistence/FilePersistence.js +28 -0
- package/dist/persistence/FilePersistence.js.map +1 -1
- package/dist/persistence/FileSnapshotV2.d.ts +2 -0
- package/dist/persistence/FileSnapshotV2.d.ts.map +1 -1
- package/dist/persistence/FileSnapshotV2.js +6 -2
- package/dist/persistence/FileSnapshotV2.js.map +1 -1
- package/dist/persistence/MemoryPersistence.d.ts +2 -1
- package/dist/persistence/MemoryPersistence.d.ts.map +1 -1
- package/dist/persistence/MemoryPersistence.js +21 -1
- package/dist/persistence/MemoryPersistence.js.map +1 -1
- package/dist/persistence/PersistenceCodec.d.ts.map +1 -1
- package/dist/persistence/PersistenceCodec.js +5 -0
- package/dist/persistence/PersistenceCodec.js.map +1 -1
- package/dist/persistence/PersistenceErrors.d.ts +1 -1
- package/dist/persistence/PersistenceErrors.d.ts.map +1 -1
- package/dist/persistence/PersistenceErrors.js.map +1 -1
- package/dist/persistence/PersistenceScope.d.ts +1 -1
- package/dist/persistence/PersistenceScope.d.ts.map +1 -1
- package/dist/persistence/PersistenceScope.js.map +1 -1
- package/dist/persistence/SqlitePersistence.d.ts +2 -1
- package/dist/persistence/SqlitePersistence.d.ts.map +1 -1
- package/dist/persistence/SqlitePersistence.js +18 -0
- package/dist/persistence/SqlitePersistence.js.map +1 -1
- package/dist/registry/BaseRegistry.d.ts +10 -2
- package/dist/registry/BaseRegistry.d.ts.map +1 -1
- package/dist/registry/BaseRegistry.js +128 -81
- package/dist/registry/BaseRegistry.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ An MCP server that gives AI agents structured sequential thinking with tool and
|
|
|
10
10
|
- DAG-based thought graph with 8 edge kinds (sequence, branch, merge, verifies, critiques, derives_from, tool_invocation, revises) and topological traversal
|
|
11
11
|
- Pluggable reasoning strategies. Sequential by default, or Tree-of-Thought with BFS/beam search and plateau detection
|
|
12
12
|
- Tool interleave: suspend a thinking chain, run a tool call, then resume where you left off
|
|
13
|
-
- Confidence calibration
|
|
13
|
+
- Confidence calibration with raw-prior shrinkage, plus Brier score and Expected Calibration Error (ECE) for recorded raw predictions
|
|
14
14
|
- Branch compression: cold branches get rolled into summaries automatically, with a sliding-window dehydration policy
|
|
15
15
|
- Outcome recording for tool_call/tool_observation results with metadata
|
|
16
16
|
- Tool and skill recommendations with confidence scores, rationales, and automatic discovery
|
|
@@ -91,6 +91,7 @@ Global (`~/.config/opencode/opencode.json`) or project-scoped (`.opencode.json`)
|
|
|
91
91
|
"command": ["npx", "-y", "@iworkforces/tracelattice"],
|
|
92
92
|
"enabled": true,
|
|
93
93
|
"environment": {
|
|
94
|
+
"TRACELATTICE_TRANSPORT_TYPE": "stdio",
|
|
94
95
|
"TRACELATTICE_MAX_HISTORY_SIZE": "10000",
|
|
95
96
|
"TRACELATTICE_LOG_LEVEL": "debug"
|
|
96
97
|
}
|
|
@@ -163,7 +164,7 @@ All feature flags default to enabled in `ServerConfig`. Set a boolean flag to `f
|
|
|
163
164
|
| Variable | Description |
|
|
164
165
|
| ------------------------------------------ | ------------------------------------------------------------------------ |
|
|
165
166
|
| `TRACELATTICE_FEATURES_DAG_EDGES` | Enable DAG edges for thought relationships |
|
|
166
|
-
| `TRACELATTICE_FEATURES_CALIBRATION` | Enable confidence calibration
|
|
167
|
+
| `TRACELATTICE_FEATURES_CALIBRATION` | Enable raw-prior confidence calibration |
|
|
167
168
|
| `TRACELATTICE_FEATURES_COMPRESSION` | Enable branch compression for cold branches |
|
|
168
169
|
| `TRACELATTICE_FEATURES_TOOL_INTERLEAVE` | Enable suspend/resume for tool calls |
|
|
169
170
|
| `TRACELATTICE_FEATURES_NEW_THOUGHT_TYPES` | Enable tool_call, tool_observation, assumption, decomposition, backtrack |
|
|
@@ -253,7 +254,23 @@ TraceLattice exposes only the current API and persistence contract. There are no
|
|
|
253
254
|
| Partial server cleanup | Await `dispose()` to release the server and all container-owned resources |
|
|
254
255
|
| Unprefixed environment variables | The `TRACELATTICE_*` variables documented above |
|
|
255
256
|
|
|
256
|
-
File persistence accepts the strict v2 `snapshot.json` document. SQLite persistence accepts the exact v2 schema with its authoritative `schema_version` row. Invalid, unknown, or differently versioned storage fails closed; startup does not rewrite it.
|
|
257
|
+
File persistence accepts the strict v2 `snapshot.json` document. SQLite persistence accepts the exact v2 schema with its authoritative `schema_version` row. Invalid, unknown, or differently versioned storage fails closed; startup does not rewrite it. Backtrack support did not change File or SQLite from v2 and requires no migration or version bump.
|
|
258
|
+
|
|
259
|
+
## Precision behavior
|
|
260
|
+
|
|
261
|
+
### Calibration and evaluation limits
|
|
262
|
+
|
|
263
|
+
Calibration blends a raw confidence with the empirical outcome mean for its thought type. For `n` recorded outcomes of that type, `priorWeight = 10 / (10 + n)` and the blended value is `priorWeight * raw + (1 - priorWeight) * perTypeMean`. With no outcomes for a type, the empirical component has zero weight and calibration returns the raw confidence exactly.
|
|
264
|
+
|
|
265
|
+
Temperature fitting begins at 10 outcomes. It uses per-type leave-one-out blends, the fixed grid `[0.5, 0.75, 1, 1.25, 1.5, 2]`, and deterministic ties that retain `1` before grid order. Temperature is applied after the blend. Brier and ECE reported by `Calibrator.metrics()` always score the stored raw predictions and outcomes, not transformed holdout outputs.
|
|
266
|
+
|
|
267
|
+
The checked evaluation report separates deterministic structural validation and controlled raw and calibrated probability metrics. `natural_language_accuracy` is unmeasured. These checks do not judge factuality, guarantee better calibration, or promise that every individual confidence changes in one direction.
|
|
268
|
+
|
|
269
|
+
### Persistence, recovery, and backtracking
|
|
270
|
+
|
|
271
|
+
`PersistenceBackend` requires `saveBacktrackForSession(sessionId, thought, targetThoughtId)`. Every custom backend must implement it. The operation atomically corrects every retained stable-ID copy of the target, appends the backtrack thought, and applies retention. There is no capability fallback; the ordinary persistence methods retain their existing contracts.
|
|
272
|
+
|
|
273
|
+
Restore reads retained records only. It repairs retained backtrack copies without writing the snapshot, ignores an absent retained target, and rejects an ambiguous retained numeric target. Evidence already pruned by retention or eviction cannot be recovered.
|
|
257
274
|
|
|
258
275
|
## Development
|
|
259
276
|
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import type { ThoughtData } from '../core/thought.js';
|
|
2
2
|
import type { Edge } from '../core/graph/Edge.js';
|
|
3
3
|
import type { Summary } from '../core/compression/Summary.js';
|
|
4
|
-
import type { BranchId, SessionId } from './ids.js';
|
|
4
|
+
import type { BranchId, SessionId, ThoughtId } from './ids.js';
|
|
5
5
|
export interface PersistenceBackend {
|
|
6
6
|
saveThoughtForSession(sessionId: SessionId, thought: ThoughtData): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Atomically persist a backtrack correction for one session.
|
|
9
|
+
*
|
|
10
|
+
* Implementations must retract every retained stable-ID copy of `targetThoughtId`, append
|
|
11
|
+
* `thought`, and apply retention as one all-or-none operation. This is a required contract,
|
|
12
|
+
* including for custom backends: callers do not probe for it or fall back to ordinary writes.
|
|
13
|
+
* The ordinary persistence methods keep their existing contracts.
|
|
14
|
+
*/
|
|
15
|
+
saveBacktrackForSession(sessionId: SessionId, thought: ThoughtData, targetThoughtId: ThoughtId): Promise<void>;
|
|
7
16
|
loadHistoryForSession(sessionId: SessionId): Promise<ThoughtData[]>;
|
|
8
17
|
saveBranchForSession(sessionId: SessionId, branchId: BranchId, thoughts: readonly ThoughtData[]): Promise<void>;
|
|
9
18
|
deleteBranchForSession(sessionId: SessionId, branchId: BranchId): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersistenceBackend.d.ts","sourceRoot":"","sources":["../../src/contracts/PersistenceBackend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"PersistenceBackend.d.ts","sourceRoot":"","sources":["../../src/contracts/PersistenceBackend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IAClC,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF;;;;;;;OAOG;IACH,uBAAuB,CACtB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,EACpB,eAAe,EAAE,SAAS,GACxB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpE,oBAAoB,CACnB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,SAAS,WAAW,EAAE,GAC9B,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,oBAAoB,CACnB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,CAAC;IACtC,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClE,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACrC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,OAAO,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;CACF"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* Calibrator contracts — interfaces for confidence calibration.
|
|
3
3
|
*
|
|
4
4
|
* Defines the shape of calibration metrics, results, and the calibrator
|
|
5
|
-
* service that maps raw model confidence to calibrated probabilities.
|
|
5
|
+
* service that maps raw model confidence to calibrated probabilities. It does not guarantee
|
|
6
|
+
* factuality, universal improvement, or monotonic change for each example.
|
|
6
7
|
*
|
|
7
8
|
* @module contracts/calibrator
|
|
8
9
|
*/
|
|
@@ -18,9 +19,9 @@ import type { ThoughtType } from './reasoning-types.js';
|
|
|
18
19
|
* ```
|
|
19
20
|
*/
|
|
20
21
|
export interface CalibrationMetrics {
|
|
21
|
-
/** Brier score across
|
|
22
|
+
/** Brier score across stored raw predictions and outcomes (lower is better). `null` if empty. */
|
|
22
23
|
readonly brierScore: number | null;
|
|
23
|
-
/**
|
|
24
|
+
/** ECE across stored raw predictions and outcomes (lower is better). `null` if empty. */
|
|
24
25
|
readonly ece: number | null;
|
|
25
26
|
/** Number of (prediction, outcome) samples backing the metrics. */
|
|
26
27
|
readonly sampleCount: number;
|
|
@@ -43,7 +44,7 @@ export interface CalibrationResult {
|
|
|
43
44
|
readonly calibrated: number;
|
|
44
45
|
/** Temperature used in the calibration mapping (1.0 = identity). */
|
|
45
46
|
readonly temperature: number;
|
|
46
|
-
/** Weight applied to the prior when blending with
|
|
47
|
+
/** Weight applied to the raw confidence prior when blending with empirical evidence. */
|
|
47
48
|
readonly priorWeight: number;
|
|
48
49
|
}
|
|
49
50
|
/**
|
|
@@ -51,7 +52,9 @@ export interface CalibrationResult {
|
|
|
51
52
|
* probabilities and reports calibration quality.
|
|
52
53
|
*
|
|
53
54
|
* Implementations should be deterministic for the same `(raw, type, sessionId)`
|
|
54
|
-
* triple given a fixed internal state.
|
|
55
|
+
* triple given a fixed internal state. They blend raw confidence with the per-type empirical
|
|
56
|
+
* outcome mean using `priorWeight = 10 / (10 + n)`. At `n = 0`, the empirical component has
|
|
57
|
+
* zero weight and the result is raw exactly. Temperature, when fitted, is applied after blending.
|
|
55
58
|
*
|
|
56
59
|
* @example
|
|
57
60
|
* ```typescript
|
|
@@ -61,7 +64,7 @@ export interface CalibrationResult {
|
|
|
61
64
|
* ```
|
|
62
65
|
*/
|
|
63
66
|
export interface ICalibrator {
|
|
64
|
-
/** Whether calibration is enabled. When `false`, `calibrate()` returns
|
|
67
|
+
/** Whether calibration is enabled. When `false`, `calibrate()` returns raw unchanged. */
|
|
65
68
|
readonly enabled: boolean;
|
|
66
69
|
/**
|
|
67
70
|
* Map a raw confidence value to a calibrated value.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calibrator.d.ts","sourceRoot":"","sources":["../../src/contracts/calibrator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"calibrator.d.ts","sourceRoot":"","sources":["../../src/contracts/calibrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IAClC,iGAAiG;IACjG,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,yFAAyF;IACzF,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;CAC1D;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IACjC,2CAA2C;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wFAAwF;IACxF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,WAAW;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,GAAG,iBAAiB,CAAC;IAC7F;;;;;OAKG;IACH,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,kBAAkB,CAAC;IACnD;;;;OAIG;IACH,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACzC,8CAA8C;IAC9C,QAAQ,IAAI,IAAI,CAAC;CACjB"}
|
|
@@ -205,6 +205,12 @@ export interface IEdgeStore {
|
|
|
205
205
|
*/
|
|
206
206
|
size(sessionId?: SessionId): number;
|
|
207
207
|
}
|
|
208
|
+
export interface IGraphViewStore {
|
|
209
|
+
outgoing(sessionId: SessionId, from: ThoughtId): readonly Edge[];
|
|
210
|
+
incoming(sessionId: SessionId, to: ThoughtId): readonly Edge[];
|
|
211
|
+
edgesForSession(sessionId: SessionId): readonly Edge[];
|
|
212
|
+
nodesForSession?(sessionId: SessionId): readonly ThoughtId[];
|
|
213
|
+
}
|
|
208
214
|
/**
|
|
209
215
|
* Tool registry interface used for tool_name allowlisting in ThoughtProcessor.
|
|
210
216
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/contracts/interfaces.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/contracts/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import type { Summary } from '../core/compression/Summary.js';
|
|
7
7
|
import type { Edge } from '../core/graph/Edge.js';
|
|
8
8
|
import type { ThoughtData } from '../core/thought.js';
|
|
9
|
-
import type { BranchId, SessionId } from './ids.js';
|
|
9
|
+
import type { BranchId, SessionId, ThoughtId } from './ids.js';
|
|
10
10
|
/** Stable queue-assigned identity for one accepted persistence unit. */
|
|
11
11
|
export type PersistenceWorkToken = string;
|
|
12
12
|
/**
|
|
@@ -20,6 +20,12 @@ export type PersistenceWork = {
|
|
|
20
20
|
readonly token: PersistenceWorkToken;
|
|
21
21
|
readonly sessionId: SessionId;
|
|
22
22
|
readonly thought: ThoughtData;
|
|
23
|
+
} | {
|
|
24
|
+
readonly kind: 'backtrack';
|
|
25
|
+
readonly token: PersistenceWorkToken;
|
|
26
|
+
readonly sessionId: SessionId;
|
|
27
|
+
readonly thought: ThoughtData;
|
|
28
|
+
readonly targetThoughtId: ThoughtId;
|
|
23
29
|
} | {
|
|
24
30
|
readonly kind: 'branch';
|
|
25
31
|
readonly operation: 'save';
|
|
@@ -62,6 +68,12 @@ export type PersistenceWorkFailure = {
|
|
|
62
68
|
readonly sessionId: SessionId;
|
|
63
69
|
readonly attempts: number;
|
|
64
70
|
readonly cause: unknown;
|
|
71
|
+
} | {
|
|
72
|
+
readonly kind: 'backtrack';
|
|
73
|
+
readonly token: PersistenceWorkToken;
|
|
74
|
+
readonly sessionId: SessionId;
|
|
75
|
+
readonly attempts: number;
|
|
76
|
+
readonly cause: unknown;
|
|
65
77
|
} | {
|
|
66
78
|
readonly kind: 'branch';
|
|
67
79
|
readonly operation: 'save' | 'delete';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence-work.d.ts","sourceRoot":"","sources":["../../src/contracts/persistence-work.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"persistence-work.d.ts","sourceRoot":"","sources":["../../src/contracts/persistence-work.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,18 +12,26 @@ import type { SessionId } from './ids.js';
|
|
|
12
12
|
import type { ThoughtData } from '../core/thought.js';
|
|
13
13
|
import type { ReasoningStats } from '../core/reasoning.js';
|
|
14
14
|
import type { GraphView } from '../core/graph/GraphView.js';
|
|
15
|
+
export interface ActiveEvidenceProjection {
|
|
16
|
+
/** Active, immutable deep-copied main-history evidence in retained main order. */
|
|
17
|
+
readonly mainHistory: readonly ThoughtData[];
|
|
18
|
+
/** Active, immutable deep-copied thoughts, including branch-only retained evidence. */
|
|
19
|
+
readonly activeThoughts: readonly ThoughtData[];
|
|
20
|
+
/** Graph induced only by active endpoints, without path contraction or audit-store mutation. */
|
|
21
|
+
readonly graph: GraphView | undefined;
|
|
22
|
+
}
|
|
15
23
|
/**
|
|
16
24
|
* Read-only snapshot of session state passed to a reasoning strategy.
|
|
17
25
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
26
|
+
* Evidence is a first-class active projection. Its thoughts and graph are immutable deep copies;
|
|
27
|
+
* `mainHistory` preserves retained main order, `activeThoughts` permits branch-only lookup, and
|
|
28
|
+
* its graph includes only active endpoints. It never contracts paths or mutates the audit store.
|
|
20
29
|
*
|
|
21
30
|
* @example
|
|
22
31
|
* ```ts
|
|
23
32
|
* const ctx: StrategyContext = {
|
|
24
33
|
* sessionId: 'sess_42',
|
|
25
|
-
*
|
|
26
|
-
* graph: new GraphView(edgeStore, 'sess_42'),
|
|
34
|
+
* evidence: buildActiveEvidenceProjection(...),
|
|
27
35
|
* stats: evaluator.computeStats(history),
|
|
28
36
|
* currentThought: latestThought,
|
|
29
37
|
* };
|
|
@@ -33,10 +41,7 @@ import type { GraphView } from '../core/graph/GraphView.js';
|
|
|
33
41
|
export interface StrategyContext {
|
|
34
42
|
/** Session identifier this context belongs to. */
|
|
35
43
|
readonly sessionId: SessionId;
|
|
36
|
-
|
|
37
|
-
readonly history: readonly ThoughtData[];
|
|
38
|
-
/** Read-only graph view for traversal (ancestors, descendants, etc.). Undefined when DAG edges are disabled. */
|
|
39
|
-
readonly graph: GraphView | undefined;
|
|
44
|
+
readonly evidence: ActiveEvidenceProjection;
|
|
40
45
|
/** Aggregated reasoning analytics for the session. */
|
|
41
46
|
readonly stats: ReasoningStats;
|
|
42
47
|
/** The thought that just triggered the strategy decision. */
|
|
@@ -89,7 +94,7 @@ export type StrategyDecision = {
|
|
|
89
94
|
* }
|
|
90
95
|
* shouldBranch(_ctx: StrategyContext): boolean { return false; }
|
|
91
96
|
* shouldTerminate(ctx: StrategyContext): boolean {
|
|
92
|
-
* return ctx.
|
|
97
|
+
* return ctx.evidence.mainHistory.length >= 50;
|
|
93
98
|
* }
|
|
94
99
|
* }
|
|
95
100
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../src/contracts/strategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../src/contracts/strategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,WAAW,wBAAwB;IACxC,kFAAkF;IAClF,QAAQ,CAAC,WAAW,EAAE,SAAS,WAAW,EAAE,CAAC;IAC7C,uFAAuF;IACvF,QAAQ,CAAC,cAAc,EAAE,SAAS,WAAW,EAAE,CAAC;IAChD,gGAAgG;IAChG,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,eAAe;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;CACrC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,GACzB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,kBAAkB;IAClC,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,gBAAgB,CAAC;IAC/C,oDAAoD;IACpD,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC;IAC5C,uDAAuD;IACvD,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC;CAC/C"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { BranchId, SessionId, ThoughtId } from '../contracts/ids.js';
|
|
2
|
+
import type { ThoughtData } from './thought.js';
|
|
3
|
+
export type DurableHistoryRetention = {
|
|
4
|
+
readonly kind: 'bounded';
|
|
5
|
+
readonly maxHistorySize: number;
|
|
6
|
+
} | {
|
|
7
|
+
readonly kind: 'unlimited';
|
|
8
|
+
};
|
|
9
|
+
export declare function normalizeDurableHistoryRetention(maxHistorySize: number): DurableHistoryRetention;
|
|
10
|
+
export type DurableIdentityBranch = {
|
|
11
|
+
readonly branchId: BranchId;
|
|
12
|
+
readonly thoughts: readonly ThoughtData[];
|
|
13
|
+
};
|
|
14
|
+
export type DurableIdentitySession = {
|
|
15
|
+
readonly sessionId: SessionId;
|
|
16
|
+
readonly history: readonly ThoughtData[];
|
|
17
|
+
readonly branches: readonly DurableIdentityBranch[];
|
|
18
|
+
};
|
|
19
|
+
export declare class DurableThoughtIdentityIndex {
|
|
20
|
+
private readonly _historyRetention;
|
|
21
|
+
private readonly _sessions;
|
|
22
|
+
constructor(_historyRetention: DurableHistoryRetention);
|
|
23
|
+
has(sessionId: SessionId, thoughtId: ThoughtId): boolean;
|
|
24
|
+
appendThought(sessionId: SessionId, thought: ThoughtData): void;
|
|
25
|
+
replaceBranch(sessionId: SessionId, branchId: BranchId, thoughts: readonly ThoughtData[]): void;
|
|
26
|
+
deleteBranch(sessionId: SessionId, branchId: BranchId): void;
|
|
27
|
+
replaceAll(sessions: readonly DurableIdentitySession[]): void;
|
|
28
|
+
clearSession(sessionId: SessionId): void;
|
|
29
|
+
clearAll(): void;
|
|
30
|
+
private _session;
|
|
31
|
+
private _add;
|
|
32
|
+
private _remove;
|
|
33
|
+
private _deleteEmptySession;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=DurableThoughtIdentityIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DurableThoughtIdentityIndex.d.ts","sourceRoot":"","sources":["../../src/core/DurableThoughtIdentityIndex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,MAAM,uBAAuB,GAClC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAEhG,wBAAgB,gCAAgC,CAAC,cAAc,EAAE,MAAM,GAAG,uBAAuB,CAEhG;AAED,MAAM,MAAM,qBAAqB,GAAG;IACnC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACpD,CAAC;AAQF,qBAAa,2BAA2B;IAGpB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAFrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;gBAEjC,iBAAiB,EAAE,uBAAuB;IAEvE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO;IAIxD,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAmB/D,aAAa,CACnB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,SAAS,WAAW,EAAE,GAC9B,IAAI;IAYA,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAQ5D,UAAU,CAAC,QAAQ,EAAE,SAAS,sBAAsB,EAAE,GAAG,IAAI;IAU7D,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAIxC,QAAQ,IAAI,IAAI;IAIvB,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,mBAAmB;CAK3B"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { assertNever } from "../utils.js";
|
|
2
|
+
function normalizeDurableHistoryRetention(maxHistorySize) {
|
|
3
|
+
return maxHistorySize > 0 ? {
|
|
4
|
+
kind: 'bounded',
|
|
5
|
+
maxHistorySize
|
|
6
|
+
} : {
|
|
7
|
+
kind: 'unlimited'
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
class DurableThoughtIdentityIndex {
|
|
11
|
+
_historyRetention;
|
|
12
|
+
_sessions = new Map();
|
|
13
|
+
constructor(_historyRetention){
|
|
14
|
+
this._historyRetention = _historyRetention;
|
|
15
|
+
}
|
|
16
|
+
has(sessionId, thoughtId) {
|
|
17
|
+
return this._sessions.get(sessionId)?.counts.has(thoughtId) === true;
|
|
18
|
+
}
|
|
19
|
+
appendThought(sessionId, thought) {
|
|
20
|
+
if (void 0 === thought.id) return;
|
|
21
|
+
const session = this._session(sessionId);
|
|
22
|
+
session.history.push(thought.id);
|
|
23
|
+
this._add(session, thought.id);
|
|
24
|
+
switch(this._historyRetention.kind){
|
|
25
|
+
case 'unlimited':
|
|
26
|
+
return;
|
|
27
|
+
case 'bounded':
|
|
28
|
+
while(session.history.length > this._historyRetention.maxHistorySize){
|
|
29
|
+
const removed = session.history.shift();
|
|
30
|
+
if (void 0 !== removed) this._remove(session, removed);
|
|
31
|
+
}
|
|
32
|
+
return;
|
|
33
|
+
default:
|
|
34
|
+
assertNever(this._historyRetention);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
replaceBranch(sessionId, branchId, thoughts) {
|
|
38
|
+
const session = this._session(sessionId);
|
|
39
|
+
for (const thoughtId of session.branches.get(branchId) ?? [])this._remove(session, thoughtId);
|
|
40
|
+
const replacement = thoughts.flatMap((thought)=>void 0 === thought.id ? [] : [
|
|
41
|
+
thought.id
|
|
42
|
+
]);
|
|
43
|
+
if (0 === replacement.length) session.branches.delete(branchId);
|
|
44
|
+
else session.branches.set(branchId, replacement);
|
|
45
|
+
for (const thoughtId of replacement)this._add(session, thoughtId);
|
|
46
|
+
this._deleteEmptySession(sessionId, session);
|
|
47
|
+
}
|
|
48
|
+
deleteBranch(sessionId, branchId) {
|
|
49
|
+
const session = this._sessions.get(sessionId);
|
|
50
|
+
if (void 0 === session) return;
|
|
51
|
+
for (const thoughtId of session.branches.get(branchId) ?? [])this._remove(session, thoughtId);
|
|
52
|
+
session.branches.delete(branchId);
|
|
53
|
+
this._deleteEmptySession(sessionId, session);
|
|
54
|
+
}
|
|
55
|
+
replaceAll(sessions) {
|
|
56
|
+
this._sessions.clear();
|
|
57
|
+
for (const session of sessions){
|
|
58
|
+
for (const thought of session.history)this.appendThought(session.sessionId, thought);
|
|
59
|
+
for (const branch of session.branches)this.replaceBranch(session.sessionId, branch.branchId, branch.thoughts);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
clearSession(sessionId) {
|
|
63
|
+
this._sessions.delete(sessionId);
|
|
64
|
+
}
|
|
65
|
+
clearAll() {
|
|
66
|
+
this._sessions.clear();
|
|
67
|
+
}
|
|
68
|
+
_session(sessionId) {
|
|
69
|
+
const existing = this._sessions.get(sessionId);
|
|
70
|
+
if (void 0 !== existing) return existing;
|
|
71
|
+
const created = {
|
|
72
|
+
history: [],
|
|
73
|
+
branches: new Map(),
|
|
74
|
+
counts: new Map()
|
|
75
|
+
};
|
|
76
|
+
this._sessions.set(sessionId, created);
|
|
77
|
+
return created;
|
|
78
|
+
}
|
|
79
|
+
_add(session, thoughtId) {
|
|
80
|
+
session.counts.set(thoughtId, (session.counts.get(thoughtId) ?? 0) + 1);
|
|
81
|
+
}
|
|
82
|
+
_remove(session, thoughtId) {
|
|
83
|
+
const count = session.counts.get(thoughtId);
|
|
84
|
+
if (void 0 === count) return;
|
|
85
|
+
if (count > 1) session.counts.set(thoughtId, count - 1);
|
|
86
|
+
else session.counts.delete(thoughtId);
|
|
87
|
+
}
|
|
88
|
+
_deleteEmptySession(sessionId, session) {
|
|
89
|
+
if (0 === session.history.length && 0 === session.branches.size) this._sessions.delete(sessionId);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
export { DurableThoughtIdentityIndex, normalizeDurableHistoryRetention };
|
|
93
|
+
|
|
94
|
+
//# sourceMappingURL=DurableThoughtIdentityIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core/DurableThoughtIdentityIndex.js","sources":["../../src/core/DurableThoughtIdentityIndex.ts"],"sourcesContent":["import type { BranchId, SessionId, ThoughtId } from '../contracts/ids.js';\nimport { assertNever } from '../utils.js';\nimport type { ThoughtData } from './thought.js';\n\nexport type DurableHistoryRetention =\n\t{ readonly kind: 'bounded'; readonly maxHistorySize: number } | { readonly kind: 'unlimited' };\n\nexport function normalizeDurableHistoryRetention(maxHistorySize: number): DurableHistoryRetention {\n\treturn maxHistorySize > 0 ? { kind: 'bounded', maxHistorySize } : { kind: 'unlimited' };\n}\n\nexport type DurableIdentityBranch = {\n\treadonly branchId: BranchId;\n\treadonly thoughts: readonly ThoughtData[];\n};\n\nexport type DurableIdentitySession = {\n\treadonly sessionId: SessionId;\n\treadonly history: readonly ThoughtData[];\n\treadonly branches: readonly DurableIdentityBranch[];\n};\n\ntype SessionIdentities = {\n\treadonly history: ThoughtId[];\n\treadonly branches: Map<BranchId, readonly ThoughtId[]>;\n\treadonly counts: Map<ThoughtId, number>;\n};\n\nexport class DurableThoughtIdentityIndex {\n\tprivate readonly _sessions = new Map<SessionId, SessionIdentities>();\n\n\tpublic constructor(private readonly _historyRetention: DurableHistoryRetention) {}\n\n\tpublic has(sessionId: SessionId, thoughtId: ThoughtId): boolean {\n\t\treturn this._sessions.get(sessionId)?.counts.has(thoughtId) === true;\n\t}\n\n\tpublic appendThought(sessionId: SessionId, thought: ThoughtData): void {\n\t\tif (thought.id === undefined) return;\n\t\tconst session = this._session(sessionId);\n\t\tsession.history.push(thought.id);\n\t\tthis._add(session, thought.id);\n\t\tswitch (this._historyRetention.kind) {\n\t\t\tcase 'unlimited':\n\t\t\t\treturn;\n\t\t\tcase 'bounded':\n\t\t\t\twhile (session.history.length > this._historyRetention.maxHistorySize) {\n\t\t\t\t\tconst removed = session.history.shift();\n\t\t\t\t\tif (removed !== undefined) this._remove(session, removed);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\tassertNever(this._historyRetention);\n\t\t}\n\t}\n\n\tpublic replaceBranch(\n\t\tsessionId: SessionId,\n\t\tbranchId: BranchId,\n\t\tthoughts: readonly ThoughtData[]\n\t): void {\n\t\tconst session = this._session(sessionId);\n\t\tfor (const thoughtId of session.branches.get(branchId) ?? []) this._remove(session, thoughtId);\n\t\tconst replacement = thoughts.flatMap((thought) =>\n\t\t\tthought.id === undefined ? [] : [thought.id]\n\t\t);\n\t\tif (replacement.length === 0) session.branches.delete(branchId);\n\t\telse session.branches.set(branchId, replacement);\n\t\tfor (const thoughtId of replacement) this._add(session, thoughtId);\n\t\tthis._deleteEmptySession(sessionId, session);\n\t}\n\n\tpublic deleteBranch(sessionId: SessionId, branchId: BranchId): void {\n\t\tconst session = this._sessions.get(sessionId);\n\t\tif (session === undefined) return;\n\t\tfor (const thoughtId of session.branches.get(branchId) ?? []) this._remove(session, thoughtId);\n\t\tsession.branches.delete(branchId);\n\t\tthis._deleteEmptySession(sessionId, session);\n\t}\n\n\tpublic replaceAll(sessions: readonly DurableIdentitySession[]): void {\n\t\tthis._sessions.clear();\n\t\tfor (const session of sessions) {\n\t\t\tfor (const thought of session.history) this.appendThought(session.sessionId, thought);\n\t\t\tfor (const branch of session.branches) {\n\t\t\t\tthis.replaceBranch(session.sessionId, branch.branchId, branch.thoughts);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic clearSession(sessionId: SessionId): void {\n\t\tthis._sessions.delete(sessionId);\n\t}\n\n\tpublic clearAll(): void {\n\t\tthis._sessions.clear();\n\t}\n\n\tprivate _session(sessionId: SessionId): SessionIdentities {\n\t\tconst existing = this._sessions.get(sessionId);\n\t\tif (existing !== undefined) return existing;\n\t\tconst created: SessionIdentities = {\n\t\t\thistory: [],\n\t\t\tbranches: new Map(),\n\t\t\tcounts: new Map(),\n\t\t};\n\t\tthis._sessions.set(sessionId, created);\n\t\treturn created;\n\t}\n\n\tprivate _add(session: SessionIdentities, thoughtId: ThoughtId): void {\n\t\tsession.counts.set(thoughtId, (session.counts.get(thoughtId) ?? 0) + 1);\n\t}\n\n\tprivate _remove(session: SessionIdentities, thoughtId: ThoughtId): void {\n\t\tconst count = session.counts.get(thoughtId);\n\t\tif (count === undefined) return;\n\t\tif (count > 1) session.counts.set(thoughtId, count - 1);\n\t\telse session.counts.delete(thoughtId);\n\t}\n\n\tprivate _deleteEmptySession(sessionId: SessionId, session: SessionIdentities): void {\n\t\tif (session.history.length === 0 && session.branches.size === 0) {\n\t\t\tthis._sessions.delete(sessionId);\n\t\t}\n\t}\n}\n"],"names":["normalizeDurableHistoryRetention","maxHistorySize","DurableThoughtIdentityIndex","Map","_historyRetention","sessionId","thoughtId","thought","undefined","session","removed","assertNever","branchId","thoughts","replacement","sessions","branch","existing","created","count"],"mappings":"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"}
|
|
@@ -41,6 +41,8 @@ export interface HistoryManagerConfig {
|
|
|
41
41
|
persistenceFlushInterval?: number;
|
|
42
42
|
/** Max retries for failed persistence flushes. @default 3 */
|
|
43
43
|
persistenceMaxRetries?: number;
|
|
44
|
+
persistenceHistorySize?: number;
|
|
45
|
+
persistBranches?: boolean;
|
|
44
46
|
eventEmitter?: PersistenceEventEmitter;
|
|
45
47
|
edgeStore?: IEdgeStore;
|
|
46
48
|
summaryStore?: ISummaryStore;
|
|
@@ -142,9 +144,12 @@ export declare class HistoryManager implements IHistoryManager {
|
|
|
142
144
|
* caches tools/skills, trims, branches, emits DAG edges, and buffers for persistence.
|
|
143
145
|
*/
|
|
144
146
|
addThought(thought: ThoughtData, context?: ThoughtAdmissionContext): void;
|
|
147
|
+
assertThoughtIdentityAvailable(thought: ThoughtData): void;
|
|
145
148
|
private _addThoughtWithinOperation;
|
|
146
149
|
private _resolveAdmissionReferences;
|
|
147
150
|
private _enforceRetention;
|
|
151
|
+
private _recordVerificationTarget;
|
|
152
|
+
private _pruneVerificationTargets;
|
|
148
153
|
private _pruneUnretainedEdges;
|
|
149
154
|
private _bufferRetainedState;
|
|
150
155
|
private _stageAllRestoreBranchReconciliation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HistoryManager.d.ts","sourceRoot":"","sources":["../../src/core/HistoryManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAe,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAkB,MAAM,qBAAqB,CAAC;AACjG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAS7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAEN,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,KAAK,EACX,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAqB,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAIzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAyB,KAAK,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAEpG,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"HistoryManager.d.ts","sourceRoot":"","sources":["../../src/core/HistoryManager.ts"],"names":[],"mappings":"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"}
|