@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 @@
1
+ {"version":3,"file":"gemini-compiler.js","sourceRoot":"","sources":["../../src/providers/gemini-compiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Provider compiler exports.
3
+ */
4
+ export * from './capabilities.js';
5
+ export * from './anthropic-compiler.js';
6
+ export * from './openai-compiler.js';
7
+ export * from './gemini-compiler.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -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,6 @@
1
+ "use strict";
2
+ /**
3
+ * Attachment types for external content (images, PDFs, etc.).
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=attachment.js.map
@@ -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,8 @@
1
+ "use strict";
2
+ /**
3
+ * Block types for @foundry/context
4
+ *
5
+ * Core data structures for context blocks with stable hashing and ordering.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=block.js.map
@@ -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,6 @@
1
+ "use strict";
2
+ /**
3
+ * Block codec interface for rendering and validation.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=codec.js.map
@@ -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,6 @@
1
+ "use strict";
2
+ /**
3
+ * Compiled context types for LLM provider consumption.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=compiled.js.map
@@ -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"}