@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.
Files changed (280) hide show
  1. package/README.md +270 -0
  2. package/dist/__tests__/attachment-selector.test.d.ts +11 -0
  3. package/dist/__tests__/attachment-selector.test.d.ts.map +1 -0
  4. package/dist/__tests__/attachment-selector.test.js +449 -0
  5. package/dist/__tests__/attachment-selector.test.js.map +1 -0
  6. package/dist/__tests__/cache-breakpoints.test.d.ts +11 -0
  7. package/dist/__tests__/cache-breakpoints.test.d.ts.map +1 -0
  8. package/dist/__tests__/cache-breakpoints.test.js +398 -0
  9. package/dist/__tests__/cache-breakpoints.test.js.map +1 -0
  10. package/dist/__tests__/codecs.test.d.ts +7 -0
  11. package/dist/__tests__/codecs.test.d.ts.map +1 -0
  12. package/dist/__tests__/codecs.test.js +331 -0
  13. package/dist/__tests__/codecs.test.js.map +1 -0
  14. package/dist/__tests__/compactor.test.d.ts +11 -0
  15. package/dist/__tests__/compactor.test.d.ts.map +1 -0
  16. package/dist/__tests__/compactor.test.js +519 -0
  17. package/dist/__tests__/compactor.test.js.map +1 -0
  18. package/dist/__tests__/context-graph.test.d.ts +7 -0
  19. package/dist/__tests__/context-graph.test.d.ts.map +1 -0
  20. package/dist/__tests__/context-graph.test.js +262 -0
  21. package/dist/__tests__/context-graph.test.js.map +1 -0
  22. package/dist/__tests__/hash.test.d.ts +7 -0
  23. package/dist/__tests__/hash.test.d.ts.map +1 -0
  24. package/dist/__tests__/hash.test.js +228 -0
  25. package/dist/__tests__/hash.test.js.map +1 -0
  26. package/dist/__tests__/integration.test.d.ts +15 -0
  27. package/dist/__tests__/integration.test.d.ts.map +1 -0
  28. package/dist/__tests__/integration.test.js +728 -0
  29. package/dist/__tests__/integration.test.js.map +1 -0
  30. package/dist/__tests__/kind-order.test.d.ts +7 -0
  31. package/dist/__tests__/kind-order.test.d.ts.map +1 -0
  32. package/dist/__tests__/kind-order.test.js +243 -0
  33. package/dist/__tests__/kind-order.test.js.map +1 -0
  34. package/dist/__tests__/phase2-integration.test.d.ts +5 -0
  35. package/dist/__tests__/phase2-integration.test.d.ts.map +1 -0
  36. package/dist/__tests__/phase2-integration.test.js +222 -0
  37. package/dist/__tests__/phase2-integration.test.js.map +1 -0
  38. package/dist/__tests__/queries.test.d.ts +7 -0
  39. package/dist/__tests__/queries.test.d.ts.map +1 -0
  40. package/dist/__tests__/queries.test.js +254 -0
  41. package/dist/__tests__/queries.test.js.map +1 -0
  42. package/dist/__tests__/token-estimator.test.d.ts +7 -0
  43. package/dist/__tests__/token-estimator.test.d.ts.map +1 -0
  44. package/dist/__tests__/token-estimator.test.js +267 -0
  45. package/dist/__tests__/token-estimator.test.js.map +1 -0
  46. package/dist/adapters/anthropic-estimator.d.ts +38 -0
  47. package/dist/adapters/anthropic-estimator.d.ts.map +1 -0
  48. package/dist/adapters/anthropic-estimator.js +108 -0
  49. package/dist/adapters/anthropic-estimator.js.map +1 -0
  50. package/dist/adapters/attachment-resolver.d.ts +96 -0
  51. package/dist/adapters/attachment-resolver.d.ts.map +1 -0
  52. package/dist/adapters/attachment-resolver.js +176 -0
  53. package/dist/adapters/attachment-resolver.js.map +1 -0
  54. package/dist/adapters/attachment-selector.d.ts +59 -0
  55. package/dist/adapters/attachment-selector.d.ts.map +1 -0
  56. package/dist/adapters/attachment-selector.js +163 -0
  57. package/dist/adapters/attachment-selector.js.map +1 -0
  58. package/dist/adapters/gemini-estimator.d.ts +27 -0
  59. package/dist/adapters/gemini-estimator.d.ts.map +1 -0
  60. package/dist/adapters/gemini-estimator.js +80 -0
  61. package/dist/adapters/gemini-estimator.js.map +1 -0
  62. package/dist/adapters/index.d.ts +12 -0
  63. package/dist/adapters/index.d.ts.map +1 -0
  64. package/dist/adapters/index.js +28 -0
  65. package/dist/adapters/index.js.map +1 -0
  66. package/dist/adapters/memory-store.d.ts +139 -0
  67. package/dist/adapters/memory-store.d.ts.map +1 -0
  68. package/dist/adapters/memory-store.js +187 -0
  69. package/dist/adapters/memory-store.js.map +1 -0
  70. package/dist/adapters/openai-estimator.d.ts +35 -0
  71. package/dist/adapters/openai-estimator.d.ts.map +1 -0
  72. package/dist/adapters/openai-estimator.js +89 -0
  73. package/dist/adapters/openai-estimator.js.map +1 -0
  74. package/dist/adapters/summarizer.d.ts +121 -0
  75. package/dist/adapters/summarizer.d.ts.map +1 -0
  76. package/dist/adapters/summarizer.js +121 -0
  77. package/dist/adapters/summarizer.js.map +1 -0
  78. package/dist/adapters/token-estimator.d.ts +63 -0
  79. package/dist/adapters/token-estimator.d.ts.map +1 -0
  80. package/dist/adapters/token-estimator.js +37 -0
  81. package/dist/adapters/token-estimator.js.map +1 -0
  82. package/dist/builder/context-builder.d.ts +186 -0
  83. package/dist/builder/context-builder.d.ts.map +1 -0
  84. package/dist/builder/context-builder.js +305 -0
  85. package/dist/builder/context-builder.js.map +1 -0
  86. package/dist/builder/context-fork.d.ts +166 -0
  87. package/dist/builder/context-fork.d.ts.map +1 -0
  88. package/dist/builder/context-fork.js +282 -0
  89. package/dist/builder/context-fork.js.map +1 -0
  90. package/dist/builder/index.d.ts +6 -0
  91. package/dist/builder/index.d.ts.map +1 -0
  92. package/dist/builder/index.js +22 -0
  93. package/dist/builder/index.js.map +1 -0
  94. package/dist/codecs/base.d.ts +18 -0
  95. package/dist/codecs/base.d.ts.map +1 -0
  96. package/dist/codecs/base.js +39 -0
  97. package/dist/codecs/base.js.map +1 -0
  98. package/dist/codecs/conversation-history.codec.d.ts +81 -0
  99. package/dist/codecs/conversation-history.codec.d.ts.map +1 -0
  100. package/dist/codecs/conversation-history.codec.js +89 -0
  101. package/dist/codecs/conversation-history.codec.js.map +1 -0
  102. package/dist/codecs/index.d.ts +31 -0
  103. package/dist/codecs/index.d.ts.map +1 -0
  104. package/dist/codecs/index.js +71 -0
  105. package/dist/codecs/index.js.map +1 -0
  106. package/dist/codecs/redacted-stub.codec.d.ts +32 -0
  107. package/dist/codecs/redacted-stub.codec.d.ts.map +1 -0
  108. package/dist/codecs/redacted-stub.codec.js +64 -0
  109. package/dist/codecs/redacted-stub.codec.js.map +1 -0
  110. package/dist/codecs/structured-reference.codec.d.ts +40 -0
  111. package/dist/codecs/structured-reference.codec.d.ts.map +1 -0
  112. package/dist/codecs/structured-reference.codec.js +81 -0
  113. package/dist/codecs/structured-reference.codec.js.map +1 -0
  114. package/dist/codecs/system-rules.codec.d.ts +32 -0
  115. package/dist/codecs/system-rules.codec.d.ts.map +1 -0
  116. package/dist/codecs/system-rules.codec.js +62 -0
  117. package/dist/codecs/system-rules.codec.js.map +1 -0
  118. package/dist/codecs/tool-output.codec.d.ts +66 -0
  119. package/dist/codecs/tool-output.codec.d.ts.map +1 -0
  120. package/dist/codecs/tool-output.codec.js +95 -0
  121. package/dist/codecs/tool-output.codec.js.map +1 -0
  122. package/dist/codecs/tool-schema.codec.d.ts +36 -0
  123. package/dist/codecs/tool-schema.codec.d.ts.map +1 -0
  124. package/dist/codecs/tool-schema.codec.js +74 -0
  125. package/dist/codecs/tool-schema.codec.js.map +1 -0
  126. package/dist/codecs/unsafe-text.codec.d.ts +28 -0
  127. package/dist/codecs/unsafe-text.codec.d.ts.map +1 -0
  128. package/dist/codecs/unsafe-text.codec.js +63 -0
  129. package/dist/codecs/unsafe-text.codec.js.map +1 -0
  130. package/dist/graph/context-graph.d.ts +121 -0
  131. package/dist/graph/context-graph.d.ts.map +1 -0
  132. package/dist/graph/context-graph.js +166 -0
  133. package/dist/graph/context-graph.js.map +1 -0
  134. package/dist/graph/index.d.ts +8 -0
  135. package/dist/graph/index.d.ts.map +1 -0
  136. package/dist/graph/index.js +24 -0
  137. package/dist/graph/index.js.map +1 -0
  138. package/dist/graph/kind-order.d.ts +60 -0
  139. package/dist/graph/kind-order.d.ts.map +1 -0
  140. package/dist/graph/kind-order.js +113 -0
  141. package/dist/graph/kind-order.js.map +1 -0
  142. package/dist/graph/queries.d.ts +68 -0
  143. package/dist/graph/queries.d.ts.map +1 -0
  144. package/dist/graph/queries.js +240 -0
  145. package/dist/graph/queries.js.map +1 -0
  146. package/dist/graph/views.d.ts +90 -0
  147. package/dist/graph/views.d.ts.map +1 -0
  148. package/dist/graph/views.js +173 -0
  149. package/dist/graph/views.js.map +1 -0
  150. package/dist/index.d.ts +16 -0
  151. package/dist/index.d.ts.map +1 -0
  152. package/dist/index.js +40 -0
  153. package/dist/index.js.map +1 -0
  154. package/dist/pipeline/compactor.d.ts +128 -0
  155. package/dist/pipeline/compactor.d.ts.map +1 -0
  156. package/dist/pipeline/compactor.js +346 -0
  157. package/dist/pipeline/compactor.js.map +1 -0
  158. package/dist/pipeline/index.d.ts +6 -0
  159. package/dist/pipeline/index.d.ts.map +1 -0
  160. package/dist/pipeline/index.js +22 -0
  161. package/dist/pipeline/index.js.map +1 -0
  162. package/dist/pipeline/summarizer.d.ts +18 -0
  163. package/dist/pipeline/summarizer.d.ts.map +1 -0
  164. package/dist/pipeline/summarizer.js +68 -0
  165. package/dist/pipeline/summarizer.js.map +1 -0
  166. package/dist/policies/default-policy.d.ts +29 -0
  167. package/dist/policies/default-policy.d.ts.map +1 -0
  168. package/dist/policies/default-policy.js +58 -0
  169. package/dist/policies/default-policy.js.map +1 -0
  170. package/dist/policies/index.d.ts +5 -0
  171. package/dist/policies/index.d.ts.map +1 -0
  172. package/dist/policies/index.js +21 -0
  173. package/dist/policies/index.js.map +1 -0
  174. package/dist/providers/anthropic-compiler.d.ts +58 -0
  175. package/dist/providers/anthropic-compiler.d.ts.map +1 -0
  176. package/dist/providers/anthropic-compiler.js +182 -0
  177. package/dist/providers/anthropic-compiler.js.map +1 -0
  178. package/dist/providers/capabilities.d.ts +54 -0
  179. package/dist/providers/capabilities.d.ts.map +1 -0
  180. package/dist/providers/capabilities.js +87 -0
  181. package/dist/providers/capabilities.js.map +1 -0
  182. package/dist/providers/gemini-compiler.d.ts +51 -0
  183. package/dist/providers/gemini-compiler.d.ts.map +1 -0
  184. package/dist/providers/gemini-compiler.js +206 -0
  185. package/dist/providers/gemini-compiler.js.map +1 -0
  186. package/dist/providers/index.d.ts +8 -0
  187. package/dist/providers/index.d.ts.map +1 -0
  188. package/dist/providers/index.js +24 -0
  189. package/dist/providers/index.js.map +1 -0
  190. package/dist/providers/openai-compiler.d.ts +46 -0
  191. package/dist/providers/openai-compiler.d.ts.map +1 -0
  192. package/dist/providers/openai-compiler.js +149 -0
  193. package/dist/providers/openai-compiler.js.map +1 -0
  194. package/dist/types/attachment.d.ts +62 -0
  195. package/dist/types/attachment.d.ts.map +1 -0
  196. package/dist/types/attachment.js +6 -0
  197. package/dist/types/attachment.js.map +1 -0
  198. package/dist/types/block.d.ts +61 -0
  199. package/dist/types/block.d.ts.map +1 -0
  200. package/dist/types/block.js +8 -0
  201. package/dist/types/block.js.map +1 -0
  202. package/dist/types/codec.d.ts +58 -0
  203. package/dist/types/codec.d.ts.map +1 -0
  204. package/dist/types/codec.js +6 -0
  205. package/dist/types/codec.js.map +1 -0
  206. package/dist/types/compiled.d.ts +91 -0
  207. package/dist/types/compiled.d.ts.map +1 -0
  208. package/dist/types/compiled.js +6 -0
  209. package/dist/types/compiled.js.map +1 -0
  210. package/dist/types/hash.d.ts +24 -0
  211. package/dist/types/hash.d.ts.map +1 -0
  212. package/dist/types/hash.js +49 -0
  213. package/dist/types/hash.js.map +1 -0
  214. package/dist/types/index.d.ts +10 -0
  215. package/dist/types/index.d.ts.map +1 -0
  216. package/dist/types/index.js +26 -0
  217. package/dist/types/index.js.map +1 -0
  218. package/dist/types/policy.d.ts +128 -0
  219. package/dist/types/policy.d.ts.map +1 -0
  220. package/dist/types/policy.js +55 -0
  221. package/dist/types/policy.js.map +1 -0
  222. package/package.json +55 -0
  223. package/postcss.config.js +4 -0
  224. package/src/__tests__/attachment-selector.test.ts +559 -0
  225. package/src/__tests__/cache-breakpoints.test.ts +566 -0
  226. package/src/__tests__/codecs.test.ts +417 -0
  227. package/src/__tests__/compactor.test.ts +608 -0
  228. package/src/__tests__/context-graph.test.ts +383 -0
  229. package/src/__tests__/hash.test.ts +274 -0
  230. package/src/__tests__/integration.test.ts +866 -0
  231. package/src/__tests__/kind-order.test.ts +312 -0
  232. package/src/__tests__/phase2-integration.test.ts +253 -0
  233. package/src/__tests__/queries.test.ts +387 -0
  234. package/src/__tests__/token-estimator.test.ts +326 -0
  235. package/src/adapters/anthropic-estimator.ts +125 -0
  236. package/src/adapters/attachment-resolver.ts +295 -0
  237. package/src/adapters/attachment-selector.ts +218 -0
  238. package/src/adapters/gemini-estimator.ts +93 -0
  239. package/src/adapters/index.ts +12 -0
  240. package/src/adapters/memory-store.ts +299 -0
  241. package/src/adapters/openai-estimator.ts +105 -0
  242. package/src/adapters/summarizer.ts +250 -0
  243. package/src/adapters/token-estimator.ts +74 -0
  244. package/src/builder/context-builder.ts +467 -0
  245. package/src/builder/context-fork.ts +471 -0
  246. package/src/builder/index.ts +6 -0
  247. package/src/codecs/base.ts +36 -0
  248. package/src/codecs/conversation-history.codec.ts +108 -0
  249. package/src/codecs/index.ts +57 -0
  250. package/src/codecs/redacted-stub.codec.ts +76 -0
  251. package/src/codecs/structured-reference.codec.ts +96 -0
  252. package/src/codecs/system-rules.codec.ts +74 -0
  253. package/src/codecs/tool-output.codec.ts +109 -0
  254. package/src/codecs/tool-schema.codec.ts +87 -0
  255. package/src/codecs/unsafe-text.codec.ts +74 -0
  256. package/src/graph/context-graph.ts +205 -0
  257. package/src/graph/index.ts +8 -0
  258. package/src/graph/kind-order.ts +125 -0
  259. package/src/graph/queries.ts +306 -0
  260. package/src/graph/views.ts +255 -0
  261. package/src/index.ts +31 -0
  262. package/src/pipeline/compactor.ts +563 -0
  263. package/src/pipeline/index.ts +6 -0
  264. package/src/pipeline/summarizer.ts +76 -0
  265. package/src/policies/default-policy.ts +69 -0
  266. package/src/policies/index.ts +5 -0
  267. package/src/providers/anthropic-compiler.ts +294 -0
  268. package/src/providers/capabilities.ts +144 -0
  269. package/src/providers/gemini-compiler.ts +272 -0
  270. package/src/providers/index.ts +8 -0
  271. package/src/providers/openai-compiler.ts +191 -0
  272. package/src/types/attachment.ts +86 -0
  273. package/src/types/block.ts +84 -0
  274. package/src/types/codec.ts +68 -0
  275. package/src/types/compiled.ts +109 -0
  276. package/src/types/hash.ts +58 -0
  277. package/src/types/index.ts +10 -0
  278. package/src/types/policy.ts +194 -0
  279. package/tsconfig.json +21 -0
  280. package/vitest.config.ts +21 -0
