@longarc/mdash 3.1.2 → 3.1.3
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 +86 -23
- package/SECURITY.md +254 -0
- package/dist/accountability/engine.d.ts +27 -0
- package/dist/accountability/engine.d.ts.map +1 -0
- package/dist/accountability/engine.js +148 -0
- package/dist/accountability/engine.js.map +1 -0
- package/dist/accountability/types.d.ts +46 -0
- package/dist/accountability/types.d.ts.map +1 -0
- package/dist/accountability/types.js +8 -0
- package/dist/accountability/types.js.map +1 -0
- package/dist/checkpoint/engine.d.ts.map +1 -1
- package/dist/checkpoint/engine.js +4 -0
- package/dist/checkpoint/engine.js.map +1 -1
- package/dist/context/compose.d.ts +62 -0
- package/dist/context/compose.d.ts.map +1 -0
- package/dist/context/compose.js +286 -0
- package/dist/context/compose.js.map +1 -0
- package/dist/context/crypto/hash.d.ts +100 -0
- package/dist/context/crypto/hash.d.ts.map +1 -0
- package/dist/context/crypto/hash.js +248 -0
- package/dist/context/crypto/hash.js.map +1 -0
- package/dist/context/crypto/hmac.d.ts +80 -0
- package/dist/context/crypto/hmac.d.ts.map +1 -0
- package/dist/context/crypto/hmac.js +192 -0
- package/dist/context/crypto/hmac.js.map +1 -0
- package/dist/context/crypto/index.d.ts +7 -0
- package/dist/context/crypto/index.d.ts.map +1 -0
- package/dist/context/crypto/index.js +7 -0
- package/dist/context/crypto/index.js.map +1 -0
- package/dist/context/engine-v3.0-backup.d.ts +197 -0
- package/dist/context/engine-v3.0-backup.d.ts.map +1 -0
- package/dist/context/engine-v3.0-backup.js +392 -0
- package/dist/context/engine-v3.0-backup.js.map +1 -0
- package/dist/context/fragment.d.ts +99 -0
- package/dist/context/fragment.d.ts.map +1 -0
- package/dist/context/fragment.js +316 -0
- package/dist/context/fragment.js.map +1 -0
- package/dist/context/index.d.ts +99 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +180 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/provenance.d.ts +80 -0
- package/dist/context/provenance.d.ts.map +1 -0
- package/dist/context/provenance.js +294 -0
- package/dist/context/provenance.js.map +1 -0
- package/dist/context/resolve.d.ts +106 -0
- package/dist/context/resolve.d.ts.map +1 -0
- package/dist/context/resolve.js +440 -0
- package/dist/context/resolve.js.map +1 -0
- package/dist/context/store.d.ts +156 -0
- package/dist/context/store.d.ts.map +1 -0
- package/dist/context/store.js +396 -0
- package/dist/context/store.js.map +1 -0
- package/dist/context/types.d.ts +463 -0
- package/dist/context/types.d.ts.map +1 -0
- package/dist/context/types.js +94 -0
- package/dist/context/types.js.map +1 -0
- package/dist/context/utils/atomic.d.ts +76 -0
- package/dist/context/utils/atomic.d.ts.map +1 -0
- package/dist/context/utils/atomic.js +159 -0
- package/dist/context/utils/atomic.js.map +1 -0
- package/dist/context/utils/credit.d.ts +65 -0
- package/dist/context/utils/credit.d.ts.map +1 -0
- package/dist/context/utils/credit.js +164 -0
- package/dist/context/utils/credit.js.map +1 -0
- package/dist/context/utils/index.d.ts +13 -0
- package/dist/context/utils/index.d.ts.map +1 -0
- package/dist/context/utils/index.js +13 -0
- package/dist/context/utils/index.js.map +1 -0
- package/dist/context/utils/utility.d.ts +63 -0
- package/dist/context/utils/utility.d.ts.map +1 -0
- package/dist/context/utils/utility.js +141 -0
- package/dist/context/utils/utility.js.map +1 -0
- package/dist/core/commitment.d.ts +25 -2
- package/dist/core/commitment.d.ts.map +1 -1
- package/dist/core/commitment.js +44 -6
- package/dist/core/commitment.js.map +1 -1
- package/dist/core/crypto.d.ts +2 -0
- package/dist/core/crypto.d.ts.map +1 -1
- package/dist/core/crypto.js +12 -0
- package/dist/core/crypto.js.map +1 -1
- package/dist/index.d.ts +11 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -10
- package/dist/index.js.map +1 -1
- package/dist/mcca/engine.d.ts.map +1 -1
- package/dist/mcca/engine.js +5 -4
- package/dist/mcca/engine.js.map +1 -1
- package/dist/physics/engine.d.ts +1 -0
- package/dist/physics/engine.d.ts.map +1 -1
- package/dist/physics/engine.js +36 -2
- package/dist/physics/engine.js.map +1 -1
- package/dist/provenance/api-handler.d.ts +45 -0
- package/dist/provenance/api-handler.d.ts.map +1 -0
- package/dist/provenance/api-handler.js +223 -0
- package/dist/provenance/api-handler.js.map +1 -0
- package/dist/provenance/api-types.d.ts +108 -0
- package/dist/provenance/api-types.d.ts.map +1 -0
- package/dist/provenance/api-types.js +9 -0
- package/dist/provenance/api-types.js.map +1 -0
- package/dist/provenance/index.d.ts +6 -0
- package/dist/provenance/index.d.ts.map +1 -0
- package/dist/provenance/index.js +3 -0
- package/dist/provenance/index.js.map +1 -0
- package/dist/provenance/provenance-engine.d.ts +63 -0
- package/dist/provenance/provenance-engine.d.ts.map +1 -0
- package/dist/provenance/provenance-engine.js +311 -0
- package/dist/provenance/provenance-engine.js.map +1 -0
- package/dist/provenance/types.d.ts +193 -0
- package/dist/provenance/types.d.ts.map +1 -0
- package/dist/provenance/types.js +9 -0
- package/dist/provenance/types.js.map +1 -0
- package/dist/tee/engine.d.ts.map +1 -1
- package/dist/tee/engine.js +14 -0
- package/dist/tee/engine.js.map +1 -1
- package/dist/warrant/engine.d.ts +24 -1
- package/dist/warrant/engine.d.ts.map +1 -1
- package/dist/warrant/engine.js +76 -1
- package/dist/warrant/engine.js.map +1 -1
- package/dist/zk/engine.d.ts.map +1 -1
- package/dist/zk/engine.js +7 -4
- package/dist/zk/engine.js.map +1 -1
- package/docs/SECURITY-PATCHES.md +170 -0
- package/package.json +17 -5
- package/src/__tests__/accountability.test.ts +308 -0
- package/src/__tests__/l1-verification-modes.test.ts +424 -0
- package/src/__tests__/phase1.benchmark.test.ts +94 -0
- package/src/__tests__/phase1.test.ts +0 -77
- package/src/__tests__/phase2-4.benchmark.test.ts +60 -0
- package/src/__tests__/phase2-4.test.ts +1 -52
- package/src/__tests__/provenance/api-handler.test.ts +356 -0
- package/src/__tests__/provenance/provenance-engine.test.ts +628 -0
- package/src/__tests__/sa-2026-008.test.ts +45 -0
- package/src/__tests__/sa-2026-009.test.ts +86 -0
- package/src/__tests__/sa-2026-010.test.ts +72 -0
- package/src/__tests__/sa-2026-012.test.ts +65 -0
- package/src/__tests__/sa-2026-nfc.test.ts +40 -0
- package/src/__tests__/security.test.ts +786 -0
- package/src/accountability/engine.ts +230 -0
- package/src/accountability/types.ts +58 -0
- package/src/checkpoint/engine.ts +4 -0
- package/src/context/__tests__/caret-v0.2.0.test.ts +860 -0
- package/src/context/__tests__/integration.test.ts +356 -0
- package/src/context/compose.ts +388 -0
- package/src/context/crypto/hash.ts +277 -0
- package/src/context/crypto/hmac.ts +253 -0
- package/src/context/crypto/index.ts +29 -0
- package/src/context/engine-v3.0-backup.ts +598 -0
- package/src/context/fragment.ts +454 -0
- package/src/context/index.ts +427 -0
- package/src/context/provenance.ts +380 -0
- package/src/context/resolve.ts +581 -0
- package/src/context/store.ts +503 -0
- package/src/context/types.ts +679 -0
- package/src/context/utils/atomic.ts +207 -0
- package/src/context/utils/credit.ts +224 -0
- package/src/context/utils/index.ts +13 -0
- package/src/context/utils/utility.ts +200 -0
- package/src/core/commitment.ts +129 -67
- package/src/core/crypto.ts +13 -0
- package/src/index.ts +62 -10
- package/src/mcca/engine.ts +5 -4
- package/src/physics/engine.ts +40 -3
- package/src/provenance/api-handler.ts +248 -0
- package/src/provenance/api-types.ts +112 -0
- package/src/provenance/index.ts +19 -0
- package/src/provenance/provenance-engine.ts +387 -0
- package/src/provenance/types.ts +211 -0
- package/src/tee/engine.ts +16 -0
- package/src/warrant/engine.ts +89 -1
- package/src/zk/engine.ts +8 -4
- package/tsconfig.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/accountability/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/checkpoint/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,SAAS,EAOV,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMzD,MAAM,MAAM,iBAAiB,GACzB,cAAc,GACd,iBAAiB,GACjB,cAAc,GACd,kBAAkB,GAClB,OAAO,GACP,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE5E,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,mCAAmC;IACnC,UAAU,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,kCAAkC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,mCAAmC;IACnC,EAAE,EAAE,YAAY,CAAC;IACjB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,qBAAqB;IACrB,MAAM,EAAE,gBAAgB,CAAC;IACzB,0BAA0B;IAC1B,KAAK,EAAE,eAAe,CAAC;IACvB,6CAA6C;IAC7C,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,UAAU,EAAE,SAAS,CAAC;IACtB,mBAAmB;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,gBAAgB;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,8BAA8B;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,2BAA2B;IAC3B,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,UAAU,EAAE,IAAI,CAAC;CAClB;AAMD;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,QAAQ,CAAgD;IAChE,OAAO,CAAC,KAAK,CAAsB;IAEnC;;OAEG;IACH,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAYjC;;OAEG;IACH,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,OAAO;IAexD;;OAEG;IACH,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,OAAO;IAIxD;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,YAAY,GAAG,UAAU,EAAE;IAchD;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,UAAU,EAAE;IAgB7C;;OAEG;IACH,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,IAAI;IAsB9D;;OAEG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;CAc/D;AAMD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAA0B;IACrC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,UAAU,CAAwC;gBAE9C,gBAAgB,EAAE,gBAAgB;IAK9C;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD;;;OAGG;IACG,gBAAgB,CAAC,MAAM,EAAE;QAC7B,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,iBAAiB,CAAC;QAC3B,KAAK,EAAE,eAAe,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/checkpoint/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -198,6 +198,10 @@ export class CheckpointEngine {
|
|
|
198
198
|
this.commitmentEngine.commit(checkpoint, commitmentId).then(() => {
|
|
199
199
|
checkpoint.commitment_id = commitmentId;
|
|
200
200
|
checkpoint.status = 'sealed';
|
|
201
|
+
}).catch((error) => {
|
|
202
|
+
// SA-2026-010: Log commitment failures instead of silently swallowing
|
|
203
|
+
checkpoint.status = 'failed';
|
|
204
|
+
console.error(`[Checkpoint] L1 commit failed for ${id}: ${error}`);
|
|
201
205
|
});
|
|
202
206
|
// Store and index
|
|
203
207
|
this.checkpoints.set(id, checkpoint);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/checkpoint/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/checkpoint/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Caret — Manifold Composition Engine
|
|
3
|
+
* @module @longarcstudios/caret/compose
|
|
4
|
+
*
|
|
5
|
+
* Compose multiple context fragments into a single manifold.
|
|
6
|
+
* Handles token budgeting, semantic compression, and provenance merging.
|
|
7
|
+
*/
|
|
8
|
+
import type { ContextFragment, Manifold, TokenCount, ComposeOptions, TrustLevel } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Parse a token ceiling specification.
|
|
11
|
+
* Accepts number or string like "8k tokens", "16k", "4096"
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseTokenCeiling(ceiling: TokenCount | string): TokenCount;
|
|
14
|
+
/**
|
|
15
|
+
* Compose multiple fragments into a manifold.
|
|
16
|
+
*
|
|
17
|
+
* @param fragments - The fragments to compose
|
|
18
|
+
* @param options - Composition options
|
|
19
|
+
* @param seal_key - Secret key for sealing
|
|
20
|
+
* @returns Promise resolving to the composed manifold
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* const manifold = await compose([
|
|
25
|
+
* policyFragment,
|
|
26
|
+
* userContextFragment,
|
|
27
|
+
* agentStateFragment
|
|
28
|
+
* ], { ceiling: '8k tokens' }, 'secret-key');
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function compose<T = unknown>(fragments: readonly ContextFragment[], options: ComposeOptions, seal_key: string): Promise<Manifold<T>>;
|
|
32
|
+
/**
|
|
33
|
+
* Verify a manifold's integrity.
|
|
34
|
+
*/
|
|
35
|
+
export declare function verifyManifold(manifold: Manifold, seal_key: string): Promise<{
|
|
36
|
+
valid: boolean;
|
|
37
|
+
errors: string[];
|
|
38
|
+
}>;
|
|
39
|
+
/**
|
|
40
|
+
* Get summary statistics for a manifold.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getManifoldStats(manifold: Manifold): {
|
|
43
|
+
tokens: TokenCount;
|
|
44
|
+
fragments: number;
|
|
45
|
+
utilization: number;
|
|
46
|
+
minTrust: TrustLevel;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Check if a manifold is within a given token budget.
|
|
50
|
+
*/
|
|
51
|
+
export declare function fitsInBudget(manifold: Manifold, budget: TokenCount | string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Recompose a manifold with a different token ceiling.
|
|
54
|
+
* Requires access to original fragments.
|
|
55
|
+
*/
|
|
56
|
+
export declare function recompose<T = unknown>(originalFragments: readonly ContextFragment[], newOptions: ComposeOptions, seal_key: string): Promise<Manifold<T>>;
|
|
57
|
+
/**
|
|
58
|
+
* Extend a manifold with additional fragments.
|
|
59
|
+
* Creates a new manifold (immutable).
|
|
60
|
+
*/
|
|
61
|
+
export declare function extendManifold<T = unknown>(originalFragments: readonly ContextFragment[], additionalFragments: readonly ContextFragment[], options: ComposeOptions, seal_key: string): Promise<Manifold<T>>;
|
|
62
|
+
//# sourceMappingURL=compose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/context/compose.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EAIR,UAAU,EACV,cAAc,EAEd,UAAU,EACX,MAAM,YAAY,CAAC;AAUpB;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU,CAoB1E;AAuGD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EACvC,SAAS,EAAE,SAAS,eAAe,EAAE,EACrC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAmFtB;AA8BD;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IACT,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC,CAkCD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG;IACpD,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;CACtB,CAOA;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAGrF;AAMD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,CAAC,GAAG,OAAO,EACzC,iBAAiB,EAAE,SAAS,eAAe,EAAE,EAC7C,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAEtB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,CAAC,GAAG,OAAO,EAC9C,iBAAiB,EAAE,SAAS,eAAe,EAAE,EAC7C,mBAAmB,EAAE,SAAS,eAAe,EAAE,EAC/C,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAGtB"}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Caret — Manifold Composition Engine
|
|
3
|
+
* @module @longarcstudios/caret/compose
|
|
4
|
+
*
|
|
5
|
+
* Compose multiple context fragments into a single manifold.
|
|
6
|
+
* Handles token budgeting, semantic compression, and provenance merging.
|
|
7
|
+
*/
|
|
8
|
+
import { sha256Object } from './crypto/hash.js';
|
|
9
|
+
import { hmacSeal } from './crypto/hmac.js';
|
|
10
|
+
import { mergeChains, getMinTrust } from './provenance.js';
|
|
11
|
+
import { createSemanticUnit, getFragmentTrust } from './fragment.js';
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// TOKEN PARSING
|
|
14
|
+
// ============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Parse a token ceiling specification.
|
|
17
|
+
* Accepts number or string like "8k tokens", "16k", "4096"
|
|
18
|
+
*/
|
|
19
|
+
export function parseTokenCeiling(ceiling) {
|
|
20
|
+
if (typeof ceiling === 'number') {
|
|
21
|
+
return ceiling;
|
|
22
|
+
}
|
|
23
|
+
const str = ceiling.toLowerCase().replace(/\s+/g, '').replace('tokens', '');
|
|
24
|
+
// Handle k/K suffix
|
|
25
|
+
if (str.endsWith('k')) {
|
|
26
|
+
const num = parseFloat(str.slice(0, -1));
|
|
27
|
+
return Math.floor(num * 1000);
|
|
28
|
+
}
|
|
29
|
+
// Handle m/M suffix (millions)
|
|
30
|
+
if (str.endsWith('m')) {
|
|
31
|
+
const num = parseFloat(str.slice(0, -1));
|
|
32
|
+
return Math.floor(num * 1000000);
|
|
33
|
+
}
|
|
34
|
+
return parseInt(str, 10);
|
|
35
|
+
}
|
|
36
|
+
// ============================================================================
|
|
37
|
+
// COMPOSITION STRATEGIES
|
|
38
|
+
// ============================================================================
|
|
39
|
+
/**
|
|
40
|
+
* Sort fragments by strategy.
|
|
41
|
+
*/
|
|
42
|
+
function sortByStrategy(fragments, strategy) {
|
|
43
|
+
const copy = [...fragments];
|
|
44
|
+
switch (strategy) {
|
|
45
|
+
case 'concatenate':
|
|
46
|
+
// Keep original order
|
|
47
|
+
return copy;
|
|
48
|
+
case 'priority':
|
|
49
|
+
// Sort by trust level (highest first)
|
|
50
|
+
return copy.sort((a, b) => getFragmentTrust(b) - getFragmentTrust(a));
|
|
51
|
+
case 'recency':
|
|
52
|
+
// Sort by sealed_at (most recent first)
|
|
53
|
+
return copy.sort((a, b) => new Date(b.sealed_at).getTime() - new Date(a.sealed_at).getTime());
|
|
54
|
+
case 'semantic':
|
|
55
|
+
// For now, same as priority — true semantic dedup would need embeddings
|
|
56
|
+
return copy.sort((a, b) => getFragmentTrust(b) - getFragmentTrust(a));
|
|
57
|
+
default:
|
|
58
|
+
return copy;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Select fragments that fit within token ceiling.
|
|
63
|
+
*/
|
|
64
|
+
function selectFragments(fragments, ceiling, minTrust) {
|
|
65
|
+
const included = [];
|
|
66
|
+
const excluded = [];
|
|
67
|
+
let totalTokens = 0;
|
|
68
|
+
for (const fragment of fragments) {
|
|
69
|
+
// Check trust level filter
|
|
70
|
+
if (minTrust !== undefined && getFragmentTrust(fragment) < minTrust) {
|
|
71
|
+
excluded.push(fragment);
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const fragmentTokens = fragment.content.token_count;
|
|
75
|
+
// Check if adding this fragment would exceed ceiling
|
|
76
|
+
if (totalTokens + fragmentTokens <= ceiling) {
|
|
77
|
+
included.push(fragment);
|
|
78
|
+
totalTokens = (totalTokens + fragmentTokens);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
excluded.push(fragment);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return { included, excluded, totalTokens };
|
|
85
|
+
}
|
|
86
|
+
// ============================================================================
|
|
87
|
+
// MANIFOLD CREATION
|
|
88
|
+
// ============================================================================
|
|
89
|
+
/**
|
|
90
|
+
* Generate a UUID v4 for manifold ID.
|
|
91
|
+
* SECURITY: Never falls back to Math.random — fails instead.
|
|
92
|
+
*/
|
|
93
|
+
function generateManifoldId() {
|
|
94
|
+
if (typeof crypto !== 'undefined' && crypto.randomUUID) {
|
|
95
|
+
return crypto.randomUUID();
|
|
96
|
+
}
|
|
97
|
+
if (typeof crypto !== 'undefined' && crypto.getRandomValues) {
|
|
98
|
+
const bytes = new Uint8Array(16);
|
|
99
|
+
crypto.getRandomValues(bytes);
|
|
100
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
101
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
102
|
+
const hex = Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');
|
|
103
|
+
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
104
|
+
}
|
|
105
|
+
throw new Error('Cryptographically secure random number generator not available');
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Compose multiple fragments into a manifold.
|
|
109
|
+
*
|
|
110
|
+
* @param fragments - The fragments to compose
|
|
111
|
+
* @param options - Composition options
|
|
112
|
+
* @param seal_key - Secret key for sealing
|
|
113
|
+
* @returns Promise resolving to the composed manifold
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```ts
|
|
117
|
+
* const manifold = await compose([
|
|
118
|
+
* policyFragment,
|
|
119
|
+
* userContextFragment,
|
|
120
|
+
* agentStateFragment
|
|
121
|
+
* ], { ceiling: '8k tokens' }, 'secret-key');
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
export async function compose(fragments, options, seal_key) {
|
|
125
|
+
if (fragments.length === 0) {
|
|
126
|
+
throw new Error('Cannot compose empty fragment array');
|
|
127
|
+
}
|
|
128
|
+
const ceiling = parseTokenCeiling(options.ceiling);
|
|
129
|
+
const strategy = options.strategy ?? 'priority';
|
|
130
|
+
const preserveProvenance = options.preserve_provenance ?? true;
|
|
131
|
+
const minTrust = options.min_trust;
|
|
132
|
+
// Sort fragments by strategy
|
|
133
|
+
const sorted = sortByStrategy(fragments, strategy);
|
|
134
|
+
// Select fragments within ceiling
|
|
135
|
+
const { included, excluded, totalTokens } = selectFragments(sorted, ceiling, minTrust);
|
|
136
|
+
if (included.length === 0) {
|
|
137
|
+
throw new Error('No fragments fit within token ceiling');
|
|
138
|
+
}
|
|
139
|
+
// Compose content
|
|
140
|
+
const composedData = composeContent(included);
|
|
141
|
+
const content = createSemanticUnit(composedData, {
|
|
142
|
+
type: 'composite',
|
|
143
|
+
});
|
|
144
|
+
// Merge provenance chains
|
|
145
|
+
const firstIncluded = included[0];
|
|
146
|
+
if (!firstIncluded) {
|
|
147
|
+
throw new Error('No fragments to compose');
|
|
148
|
+
}
|
|
149
|
+
const provenance = preserveProvenance
|
|
150
|
+
? await mergeChains(included.map(f => f.provenance))
|
|
151
|
+
: firstIncluded.provenance;
|
|
152
|
+
// Generate manifold ID
|
|
153
|
+
const id = generateManifoldId();
|
|
154
|
+
// Compute hash
|
|
155
|
+
const hash = await sha256Object({
|
|
156
|
+
id,
|
|
157
|
+
content,
|
|
158
|
+
sources: included.map(f => f.id),
|
|
159
|
+
provenance,
|
|
160
|
+
});
|
|
161
|
+
// Create composition metadata
|
|
162
|
+
const composition = {
|
|
163
|
+
strategy,
|
|
164
|
+
ceiling,
|
|
165
|
+
actual_tokens: totalTokens,
|
|
166
|
+
fragments_included: included.length,
|
|
167
|
+
fragments_excluded: excluded.length,
|
|
168
|
+
compression_applied: false, // TODO: implement compression
|
|
169
|
+
};
|
|
170
|
+
const created_at = new Date().toISOString();
|
|
171
|
+
// Create seal
|
|
172
|
+
const seal = await hmacSeal({
|
|
173
|
+
id,
|
|
174
|
+
hash,
|
|
175
|
+
content,
|
|
176
|
+
sources: included.map(f => f.id),
|
|
177
|
+
provenance,
|
|
178
|
+
composition,
|
|
179
|
+
created_at,
|
|
180
|
+
}, seal_key);
|
|
181
|
+
return {
|
|
182
|
+
id,
|
|
183
|
+
hash,
|
|
184
|
+
content,
|
|
185
|
+
sources: included.map(f => f.id),
|
|
186
|
+
provenance,
|
|
187
|
+
composition,
|
|
188
|
+
created_at,
|
|
189
|
+
seal,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Compose content from multiple fragments.
|
|
194
|
+
* For now, creates a structured object with all content.
|
|
195
|
+
* More sophisticated merging could be added later.
|
|
196
|
+
*/
|
|
197
|
+
function composeContent(fragments) {
|
|
198
|
+
// For text fragments, concatenate
|
|
199
|
+
const textFragments = fragments.filter(f => f.content.type === 'text');
|
|
200
|
+
if (textFragments.length === fragments.length) {
|
|
201
|
+
return textFragments.map(f => f.content.data).join('\n\n---\n\n');
|
|
202
|
+
}
|
|
203
|
+
// For mixed types, create structured object
|
|
204
|
+
return {
|
|
205
|
+
fragments: fragments.map(f => ({
|
|
206
|
+
id: f.id,
|
|
207
|
+
type: f.content.type,
|
|
208
|
+
data: f.content.data,
|
|
209
|
+
source: f.provenance.head.source,
|
|
210
|
+
trust: f.provenance.head.trust_level,
|
|
211
|
+
})),
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
// ============================================================================
|
|
215
|
+
// MANIFOLD OPERATIONS
|
|
216
|
+
// ============================================================================
|
|
217
|
+
/**
|
|
218
|
+
* Verify a manifold's integrity.
|
|
219
|
+
*/
|
|
220
|
+
export async function verifyManifold(manifold, seal_key) {
|
|
221
|
+
const errors = [];
|
|
222
|
+
// Verify hash
|
|
223
|
+
const expectedHash = await sha256Object({
|
|
224
|
+
id: manifold.id,
|
|
225
|
+
content: manifold.content,
|
|
226
|
+
sources: manifold.sources,
|
|
227
|
+
provenance: manifold.provenance,
|
|
228
|
+
});
|
|
229
|
+
if (expectedHash !== manifold.hash) {
|
|
230
|
+
errors.push('Manifold hash mismatch');
|
|
231
|
+
}
|
|
232
|
+
// Verify seal
|
|
233
|
+
const expectedSeal = await hmacSeal({
|
|
234
|
+
id: manifold.id,
|
|
235
|
+
hash: manifold.hash,
|
|
236
|
+
content: manifold.content,
|
|
237
|
+
sources: manifold.sources,
|
|
238
|
+
provenance: manifold.provenance,
|
|
239
|
+
composition: manifold.composition,
|
|
240
|
+
created_at: manifold.created_at,
|
|
241
|
+
}, seal_key);
|
|
242
|
+
if (expectedSeal !== manifold.seal) {
|
|
243
|
+
errors.push('Manifold seal verification failed');
|
|
244
|
+
}
|
|
245
|
+
return {
|
|
246
|
+
valid: errors.length === 0,
|
|
247
|
+
errors,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Get summary statistics for a manifold.
|
|
252
|
+
*/
|
|
253
|
+
export function getManifoldStats(manifold) {
|
|
254
|
+
return {
|
|
255
|
+
tokens: manifold.composition.actual_tokens,
|
|
256
|
+
fragments: manifold.composition.fragments_included,
|
|
257
|
+
utilization: manifold.composition.actual_tokens / manifold.composition.ceiling,
|
|
258
|
+
minTrust: getMinTrust(manifold.provenance),
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Check if a manifold is within a given token budget.
|
|
263
|
+
*/
|
|
264
|
+
export function fitsInBudget(manifold, budget) {
|
|
265
|
+
const budgetTokens = parseTokenCeiling(budget);
|
|
266
|
+
return manifold.content.token_count <= budgetTokens;
|
|
267
|
+
}
|
|
268
|
+
// ============================================================================
|
|
269
|
+
// RECOMPOSITION
|
|
270
|
+
// ============================================================================
|
|
271
|
+
/**
|
|
272
|
+
* Recompose a manifold with a different token ceiling.
|
|
273
|
+
* Requires access to original fragments.
|
|
274
|
+
*/
|
|
275
|
+
export async function recompose(originalFragments, newOptions, seal_key) {
|
|
276
|
+
return compose(originalFragments, newOptions, seal_key);
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Extend a manifold with additional fragments.
|
|
280
|
+
* Creates a new manifold (immutable).
|
|
281
|
+
*/
|
|
282
|
+
export async function extendManifold(originalFragments, additionalFragments, options, seal_key) {
|
|
283
|
+
const allFragments = [...originalFragments, ...additionalFragments];
|
|
284
|
+
return compose(allFragments, options, seal_key);
|
|
285
|
+
}
|
|
286
|
+
//# sourceMappingURL=compose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/context/compose.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Caret — Cryptographic Hash Utilities
|
|
3
|
+
* @module @longarcstudios/caret/crypto/hash
|
|
4
|
+
*
|
|
5
|
+
* SHA-256 implementation using Web Crypto API (browser + Node compatible).
|
|
6
|
+
* All hashing is deterministic — same input always produces same output.
|
|
7
|
+
*/
|
|
8
|
+
import type { Hash } from '../types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Convert hexadecimal string to ArrayBuffer.
|
|
11
|
+
*/
|
|
12
|
+
export declare function hexToBuffer(hex: string): ArrayBuffer;
|
|
13
|
+
/**
|
|
14
|
+
* Compute SHA-256 hash of a string.
|
|
15
|
+
*
|
|
16
|
+
* @param input - The string to hash
|
|
17
|
+
* @returns Promise resolving to the hash as a branded Hash type
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* const hash = await sha256('hello world');
|
|
22
|
+
* // => 'b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9'
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function sha256(input: string): Promise<Hash>;
|
|
26
|
+
/**
|
|
27
|
+
* Compute SHA-256 hash of binary data.
|
|
28
|
+
*
|
|
29
|
+
* @param data - The binary data to hash
|
|
30
|
+
* @returns Promise resolving to the hash
|
|
31
|
+
*/
|
|
32
|
+
export declare function sha256Binary(data: ArrayBuffer | Uint8Array): Promise<Hash>;
|
|
33
|
+
/**
|
|
34
|
+
* Compute SHA-256 hash of a JSON-serializable object.
|
|
35
|
+
* Uses deterministic JSON serialization (sorted keys).
|
|
36
|
+
*
|
|
37
|
+
* @param obj - The object to hash
|
|
38
|
+
* @returns Promise resolving to the hash
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* const hash = await sha256Object({ b: 2, a: 1 });
|
|
43
|
+
* // Same as sha256Object({ a: 1, b: 2 }) — deterministic
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare function sha256Object(obj: unknown): Promise<Hash>;
|
|
47
|
+
/**
|
|
48
|
+
* Compute a rolling hash combining multiple hashes.
|
|
49
|
+
* Used for chain verification in provenance tracking.
|
|
50
|
+
*
|
|
51
|
+
* @param hashes - Array of hashes to combine
|
|
52
|
+
* @returns Promise resolving to the combined hash
|
|
53
|
+
*/
|
|
54
|
+
export declare function rollingHash(hashes: readonly Hash[]): Promise<Hash>;
|
|
55
|
+
/**
|
|
56
|
+
* Verify that a hash matches expected content.
|
|
57
|
+
*
|
|
58
|
+
* @param content - The content to verify
|
|
59
|
+
* @param expectedHash - The expected hash
|
|
60
|
+
* @returns Promise resolving to boolean
|
|
61
|
+
*/
|
|
62
|
+
export declare function verifyHash(content: string, expectedHash: Hash): Promise<boolean>;
|
|
63
|
+
/**
|
|
64
|
+
* Verify that an object's hash matches expected.
|
|
65
|
+
*
|
|
66
|
+
* @param obj - The object to verify
|
|
67
|
+
* @param expectedHash - The expected hash
|
|
68
|
+
* @returns Promise resolving to boolean
|
|
69
|
+
*/
|
|
70
|
+
export declare function verifyObjectHash(obj: unknown, expectedHash: Hash): Promise<boolean>;
|
|
71
|
+
/**
|
|
72
|
+
* Deterministic JSON stringify with sorted keys.
|
|
73
|
+
* Ensures same object always produces same string.
|
|
74
|
+
*/
|
|
75
|
+
export declare function deterministicStringify(obj: unknown): string;
|
|
76
|
+
/**
|
|
77
|
+
* Constant-time string comparison to prevent timing attacks.
|
|
78
|
+
*
|
|
79
|
+
* @param a - First string
|
|
80
|
+
* @param b - Second string
|
|
81
|
+
* @returns true if equal, false otherwise
|
|
82
|
+
*/
|
|
83
|
+
export declare function constantTimeEqual(a: string, b: string): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Validate that a string is a valid SHA-256 hash.
|
|
86
|
+
*
|
|
87
|
+
* @param value - The value to validate
|
|
88
|
+
* @returns true if valid hash format
|
|
89
|
+
*/
|
|
90
|
+
export declare function isValidHash(value: string): value is Hash;
|
|
91
|
+
/**
|
|
92
|
+
* Create a Hash type from a raw string (unsafe — no validation).
|
|
93
|
+
* Use only when you've already validated the input.
|
|
94
|
+
*/
|
|
95
|
+
export declare function unsafeHash(value: string): Hash;
|
|
96
|
+
/**
|
|
97
|
+
* Parse a string as a Hash, throwing if invalid.
|
|
98
|
+
*/
|
|
99
|
+
export declare function parseHash(value: string): Hash;
|
|
100
|
+
//# sourceMappingURL=hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../../src/context/crypto/hash.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AA2ExC;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CASpD;AAMD;;;;;;;;;;;GAWG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzD;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9D;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAexE;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtF;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAGzF;AAMD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAa3D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAe/D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,IAAI,CAIxD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAM7C"}
|