@iworkforces/tracelattice 2.0.7 → 2.1.1
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 +88 -64
- package/dist/ServerConfig.d.ts +1 -1
- package/dist/ServerConfig.js.map +1 -1
- package/dist/cli.js +223 -254
- package/dist/cli.js.map +1 -1
- package/dist/config/ConfigLoader.d.ts +29 -26
- package/dist/config/ConfigLoader.d.ts.map +1 -1
- package/dist/config/ConfigLoader.js +40 -36
- package/dist/config/ConfigLoader.js.map +1 -1
- package/dist/contracts/PersistenceBackend.d.ts +7 -108
- package/dist/contracts/PersistenceBackend.d.ts.map +1 -1
- package/dist/contracts/PersistenceBackend.js +1 -6
- package/dist/contracts/calibrator.d.ts +6 -6
- package/dist/contracts/calibrator.d.ts.map +1 -1
- package/dist/contracts/ids.d.ts +1 -8
- package/dist/contracts/ids.d.ts.map +1 -1
- package/dist/contracts/ids.js +2 -3
- package/dist/contracts/ids.js.map +1 -1
- package/dist/contracts/interfaces.d.ts +4 -6
- package/dist/contracts/interfaces.d.ts.map +1 -1
- package/dist/contracts/persistence-work.d.ts +2 -3
- package/dist/contracts/persistence-work.d.ts.map +1 -1
- package/dist/contracts/summary.d.ts +0 -1
- package/dist/contracts/summary.d.ts.map +1 -1
- package/dist/core/HistoryManager.d.ts +12 -16
- package/dist/core/HistoryManager.d.ts.map +1 -1
- package/dist/core/HistoryManager.js +19 -40
- package/dist/core/HistoryManager.js.map +1 -1
- package/dist/core/IHistoryManager.d.ts +22 -30
- package/dist/core/IHistoryManager.d.ts.map +1 -1
- package/dist/core/InputNormalizer.d.ts +7 -24
- package/dist/core/InputNormalizer.d.ts.map +1 -1
- package/dist/core/InputNormalizer.js +3 -9
- package/dist/core/InputNormalizer.js.map +1 -1
- package/dist/core/PersistenceBuffer.d.ts +3 -20
- package/dist/core/PersistenceBuffer.d.ts.map +1 -1
- package/dist/core/PersistenceBuffer.js +1 -4
- package/dist/core/PersistenceBuffer.js.map +1 -1
- package/dist/core/PersistenceRestore.d.ts +1 -1
- package/dist/core/PersistenceRestore.d.ts.map +1 -1
- package/dist/core/PersistenceRestore.js +4 -10
- package/dist/core/PersistenceRestore.js.map +1 -1
- package/dist/core/PersistenceWriter.d.ts.map +1 -1
- package/dist/core/PersistenceWriter.js +3 -12
- package/dist/core/PersistenceWriter.js.map +1 -1
- package/dist/core/SessionErrors.d.ts +0 -11
- package/dist/core/SessionErrors.d.ts.map +1 -1
- package/dist/core/SessionErrors.js +1 -14
- package/dist/core/SessionErrors.js.map +1 -1
- package/dist/core/SessionLock.d.ts +4 -5
- package/dist/core/SessionLock.d.ts.map +1 -1
- package/dist/core/SessionLock.js +5 -10
- package/dist/core/SessionLock.js.map +1 -1
- package/dist/core/SessionManager.d.ts +0 -2
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +3 -5
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/core/SessionResetCoordinator.d.ts +10 -7
- package/dist/core/SessionResetCoordinator.d.ts.map +1 -1
- package/dist/core/SessionResetCoordinator.js +10 -28
- package/dist/core/SessionResetCoordinator.js.map +1 -1
- package/dist/core/ThoughtEvaluator.d.ts +5 -5
- package/dist/core/ThoughtEvaluator.d.ts.map +1 -1
- package/dist/core/ThoughtEvaluator.js +4 -40
- package/dist/core/ThoughtEvaluator.js.map +1 -1
- package/dist/core/ThoughtFormatter.js.map +1 -1
- package/dist/core/ThoughtProcessor.d.ts +10 -3
- package/dist/core/ThoughtProcessor.d.ts.map +1 -1
- package/dist/core/ThoughtProcessor.js +34 -38
- package/dist/core/ThoughtProcessor.js.map +1 -1
- package/dist/core/VerificationOutcomeAdmission.d.ts.map +1 -1
- package/dist/core/VerificationOutcomeAdmission.js +5 -7
- package/dist/core/VerificationOutcomeAdmission.js.map +1 -1
- package/dist/core/compression/CompressionService.d.ts +2 -1
- package/dist/core/compression/CompressionService.d.ts.map +1 -1
- package/dist/core/compression/CompressionService.js.map +1 -1
- package/dist/core/compression/DehydrationPolicy.d.ts.map +1 -1
- package/dist/core/compression/DehydrationPolicy.js.map +1 -1
- package/dist/core/compression/InMemorySummaryStore.d.ts +2 -1
- package/dist/core/compression/InMemorySummaryStore.d.ts.map +1 -1
- package/dist/core/compression/InMemorySummaryStore.js.map +1 -1
- package/dist/core/evaluator/Calibrator.d.ts +2 -2
- package/dist/core/evaluator/Calibrator.d.ts.map +1 -1
- package/dist/core/evaluator/Calibrator.js +2 -5
- package/dist/core/evaluator/Calibrator.js.map +1 -1
- package/dist/core/evaluator/SignalComputer.d.ts +2 -1
- package/dist/core/evaluator/SignalComputer.d.ts.map +1 -1
- package/dist/core/evaluator/SignalComputer.js.map +1 -1
- package/dist/core/evaluator/internals.d.ts +1 -5
- package/dist/core/evaluator/internals.d.ts.map +1 -1
- package/dist/core/evaluator/internals.js +1 -3
- package/dist/core/evaluator/internals.js.map +1 -1
- package/dist/core/graph/Edge.d.ts +1 -1
- package/dist/core/graph/EdgeEmitter.d.ts +2 -4
- package/dist/core/graph/EdgeEmitter.d.ts.map +1 -1
- package/dist/core/graph/EdgeEmitter.js +2 -4
- package/dist/core/graph/EdgeEmitter.js.map +1 -1
- package/dist/core/graph/GraphView.d.ts +13 -1
- package/dist/core/graph/GraphView.d.ts.map +1 -1
- package/dist/core/graph/GraphView.js +34 -0
- package/dist/core/graph/GraphView.js.map +1 -1
- package/dist/core/reasoning/OutcomeRecorder.d.ts +0 -1
- package/dist/core/reasoning/OutcomeRecorder.d.ts.map +1 -1
- package/dist/core/reasoning/OutcomeRecorder.js.map +1 -1
- package/dist/core/reasoning/strategies/SequentialStrategy.d.ts +3 -3
- package/dist/core/reasoning/strategies/SequentialStrategy.js.map +1 -1
- package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.d.ts +6 -6
- package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.d.ts.map +1 -1
- package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.js +16 -2
- package/dist/core/reasoning/strategies/TreeOfThoughtStrategy.js.map +1 -1
- package/dist/core/reasoning/strategies/totScoring.d.ts.map +1 -1
- package/dist/core/reasoning/strategies/totScoring.js.map +1 -1
- package/dist/core/reasoning.d.ts +1 -3
- package/dist/core/reasoning.d.ts.map +1 -1
- package/dist/core/thought.d.ts +3 -2
- package/dist/core/thought.d.ts.map +1 -1
- package/dist/errors.d.ts +4 -20
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -28
- package/dist/errors.js.map +1 -1
- package/dist/lib.d.ts +31 -24
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +55 -10
- package/dist/lib.js.map +1 -1
- package/dist/logger/NullLogger.d.ts +9 -11
- package/dist/logger/NullLogger.d.ts.map +1 -1
- package/dist/logger/NullLogger.js.map +1 -1
- package/dist/persistence/FilePersistence.d.ts +3 -12
- package/dist/persistence/FilePersistence.d.ts.map +1 -1
- package/dist/persistence/FilePersistence.js +9 -61
- package/dist/persistence/FilePersistence.js.map +1 -1
- package/dist/persistence/FileSnapshotV2.d.ts +2 -2
- package/dist/persistence/FileSnapshotV2.js +2 -2
- package/dist/persistence/FileSnapshotV2.js.map +1 -1
- package/dist/persistence/FileWriter.d.ts +1 -0
- package/dist/persistence/FileWriter.d.ts.map +1 -1
- package/dist/persistence/FileWriter.js +3 -3
- package/dist/persistence/FileWriter.js.map +1 -1
- package/dist/persistence/MemoryPersistence.d.ts +5 -15
- package/dist/persistence/MemoryPersistence.d.ts.map +1 -1
- package/dist/persistence/MemoryPersistence.js +6 -40
- package/dist/persistence/MemoryPersistence.js.map +1 -1
- package/dist/persistence/PersistenceCodec.js +1 -3
- package/dist/persistence/PersistenceCodec.js.map +1 -1
- package/dist/persistence/PersistenceErrors.d.ts +0 -6
- package/dist/persistence/PersistenceErrors.d.ts.map +1 -1
- package/dist/persistence/PersistenceErrors.js +1 -9
- package/dist/persistence/PersistenceErrors.js.map +1 -1
- package/dist/persistence/PersistenceScope.d.ts.map +1 -1
- package/dist/persistence/PersistenceScope.js +2 -2
- package/dist/persistence/PersistenceScope.js.map +1 -1
- package/dist/persistence/SqlitePersistence.d.ts +3 -10
- package/dist/persistence/SqlitePersistence.d.ts.map +1 -1
- package/dist/persistence/SqlitePersistence.js +2 -26
- package/dist/persistence/SqlitePersistence.js.map +1 -1
- package/dist/persistence/SqliteSchemaV2.d.ts.map +1 -1
- package/dist/persistence/SqliteSchemaV2.js +3 -12
- package/dist/persistence/SqliteSchemaV2.js.map +1 -1
- package/dist/pool/ConnectionPool.d.ts +3 -12
- package/dist/pool/ConnectionPool.d.ts.map +1 -1
- package/dist/pool/ConnectionPool.js +5 -8
- package/dist/pool/ConnectionPool.js.map +1 -1
- package/dist/pool/IConnectionPool.d.ts +3 -9
- package/dist/pool/IConnectionPool.d.ts.map +1 -1
- package/dist/registry/SkillRegistry.d.ts +1 -7
- package/dist/registry/SkillRegistry.d.ts.map +1 -1
- package/dist/registry/SkillRegistry.js +0 -15
- package/dist/registry/SkillRegistry.js.map +1 -1
- package/dist/registry/ToolRegistry.d.ts +1 -9
- package/dist/registry/ToolRegistry.d.ts.map +1 -1
- package/dist/registry/ToolRegistry.js +0 -21
- package/dist/registry/ToolRegistry.js.map +1 -1
- package/dist/schema.d.ts +2 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +3 -3
- package/dist/schema.js.map +1 -1
- package/dist/transport/BaseTransport.d.ts +0 -9
- package/dist/transport/BaseTransport.d.ts.map +1 -1
- package/dist/transport/BaseTransport.js +0 -11
- package/dist/transport/BaseTransport.js.map +1 -1
- package/dist/transport/HttpHelpers.d.ts +4 -1
- package/dist/transport/HttpHelpers.d.ts.map +1 -1
- package/dist/transport/HttpHelpers.js +61 -11
- package/dist/transport/HttpHelpers.js.map +1 -1
- package/dist/transport/HttpRequestLifecycle.d.ts +15 -1
- package/dist/transport/HttpRequestLifecycle.d.ts.map +1 -1
- package/dist/transport/HttpRequestLifecycle.js +66 -4
- package/dist/transport/HttpRequestLifecycle.js.map +1 -1
- package/dist/transport/HttpTransport.d.ts +2 -0
- package/dist/transport/HttpTransport.d.ts.map +1 -1
- package/dist/transport/HttpTransport.js +75 -38
- package/dist/transport/HttpTransport.js.map +1 -1
- package/dist/transport/StreamableHttpTransport.d.ts +5 -29
- package/dist/transport/StreamableHttpTransport.d.ts.map +1 -1
- package/dist/transport/StreamableHttpTransport.js +74 -116
- package/dist/transport/StreamableHttpTransport.js.map +1 -1
- package/dist/watchers/SkillWatcher.d.ts.map +1 -1
- package/dist/watchers/SkillWatcher.js +1 -1
- package/dist/watchers/SkillWatcher.js.map +1 -1
- package/package.json +2 -2
- package/dist/contracts/PersistenceBackend.js.map +0 -1
- package/dist/persistence/FileLegacyImport.d.ts +0 -2
- package/dist/persistence/FileLegacyImport.d.ts.map +0 -1
- package/dist/persistence/FileLegacyImport.js +0 -183
- package/dist/persistence/FileLegacyImport.js.map +0 -1
- package/dist/persistence/SessionScopedPersistence.d.ts +0 -4
- package/dist/persistence/SessionScopedPersistence.d.ts.map +0 -1
- package/dist/persistence/SessionScopedPersistence.js +0 -9
- package/dist/persistence/SessionScopedPersistence.js.map +0 -1
- package/dist/persistence/SqliteLegacyImport.d.ts +0 -14
- package/dist/persistence/SqliteLegacyImport.d.ts.map +0 -1
- package/dist/persistence/SqliteLegacyImport.js +0 -136
- package/dist/persistence/SqliteLegacyImport.js.map +0 -1
- package/dist/persistence/SqliteLegacySchema.d.ts +0 -15
- package/dist/persistence/SqliteLegacySchema.d.ts.map +0 -1
- package/dist/persistence/SqliteLegacySchema.js +0 -72
- package/dist/persistence/SqliteLegacySchema.js.map +0 -1
package/dist/contracts/ids.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export type SummaryId = Brand<string, 'SummaryId'>;
|
|
|
34
34
|
* Validate and brand a string as a {@link SessionId}.
|
|
35
35
|
*
|
|
36
36
|
* Enforces {@link SESSION_ID_PATTERN} and {@link MAX_SESSION_ID_LENGTH}.
|
|
37
|
-
* The
|
|
37
|
+
* The retired global session sentinel `__global__` is rejected.
|
|
38
38
|
*
|
|
39
39
|
* @throws {ValidationError} when the input is not a valid session id.
|
|
40
40
|
*/
|
|
@@ -57,12 +57,5 @@ export declare function generateEdgeId(): EdgeId;
|
|
|
57
57
|
export declare function generateSuspensionToken(): SuspensionToken;
|
|
58
58
|
/** Generate a fresh {@link SummaryId}. */
|
|
59
59
|
export declare function generateSummaryId(): SummaryId;
|
|
60
|
-
/**
|
|
61
|
-
* Reserved sentinel session id used when callers omit `session_id`.
|
|
62
|
-
*
|
|
63
|
-
* Branded once here so production and test code share one constant
|
|
64
|
-
* instead of casting `'__global__'` ad-hoc.
|
|
65
|
-
*/
|
|
66
|
-
export declare const GLOBAL_SESSION_ID: SessionId;
|
|
67
60
|
export {};
|
|
68
61
|
//# sourceMappingURL=ids.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/contracts/ids.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/contracts/ids.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,CAAC,MAAM,OAAO,EAAE,OAAO,MAAM,CAAC;AAErC;;;;;GAKG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC;AAEvE,kCAAkC;AAClC,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEnD,kCAAkC;AAClC,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEnD,+BAA+B;AAC/B,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE7C,gCAAgC;AAChC,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAE/D,iCAAiC;AACjC,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEjD,kCAAkC;AAClC,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAkBpD;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAEpD;AAED,8DAA8D;AAC9D,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEhE;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAElD;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAEpD;AAED,0CAA0C;AAC1C,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,uCAAuC;AACvC,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,gDAAgD;AAChD,wBAAgB,uBAAuB,IAAI,eAAe,CAEzD;AAED,0CAA0C;AAC1C,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C"}
|
package/dist/contracts/ids.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MAX_SESSION_ID_LENGTH, SESSION_ID_PATTERN, generateUlid } from "../core/ids.js";
|
|
2
2
|
import { ValidationError } from "../errors.js";
|
|
3
3
|
function asSessionId(value) {
|
|
4
|
-
if ('__global__' === value)
|
|
4
|
+
if ('__global__' === value) throw new ValidationError('session_id', "reserved value '__global__' is retired; use an explicit named session");
|
|
5
5
|
if ('string' != typeof value || 0 === value.length) throw new ValidationError('session_id', 'must be a non-empty string');
|
|
6
6
|
if (value.length > MAX_SESSION_ID_LENGTH) throw new ValidationError('session_id', `exceeds max length of ${MAX_SESSION_ID_LENGTH}`);
|
|
7
7
|
if (!SESSION_ID_PATTERN.test(value)) throw new ValidationError('session_id', 'must match alphanumeric, hyphens, underscores');
|
|
@@ -34,7 +34,6 @@ function generateSuspensionToken() {
|
|
|
34
34
|
function generateSummaryId() {
|
|
35
35
|
return generateUlid();
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
export { GLOBAL_SESSION_ID, asBranchId, asEdgeId, asSessionId, asSummaryId, asSuspensionToken, asThoughtId, generateEdgeId, generateSummaryId, generateSuspensionToken, generateThoughtId };
|
|
37
|
+
export { asBranchId, asEdgeId, asSessionId, asSummaryId, asSuspensionToken, asThoughtId, generateEdgeId, generateSummaryId, generateSuspensionToken, generateThoughtId };
|
|
39
38
|
|
|
40
39
|
//# sourceMappingURL=ids.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts/ids.js","sources":["../../src/contracts/ids.ts"],"sourcesContent":["/**\n * Branded identifier types for compile-time slot safety.\n *\n * These nominal types prevent accidental mixing of different ID kinds\n * (e.g. passing a `ThoughtId` where a `SessionId` is expected). At\n * runtime they are plain strings — the brand exists only in the type\n * system.\n *\n * @module contracts/ids\n */\n\nimport {
|
|
1
|
+
{"version":3,"file":"contracts/ids.js","sources":["../../src/contracts/ids.ts"],"sourcesContent":["/**\n * Branded identifier types for compile-time slot safety.\n *\n * These nominal types prevent accidental mixing of different ID kinds\n * (e.g. passing a `ThoughtId` where a `SessionId` is expected). At\n * runtime they are plain strings — the brand exists only in the type\n * system.\n *\n * @module contracts/ids\n */\n\nimport { generateUlid, MAX_SESSION_ID_LENGTH, SESSION_ID_PATTERN } from '../core/ids.js';\nimport { ValidationError } from '../errors.js';\n\ndeclare const __brand: unique symbol;\n\n/**\n * Nominal brand helper.\n *\n * The brand is a phantom property — it exists at the type level only\n * and carries zero runtime cost.\n */\nexport type Brand<T, B extends string> = T & { readonly [__brand]: B };\n\n/** Branded session identifier. */\nexport type SessionId = Brand<string, 'SessionId'>;\n\n/** Branded thought identifier. */\nexport type ThoughtId = Brand<string, 'ThoughtId'>;\n\n/** Branded edge identifier. */\nexport type EdgeId = Brand<string, 'EdgeId'>;\n\n/** Branded suspension token. */\nexport type SuspensionToken = Brand<string, 'SuspensionToken'>;\n\n/** Branded branch identifier. */\nexport type BranchId = Brand<string, 'BranchId'>;\n\n/** Branded summary identifier. */\nexport type SummaryId = Brand<string, 'SummaryId'>;\n\n/**\n * Validate and brand a string as a {@link SessionId}.\n *\n * Enforces {@link SESSION_ID_PATTERN} and {@link MAX_SESSION_ID_LENGTH}.\n * The retired global session sentinel `__global__` is rejected.\n *\n * @throws {ValidationError} when the input is not a valid session id.\n */\nexport function asSessionId(value: string): SessionId {\n\tif (value === '__global__') {\n\t\tthrow new ValidationError(\n\t\t\t'session_id',\n\t\t\t\"reserved value '__global__' is retired; use an explicit named session\"\n\t\t);\n\t}\n\tif (typeof value !== 'string' || value.length === 0) {\n\t\tthrow new ValidationError('session_id', 'must be a non-empty string');\n\t}\n\tif (value.length > MAX_SESSION_ID_LENGTH) {\n\t\tthrow new ValidationError('session_id', `exceeds max length of ${MAX_SESSION_ID_LENGTH}`);\n\t}\n\tif (!SESSION_ID_PATTERN.test(value)) {\n\t\tthrow new ValidationError('session_id', 'must match alphanumeric, hyphens, underscores');\n\t}\n\t// eslint-disable-next-line no-restricted-syntax -- branding constructor, cannot self-reference\n\treturn value as SessionId;\n}\n\n/** Brand a string as a {@link ThoughtId} without validation. */\nexport function asThoughtId(value: string): ThoughtId {\n\treturn value as ThoughtId;\n}\n\n/** Brand a string as an {@link EdgeId} without validation. */\nexport function asEdgeId(value: string): EdgeId {\n\treturn value as EdgeId;\n}\n\n/** Brand a string as a {@link SuspensionToken} without validation. */\nexport function asSuspensionToken(value: string): SuspensionToken {\n\treturn value as SuspensionToken;\n}\n\n/** Brand a string as a {@link BranchId} without validation. */\nexport function asBranchId(value: string): BranchId {\n\treturn value as BranchId;\n}\n\n/** Brand a string as a {@link SummaryId} without validation. */\nexport function asSummaryId(value: string): SummaryId {\n\treturn value as SummaryId;\n}\n\n/** Generate a fresh {@link ThoughtId}. */\nexport function generateThoughtId(): ThoughtId {\n\treturn generateUlid() as ThoughtId;\n}\n\n/** Generate a fresh {@link EdgeId}. */\nexport function generateEdgeId(): EdgeId {\n\treturn generateUlid() as EdgeId;\n}\n\n/** Generate a fresh {@link SuspensionToken}. */\nexport function generateSuspensionToken(): SuspensionToken {\n\treturn generateUlid() as SuspensionToken;\n}\n\n/** Generate a fresh {@link SummaryId}. */\nexport function generateSummaryId(): SummaryId {\n\treturn generateUlid() as SummaryId;\n}\n"],"names":["asSessionId","value","ValidationError","MAX_SESSION_ID_LENGTH","SESSION_ID_PATTERN","asThoughtId","asEdgeId","asSuspensionToken","asBranchId","asSummaryId","generateThoughtId","generateUlid","generateEdgeId","generateSuspensionToken","generateSummaryId"],"mappings":";;AAkDO,SAASA,YAAYC,KAAa;IACxC,IAAIA,AAAU,iBAAVA,OACH,MAAM,IAAIC,gBACT,cACA;IAGF,IAAI,AAAiB,YAAjB,OAAOD,SAAsBA,AAAiB,MAAjBA,MAAM,MAAM,EAC5C,MAAM,IAAIC,gBAAgB,cAAc;IAEzC,IAAID,MAAM,MAAM,GAAGE,uBAClB,MAAM,IAAID,gBAAgB,cAAc,CAAC,sBAAsB,EAAEC,uBAAuB;IAEzF,IAAI,CAACC,mBAAmB,IAAI,CAACH,QAC5B,MAAM,IAAIC,gBAAgB,cAAc;IAGzC,OAAOD;AACR;AAGO,SAASI,YAAYJ,KAAa;IACxC,OAAOA;AACR;AAGO,SAASK,SAASL,KAAa;IACrC,OAAOA;AACR;AAGO,SAASM,kBAAkBN,KAAa;IAC9C,OAAOA;AACR;AAGO,SAASO,WAAWP,KAAa;IACvC,OAAOA;AACR;AAGO,SAASQ,YAAYR,KAAa;IACxC,OAAOA;AACR;AAGO,SAASS;IACf,OAAOC;AACR;AAGO,SAASC;IACf,OAAOD;AACR;AAGO,SAASE;IACf,OAAOF;AACR;AAGO,SAASG;IACf,OAAOH;AACR"}
|
|
@@ -68,8 +68,6 @@ export interface DiscoveryCacheOptions {
|
|
|
68
68
|
export interface VerificationOutcome {
|
|
69
69
|
/** The thought id that made the prediction. */
|
|
70
70
|
thoughtId: ThoughtId;
|
|
71
|
-
/** The thought number of the prediction (backward compat). */
|
|
72
|
-
thoughtNumber: number;
|
|
73
71
|
/** The session this outcome belongs to. */
|
|
74
72
|
sessionId: SessionId;
|
|
75
73
|
/** The predicted confidence (0-1). */
|
|
@@ -221,7 +219,7 @@ export interface IToolRegistry {
|
|
|
221
219
|
/**
|
|
222
220
|
* Returns the names of all registered tools.
|
|
223
221
|
*/
|
|
224
|
-
|
|
222
|
+
getNames(): string[];
|
|
225
223
|
}
|
|
226
224
|
/**
|
|
227
225
|
* Per-session async lock used to serialize state-mutating operations.
|
|
@@ -240,14 +238,14 @@ export interface ISessionLock {
|
|
|
240
238
|
/**
|
|
241
239
|
* Execute `fn` while holding the lock for the given session.
|
|
242
240
|
*
|
|
243
|
-
* @param sessionId - Session to lock
|
|
241
|
+
* @param sessionId - Session to lock.
|
|
244
242
|
* @param fn - Critical section to run while holding the lock.
|
|
245
243
|
* @param timeoutMs - Max wait for lock acquisition (default 5000ms).
|
|
246
244
|
* @throws {LockTimeoutError} If the lock is not acquired before `timeoutMs`.
|
|
247
245
|
*/
|
|
248
|
-
withLock<T>(sessionId: SessionId
|
|
246
|
+
withLock<T>(sessionId: SessionId, fn: () => Promise<T>, timeoutMs?: number): Promise<T>;
|
|
249
247
|
/** Whether the session currently has a holder or queued operation. */
|
|
250
|
-
isActive(sessionId: SessionId
|
|
248
|
+
isActive(sessionId: SessionId): boolean;
|
|
251
249
|
/** Number of currently held lock chains (diagnostics). */
|
|
252
250
|
readonly size: number;
|
|
253
251
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/contracts/interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACxB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5F,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzF,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;IACvE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACzD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACzD,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,IAAI,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IACjC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;IAClC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;IAChB,IAAI,IAAI,MAAM,CAAC;IACf,QAAQ,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,QAAQ,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IACnC,+CAA+C;IAC/C,SAAS,EAAE,SAAS,CAAC;IACrB,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/contracts/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,9 +12,8 @@ export type PersistenceWorkToken = string;
|
|
|
12
12
|
/**
|
|
13
13
|
* One accepted persistence unit.
|
|
14
14
|
*
|
|
15
|
-
* Every variant has an explicit session
|
|
16
|
-
* `
|
|
17
|
-
* compare-and-set acknowledgement of the exact accepted snapshot.
|
|
15
|
+
* Every variant has an explicit named session. Snapshot variants use `key` and
|
|
16
|
+
* `version` for compare-and-set acknowledgement of the exact accepted snapshot.
|
|
18
17
|
*/
|
|
19
18
|
export type PersistenceWork = {
|
|
20
19
|
readonly kind: 'thought';
|
|
@@ -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;AAEpD,wEAAwE;AACxE,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"persistence-work.d.ts","sourceRoot":"","sources":["../../src/contracts/persistence-work.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../src/contracts/summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/D
|
|
1
|
+
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../src/contracts/summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/D;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,aAAa;IAC7B;;;;;;;;;OASG;IACH,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAE5B;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAExC;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,OAAO,EAAE,CAAC;IAErD;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,OAAO,EAAE,CAAC;IAExE;;;;;;;;;OASG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAEzC;;;OAGG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CACpC"}
|
|
@@ -48,7 +48,7 @@ export interface HistoryManagerConfig {
|
|
|
48
48
|
dagEdges?: boolean;
|
|
49
49
|
/** Maximum sessions per owner (per-owner LRU bucket). @default 50 */
|
|
50
50
|
maxSessionsPerOwner?: number;
|
|
51
|
-
/** Shared processor lock used to
|
|
51
|
+
/** Shared processor lock used to serialize session resets. */
|
|
52
52
|
sessionLock?: ISessionLock;
|
|
53
53
|
/** Shared admission and exclusive lifecycle coordinator. */
|
|
54
54
|
lifecycleCoordinator?: SessionLifecycleCoordinator;
|
|
@@ -66,7 +66,6 @@ export interface HistoryManagerConfig {
|
|
|
66
66
|
* `_flushBuffer`, `_sessions`).
|
|
67
67
|
*/
|
|
68
68
|
export declare class HistoryManager implements IHistoryManager {
|
|
69
|
-
private static readonly DEFAULT_SESSION;
|
|
70
69
|
private static readonly SESSION_TTL_MS;
|
|
71
70
|
private static readonly MAX_SESSIONS;
|
|
72
71
|
private _sessions;
|
|
@@ -95,7 +94,7 @@ export declare class HistoryManager implements IHistoryManager {
|
|
|
95
94
|
private get _flushTimer();
|
|
96
95
|
private _startFlushTimer;
|
|
97
96
|
private _stopFlushTimer;
|
|
98
|
-
/** @internal Public for
|
|
97
|
+
/** @internal Public for test coupling. */
|
|
99
98
|
_flushBuffer(): Promise<void>;
|
|
100
99
|
/**
|
|
101
100
|
* Drains accepted persistence work and projects terminal failures to one session.
|
|
@@ -158,25 +157,23 @@ export declare class HistoryManager implements IHistoryManager {
|
|
|
158
157
|
private _addToSessionBranch;
|
|
159
158
|
private _cleanupSessionBranches;
|
|
160
159
|
private _trimSessionBranchSize;
|
|
161
|
-
getHistory(sessionId
|
|
160
|
+
getHistory(sessionId: string): ThoughtData[];
|
|
162
161
|
/**
|
|
163
162
|
* Returns history with optional sliding-window dehydration. Non-mutating: when
|
|
164
163
|
* `dagEdges` is off OR no `ISummaryStore` is configured, returns same as getHistory.
|
|
165
164
|
*/
|
|
166
|
-
getHistoryHydrated(sessionId
|
|
167
|
-
getHistoryLength(sessionId
|
|
168
|
-
getBranches(sessionId
|
|
169
|
-
getBranchIds(sessionId
|
|
165
|
+
getHistoryHydrated(sessionId: string, opts?: DehydrationOptions): HydratedEntry[];
|
|
166
|
+
getHistoryLength(sessionId: string): number;
|
|
167
|
+
getBranches(sessionId: string): Record<BranchId, ThoughtData[]>;
|
|
168
|
+
getBranchIds(sessionId: string): BranchId[];
|
|
170
169
|
/** Returns validation state without creating a session, binding an owner, or updating LRU data. */
|
|
171
170
|
inspectSession(sessionId: string): HistorySessionSnapshot;
|
|
172
171
|
/** @throws {ValidationError} If branchId is empty or already exists. */
|
|
173
|
-
registerBranch(sessionId: string
|
|
174
|
-
branchExists(sessionId: string
|
|
175
|
-
getAvailableMcpTools(sessionId
|
|
176
|
-
getAvailableSkills(sessionId
|
|
177
|
-
getBranch(branchId: BranchId, sessionId
|
|
178
|
-
/** Clears only persistence-disabled state synchronously. */
|
|
179
|
-
clear(sessionId?: string): void;
|
|
172
|
+
registerBranch(sessionId: string, branchId: BranchId): void;
|
|
173
|
+
branchExists(sessionId: string, branchId: BranchId): boolean;
|
|
174
|
+
getAvailableMcpTools(sessionId: string): string[] | undefined;
|
|
175
|
+
getAvailableSkills(sessionId: string): string[] | undefined;
|
|
176
|
+
getBranch(branchId: BranchId, sessionId: string): ThoughtData[] | undefined;
|
|
180
177
|
/** Awaitably deletes one authorized durable namespace before replacing its live state. */
|
|
181
178
|
resetSession(sessionId: string, clearAuxiliaryState?: () => void): Promise<void>;
|
|
182
179
|
/** Performs scoped reset work while its lifecycle exclusive is already owned. */
|
|
@@ -185,7 +182,6 @@ export declare class HistoryManager implements IHistoryManager {
|
|
|
185
182
|
resetAll(clearAuxiliaryState?: () => void): Promise<void>;
|
|
186
183
|
/** Performs global reset work while its lifecycle exclusive is already owned. */
|
|
187
184
|
resetAllWithinExclusive(clearAuxiliaryState?: () => void): Promise<void>;
|
|
188
|
-
clearSession(sessionId: string): void;
|
|
189
185
|
getSessionIds(): string[];
|
|
190
186
|
getSessionCount(): number;
|
|
191
187
|
private _restoredState;
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"HistoryManager.d.ts","sourceRoot":"","sources":["../../src/core/HistoryManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { InvalidBacktrackError, MaxSessionsReachedError, ValidationError } from "../errors.js";
|
|
1
|
+
import { asSessionId } from "../contracts/ids.js";
|
|
2
|
+
import { ERROR_CODES, InvalidBacktrackError, MaxSessionsReachedError, SequentialThinkingError, ValidationError } from "../errors.js";
|
|
3
3
|
import { NullLogger } from "../logger/NullLogger.js";
|
|
4
4
|
import { DehydrationPolicy } from "./compression/DehydrationPolicy.js";
|
|
5
|
-
import {
|
|
5
|
+
import { SessionAccessDeniedError } from "./SessionErrors.js";
|
|
6
6
|
import { EdgeEmitter } from "./graph/EdgeEmitter.js";
|
|
7
7
|
import { PersistenceBuffer } from "./PersistenceBuffer.js";
|
|
8
8
|
import { SessionManager } from "./SessionManager.js";
|
|
@@ -14,7 +14,6 @@ import { resolveThoughtReferencesForAdmission } from "./CrossReferenceValidator.
|
|
|
14
14
|
import { SessionLifecycleCoordinator } from "./SessionLifecycleCoordinator.js";
|
|
15
15
|
const ABSOLUTE_MAX_HISTORY_SIZE = 10000;
|
|
16
16
|
class HistoryManager {
|
|
17
|
-
static DEFAULT_SESSION = GLOBAL_SESSION_ID;
|
|
18
17
|
static SESSION_TTL_MS = 1800000;
|
|
19
18
|
static MAX_SESSIONS = 100;
|
|
20
19
|
_sessions = new Map();
|
|
@@ -63,11 +62,9 @@ class HistoryManager {
|
|
|
63
62
|
this._edgeEmitter = new EdgeEmitter({
|
|
64
63
|
edgeStore: this._edgeStore,
|
|
65
64
|
dagEdges: this._dagEdges,
|
|
66
|
-
defaultSessionId: HistoryManager.DEFAULT_SESSION,
|
|
67
65
|
logger: this._logger
|
|
68
66
|
});
|
|
69
67
|
this._sessionManager = new SessionManager({
|
|
70
|
-
defaultSessionId: HistoryManager.DEFAULT_SESSION,
|
|
71
68
|
sessionTtlMs: HistoryManager.SESSION_TTL_MS,
|
|
72
69
|
cleanupIntervalMs: 300000,
|
|
73
70
|
getMaxSessions: ()=>HistoryManager.MAX_SESSIONS,
|
|
@@ -81,18 +78,20 @@ class HistoryManager {
|
|
|
81
78
|
bufferSize: config.persistenceBufferSize ?? 100,
|
|
82
79
|
flushInterval: config.persistenceFlushInterval ?? 1000,
|
|
83
80
|
maxRetries: config.persistenceMaxRetries ?? 3,
|
|
84
|
-
defaultSessionId: asSessionId(HistoryManager.DEFAULT_SESSION),
|
|
85
|
-
getSessions: ()=>this._sessions,
|
|
86
|
-
getDefaultSession: ()=>this._getSession(),
|
|
87
|
-
edgeStore: this._edgeStore,
|
|
88
81
|
eventEmitter: this._eventEmitter,
|
|
89
82
|
logger: this._logger
|
|
90
83
|
});
|
|
91
84
|
this._startFlushTimer();
|
|
92
85
|
}
|
|
93
|
-
this.
|
|
86
|
+
const resetDurability = null === this._persistence || null === this._persistenceBuffer ? {
|
|
87
|
+
persistence: null,
|
|
88
|
+
barrier: null
|
|
89
|
+
} : {
|
|
94
90
|
persistence: this._persistence,
|
|
95
|
-
barrier: this._persistenceBuffer
|
|
91
|
+
barrier: this._persistenceBuffer
|
|
92
|
+
};
|
|
93
|
+
this._resetCoordinator = new SessionResetCoordinator({
|
|
94
|
+
...resetDurability,
|
|
96
95
|
edgeStore: this._edgeStore,
|
|
97
96
|
summaryStore: this._summaryStore,
|
|
98
97
|
sessions: this._sessions,
|
|
@@ -137,7 +136,7 @@ class HistoryManager {
|
|
|
137
136
|
return getOwner();
|
|
138
137
|
}
|
|
139
138
|
_getSession(sessionId, owner) {
|
|
140
|
-
const key =
|
|
139
|
+
const key = asSessionId(sessionId);
|
|
141
140
|
const existing = this._sessions.get(key);
|
|
142
141
|
if (void 0 !== existing) {
|
|
143
142
|
this._assertSessionOwner(key, existing, owner);
|
|
@@ -214,7 +213,6 @@ class HistoryManager {
|
|
|
214
213
|
branches: {},
|
|
215
214
|
availableMcpTools: void 0,
|
|
216
215
|
availableSkills: void 0,
|
|
217
|
-
writeBuffer: [],
|
|
218
216
|
lastAccessedAt: Date.now(),
|
|
219
217
|
branchIdentities: new Set(),
|
|
220
218
|
pendingRestoreBranchDeletes: new Set(),
|
|
@@ -231,11 +229,12 @@ class HistoryManager {
|
|
|
231
229
|
_assertOwnerlessResetAll() {
|
|
232
230
|
const owner = this._getCurrentOwner();
|
|
233
231
|
if (void 0 === owner) return;
|
|
234
|
-
const firstSessionId = this._sessions.keys().next().value
|
|
235
|
-
throw new SessionAccessDeniedError(firstSessionId, 'trusted ownerless context', owner);
|
|
232
|
+
const firstSessionId = this._sessions.keys().next().value;
|
|
233
|
+
if (void 0 !== firstSessionId) throw new SessionAccessDeniedError(firstSessionId, 'trusted ownerless context', owner);
|
|
234
|
+
throw new SequentialThinkingError(`Access denied to all sessions: trusted ownerless context required, accessed by '${owner}'`, ERROR_CODES.SESSION_ACCESS_DENIED);
|
|
236
235
|
}
|
|
237
236
|
addThought(thought, context) {
|
|
238
|
-
const sessionId = asSessionId(thought.session_id
|
|
237
|
+
const sessionId = asSessionId(thought.session_id);
|
|
239
238
|
this._lifecycle.runMutation(sessionId, ()=>this._addThoughtWithinOperation(sessionId, thought, context));
|
|
240
239
|
}
|
|
241
240
|
_addThoughtWithinOperation(sessionId, thought, context) {
|
|
@@ -366,9 +365,8 @@ class HistoryManager {
|
|
|
366
365
|
getHistoryHydrated(sessionId, opts) {
|
|
367
366
|
const history = this.getHistory(sessionId);
|
|
368
367
|
if (!this._dagEdges || !this._summaryStore) return history.slice();
|
|
369
|
-
const sid = sessionId ?? HistoryManager.DEFAULT_SESSION;
|
|
370
368
|
const policy = new DehydrationPolicy(this._summaryStore);
|
|
371
|
-
return policy.apply(history, asSessionId(
|
|
369
|
+
return policy.apply(history, asSessionId(sessionId), opts);
|
|
372
370
|
}
|
|
373
371
|
getHistoryLength(sessionId) {
|
|
374
372
|
return this._getSession(sessionId, this._getCurrentOwner()).thought_history.length;
|
|
@@ -411,7 +409,7 @@ class HistoryManager {
|
|
|
411
409
|
}
|
|
412
410
|
registerBranch(sessionId, branchId) {
|
|
413
411
|
if ('string' != typeof branchId || 0 === branchId.length) throw new ValidationError('branch_id', 'branch_id must be a non-empty string');
|
|
414
|
-
const canonicalSessionId = asSessionId(sessionId
|
|
412
|
+
const canonicalSessionId = asSessionId(sessionId);
|
|
415
413
|
this._lifecycle.runMutation(canonicalSessionId, ()=>{
|
|
416
414
|
this._persistenceBuffer?.assertSessionAdmissionOpen(canonicalSessionId);
|
|
417
415
|
const session = this._getSessionWithinOperation(canonicalSessionId, this._getCurrentOwner());
|
|
@@ -424,7 +422,7 @@ class HistoryManager {
|
|
|
424
422
|
if (void 0 !== this._edgeStore && prunedEdges > 0) this._persistenceBuffer?.bufferEdges(canonicalSessionId, this._edgeStore.edgesForSession(canonicalSessionId));
|
|
425
423
|
this.log('Registered branch', {
|
|
426
424
|
branchId,
|
|
427
|
-
sessionId
|
|
425
|
+
sessionId
|
|
428
426
|
});
|
|
429
427
|
});
|
|
430
428
|
}
|
|
@@ -441,22 +439,6 @@ class HistoryManager {
|
|
|
441
439
|
getBranch(branchId, sessionId) {
|
|
442
440
|
return this._getSession(sessionId, this._getCurrentOwner()).branches[branchId];
|
|
443
441
|
}
|
|
444
|
-
clear(sessionId) {
|
|
445
|
-
if (void 0 !== sessionId) {
|
|
446
|
-
const canonicalSessionId = asSessionId(sessionId);
|
|
447
|
-
this._authorizeExistingSession(canonicalSessionId, this._getCurrentOwner());
|
|
448
|
-
if (this._sessionLock?.isActive(canonicalSessionId) === true) throw new AsyncResetRequiredError('session', canonicalSessionId, 'active');
|
|
449
|
-
this._resetCoordinator.clearSession(canonicalSessionId);
|
|
450
|
-
this._referenceIndex.clearSession(canonicalSessionId);
|
|
451
|
-
this._clearSessionAuxiliaryState?.(canonicalSessionId);
|
|
452
|
-
return;
|
|
453
|
-
}
|
|
454
|
-
this._assertOwnerlessResetAll();
|
|
455
|
-
if (void 0 !== this._sessionLock && this._sessionLock.size > 0) throw new AsyncResetRequiredError('all', void 0, 'active');
|
|
456
|
-
this._resetCoordinator.clearAll();
|
|
457
|
-
this._referenceIndex.clearAll();
|
|
458
|
-
this._clearAllAuxiliaryState?.();
|
|
459
|
-
}
|
|
460
442
|
async resetSession(sessionId, clearAuxiliaryState) {
|
|
461
443
|
const canonicalSessionId = asSessionId(sessionId);
|
|
462
444
|
this._authorizeExistingSession(canonicalSessionId, this._getCurrentOwner());
|
|
@@ -480,9 +462,6 @@ class HistoryManager {
|
|
|
480
462
|
await this._resetCoordinator.resetAll(clearAuxiliaryState ?? this._clearAllAuxiliaryState);
|
|
481
463
|
this._referenceIndex.clearAll();
|
|
482
464
|
}
|
|
483
|
-
clearSession(sessionId) {
|
|
484
|
-
this.clear(sessionId);
|
|
485
|
-
}
|
|
486
465
|
getSessionIds() {
|
|
487
466
|
return Array.from(this._sessions.keys());
|
|
488
467
|
}
|