@diyor28/context 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +270 -0
- package/dist/__tests__/attachment-selector.test.d.ts +11 -0
- package/dist/__tests__/attachment-selector.test.d.ts.map +1 -0
- package/dist/__tests__/attachment-selector.test.js +449 -0
- package/dist/__tests__/attachment-selector.test.js.map +1 -0
- package/dist/__tests__/cache-breakpoints.test.d.ts +11 -0
- package/dist/__tests__/cache-breakpoints.test.d.ts.map +1 -0
- package/dist/__tests__/cache-breakpoints.test.js +398 -0
- package/dist/__tests__/cache-breakpoints.test.js.map +1 -0
- package/dist/__tests__/codecs.test.d.ts +7 -0
- package/dist/__tests__/codecs.test.d.ts.map +1 -0
- package/dist/__tests__/codecs.test.js +331 -0
- package/dist/__tests__/codecs.test.js.map +1 -0
- package/dist/__tests__/compactor.test.d.ts +11 -0
- package/dist/__tests__/compactor.test.d.ts.map +1 -0
- package/dist/__tests__/compactor.test.js +519 -0
- package/dist/__tests__/compactor.test.js.map +1 -0
- package/dist/__tests__/context-graph.test.d.ts +7 -0
- package/dist/__tests__/context-graph.test.d.ts.map +1 -0
- package/dist/__tests__/context-graph.test.js +262 -0
- package/dist/__tests__/context-graph.test.js.map +1 -0
- package/dist/__tests__/hash.test.d.ts +7 -0
- package/dist/__tests__/hash.test.d.ts.map +1 -0
- package/dist/__tests__/hash.test.js +228 -0
- package/dist/__tests__/hash.test.js.map +1 -0
- package/dist/__tests__/integration.test.d.ts +15 -0
- package/dist/__tests__/integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration.test.js +728 -0
- package/dist/__tests__/integration.test.js.map +1 -0
- package/dist/__tests__/kind-order.test.d.ts +7 -0
- package/dist/__tests__/kind-order.test.d.ts.map +1 -0
- package/dist/__tests__/kind-order.test.js +243 -0
- package/dist/__tests__/kind-order.test.js.map +1 -0
- package/dist/__tests__/phase2-integration.test.d.ts +5 -0
- package/dist/__tests__/phase2-integration.test.d.ts.map +1 -0
- package/dist/__tests__/phase2-integration.test.js +222 -0
- package/dist/__tests__/phase2-integration.test.js.map +1 -0
- package/dist/__tests__/queries.test.d.ts +7 -0
- package/dist/__tests__/queries.test.d.ts.map +1 -0
- package/dist/__tests__/queries.test.js +254 -0
- package/dist/__tests__/queries.test.js.map +1 -0
- package/dist/__tests__/token-estimator.test.d.ts +7 -0
- package/dist/__tests__/token-estimator.test.d.ts.map +1 -0
- package/dist/__tests__/token-estimator.test.js +267 -0
- package/dist/__tests__/token-estimator.test.js.map +1 -0
- package/dist/adapters/anthropic-estimator.d.ts +38 -0
- package/dist/adapters/anthropic-estimator.d.ts.map +1 -0
- package/dist/adapters/anthropic-estimator.js +108 -0
- package/dist/adapters/anthropic-estimator.js.map +1 -0
- package/dist/adapters/attachment-resolver.d.ts +96 -0
- package/dist/adapters/attachment-resolver.d.ts.map +1 -0
- package/dist/adapters/attachment-resolver.js +176 -0
- package/dist/adapters/attachment-resolver.js.map +1 -0
- package/dist/adapters/attachment-selector.d.ts +59 -0
- package/dist/adapters/attachment-selector.d.ts.map +1 -0
- package/dist/adapters/attachment-selector.js +163 -0
- package/dist/adapters/attachment-selector.js.map +1 -0
- package/dist/adapters/gemini-estimator.d.ts +27 -0
- package/dist/adapters/gemini-estimator.d.ts.map +1 -0
- package/dist/adapters/gemini-estimator.js +80 -0
- package/dist/adapters/gemini-estimator.js.map +1 -0
- package/dist/adapters/index.d.ts +12 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +28 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/memory-store.d.ts +139 -0
- package/dist/adapters/memory-store.d.ts.map +1 -0
- package/dist/adapters/memory-store.js +187 -0
- package/dist/adapters/memory-store.js.map +1 -0
- package/dist/adapters/openai-estimator.d.ts +35 -0
- package/dist/adapters/openai-estimator.d.ts.map +1 -0
- package/dist/adapters/openai-estimator.js +89 -0
- package/dist/adapters/openai-estimator.js.map +1 -0
- package/dist/adapters/summarizer.d.ts +121 -0
- package/dist/adapters/summarizer.d.ts.map +1 -0
- package/dist/adapters/summarizer.js +121 -0
- package/dist/adapters/summarizer.js.map +1 -0
- package/dist/adapters/token-estimator.d.ts +63 -0
- package/dist/adapters/token-estimator.d.ts.map +1 -0
- package/dist/adapters/token-estimator.js +37 -0
- package/dist/adapters/token-estimator.js.map +1 -0
- package/dist/builder/context-builder.d.ts +186 -0
- package/dist/builder/context-builder.d.ts.map +1 -0
- package/dist/builder/context-builder.js +305 -0
- package/dist/builder/context-builder.js.map +1 -0
- package/dist/builder/context-fork.d.ts +166 -0
- package/dist/builder/context-fork.d.ts.map +1 -0
- package/dist/builder/context-fork.js +282 -0
- package/dist/builder/context-fork.js.map +1 -0
- package/dist/builder/index.d.ts +6 -0
- package/dist/builder/index.d.ts.map +1 -0
- package/dist/builder/index.js +22 -0
- package/dist/builder/index.js.map +1 -0
- package/dist/codecs/base.d.ts +18 -0
- package/dist/codecs/base.d.ts.map +1 -0
- package/dist/codecs/base.js +39 -0
- package/dist/codecs/base.js.map +1 -0
- package/dist/codecs/conversation-history.codec.d.ts +81 -0
- package/dist/codecs/conversation-history.codec.d.ts.map +1 -0
- package/dist/codecs/conversation-history.codec.js +89 -0
- package/dist/codecs/conversation-history.codec.js.map +1 -0
- package/dist/codecs/index.d.ts +31 -0
- package/dist/codecs/index.d.ts.map +1 -0
- package/dist/codecs/index.js +71 -0
- package/dist/codecs/index.js.map +1 -0
- package/dist/codecs/redacted-stub.codec.d.ts +32 -0
- package/dist/codecs/redacted-stub.codec.d.ts.map +1 -0
- package/dist/codecs/redacted-stub.codec.js +64 -0
- package/dist/codecs/redacted-stub.codec.js.map +1 -0
- package/dist/codecs/structured-reference.codec.d.ts +40 -0
- package/dist/codecs/structured-reference.codec.d.ts.map +1 -0
- package/dist/codecs/structured-reference.codec.js +81 -0
- package/dist/codecs/structured-reference.codec.js.map +1 -0
- package/dist/codecs/system-rules.codec.d.ts +32 -0
- package/dist/codecs/system-rules.codec.d.ts.map +1 -0
- package/dist/codecs/system-rules.codec.js +62 -0
- package/dist/codecs/system-rules.codec.js.map +1 -0
- package/dist/codecs/tool-output.codec.d.ts +66 -0
- package/dist/codecs/tool-output.codec.d.ts.map +1 -0
- package/dist/codecs/tool-output.codec.js +95 -0
- package/dist/codecs/tool-output.codec.js.map +1 -0
- package/dist/codecs/tool-schema.codec.d.ts +36 -0
- package/dist/codecs/tool-schema.codec.d.ts.map +1 -0
- package/dist/codecs/tool-schema.codec.js +74 -0
- package/dist/codecs/tool-schema.codec.js.map +1 -0
- package/dist/codecs/unsafe-text.codec.d.ts +28 -0
- package/dist/codecs/unsafe-text.codec.d.ts.map +1 -0
- package/dist/codecs/unsafe-text.codec.js +63 -0
- package/dist/codecs/unsafe-text.codec.js.map +1 -0
- package/dist/graph/context-graph.d.ts +121 -0
- package/dist/graph/context-graph.d.ts.map +1 -0
- package/dist/graph/context-graph.js +166 -0
- package/dist/graph/context-graph.js.map +1 -0
- package/dist/graph/index.d.ts +8 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +24 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/kind-order.d.ts +60 -0
- package/dist/graph/kind-order.d.ts.map +1 -0
- package/dist/graph/kind-order.js +113 -0
- package/dist/graph/kind-order.js.map +1 -0
- package/dist/graph/queries.d.ts +68 -0
- package/dist/graph/queries.d.ts.map +1 -0
- package/dist/graph/queries.js +240 -0
- package/dist/graph/queries.js.map +1 -0
- package/dist/graph/views.d.ts +90 -0
- package/dist/graph/views.d.ts.map +1 -0
- package/dist/graph/views.js +173 -0
- package/dist/graph/views.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/pipeline/compactor.d.ts +128 -0
- package/dist/pipeline/compactor.d.ts.map +1 -0
- package/dist/pipeline/compactor.js +346 -0
- package/dist/pipeline/compactor.js.map +1 -0
- package/dist/pipeline/index.d.ts +6 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +22 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/summarizer.d.ts +18 -0
- package/dist/pipeline/summarizer.d.ts.map +1 -0
- package/dist/pipeline/summarizer.js +68 -0
- package/dist/pipeline/summarizer.js.map +1 -0
- package/dist/policies/default-policy.d.ts +29 -0
- package/dist/policies/default-policy.d.ts.map +1 -0
- package/dist/policies/default-policy.js +58 -0
- package/dist/policies/default-policy.js.map +1 -0
- package/dist/policies/index.d.ts +5 -0
- package/dist/policies/index.d.ts.map +1 -0
- package/dist/policies/index.js +21 -0
- package/dist/policies/index.js.map +1 -0
- package/dist/providers/anthropic-compiler.d.ts +58 -0
- package/dist/providers/anthropic-compiler.d.ts.map +1 -0
- package/dist/providers/anthropic-compiler.js +182 -0
- package/dist/providers/anthropic-compiler.js.map +1 -0
- package/dist/providers/capabilities.d.ts +54 -0
- package/dist/providers/capabilities.d.ts.map +1 -0
- package/dist/providers/capabilities.js +87 -0
- package/dist/providers/capabilities.js.map +1 -0
- package/dist/providers/gemini-compiler.d.ts +51 -0
- package/dist/providers/gemini-compiler.d.ts.map +1 -0
- package/dist/providers/gemini-compiler.js +206 -0
- package/dist/providers/gemini-compiler.js.map +1 -0
- package/dist/providers/index.d.ts +8 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +24 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/openai-compiler.d.ts +46 -0
- package/dist/providers/openai-compiler.d.ts.map +1 -0
- package/dist/providers/openai-compiler.js +149 -0
- package/dist/providers/openai-compiler.js.map +1 -0
- package/dist/types/attachment.d.ts +62 -0
- package/dist/types/attachment.d.ts.map +1 -0
- package/dist/types/attachment.js +6 -0
- package/dist/types/attachment.js.map +1 -0
- package/dist/types/block.d.ts +61 -0
- package/dist/types/block.d.ts.map +1 -0
- package/dist/types/block.js +8 -0
- package/dist/types/block.js.map +1 -0
- package/dist/types/codec.d.ts +58 -0
- package/dist/types/codec.d.ts.map +1 -0
- package/dist/types/codec.js +6 -0
- package/dist/types/codec.js.map +1 -0
- package/dist/types/compiled.d.ts +91 -0
- package/dist/types/compiled.d.ts.map +1 -0
- package/dist/types/compiled.js +6 -0
- package/dist/types/compiled.js.map +1 -0
- package/dist/types/hash.d.ts +24 -0
- package/dist/types/hash.d.ts.map +1 -0
- package/dist/types/hash.js +49 -0
- package/dist/types/hash.js.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +26 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/policy.d.ts +128 -0
- package/dist/types/policy.d.ts.map +1 -0
- package/dist/types/policy.js +55 -0
- package/dist/types/policy.js.map +1 -0
- package/package.json +55 -0
- package/postcss.config.js +4 -0
- package/src/__tests__/attachment-selector.test.ts +559 -0
- package/src/__tests__/cache-breakpoints.test.ts +566 -0
- package/src/__tests__/codecs.test.ts +417 -0
- package/src/__tests__/compactor.test.ts +608 -0
- package/src/__tests__/context-graph.test.ts +383 -0
- package/src/__tests__/hash.test.ts +274 -0
- package/src/__tests__/integration.test.ts +866 -0
- package/src/__tests__/kind-order.test.ts +312 -0
- package/src/__tests__/phase2-integration.test.ts +253 -0
- package/src/__tests__/queries.test.ts +387 -0
- package/src/__tests__/token-estimator.test.ts +326 -0
- package/src/adapters/anthropic-estimator.ts +125 -0
- package/src/adapters/attachment-resolver.ts +295 -0
- package/src/adapters/attachment-selector.ts +218 -0
- package/src/adapters/gemini-estimator.ts +93 -0
- package/src/adapters/index.ts +12 -0
- package/src/adapters/memory-store.ts +299 -0
- package/src/adapters/openai-estimator.ts +105 -0
- package/src/adapters/summarizer.ts +250 -0
- package/src/adapters/token-estimator.ts +74 -0
- package/src/builder/context-builder.ts +467 -0
- package/src/builder/context-fork.ts +471 -0
- package/src/builder/index.ts +6 -0
- package/src/codecs/base.ts +36 -0
- package/src/codecs/conversation-history.codec.ts +108 -0
- package/src/codecs/index.ts +57 -0
- package/src/codecs/redacted-stub.codec.ts +76 -0
- package/src/codecs/structured-reference.codec.ts +96 -0
- package/src/codecs/system-rules.codec.ts +74 -0
- package/src/codecs/tool-output.codec.ts +109 -0
- package/src/codecs/tool-schema.codec.ts +87 -0
- package/src/codecs/unsafe-text.codec.ts +74 -0
- package/src/graph/context-graph.ts +205 -0
- package/src/graph/index.ts +8 -0
- package/src/graph/kind-order.ts +125 -0
- package/src/graph/queries.ts +306 -0
- package/src/graph/views.ts +255 -0
- package/src/index.ts +31 -0
- package/src/pipeline/compactor.ts +563 -0
- package/src/pipeline/index.ts +6 -0
- package/src/pipeline/summarizer.ts +76 -0
- package/src/policies/default-policy.ts +69 -0
- package/src/policies/index.ts +5 -0
- package/src/providers/anthropic-compiler.ts +294 -0
- package/src/providers/capabilities.ts +144 -0
- package/src/providers/gemini-compiler.ts +272 -0
- package/src/providers/index.ts +8 -0
- package/src/providers/openai-compiler.ts +191 -0
- package/src/types/attachment.ts +86 -0
- package/src/types/block.ts +84 -0
- package/src/types/codec.ts +68 -0
- package/src/types/compiled.ts +109 -0
- package/src/types/hash.ts +58 -0
- package/src/types/index.ts +10 -0
- package/src/types/policy.ts +194 -0
- package/tsconfig.json +21 -0
- package/vitest.config.ts +21 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini-compiler.js","sourceRoot":"","sources":["../../src/providers/gemini-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Provider compiler exports.
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
__exportStar(require("./capabilities.js"), exports);
|
|
21
|
+
__exportStar(require("./anthropic-compiler.js"), exports);
|
|
22
|
+
__exportStar(require("./openai-compiler.js"), exports);
|
|
23
|
+
__exportStar(require("./gemini-compiler.js"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,oDAAkC;AAClC,0DAAwC;AACxC,uDAAqC;AACrC,uDAAqC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI compiler: Pure compilation to OpenAI chat completion format.
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Inline system messages
|
|
6
|
+
* - Tool/function calling support
|
|
7
|
+
* - Structured outputs
|
|
8
|
+
*/
|
|
9
|
+
import type { ContextBlock } from '../types/block.js';
|
|
10
|
+
import type { ContextPolicy } from '../types/policy.js';
|
|
11
|
+
import type { OpenAICompiledContext } from '../types/compiled.js';
|
|
12
|
+
import type { BlockCodec } from '../types/codec.js';
|
|
13
|
+
/**
|
|
14
|
+
* OpenAI compilation options.
|
|
15
|
+
*/
|
|
16
|
+
export interface OpenAICompilationOptions {
|
|
17
|
+
/** Codec registry for rendering */
|
|
18
|
+
codecRegistry: Map<string, BlockCodec<unknown>>;
|
|
19
|
+
/** Include tool definitions (optional) */
|
|
20
|
+
tools?: unknown[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Compile context to OpenAI chat completion format.
|
|
24
|
+
* Pure function: same inputs → identical outputs.
|
|
25
|
+
*
|
|
26
|
+
* @param blocks - Ordered blocks from ContextView
|
|
27
|
+
* @param policy - Context policy
|
|
28
|
+
* @param options - Compilation options
|
|
29
|
+
* @returns OpenAI compiled context
|
|
30
|
+
*/
|
|
31
|
+
export declare function compileOpenAIContext(blocks: ContextBlock[], policy: ContextPolicy, options: OpenAICompilationOptions): OpenAICompiledContext;
|
|
32
|
+
/**
|
|
33
|
+
* Validate OpenAI message sequence.
|
|
34
|
+
* Ensures messages follow OpenAI's alternation rules.
|
|
35
|
+
*
|
|
36
|
+
* @param messages - OpenAI messages
|
|
37
|
+
* @returns Validation diagnostics
|
|
38
|
+
*/
|
|
39
|
+
export declare function validateOpenAIMessages(messages: Array<{
|
|
40
|
+
role: string;
|
|
41
|
+
content: unknown;
|
|
42
|
+
}>): Array<{
|
|
43
|
+
level: 'error' | 'warning';
|
|
44
|
+
message: string;
|
|
45
|
+
}>;
|
|
46
|
+
//# sourceMappingURL=openai-compiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-compiler.d.ts","sourceRoot":"","sources":["../../src/providers/openai-compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,mCAAmC;IACnC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhD,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,EAAE,EACtB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,wBAAwB,GAChC,qBAAqB,CA0BvB;AAiFD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,GAClD,KAAK,CAAC;IAAE,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAmCxD"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OpenAI compiler: Pure compilation to OpenAI chat completion format.
|
|
4
|
+
*
|
|
5
|
+
* Features:
|
|
6
|
+
* - Inline system messages
|
|
7
|
+
* - Tool/function calling support
|
|
8
|
+
* - Structured outputs
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.compileOpenAIContext = compileOpenAIContext;
|
|
12
|
+
exports.validateOpenAIMessages = validateOpenAIMessages;
|
|
13
|
+
const capabilities_js_1 = require("./capabilities.js");
|
|
14
|
+
/**
|
|
15
|
+
* Compile context to OpenAI chat completion format.
|
|
16
|
+
* Pure function: same inputs → identical outputs.
|
|
17
|
+
*
|
|
18
|
+
* @param blocks - Ordered blocks from ContextView
|
|
19
|
+
* @param policy - Context policy
|
|
20
|
+
* @param options - Compilation options
|
|
21
|
+
* @returns OpenAI compiled context
|
|
22
|
+
*/
|
|
23
|
+
function compileOpenAIContext(blocks, policy, options) {
|
|
24
|
+
const capabilities = (0, capabilities_js_1.getProviderCapabilities)('openai');
|
|
25
|
+
// Compile all blocks to messages (including system messages inline)
|
|
26
|
+
const messages = compileMessages(blocks, options.codecRegistry);
|
|
27
|
+
// Calculate tokens (simplified - would use actual estimator in production)
|
|
28
|
+
const estimatedTokens = blocks.length * 100; // Placeholder
|
|
29
|
+
return {
|
|
30
|
+
provider: 'openai',
|
|
31
|
+
modelId: policy.modelId,
|
|
32
|
+
messages,
|
|
33
|
+
estimatedTokens,
|
|
34
|
+
blocks,
|
|
35
|
+
meta: {
|
|
36
|
+
compiledAt: Math.floor(Date.now() / 1000),
|
|
37
|
+
contextWindow: policy.contextWindow,
|
|
38
|
+
completionReserve: policy.completionReserve,
|
|
39
|
+
availableTokens: policy.contextWindow - policy.completionReserve,
|
|
40
|
+
overflowed: false,
|
|
41
|
+
compacted: false,
|
|
42
|
+
truncated: false,
|
|
43
|
+
tokensByKind: {},
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Compile blocks to OpenAI messages.
|
|
49
|
+
* System messages are inlined as first messages.
|
|
50
|
+
*
|
|
51
|
+
* @param blocks - Context blocks
|
|
52
|
+
* @param codecRegistry - Codec registry
|
|
53
|
+
* @returns OpenAI messages
|
|
54
|
+
*/
|
|
55
|
+
function compileMessages(blocks, codecRegistry) {
|
|
56
|
+
const messages = [];
|
|
57
|
+
// Compile blocks in order
|
|
58
|
+
for (const block of blocks) {
|
|
59
|
+
const codec = codecRegistry.get(block.meta.codecId);
|
|
60
|
+
if (!codec) {
|
|
61
|
+
console.warn(`[OpenAI] Codec not found: ${block.meta.codecId}`);
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const rendered = codec.render(block);
|
|
65
|
+
const openaiContent = rendered.openai;
|
|
66
|
+
// Handle different block kinds
|
|
67
|
+
if (block.meta.kind === 'pinned') {
|
|
68
|
+
// System messages
|
|
69
|
+
messages.push({
|
|
70
|
+
role: 'system',
|
|
71
|
+
content: openaiContent.content || openaiContent,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
else if (block.meta.kind === 'history') {
|
|
75
|
+
// History blocks are already in message format
|
|
76
|
+
if (Array.isArray(openaiContent)) {
|
|
77
|
+
messages.push(...openaiContent);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
messages.push(openaiContent);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else if (block.meta.kind === 'turn') {
|
|
84
|
+
// Turn blocks are user messages
|
|
85
|
+
messages.push({
|
|
86
|
+
role: 'user',
|
|
87
|
+
content: openaiContent.content || openaiContent,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
else if (block.meta.kind === 'tool_output') {
|
|
91
|
+
// Tool output blocks
|
|
92
|
+
messages.push({
|
|
93
|
+
role: 'tool',
|
|
94
|
+
content: typeof openaiContent === 'string'
|
|
95
|
+
? openaiContent
|
|
96
|
+
: JSON.stringify(openaiContent),
|
|
97
|
+
tool_call_id: block.payload.toolCallId || 'unknown',
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
// Other blocks (reference, memory, state) as user messages
|
|
102
|
+
messages.push({
|
|
103
|
+
role: 'user',
|
|
104
|
+
content: typeof openaiContent === 'string'
|
|
105
|
+
? openaiContent
|
|
106
|
+
: JSON.stringify(openaiContent),
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return messages;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Validate OpenAI message sequence.
|
|
114
|
+
* Ensures messages follow OpenAI's alternation rules.
|
|
115
|
+
*
|
|
116
|
+
* @param messages - OpenAI messages
|
|
117
|
+
* @returns Validation diagnostics
|
|
118
|
+
*/
|
|
119
|
+
function validateOpenAIMessages(messages) {
|
|
120
|
+
const diagnostics = [];
|
|
121
|
+
// Check for empty messages
|
|
122
|
+
if (messages.length === 0) {
|
|
123
|
+
diagnostics.push({
|
|
124
|
+
level: 'error',
|
|
125
|
+
message: 'Message array is empty',
|
|
126
|
+
});
|
|
127
|
+
return diagnostics;
|
|
128
|
+
}
|
|
129
|
+
// Check for user-assistant alternation
|
|
130
|
+
let lastRole = null;
|
|
131
|
+
for (let i = 0; i < messages.length; i++) {
|
|
132
|
+
const msg = messages[i];
|
|
133
|
+
if (msg.role === 'user' && lastRole === 'user') {
|
|
134
|
+
diagnostics.push({
|
|
135
|
+
level: 'warning',
|
|
136
|
+
message: `Consecutive user messages at index ${i}`,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
if (msg.role === 'assistant' && lastRole === 'assistant') {
|
|
140
|
+
diagnostics.push({
|
|
141
|
+
level: 'warning',
|
|
142
|
+
message: `Consecutive assistant messages at index ${i}`,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
lastRole = msg.role;
|
|
146
|
+
}
|
|
147
|
+
return diagnostics;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=openai-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-compiler.js","sourceRoot":"","sources":["../../src/providers/openai-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attachment types for external content (images, PDFs, etc.).
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Attachment MIME type.
|
|
6
|
+
*/
|
|
7
|
+
export type AttachmentMimeType = 'image/png' | 'image/jpeg' | 'image/webp' | 'image/gif' | 'application/pdf' | 'text/plain' | 'text/markdown' | 'application/json';
|
|
8
|
+
/**
|
|
9
|
+
* Attachment storage backend.
|
|
10
|
+
*/
|
|
11
|
+
export type AttachmentStorage = 'local' | 's3' | 'gcs';
|
|
12
|
+
/**
|
|
13
|
+
* Attachment metadata.
|
|
14
|
+
*/
|
|
15
|
+
export interface AttachmentMeta {
|
|
16
|
+
/** Attachment ID (content-addressed hash) */
|
|
17
|
+
attachmentId: string;
|
|
18
|
+
/** MIME type */
|
|
19
|
+
mimeType: AttachmentMimeType;
|
|
20
|
+
/** File size (bytes) */
|
|
21
|
+
sizeBytes: number;
|
|
22
|
+
/** Original filename (if available) */
|
|
23
|
+
filename?: string;
|
|
24
|
+
/** Storage backend */
|
|
25
|
+
storage: AttachmentStorage;
|
|
26
|
+
/** Storage path (backend-specific) */
|
|
27
|
+
storagePath: string;
|
|
28
|
+
/** Created timestamp (Unix seconds) */
|
|
29
|
+
createdAt: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Attachment reference in context block.
|
|
33
|
+
*/
|
|
34
|
+
export interface AttachmentRef {
|
|
35
|
+
/** Attachment ID */
|
|
36
|
+
attachmentId: string;
|
|
37
|
+
/** Optional description/caption */
|
|
38
|
+
description?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Resolved attachment with content.
|
|
42
|
+
*/
|
|
43
|
+
export interface ResolvedAttachment extends AttachmentMeta {
|
|
44
|
+
/** Base64-encoded content (for images, PDFs) */
|
|
45
|
+
content?: string;
|
|
46
|
+
/** Text content (for text/plain, text/markdown) */
|
|
47
|
+
text?: string;
|
|
48
|
+
/** Parsed JSON content (for application/json) */
|
|
49
|
+
json?: unknown;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Attachment selection result (for token budgeting).
|
|
53
|
+
*/
|
|
54
|
+
export interface AttachmentSelection {
|
|
55
|
+
/** Selected attachments */
|
|
56
|
+
selected: ResolvedAttachment[];
|
|
57
|
+
/** Excluded attachments (over budget) */
|
|
58
|
+
excluded: AttachmentRef[];
|
|
59
|
+
/** Total tokens consumed */
|
|
60
|
+
totalTokens: number;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=attachment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../src/types/attachment.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,iBAAiB,GACjB,YAAY,GACZ,eAAe,GACf,kBAAkB,CAAC;AAEvB;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IAErB,gBAAgB;IAChB,QAAQ,EAAE,kBAAkB,CAAC;IAE7B,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAElB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,sBAAsB;IACtB,OAAO,EAAE,iBAAiB,CAAC;IAE3B,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IAEpB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IAErB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,iDAAiD;IACjD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2BAA2B;IAC3B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAE/B,yCAAyC;IACzC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAE1B,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../src/types/attachment.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block types for @foundry/context
|
|
3
|
+
*
|
|
4
|
+
* Core data structures for context blocks with stable hashing and ordering.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Block kind determines ordering in compiled context.
|
|
8
|
+
* Must follow KIND_ORDER for deterministic compilation.
|
|
9
|
+
*/
|
|
10
|
+
export type BlockKind = 'pinned' | 'reference' | 'memory' | 'state' | 'tool_output' | 'history' | 'turn';
|
|
11
|
+
/**
|
|
12
|
+
* Sensitivity level for content filtering and forking.
|
|
13
|
+
*/
|
|
14
|
+
export type SensitivityLevel = 'public' | 'internal' | 'restricted';
|
|
15
|
+
/**
|
|
16
|
+
* Block metadata (stable subset used for hashing).
|
|
17
|
+
*/
|
|
18
|
+
export interface BlockMeta {
|
|
19
|
+
/** Block kind (determines ordering) */
|
|
20
|
+
kind: BlockKind;
|
|
21
|
+
/** Content sensitivity level */
|
|
22
|
+
sensitivity: SensitivityLevel;
|
|
23
|
+
/** Codec identifier for rendering */
|
|
24
|
+
codecId: string;
|
|
25
|
+
/** Codec version for rendering */
|
|
26
|
+
codecVersion: string;
|
|
27
|
+
/** Unix timestamp (seconds) */
|
|
28
|
+
createdAt: number;
|
|
29
|
+
/** Optional source identifier (workflow ID, session ID, etc.) */
|
|
30
|
+
source?: string;
|
|
31
|
+
/** Optional tags for filtering */
|
|
32
|
+
tags?: string[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Subset of BlockMeta used for stable hashing.
|
|
36
|
+
* Excludes volatile fields like createdAt, source, tags.
|
|
37
|
+
*/
|
|
38
|
+
export interface StableMetaSubset {
|
|
39
|
+
kind: BlockKind;
|
|
40
|
+
sensitivity: SensitivityLevel;
|
|
41
|
+
codecId: string;
|
|
42
|
+
codecVersion: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Context block with content-addressed hash.
|
|
46
|
+
*/
|
|
47
|
+
export interface ContextBlock<TPayload = unknown> {
|
|
48
|
+
/** Content-addressed hash (computed from meta + payload) */
|
|
49
|
+
blockHash: string;
|
|
50
|
+
/** Block metadata */
|
|
51
|
+
meta: BlockMeta;
|
|
52
|
+
/** Block payload (codec-specific) */
|
|
53
|
+
payload: TPayload;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Block reference (hash only, used in compiled context).
|
|
57
|
+
*/
|
|
58
|
+
export interface BlockRef {
|
|
59
|
+
blockHash: string;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../src/types/block.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,OAAO,GACP,aAAa,GACb,SAAS,GACT,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,UAAU,GACV,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,IAAI,EAAE,SAAS,CAAC;IAEhB,gCAAgC;IAChC,WAAW,EAAE,gBAAgB,CAAC;IAE9B,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAEhB,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC;IAErB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAElB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,QAAQ,GAAG,OAAO;IAC9C,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAElB,qBAAqB;IACrB,IAAI,EAAE,SAAS,CAAC;IAEhB,qCAAqC;IACrC,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block.js","sourceRoot":"","sources":["../../src/types/block.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block codec interface for rendering and validation.
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import type { ContextBlock } from './block.js';
|
|
6
|
+
/**
|
|
7
|
+
* Provider-specific rendered content.
|
|
8
|
+
*/
|
|
9
|
+
export interface RenderedContent {
|
|
10
|
+
/** Anthropic Claude format */
|
|
11
|
+
anthropic?: unknown;
|
|
12
|
+
/** OpenAI GPT format */
|
|
13
|
+
openai?: unknown;
|
|
14
|
+
/** Google Gemini format */
|
|
15
|
+
gemini?: unknown;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Block codec for content rendering and validation.
|
|
19
|
+
*/
|
|
20
|
+
export interface BlockCodec<TPayload = unknown> {
|
|
21
|
+
/** Unique codec identifier */
|
|
22
|
+
codecId: string;
|
|
23
|
+
/** Codec version (semver) */
|
|
24
|
+
version: string;
|
|
25
|
+
/** Payload schema for validation */
|
|
26
|
+
payloadSchema: z.ZodSchema<TPayload>;
|
|
27
|
+
/**
|
|
28
|
+
* Canonicalize payload for deterministic hashing.
|
|
29
|
+
* Must produce identical output for semantically equivalent inputs.
|
|
30
|
+
*
|
|
31
|
+
* @param payload - Raw payload
|
|
32
|
+
* @returns Canonicalized payload (serializable)
|
|
33
|
+
*/
|
|
34
|
+
canonicalize(payload: TPayload): unknown;
|
|
35
|
+
/**
|
|
36
|
+
* Compute stable hash from canonicalized payload.
|
|
37
|
+
* Default: SHA-256 of JSON.stringify(canonicalized).
|
|
38
|
+
*
|
|
39
|
+
* @param canonicalized - Canonicalized payload
|
|
40
|
+
* @returns Hex-encoded hash
|
|
41
|
+
*/
|
|
42
|
+
hash(canonicalized: unknown): string;
|
|
43
|
+
/**
|
|
44
|
+
* Render block content for provider-specific formats.
|
|
45
|
+
*
|
|
46
|
+
* @param block - Context block
|
|
47
|
+
* @returns Rendered content for each provider
|
|
48
|
+
*/
|
|
49
|
+
render(block: ContextBlock<TPayload>): RenderedContent;
|
|
50
|
+
/**
|
|
51
|
+
* Validate payload against schema.
|
|
52
|
+
* Throws on validation failure.
|
|
53
|
+
*
|
|
54
|
+
* @param payload - Payload to validate
|
|
55
|
+
*/
|
|
56
|
+
validate(payload: unknown): TPayload;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=codec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/types/codec.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,wBAAwB;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,QAAQ,GAAG,OAAO;IAC5C,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAEhB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAEhB,oCAAoC;IACpC,aAAa,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAErC;;;;;;OAMG;IACH,YAAY,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC;IAEzC;;;;;;OAMG;IACH,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,MAAM,CAAC;IAErC;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC;IAEvD;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;CACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/types/codec.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compiled context types for LLM provider consumption.
|
|
3
|
+
*/
|
|
4
|
+
import type { ContextBlock } from './block.js';
|
|
5
|
+
import type { Provider } from './policy.js';
|
|
6
|
+
import type { ResolvedAttachment } from './attachment.js';
|
|
7
|
+
/**
|
|
8
|
+
* Compiled context for a specific provider.
|
|
9
|
+
*/
|
|
10
|
+
export interface CompiledContext {
|
|
11
|
+
/** Target provider */
|
|
12
|
+
provider: Provider;
|
|
13
|
+
/** Model identifier */
|
|
14
|
+
modelId: string;
|
|
15
|
+
/** Provider-specific messages array */
|
|
16
|
+
messages: unknown[];
|
|
17
|
+
/** Provider-specific system message(s) */
|
|
18
|
+
system?: unknown;
|
|
19
|
+
/** Resolved attachments (if any) */
|
|
20
|
+
attachments?: ResolvedAttachment[];
|
|
21
|
+
/** Total estimated tokens */
|
|
22
|
+
estimatedTokens: number;
|
|
23
|
+
/** Blocks included in compilation */
|
|
24
|
+
blocks: ContextBlock[];
|
|
25
|
+
/** Blocks excluded (overflow, sensitivity, etc.) */
|
|
26
|
+
excludedBlocks?: ContextBlock[];
|
|
27
|
+
/** Compilation metadata */
|
|
28
|
+
meta: CompiledContextMeta;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Compilation metadata.
|
|
32
|
+
*/
|
|
33
|
+
export interface CompiledContextMeta {
|
|
34
|
+
/** Compilation timestamp (Unix seconds) */
|
|
35
|
+
compiledAt: number;
|
|
36
|
+
/** Context window size */
|
|
37
|
+
contextWindow: number;
|
|
38
|
+
/** Completion reserve (tokens) */
|
|
39
|
+
completionReserve: number;
|
|
40
|
+
/** Available tokens (contextWindow - completionReserve) */
|
|
41
|
+
availableTokens: number;
|
|
42
|
+
/** Overflow occurred */
|
|
43
|
+
overflowed: boolean;
|
|
44
|
+
/** Compaction applied */
|
|
45
|
+
compacted: boolean;
|
|
46
|
+
/** Truncation applied */
|
|
47
|
+
truncated: boolean;
|
|
48
|
+
/** Token breakdown by block kind */
|
|
49
|
+
tokensByKind: Record<string, number>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Anthropic-specific compiled context.
|
|
53
|
+
*/
|
|
54
|
+
export interface AnthropicCompiledContext extends CompiledContext {
|
|
55
|
+
provider: 'anthropic';
|
|
56
|
+
messages: Array<{
|
|
57
|
+
role: 'user' | 'assistant';
|
|
58
|
+
content: unknown;
|
|
59
|
+
}>;
|
|
60
|
+
system?: Array<{
|
|
61
|
+
type: 'text';
|
|
62
|
+
text: string;
|
|
63
|
+
cache_control?: {
|
|
64
|
+
type: 'ephemeral';
|
|
65
|
+
};
|
|
66
|
+
}>;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* OpenAI-specific compiled context.
|
|
70
|
+
*/
|
|
71
|
+
export interface OpenAICompiledContext extends CompiledContext {
|
|
72
|
+
provider: 'openai';
|
|
73
|
+
messages: Array<{
|
|
74
|
+
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
75
|
+
content: unknown;
|
|
76
|
+
name?: string;
|
|
77
|
+
tool_call_id?: string;
|
|
78
|
+
}>;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Gemini-specific compiled context.
|
|
82
|
+
*/
|
|
83
|
+
export interface GeminiCompiledContext extends CompiledContext {
|
|
84
|
+
provider: 'gemini';
|
|
85
|
+
messages: Array<{
|
|
86
|
+
role: 'user' | 'model';
|
|
87
|
+
parts: unknown[];
|
|
88
|
+
}>;
|
|
89
|
+
system?: string;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=compiled.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiled.d.ts","sourceRoot":"","sources":["../../src/types/compiled.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,QAAQ,EAAE,QAAQ,CAAC;IAEnB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAEhB,uCAAuC;IACvC,QAAQ,EAAE,OAAO,EAAE,CAAC;IAEpB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,oCAAoC;IACpC,WAAW,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAEnC,6BAA6B;IAC7B,eAAe,EAAE,MAAM,CAAC;IAExB,qCAAqC;IACrC,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvB,oDAAoD;IACpD,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;IAEhC,2BAA2B;IAC3B,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IAEnB,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IAEtB,kCAAkC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAE1B,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IAExB,wBAAwB;IACxB,UAAU,EAAE,OAAO,CAAC;IAEpB,yBAAyB;IACzB,SAAS,EAAE,OAAO,CAAC;IAEnB,yBAAyB;IACzB,SAAS,EAAE,OAAO,CAAC;IAEnB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAC3B,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,CAAC,EAAE;YAAE,IAAI,EAAE,WAAW,CAAA;SAAE,CAAC;KACvC,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;QAC/C,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QACvB,KAAK,EAAE,OAAO,EAAE,CAAC;KAClB,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiled.js","sourceRoot":"","sources":["../../src/types/compiled.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block hashing utilities.
|
|
3
|
+
*/
|
|
4
|
+
import type { BlockMeta, StableMetaSubset } from './block.js';
|
|
5
|
+
import type { BlockCodec } from './codec.js';
|
|
6
|
+
/**
|
|
7
|
+
* Extract stable metadata subset for hashing.
|
|
8
|
+
* Excludes volatile fields like createdAt, source, tags.
|
|
9
|
+
*
|
|
10
|
+
* @param meta - Full block metadata
|
|
11
|
+
* @returns Stable metadata subset
|
|
12
|
+
*/
|
|
13
|
+
export declare function extractStableMetaSubset(meta: BlockMeta): StableMetaSubset;
|
|
14
|
+
/**
|
|
15
|
+
* Compute content-addressed block hash.
|
|
16
|
+
* Uses StableMetaSubset + codec.canonicalize(payload) for deterministic hashing.
|
|
17
|
+
*
|
|
18
|
+
* @param meta - Block metadata (or StableMetaSubset)
|
|
19
|
+
* @param payload - Block payload (or canonicalized payload if codec not provided)
|
|
20
|
+
* @param codec - Block codec for canonicalization (optional)
|
|
21
|
+
* @returns Hex-encoded SHA-256 hash
|
|
22
|
+
*/
|
|
23
|
+
export declare function computeBlockHash<TPayload>(meta: BlockMeta | StableMetaSubset, payload: TPayload, codec?: BlockCodec<TPayload>): string;
|
|
24
|
+
//# sourceMappingURL=hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/types/hash.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,GAAG,gBAAgB,CAOzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EACvC,IAAI,EAAE,SAAS,GAAG,gBAAgB,EAClC,OAAO,EAAE,QAAQ,EACjB,KAAK,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAC3B,MAAM,CAmBR"}
|