@@ -0,0 +1,305 @@
1
+ "use strict";
2
+ /**
3
+ * ContextBuilder: Fluent API for composing context graphs.
4
+ *
5
+ * Provides a declarative interface for building context from various sources:
6
+ * - System rules (pinned)
7
+ * - References (tool schemas, docs)
8
+ * - State (current workflow/session)
9
+ * - Memory (long-term, RAG results)
10
+ * - History (conversation turns)
11
+ * - Attachments (images, PDFs)
12
+ * - Current turn (user message)
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ContextBuilder = void 0;
16
+ const context_graph_js_1 = require("../graph/context-graph.js");
17
+ const system_rules_codec_js_1 = require("../codecs/system-rules.codec.js");
18
+ const conversation_history_codec_js_1 = require("../codecs/conversation-history.codec.js");
19
+ const hash_js_1 = require("../types/hash.js");
20
+ /**
21
+ * ContextBuilder: Fluent API for composing context.
22
+ *
23
+ * Usage:
24
+ * ```ts
25
+ * const builder = new ContextBuilder();
26
+ * builder
27
+ * .system({ text: 'You are a helpful assistant.' })
28
+ * .history(previousMessages)
29
+ * .turn('What is the capital of France?');
30
+ *
31
+ * const compiled = await builder.compile(policy, 'anthropic');
32
+ * ```
33
+ */
34
+ class ContextBuilder {
35
+ graph;
36
+ blockCounter;
37
+ constructor() {
38
+ this.graph = new context_graph_js_1.ContextGraph();
39
+ this.blockCounter = 0;
40
+ }
41
+ /**
42
+ * Add a pinned system rules block.
43
+ *
44
+ * @param rules - System rules payload
45
+ * @param options - Optional block metadata overrides
46
+ * @returns This builder (for chaining)
47
+ */
48
+ system(rules, options) {
49
+ const block = this.createBlock('pinned', system_rules_codec_js_1.SystemRulesCodec, rules, options);
50
+ this.graph.addBlock(block);
51
+ return this;
52
+ }
53
+ /**
54
+ * Add a reference block (tool schema, external doc, etc.).
55
+ *
56
+ * @param codec - Block codec for the reference type
57
+ * @param data - Reference payload
58
+ * @param options - Optional block metadata overrides
59
+ * @returns This builder (for chaining)
60
+ */
61
+ reference(codec, data, options) {
62
+ const block = this.createBlock('reference', codec, data, options);
63
+ this.graph.addBlock(block);
64
+ return this;
65
+ }
66
+ /**
67
+ * Add a state block (current workflow/session state).
68
+ *
69
+ * @param codec - Block codec for the state type
70
+ * @param data - State payload
71
+ * @param options - Optional block metadata overrides
72
+ * @returns This builder (for chaining)
73
+ */
74
+ state(codec, data, options) {
75
+ const block = this.createBlock('state', codec, data, options);
76
+ this.graph.addBlock(block);
77
+ return this;
78
+ }
79
+ /**
80
+ * Add a memory block (long-term memory, RAG results).
81
+ *
82
+ * @param codec - Block codec for the memory type
83
+ * @param data - Memory payload
84
+ * @param options - Optional block metadata overrides
85
+ * @returns This builder (for chaining)
86
+ */
87
+ memory(codec, data, options) {
88
+ const block = this.createBlock('memory', codec, data, options);
89
+ this.graph.addBlock(block);
90
+ return this;
91
+ }
92
+ /**
93
+ * Add a conversation history block.
94
+ *
95
+ * @param messages - Array of conversation messages
96
+ * @param summary - Optional summary of earlier messages
97
+ * @param options - Optional block metadata overrides
98
+ * @returns This builder (for chaining)
99
+ */
100
+ history(messages, summary, options) {
101
+ const payload = {
102
+ messages,
103
+ summary,
104
+ };
105
+ const block = this.createBlock('history', conversation_history_codec_js_1.ConversationHistoryCodec, payload, options);
106
+ this.graph.addBlock(block);
107
+ return this;
108
+ }
109
+ /**
110
+ * Add attachment blocks (images, PDFs, etc.).
111
+ * Note: Attachments need to be resolved via AttachmentResolver before compilation.
112
+ *
113
+ * @param attachments - Array of attachments
114
+ * @param codec - Block codec for attachment type
115
+ * @param options - Optional block metadata overrides
116
+ * @returns This builder (for chaining)
117
+ */
118
+ attachments(attachments, codec, options) {
119
+ // For each attachment, create a reference block
120
+ // The actual resolution happens via AttachmentResolver
121
+ for (const attachment of attachments) {
122
+ const block = this.createBlock('reference', codec, attachment, options);
123
+ this.graph.addBlock(block);
124
+ }
125
+ return this;
126
+ }
127
+ /**
128
+ * Add a user turn block (current user message).
129
+ *
130
+ * @param text - User message text
131
+ * @param options - Optional block metadata overrides
132
+ * @returns This builder (for chaining)
133
+ */
134
+ turn(text, options) {
135
+ // Use a simple text payload for turn blocks
136
+ const payload = { text };
137
+ const block = this.createBlock('turn', {
138
+ codecId: 'user-turn',
139
+ version: '1.0.0',
140
+ payloadSchema: {},
141
+ canonicalize: (p) => ({ text: p.text.trim() }),
142
+ hash: (c) => {
143
+ return (0, hash_js_1.computeBlockHash)({ kind: 'turn', sensitivity: 'public', codecId: 'user-turn', codecVersion: '1.0.0' }, c);
144
+ },
145
+ render: (block) => ({
146
+ anthropic: { role: 'user', content: block.payload.text },
147
+ openai: { role: 'user', content: block.payload.text },
148
+ gemini: { role: 'user', parts: [{ text: block.payload.text }] },
149
+ }),
150
+ validate: (p) => p,
151
+ }, payload, options);
152
+ this.graph.addBlock(block);
153
+ return this;
154
+ }
155
+ /**
156
+ * Create a forked context with filtering.
157
+ * Useful for creating specialized contexts (e.g., public-only for external models).
158
+ *
159
+ * @param options - Fork filtering options
160
+ * @returns New ContextBuilder with filtered blocks
161
+ */
162
+ fork(options) {
163
+ const forked = new ContextBuilder();
164
+ // Filter blocks based on options
165
+ const allBlocks = this.graph.getAllBlocks();
166
+ for (const block of allBlocks) {
167
+ let include = true;
168
+ // Sensitivity filter
169
+ if (options.maxSensitivity !== undefined) {
170
+ const sensitivityOrder = {
171
+ public: 0,
172
+ internal: 1,
173
+ restricted: 2,
174
+ };
175
+ if (sensitivityOrder[block.meta.sensitivity] > sensitivityOrder[options.maxSensitivity]) {
176
+ include = false;
177
+ }
178
+ }
179
+ // Kind filter (include)
180
+ if (options.includeKinds !== undefined) {
181
+ if (!options.includeKinds.includes(block.meta.kind)) {
182
+ include = false;
183
+ }
184
+ }
185
+ // Kind filter (exclude)
186
+ if (options.excludeKinds !== undefined) {
187
+ if (options.excludeKinds.includes(block.meta.kind)) {
188
+ include = false;
189
+ }
190
+ }
191
+ // Tag filter
192
+ if (options.tags !== undefined && options.tags.length > 0) {
193
+ const blockTags = block.meta.tags ?? [];
194
+ const hasMatchingTag = options.tags.some((tag) => blockTags.includes(tag));
195
+ if (!hasMatchingTag) {
196
+ include = false;
197
+ }
198
+ }
199
+ if (include) {
200
+ forked.graph.addBlock(block, this.graph.getDerivedFrom(block.blockHash), this.graph.getReferences(block.blockHash));
201
+ }
202
+ }
203
+ return forked;
204
+ }
205
+ /**
206
+ * Compile the context for a specific provider.
207
+ * This is a placeholder - actual compilation happens in provider compilers.
208
+ *
209
+ * @param policy - Context policy configuration
210
+ * @param provider - Target provider
211
+ * @returns Compiled context
212
+ */
213
+ async compile(policy, provider) {
214
+ // This is a placeholder - the actual implementation will be in provider compilers
215
+ // For now, we'll just create a view and return basic structure
216
+ // Create a simple stub estimator (would use provider-specific estimator in production)
217
+ const stubEstimator = {
218
+ estimate: async (blocks) => ({
219
+ tokens: blocks.length * 100,
220
+ confidence: 'low',
221
+ }),
222
+ estimateBlock: async (block) => ({
223
+ tokens: 100,
224
+ confidence: 'low',
225
+ }),
226
+ };
227
+ const view = await this.graph.createView({
228
+ tokenEstimator: stubEstimator,
229
+ maxTokens: policy.contextWindow - policy.completionReserve,
230
+ });
231
+ return {
232
+ provider,
233
+ modelId: policy.modelId,
234
+ messages: [],
235
+ estimatedTokens: 0,
236
+ blocks: [...view.blocks],
237
+ meta: {
238
+ compiledAt: Math.floor(Date.now() / 1000),
239
+ contextWindow: policy.contextWindow,
240
+ completionReserve: policy.completionReserve,
241
+ availableTokens: policy.contextWindow - policy.completionReserve,
242
+ overflowed: false,
243
+ compacted: false,
244
+ truncated: false,
245
+ tokensByKind: {},
246
+ },
247
+ };
248
+ }
249
+ /**
250
+ * Get the underlying context graph.
251
+ *
252
+ * @returns Context graph
253
+ */
254
+ getGraph() {
255
+ return this.graph;
256
+ }
257
+ /**
258
+ * Get the number of blocks in the builder.
259
+ *
260
+ * @returns Block count
261
+ */
262
+ getBlockCount() {
263
+ return this.graph.getBlockCount();
264
+ }
265
+ /**
266
+ * Clear all blocks from the builder.
267
+ */
268
+ clear() {
269
+ this.graph.clear();
270
+ this.blockCounter = 0;
271
+ }
272
+ /**
273
+ * Create a block with generated hash and metadata.
274
+ *
275
+ * @param kind - Block kind
276
+ * @param codec - Block codec
277
+ * @param payload - Block payload
278
+ * @param options - Optional metadata overrides
279
+ * @returns Context block
280
+ */
281
+ createBlock(kind, codec, payload, options) {
282
+ // Validate payload
283
+ codec.validate(payload);
284
+ // Canonicalize and compute hash
285
+ const canonicalized = codec.canonicalize(payload);
286
+ const blockHash = codec.hash(canonicalized);
287
+ // Generate unique ID for this block instance
288
+ this.blockCounter++;
289
+ return {
290
+ blockHash,
291
+ meta: {
292
+ kind,
293
+ sensitivity: options?.sensitivity ?? 'public',
294
+ codecId: codec.codecId,
295
+ codecVersion: codec.version,
296
+ createdAt: Math.floor(Date.now() / 1000),
297
+ source: options?.source,
298
+ tags: options?.tags,
299
+ },
300
+ payload,
301
+ };
302
+ }
303
+ }
304
+ exports.ContextBuilder = ContextBuilder;
305
+ //# sourceMappingURL=context-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../../src/builder/context-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * ContextFork: Create sub-agent contexts with sensitivity enforcement.
3
+ *
4
+ * Enables forking contexts for sub-agents with automatic sensitivity redaction,
5
+ * budget overrides, and schema-enforced output validation.
6
+ */
7
+ import { type ZodSchema } from 'zod';
8
+ import type { ContextGraph } from '../graph/context-graph.js';
9
+ import type { ContextView } from '../graph/views.js';
10
+ import type { ContextBlock, SensitivityLevel } from '../types/block.js';
11
+ import type { ModelRef } from '../types/policy.js';
12
+ /**
13
+ * Sub-agent task definition with schema-enforced output.
14
+ */
15
+ export interface SubAgentTask<TOutput = unknown> {
16
+ /** Task instruction for the sub-agent */
17
+ instruction: string;
18
+ /** Expected output schema (Zod schema, required) */
19
+ expectedOutputSchema: ZodSchema<TOutput>;
20
+ /** Maximum output tokens (optional) */
21
+ maxOutputTokens?: number;
22
+ /** Forbidden fields that must not appear in output */
23
+ forbiddenFields?: string[];
24
+ }
25
+ /**
26
+ * Fork options for creating sub-agent contexts.
27
+ */
28
+ export interface ContextForkOptions {
29
+ /** Unique agent identifier */
30
+ agentId: string;
31
+ /** Human-readable fork name */
32
+ name: string;
33
+ /** Model to use for this fork */
34
+ model: ModelRef;
35
+ /** Inherit query from parent context */
36
+ inheritQuery?: boolean;
37
+ /** Include conversation history in fork */
38
+ includeHistory?: boolean;
39
+ /** Include state blocks in fork */
40
+ includeState?: boolean;
41
+ /** Maximum sensitivity level to include (default: 'public') */
42
+ maxSensitivity?: SensitivityLevel;
43
+ /** Token budget override (optional) */
44
+ budgetOverride?: number;
45
+ }
46
+ /**
47
+ * LLM usage statistics.
48
+ */
49
+ export interface UsageStats {
50
+ /** Input tokens */
51
+ inputTokens: number;
52
+ /** Output tokens */
53
+ outputTokens: number;
54
+ /** Total tokens */
55
+ totalTokens: number;
56
+ }
57
+ /**
58
+ * Provenance information for fork result.
59
+ */
60
+ export interface ForkProvenance {
61
+ /** Source view hash */
62
+ sourceViewHash: string;
63
+ /** Execution hash (deterministic) */
64
+ executionHash: string;
65
+ /** Fork creation timestamp */
66
+ forkedAt: number;
67
+ /** Fork completion timestamp */
68
+ completedAt: number;
69
+ }
70
+ /**
71
+ * Fork execution result.
72
+ */
73
+ export interface ForkResult<TOutput = unknown> {
74
+ /** Agent ID */
75
+ agentId: string;
76
+ /** Model used */
77
+ model: ModelRef;
78
+ /** Task summary */
79
+ summary: string;
80
+ /** Structured output (validated against schema) */
81
+ output: TOutput;
82
+ /** Generated artifacts (optional) */
83
+ artifacts?: Array<{
84
+ name: string;
85
+ type: string;
86
+ content: string;
87
+ }>;
88
+ /** Citations to source blocks (block hashes) */
89
+ citations?: string[];
90
+ /** Usage statistics */
91
+ usage: UsageStats;
92
+ /** Provenance information */
93
+ provenance: ForkProvenance;
94
+ }
95
+ /**
96
+ * Filter view blocks by sensitivity level.
97
+ * Blocks exceeding maxSensitivity are replaced with redacted stubs.
98
+ *
99
+ * @param view - Source context view
100
+ * @param maxSensitivity - Maximum allowed sensitivity level
101
+ * @returns Filtered blocks with redacted stubs
102
+ */
103
+ export declare function filterBySensitivity(view: ContextView, maxSensitivity: SensitivityLevel): ContextBlock<unknown>[];
104
+ /**
105
+ * Compute deterministic execution hash.
106
+ * Hash includes: model + compiledViewHash + instruction + schemaHash + toolsetVersion
107
+ *
108
+ * @param model - Model reference
109
+ * @param viewHash - Compiled view hash
110
+ * @param instruction - Task instruction
111
+ * @param schemaHash - Output schema hash
112
+ * @param toolsetVersion - Toolset version (optional)
113
+ * @returns Hex-encoded SHA-256 hash
114
+ */
115
+ export declare function computeExecutionHash(model: ModelRef, viewHash: string, instruction: string, schemaHash: string, toolsetVersion?: string): string;
116
+ /**
117
+ * Compute schema hash for deterministic execution tracking.
118
+ *
119
+ * @param schema - Zod schema
120
+ * @returns Hex-encoded SHA-256 hash
121
+ */
122
+ export declare function computeSchemaHash(schema: ZodSchema): string;
123
+ /**
124
+ * ContextFork: Create sub-agent contexts with sensitivity enforcement.
125
+ */
126
+ export declare class ContextFork {
127
+ private readonly graph;
128
+ private readonly parentView;
129
+ constructor(graph: ContextGraph, parentView: ContextView);
130
+ /**
131
+ * Create a fork with sensitivity filtering and budget override.
132
+ *
133
+ * @param options - Fork options
134
+ * @returns Filtered context view for sub-agent
135
+ */
136
+ createFork(options: ContextForkOptions): Promise<ContextView>;
137
+ /**
138
+ * Execute a sub-agent task with schema validation.
139
+ *
140
+ * @param task - Sub-agent task definition
141
+ * @param options - Fork options
142
+ * @param executor - Async executor function (calls LLM)
143
+ * @returns Fork result with validated output
144
+ */
145
+ executeFork<TOutput>(task: SubAgentTask<TOutput>, options: ContextForkOptions, executor: (instruction: string, view: ContextView) => Promise<{
146
+ output: unknown;
147
+ summary: string;
148
+ artifacts?: Array<{
149
+ name: string;
150
+ type: string;
151
+ content: string;
152
+ }>;
153
+ citations?: string[];
154
+ usage: UsageStats;
155
+ }>): Promise<ForkResult<TOutput>>;
156
+ /**
157
+ * Ingest fork result back into parent graph.
158
+ * Adds result as a memory block with provenance tracking.
159
+ *
160
+ * @param result - Fork result to ingest
161
+ * @param asMemory - Add as memory block (default: true)
162
+ * @returns Block hash of ingested result
163
+ */
164
+ ingestForkResult<TOutput>(result: ForkResult<TOutput>, asMemory?: boolean): string;
165
+ }
166
+ //# sourceMappingURL=context-fork.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-fork.d.ts","sourceRoot":"","sources":["../../src/builder/context-fork.ts"],"names":[],"mappings":"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"}