@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,282 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ContextFork: Create sub-agent contexts with sensitivity enforcement.
|
|
4
|
+
*
|
|
5
|
+
* Enables forking contexts for sub-agents with automatic sensitivity redaction,
|
|
6
|
+
* budget overrides, and schema-enforced output validation.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ContextFork = void 0;
|
|
10
|
+
exports.filterBySensitivity = filterBySensitivity;
|
|
11
|
+
exports.computeExecutionHash = computeExecutionHash;
|
|
12
|
+
exports.computeSchemaHash = computeSchemaHash;
|
|
13
|
+
const crypto_1 = require("crypto");
|
|
14
|
+
const redacted_stub_codec_js_1 = require("../codecs/redacted-stub.codec.js");
|
|
15
|
+
const hash_js_1 = require("../types/hash.js");
|
|
16
|
+
/**
|
|
17
|
+
* Sensitivity level ordering (for comparison).
|
|
18
|
+
*/
|
|
19
|
+
const SENSITIVITY_ORDER = {
|
|
20
|
+
public: 0,
|
|
21
|
+
internal: 1,
|
|
22
|
+
restricted: 2,
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Check if a sensitivity level exceeds the maximum allowed level.
|
|
26
|
+
*
|
|
27
|
+
* @param level - Sensitivity level to check
|
|
28
|
+
* @param maxLevel - Maximum allowed level
|
|
29
|
+
* @returns True if level exceeds maxLevel
|
|
30
|
+
*/
|
|
31
|
+
function exceedsSensitivityLevel(level, maxLevel) {
|
|
32
|
+
return SENSITIVITY_ORDER[level] > SENSITIVITY_ORDER[maxLevel];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create a redacted stub block for sensitive content.
|
|
36
|
+
*
|
|
37
|
+
* @param originalBlock - Original block to redact
|
|
38
|
+
* @param reason - Redaction reason
|
|
39
|
+
* @returns Redacted stub block
|
|
40
|
+
*/
|
|
41
|
+
function createRedactedStub(originalBlock, reason) {
|
|
42
|
+
const payload = {
|
|
43
|
+
originalBlockHash: originalBlock.blockHash,
|
|
44
|
+
reason,
|
|
45
|
+
placeholder: '[REDACTED - Sensitive content removed]',
|
|
46
|
+
};
|
|
47
|
+
const meta = {
|
|
48
|
+
kind: originalBlock.meta.kind,
|
|
49
|
+
sensitivity: 'public',
|
|
50
|
+
codecId: redacted_stub_codec_js_1.RedactedStubCodec.codecId,
|
|
51
|
+
codecVersion: redacted_stub_codec_js_1.RedactedStubCodec.version,
|
|
52
|
+
createdAt: Math.floor(Date.now() / 1000),
|
|
53
|
+
source: originalBlock.meta.source,
|
|
54
|
+
tags: originalBlock.meta.tags,
|
|
55
|
+
};
|
|
56
|
+
const blockHash = (0, hash_js_1.computeBlockHash)(meta, payload, redacted_stub_codec_js_1.RedactedStubCodec);
|
|
57
|
+
return {
|
|
58
|
+
blockHash,
|
|
59
|
+
meta,
|
|
60
|
+
payload,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Filter view blocks by sensitivity level.
|
|
65
|
+
* Blocks exceeding maxSensitivity are replaced with redacted stubs.
|
|
66
|
+
*
|
|
67
|
+
* @param view - Source context view
|
|
68
|
+
* @param maxSensitivity - Maximum allowed sensitivity level
|
|
69
|
+
* @returns Filtered blocks with redacted stubs
|
|
70
|
+
*/
|
|
71
|
+
function filterBySensitivity(view, maxSensitivity) {
|
|
72
|
+
return view.blocks.map((block) => {
|
|
73
|
+
if (exceedsSensitivityLevel(block.meta.sensitivity, maxSensitivity)) {
|
|
74
|
+
return createRedactedStub(block, `Sensitivity level '${block.meta.sensitivity}' exceeds maximum '${maxSensitivity}'`);
|
|
75
|
+
}
|
|
76
|
+
return block;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Compute deterministic execution hash.
|
|
81
|
+
* Hash includes: model + compiledViewHash + instruction + schemaHash + toolsetVersion
|
|
82
|
+
*
|
|
83
|
+
* @param model - Model reference
|
|
84
|
+
* @param viewHash - Compiled view hash
|
|
85
|
+
* @param instruction - Task instruction
|
|
86
|
+
* @param schemaHash - Output schema hash
|
|
87
|
+
* @param toolsetVersion - Toolset version (optional)
|
|
88
|
+
* @returns Hex-encoded SHA-256 hash
|
|
89
|
+
*/
|
|
90
|
+
function computeExecutionHash(model, viewHash, instruction, schemaHash, toolsetVersion) {
|
|
91
|
+
const combined = {
|
|
92
|
+
model: `${model.provider}:${model.model}`,
|
|
93
|
+
viewHash,
|
|
94
|
+
instruction,
|
|
95
|
+
schemaHash,
|
|
96
|
+
toolsetVersion: toolsetVersion ?? 'none',
|
|
97
|
+
};
|
|
98
|
+
return (0, crypto_1.createHash)('sha256')
|
|
99
|
+
.update(JSON.stringify(combined))
|
|
100
|
+
.digest('hex');
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Compute schema hash for deterministic execution tracking.
|
|
104
|
+
*
|
|
105
|
+
* @param schema - Zod schema
|
|
106
|
+
* @returns Hex-encoded SHA-256 hash
|
|
107
|
+
*/
|
|
108
|
+
function computeSchemaHash(schema) {
|
|
109
|
+
// Use schema description for hashing (simplified approach)
|
|
110
|
+
// In production, you'd want to serialize the schema structure
|
|
111
|
+
const schemaDesc = schema.description ?? JSON.stringify(schema._def);
|
|
112
|
+
return (0, crypto_1.createHash)('sha256')
|
|
113
|
+
.update(schemaDesc)
|
|
114
|
+
.digest('hex');
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* ContextFork: Create sub-agent contexts with sensitivity enforcement.
|
|
118
|
+
*/
|
|
119
|
+
class ContextFork {
|
|
120
|
+
graph;
|
|
121
|
+
parentView;
|
|
122
|
+
constructor(graph, parentView) {
|
|
123
|
+
this.graph = graph;
|
|
124
|
+
this.parentView = parentView;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Create a fork with sensitivity filtering and budget override.
|
|
128
|
+
*
|
|
129
|
+
* @param options - Fork options
|
|
130
|
+
* @returns Filtered context view for sub-agent
|
|
131
|
+
*/
|
|
132
|
+
async createFork(options) {
|
|
133
|
+
const maxSensitivity = options.maxSensitivity ?? 'public';
|
|
134
|
+
// Filter blocks by sensitivity
|
|
135
|
+
const filteredBlocks = filterBySensitivity(this.parentView, maxSensitivity);
|
|
136
|
+
// Apply additional filters based on options
|
|
137
|
+
let finalBlocks = filteredBlocks;
|
|
138
|
+
if (!options.includeHistory) {
|
|
139
|
+
finalBlocks = finalBlocks.filter((block) => block.meta.kind !== 'history');
|
|
140
|
+
}
|
|
141
|
+
if (!options.includeState) {
|
|
142
|
+
finalBlocks = finalBlocks.filter((block) => block.meta.kind !== 'state');
|
|
143
|
+
}
|
|
144
|
+
// Create new view with filtered blocks
|
|
145
|
+
// Re-compute stable prefix hash
|
|
146
|
+
const stablePrefixHash = (0, crypto_1.createHash)('sha256')
|
|
147
|
+
.update(finalBlocks.map((b) => b.blockHash).join('|'))
|
|
148
|
+
.digest('hex');
|
|
149
|
+
const forkedView = {
|
|
150
|
+
blocks: finalBlocks,
|
|
151
|
+
stablePrefixHash,
|
|
152
|
+
createdAt: Math.floor(Date.now() / 1000),
|
|
153
|
+
tokenEstimate: options.budgetOverride
|
|
154
|
+
? { tokens: options.budgetOverride, confidence: 'high', truncated: false }
|
|
155
|
+
: this.parentView.tokenEstimate,
|
|
156
|
+
};
|
|
157
|
+
return forkedView;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Execute a sub-agent task with schema validation.
|
|
161
|
+
*
|
|
162
|
+
* @param task - Sub-agent task definition
|
|
163
|
+
* @param options - Fork options
|
|
164
|
+
* @param executor - Async executor function (calls LLM)
|
|
165
|
+
* @returns Fork result with validated output
|
|
166
|
+
*/
|
|
167
|
+
async executeFork(task, options, executor) {
|
|
168
|
+
const forkedAt = Math.floor(Date.now() / 1000);
|
|
169
|
+
// Create fork
|
|
170
|
+
const forkedView = await this.createFork(options);
|
|
171
|
+
// Validate forbidden fields
|
|
172
|
+
if (task.forbiddenFields && task.forbiddenFields.length > 0) {
|
|
173
|
+
// Add validation to instruction
|
|
174
|
+
const forbiddenFieldsNote = `\n\nIMPORTANT: Your output MUST NOT include these fields: ${task.forbiddenFields.join(', ')}`;
|
|
175
|
+
const enhancedInstruction = task.instruction + forbiddenFieldsNote;
|
|
176
|
+
// Execute with enhanced instruction
|
|
177
|
+
const executionResult = await executor(enhancedInstruction, forkedView);
|
|
178
|
+
// Validate output against schema
|
|
179
|
+
const validatedOutput = task.expectedOutputSchema.parse(executionResult.output);
|
|
180
|
+
// Check for forbidden fields in output
|
|
181
|
+
const outputStr = JSON.stringify(validatedOutput);
|
|
182
|
+
for (const field of task.forbiddenFields) {
|
|
183
|
+
if (outputStr.includes(field)) {
|
|
184
|
+
throw new Error(`Fork execution failed: Output contains forbidden field '${field}'`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
const completedAt = Math.floor(Date.now() / 1000);
|
|
188
|
+
// Compute execution hash
|
|
189
|
+
const schemaHash = computeSchemaHash(task.expectedOutputSchema);
|
|
190
|
+
const executionHash = computeExecutionHash(options.model, forkedView.stablePrefixHash, task.instruction, schemaHash);
|
|
191
|
+
return {
|
|
192
|
+
agentId: options.agentId,
|
|
193
|
+
model: options.model,
|
|
194
|
+
summary: executionResult.summary,
|
|
195
|
+
output: validatedOutput,
|
|
196
|
+
artifacts: executionResult.artifacts,
|
|
197
|
+
citations: executionResult.citations,
|
|
198
|
+
usage: executionResult.usage,
|
|
199
|
+
provenance: {
|
|
200
|
+
sourceViewHash: this.parentView.stablePrefixHash,
|
|
201
|
+
executionHash,
|
|
202
|
+
forkedAt,
|
|
203
|
+
completedAt,
|
|
204
|
+
},
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
// Execute without forbidden field validation
|
|
209
|
+
const executionResult = await executor(task.instruction, forkedView);
|
|
210
|
+
// Validate output against schema
|
|
211
|
+
const validatedOutput = task.expectedOutputSchema.parse(executionResult.output);
|
|
212
|
+
const completedAt = Math.floor(Date.now() / 1000);
|
|
213
|
+
// Compute execution hash
|
|
214
|
+
const schemaHash = computeSchemaHash(task.expectedOutputSchema);
|
|
215
|
+
const executionHash = computeExecutionHash(options.model, forkedView.stablePrefixHash, task.instruction, schemaHash);
|
|
216
|
+
return {
|
|
217
|
+
agentId: options.agentId,
|
|
218
|
+
model: options.model,
|
|
219
|
+
summary: executionResult.summary,
|
|
220
|
+
output: validatedOutput,
|
|
221
|
+
artifacts: executionResult.artifacts,
|
|
222
|
+
citations: executionResult.citations,
|
|
223
|
+
usage: executionResult.usage,
|
|
224
|
+
provenance: {
|
|
225
|
+
sourceViewHash: this.parentView.stablePrefixHash,
|
|
226
|
+
executionHash,
|
|
227
|
+
forkedAt,
|
|
228
|
+
completedAt,
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Ingest fork result back into parent graph.
|
|
235
|
+
* Adds result as a memory block with provenance tracking.
|
|
236
|
+
*
|
|
237
|
+
* @param result - Fork result to ingest
|
|
238
|
+
* @param asMemory - Add as memory block (default: true)
|
|
239
|
+
* @returns Block hash of ingested result
|
|
240
|
+
*/
|
|
241
|
+
ingestForkResult(result, asMemory = true) {
|
|
242
|
+
// Create a structured reference block for the fork result
|
|
243
|
+
// This would use a codec designed for fork results
|
|
244
|
+
// For now, we'll use a simplified approach
|
|
245
|
+
const payload = {
|
|
246
|
+
agentId: result.agentId,
|
|
247
|
+
model: result.model,
|
|
248
|
+
summary: result.summary,
|
|
249
|
+
output: result.output,
|
|
250
|
+
artifacts: result.artifacts,
|
|
251
|
+
citations: result.citations,
|
|
252
|
+
usage: result.usage,
|
|
253
|
+
provenance: result.provenance,
|
|
254
|
+
};
|
|
255
|
+
const meta = {
|
|
256
|
+
kind: asMemory ? 'memory' : 'reference',
|
|
257
|
+
sensitivity: 'public',
|
|
258
|
+
codecId: 'fork-result',
|
|
259
|
+
codecVersion: '1.0.0',
|
|
260
|
+
createdAt: Math.floor(Date.now() / 1000),
|
|
261
|
+
source: result.agentId,
|
|
262
|
+
tags: ['fork-result', result.model.provider],
|
|
263
|
+
};
|
|
264
|
+
// Compute block hash (without codec for now)
|
|
265
|
+
const blockHash = (0, crypto_1.createHash)('sha256')
|
|
266
|
+
.update(JSON.stringify({ meta, payload }))
|
|
267
|
+
.digest('hex');
|
|
268
|
+
const block = {
|
|
269
|
+
blockHash,
|
|
270
|
+
meta,
|
|
271
|
+
payload,
|
|
272
|
+
};
|
|
273
|
+
// Add to graph with provenance
|
|
274
|
+
const derivedFrom = result.citations
|
|
275
|
+
? result.citations.map((hash) => ({ blockHash: hash }))
|
|
276
|
+
: [];
|
|
277
|
+
this.graph.addBlock(block, derivedFrom);
|
|
278
|
+
return blockHash;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
exports.ContextFork = ContextFork;
|
|
282
|
+
//# sourceMappingURL=context-fork.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-fork.js","sourceRoot":"","sources":["../../src/builder/context-fork.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/builder/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Context builder 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("./context-builder.js"), exports);
|
|
21
|
+
__exportStar(require("./context-fork.js"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/builder/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,uDAAqC;AACrC,oDAAkC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base codec utilities.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Default hash implementation: SHA-256 of JSON.stringify(canonicalized).
|
|
6
|
+
*
|
|
7
|
+
* @param canonicalized - Canonicalized payload
|
|
8
|
+
* @returns Hex-encoded SHA-256 hash
|
|
9
|
+
*/
|
|
10
|
+
export declare function defaultHash(canonicalized: unknown): string;
|
|
11
|
+
/**
|
|
12
|
+
* Sort object keys for deterministic serialization.
|
|
13
|
+
*
|
|
14
|
+
* @param obj - Object to sort
|
|
15
|
+
* @returns Object with sorted keys
|
|
16
|
+
*/
|
|
17
|
+
export declare function sortObjectKeys(obj: Record<string, unknown>): Record<string, unknown>;
|
|
18
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/codecs/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,aAAa,EAAE,OAAO,GAAG,MAAM,CAI1D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWpF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Base codec utilities.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.defaultHash = defaultHash;
|
|
7
|
+
exports.sortObjectKeys = sortObjectKeys;
|
|
8
|
+
const crypto_1 = require("crypto");
|
|
9
|
+
/**
|
|
10
|
+
* Default hash implementation: SHA-256 of JSON.stringify(canonicalized).
|
|
11
|
+
*
|
|
12
|
+
* @param canonicalized - Canonicalized payload
|
|
13
|
+
* @returns Hex-encoded SHA-256 hash
|
|
14
|
+
*/
|
|
15
|
+
function defaultHash(canonicalized) {
|
|
16
|
+
return (0, crypto_1.createHash)('sha256')
|
|
17
|
+
.update(JSON.stringify(canonicalized))
|
|
18
|
+
.digest('hex');
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Sort object keys for deterministic serialization.
|
|
22
|
+
*
|
|
23
|
+
* @param obj - Object to sort
|
|
24
|
+
* @returns Object with sorted keys
|
|
25
|
+
*/
|
|
26
|
+
function sortObjectKeys(obj) {
|
|
27
|
+
const sorted = {};
|
|
28
|
+
for (const key of Object.keys(obj).sort()) {
|
|
29
|
+
const value = obj[key];
|
|
30
|
+
if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
|
|
31
|
+
sorted[key] = sortObjectKeys(value);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
sorted[key] = value;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return sorted;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/codecs/base.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAUH,kCAIC;AAQD,wCAWC;AA/BD,mCAAoC;AAEpC;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,aAAsB;IAChD,OAAO,IAAA,mBAAU,EAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;SACrC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,GAA4B;IACzD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAgC,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation history codec (kind: 'history').
|
|
3
|
+
*
|
|
4
|
+
* Previous turns in conversation.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import type { BlockCodec } from '../types/codec.js';
|
|
8
|
+
/**
|
|
9
|
+
* Conversation message schema.
|
|
10
|
+
*/
|
|
11
|
+
export declare const ConversationMessageSchema: z.ZodObject<{
|
|
12
|
+
/** Message role */
|
|
13
|
+
role: z.ZodEnum<["user", "assistant"]>;
|
|
14
|
+
/** Message content (text or structured) */
|
|
15
|
+
content: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">]>;
|
|
16
|
+
/** Optional message ID */
|
|
17
|
+
messageId: z.ZodOptional<z.ZodString>;
|
|
18
|
+
/** Optional timestamp */
|
|
19
|
+
timestamp: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
}, "strip", z.ZodTypeAny, {
|
|
21
|
+
content: string | Record<string, unknown>[];
|
|
22
|
+
role: "user" | "assistant";
|
|
23
|
+
messageId?: string | undefined;
|
|
24
|
+
timestamp?: number | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
content: string | Record<string, unknown>[];
|
|
27
|
+
role: "user" | "assistant";
|
|
28
|
+
messageId?: string | undefined;
|
|
29
|
+
timestamp?: number | undefined;
|
|
30
|
+
}>;
|
|
31
|
+
export type ConversationMessage = z.infer<typeof ConversationMessageSchema>;
|
|
32
|
+
/**
|
|
33
|
+
* Conversation history payload schema.
|
|
34
|
+
*/
|
|
35
|
+
export declare const ConversationHistoryPayloadSchema: z.ZodObject<{
|
|
36
|
+
/** Array of messages */
|
|
37
|
+
messages: z.ZodArray<z.ZodObject<{
|
|
38
|
+
/** Message role */
|
|
39
|
+
role: z.ZodEnum<["user", "assistant"]>;
|
|
40
|
+
/** Message content (text or structured) */
|
|
41
|
+
content: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">]>;
|
|
42
|
+
/** Optional message ID */
|
|
43
|
+
messageId: z.ZodOptional<z.ZodString>;
|
|
44
|
+
/** Optional timestamp */
|
|
45
|
+
timestamp: z.ZodOptional<z.ZodNumber>;
|
|
46
|
+
}, "strip", z.ZodTypeAny, {
|
|
47
|
+
content: string | Record<string, unknown>[];
|
|
48
|
+
role: "user" | "assistant";
|
|
49
|
+
messageId?: string | undefined;
|
|
50
|
+
timestamp?: number | undefined;
|
|
51
|
+
}, {
|
|
52
|
+
content: string | Record<string, unknown>[];
|
|
53
|
+
role: "user" | "assistant";
|
|
54
|
+
messageId?: string | undefined;
|
|
55
|
+
timestamp?: number | undefined;
|
|
56
|
+
}>, "many">;
|
|
57
|
+
/** Optional summary of earlier messages */
|
|
58
|
+
summary: z.ZodOptional<z.ZodString>;
|
|
59
|
+
}, "strip", z.ZodTypeAny, {
|
|
60
|
+
messages: {
|
|
61
|
+
content: string | Record<string, unknown>[];
|
|
62
|
+
role: "user" | "assistant";
|
|
63
|
+
messageId?: string | undefined;
|
|
64
|
+
timestamp?: number | undefined;
|
|
65
|
+
}[];
|
|
66
|
+
summary?: string | undefined;
|
|
67
|
+
}, {
|
|
68
|
+
messages: {
|
|
69
|
+
content: string | Record<string, unknown>[];
|
|
70
|
+
role: "user" | "assistant";
|
|
71
|
+
messageId?: string | undefined;
|
|
72
|
+
timestamp?: number | undefined;
|
|
73
|
+
}[];
|
|
74
|
+
summary?: string | undefined;
|
|
75
|
+
}>;
|
|
76
|
+
export type ConversationHistoryPayload = z.infer<typeof ConversationHistoryPayloadSchema>;
|
|
77
|
+
/**
|
|
78
|
+
* Conversation history codec implementation.
|
|
79
|
+
*/
|
|
80
|
+
export declare const ConversationHistoryCodec: BlockCodec<ConversationHistoryPayload>;
|
|
81
|
+
//# sourceMappingURL=conversation-history.codec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-history.codec.d.ts","sourceRoot":"","sources":["../../src/codecs/conversation-history.codec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,mBAAmB,CAAC;AAIrE;;GAEG;AACH,eAAO,MAAM,yBAAyB;IACpC,mBAAmB;;IAGnB,2CAA2C;;IAM3C,0BAA0B;;IAG1B,yBAAyB;;;;;;;;;;;;EAEzB,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,gCAAgC;IAC3C,wBAAwB;;QAtBxB,mBAAmB;;QAGnB,2CAA2C;;QAM3C,0BAA0B;;QAG1B,yBAAyB;;;;;;;;;;;;;IAazB,2CAA2C;;;;;;;;;;;;;;;;;;EAE3C,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,UAAU,CAAC,0BAA0B,CA0D3E,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Conversation history codec (kind: 'history').
|
|
4
|
+
*
|
|
5
|
+
* Previous turns in conversation.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ConversationHistoryCodec = exports.ConversationHistoryPayloadSchema = exports.ConversationMessageSchema = void 0;
|
|
9
|
+
const zod_1 = require("zod");
|
|
10
|
+
const base_js_1 = require("./base.js");
|
|
11
|
+
/**
|
|
12
|
+
* Conversation message schema.
|
|
13
|
+
*/
|
|
14
|
+
exports.ConversationMessageSchema = zod_1.z.object({
|
|
15
|
+
/** Message role */
|
|
16
|
+
role: zod_1.z.enum(['user', 'assistant']),
|
|
17
|
+
/** Message content (text or structured) */
|
|
18
|
+
content: zod_1.z.union([
|
|
19
|
+
zod_1.z.string(),
|
|
20
|
+
zod_1.z.array(zod_1.z.record(zod_1.z.unknown())),
|
|
21
|
+
]),
|
|
22
|
+
/** Optional message ID */
|
|
23
|
+
messageId: zod_1.z.string().optional(),
|
|
24
|
+
/** Optional timestamp */
|
|
25
|
+
timestamp: zod_1.z.number().optional(),
|
|
26
|
+
});
|
|
27
|
+
/**
|
|
28
|
+
* Conversation history payload schema.
|
|
29
|
+
*/
|
|
30
|
+
exports.ConversationHistoryPayloadSchema = zod_1.z.object({
|
|
31
|
+
/** Array of messages */
|
|
32
|
+
messages: zod_1.z.array(exports.ConversationMessageSchema),
|
|
33
|
+
/** Optional summary of earlier messages */
|
|
34
|
+
summary: zod_1.z.string().optional(),
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* Conversation history codec implementation.
|
|
38
|
+
*/
|
|
39
|
+
exports.ConversationHistoryCodec = {
|
|
40
|
+
codecId: 'conversation-history',
|
|
41
|
+
version: '1.0.0',
|
|
42
|
+
payloadSchema: exports.ConversationHistoryPayloadSchema,
|
|
43
|
+
canonicalize(payload) {
|
|
44
|
+
// Canonicalize messages (exclude volatile fields like timestamp)
|
|
45
|
+
const canonicalMessages = payload.messages.map((msg) => ({
|
|
46
|
+
role: msg.role,
|
|
47
|
+
content: msg.content,
|
|
48
|
+
}));
|
|
49
|
+
return (0, base_js_1.sortObjectKeys)({
|
|
50
|
+
messages: canonicalMessages,
|
|
51
|
+
summary: payload.summary ?? null,
|
|
52
|
+
});
|
|
53
|
+
},
|
|
54
|
+
hash(canonicalized) {
|
|
55
|
+
return (0, base_js_1.defaultHash)(canonicalized);
|
|
56
|
+
},
|
|
57
|
+
render(block) {
|
|
58
|
+
const { messages, summary } = block.payload;
|
|
59
|
+
// Add summary as first message if present
|
|
60
|
+
const allMessages = summary
|
|
61
|
+
? [{ role: 'user', content: `**Earlier conversation (summary):**\n${summary}` }, ...messages]
|
|
62
|
+
: messages;
|
|
63
|
+
return {
|
|
64
|
+
// Anthropic: messages array
|
|
65
|
+
anthropic: allMessages.map((msg) => ({
|
|
66
|
+
role: msg.role,
|
|
67
|
+
content: typeof msg.content === 'string'
|
|
68
|
+
? msg.content
|
|
69
|
+
: msg.content,
|
|
70
|
+
})),
|
|
71
|
+
// OpenAI: messages array
|
|
72
|
+
openai: allMessages.map((msg) => ({
|
|
73
|
+
role: msg.role,
|
|
74
|
+
content: msg.content,
|
|
75
|
+
})),
|
|
76
|
+
// Gemini: convert to user/model role
|
|
77
|
+
gemini: allMessages.map((msg) => ({
|
|
78
|
+
role: msg.role === 'assistant' ? 'model' : 'user',
|
|
79
|
+
parts: typeof msg.content === 'string'
|
|
80
|
+
? [{ text: msg.content }]
|
|
81
|
+
: msg.content,
|
|
82
|
+
})),
|
|
83
|
+
};
|
|
84
|
+
},
|
|
85
|
+
validate(payload) {
|
|
86
|
+
return exports.ConversationHistoryPayloadSchema.parse(payload);
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=conversation-history.codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-history.codec.js","sourceRoot":"","sources":["../../src/codecs/conversation-history.codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in codecs for @foundry/context
|
|
3
|
+
*/
|
|
4
|
+
export * from './base.js';
|
|
5
|
+
export * from './system-rules.codec.js';
|
|
6
|
+
export * from './tool-schema.codec.js';
|
|
7
|
+
export * from './structured-reference.codec.js';
|
|
8
|
+
export * from './conversation-history.codec.js';
|
|
9
|
+
export * from './tool-output.codec.js';
|
|
10
|
+
export * from './redacted-stub.codec.js';
|
|
11
|
+
export * from './unsafe-text.codec.js';
|
|
12
|
+
import type { BlockCodec } from '../types/codec.js';
|
|
13
|
+
/**
|
|
14
|
+
* Built-in codec registry.
|
|
15
|
+
* Maps codecId -> codec implementation.
|
|
16
|
+
*/
|
|
17
|
+
export declare const BUILT_IN_CODECS: Record<string, BlockCodec>;
|
|
18
|
+
/**
|
|
19
|
+
* Get codec by ID.
|
|
20
|
+
*
|
|
21
|
+
* @param codecId - Codec identifier
|
|
22
|
+
* @returns Codec implementation, or undefined if not found
|
|
23
|
+
*/
|
|
24
|
+
export declare function getCodec(codecId: string): BlockCodec | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Register custom codec.
|
|
27
|
+
*
|
|
28
|
+
* @param codec - Custom codec implementation
|
|
29
|
+
*/
|
|
30
|
+
export declare function registerCodec(codec: BlockCodec): void;
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codecs/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AASpD;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAQtD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAKrD"}
|