open-multi-agent-kit 0.80.6 → 0.80.7

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 (981) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/README.md +22 -14
  3. package/dist/cli/config-selector.d.ts +1 -1
  4. package/dist/cli/config-selector.d.ts.map +1 -1
  5. package/dist/cli/config-selector.js +1 -1
  6. package/dist/cli/config-selector.js.map +1 -1
  7. package/dist/config.d.ts +1 -0
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +9 -8
  10. package/dist/config.js.map +1 -1
  11. package/dist/core/agent-session.d.ts +45 -6
  12. package/dist/core/agent-session.d.ts.map +1 -1
  13. package/dist/core/agent-session.js +197 -13
  14. package/dist/core/agent-session.js.map +1 -1
  15. package/dist/core/auth-storage.d.ts +4 -1
  16. package/dist/core/auth-storage.d.ts.map +1 -1
  17. package/dist/core/auth-storage.js +5 -5
  18. package/dist/core/auth-storage.js.map +1 -1
  19. package/dist/core/bash-executor.d.ts.map +1 -1
  20. package/dist/core/bash-executor.js +1 -1
  21. package/dist/core/bash-executor.js.map +1 -1
  22. package/dist/core/command-safety.d.ts +11 -0
  23. package/dist/core/command-safety.d.ts.map +1 -0
  24. package/dist/core/command-safety.js +528 -0
  25. package/dist/core/command-safety.js.map +1 -0
  26. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  27. package/dist/core/compaction/branch-summarization.js +14 -4
  28. package/dist/core/compaction/branch-summarization.js.map +1 -1
  29. package/dist/core/compaction/compaction.d.ts +18 -1
  30. package/dist/core/compaction/compaction.d.ts.map +1 -1
  31. package/dist/core/compaction/compaction.js +80 -42
  32. package/dist/core/compaction/compaction.js.map +1 -1
  33. package/dist/core/compaction/pruner-policy.d.ts +84 -0
  34. package/dist/core/compaction/pruner-policy.d.ts.map +1 -0
  35. package/dist/core/compaction/pruner-policy.js +273 -0
  36. package/dist/core/compaction/pruner-policy.js.map +1 -0
  37. package/dist/core/context-graph-identity-resolution.d.ts +114 -0
  38. package/dist/core/context-graph-identity-resolution.d.ts.map +1 -0
  39. package/dist/core/context-graph-identity-resolution.js +127 -0
  40. package/dist/core/context-graph-identity-resolution.js.map +1 -0
  41. package/dist/core/context-graph-memory-store.d.ts +153 -0
  42. package/dist/core/context-graph-memory-store.d.ts.map +1 -0
  43. package/dist/core/context-graph-memory-store.js +377 -0
  44. package/dist/core/context-graph-memory-store.js.map +1 -0
  45. package/dist/core/context-graph-ontology-generation.d.ts +104 -0
  46. package/dist/core/context-graph-ontology-generation.d.ts.map +1 -0
  47. package/dist/core/context-graph-ontology-generation.js +135 -0
  48. package/dist/core/context-graph-ontology-generation.js.map +1 -0
  49. package/dist/core/context-graph-ontology-registry.d.ts +766 -0
  50. package/dist/core/context-graph-ontology-registry.d.ts.map +1 -0
  51. package/dist/core/context-graph-ontology-registry.js +1133 -0
  52. package/dist/core/context-graph-ontology-registry.js.map +1 -0
  53. package/dist/core/context-graph-policy.d.ts +68 -0
  54. package/dist/core/context-graph-policy.d.ts.map +1 -0
  55. package/dist/core/context-graph-policy.js +221 -0
  56. package/dist/core/context-graph-policy.js.map +1 -0
  57. package/dist/core/context-graph-reasoning.d.ts +130 -0
  58. package/dist/core/context-graph-reasoning.d.ts.map +1 -0
  59. package/dist/core/context-graph-reasoning.js +442 -0
  60. package/dist/core/context-graph-reasoning.js.map +1 -0
  61. package/dist/core/context-graph-retrieval.d.ts +120 -0
  62. package/dist/core/context-graph-retrieval.d.ts.map +1 -0
  63. package/dist/core/context-graph-retrieval.js +288 -0
  64. package/dist/core/context-graph-retrieval.js.map +1 -0
  65. package/dist/core/contract-verification.d.ts +78 -0
  66. package/dist/core/contract-verification.d.ts.map +1 -0
  67. package/dist/core/contract-verification.js +110 -0
  68. package/dist/core/contract-verification.js.map +1 -0
  69. package/dist/core/exact-cache-policy.d.ts +100 -0
  70. package/dist/core/exact-cache-policy.d.ts.map +1 -0
  71. package/dist/core/exact-cache-policy.js +175 -0
  72. package/dist/core/exact-cache-policy.js.map +1 -0
  73. package/dist/core/exec.d.ts +2 -0
  74. package/dist/core/exec.d.ts.map +1 -1
  75. package/dist/core/exec.js +1 -0
  76. package/dist/core/exec.js.map +1 -1
  77. package/dist/core/export-html/template.js +2 -2
  78. package/dist/core/extensions/builtin/command-safety-gate.d.ts +77 -0
  79. package/dist/core/extensions/builtin/command-safety-gate.d.ts.map +1 -0
  80. package/dist/core/extensions/builtin/command-safety-gate.js +147 -0
  81. package/dist/core/extensions/builtin/command-safety-gate.js.map +1 -0
  82. package/dist/core/extensions/loader.d.ts +4 -4
  83. package/dist/core/extensions/loader.d.ts.map +1 -1
  84. package/dist/core/extensions/loader.js +94 -56
  85. package/dist/core/extensions/loader.js.map +1 -1
  86. package/dist/core/extensions/runner.d.ts.map +1 -1
  87. package/dist/core/extensions/runner.js +1 -1
  88. package/dist/core/extensions/runner.js.map +1 -1
  89. package/dist/core/extensions/types.d.ts +38 -10
  90. package/dist/core/extensions/types.d.ts.map +1 -1
  91. package/dist/core/extensions/types.js.map +1 -1
  92. package/dist/core/freedom/banner.d.ts +14 -0
  93. package/dist/core/freedom/banner.d.ts.map +1 -0
  94. package/dist/core/freedom/banner.js +22 -0
  95. package/dist/core/freedom/banner.js.map +1 -0
  96. package/dist/core/freedom/config.d.ts +27 -0
  97. package/dist/core/freedom/config.d.ts.map +1 -0
  98. package/dist/core/freedom/config.js +216 -0
  99. package/dist/core/freedom/config.js.map +1 -0
  100. package/dist/core/freedom/index.d.ts +23 -0
  101. package/dist/core/freedom/index.d.ts.map +1 -0
  102. package/dist/core/freedom/index.js +19 -0
  103. package/dist/core/freedom/index.js.map +1 -0
  104. package/dist/core/freedom/policy.d.ts +42 -0
  105. package/dist/core/freedom/policy.d.ts.map +1 -0
  106. package/dist/core/freedom/policy.js +47 -0
  107. package/dist/core/freedom/policy.js.map +1 -0
  108. package/dist/core/freedom/safety-floor.d.ts +73 -0
  109. package/dist/core/freedom/safety-floor.d.ts.map +1 -0
  110. package/dist/core/freedom/safety-floor.js +275 -0
  111. package/dist/core/freedom/safety-floor.js.map +1 -0
  112. package/dist/core/harness-control-events.d.ts +13 -1
  113. package/dist/core/harness-control-events.d.ts.map +1 -1
  114. package/dist/core/harness-control-events.js +216 -41
  115. package/dist/core/harness-control-events.js.map +1 -1
  116. package/dist/core/harness-control-replay.d.ts +7 -2
  117. package/dist/core/harness-control-replay.d.ts.map +1 -1
  118. package/dist/core/harness-control-replay.js +36 -4
  119. package/dist/core/harness-control-replay.js.map +1 -1
  120. package/dist/core/headroom-middleware.d.ts +35 -0
  121. package/dist/core/headroom-middleware.d.ts.map +1 -0
  122. package/dist/core/headroom-middleware.js +166 -0
  123. package/dist/core/headroom-middleware.js.map +1 -0
  124. package/dist/core/hook-inventory.d.ts +23 -0
  125. package/dist/core/hook-inventory.d.ts.map +1 -0
  126. package/dist/core/hook-inventory.js +50 -0
  127. package/dist/core/hook-inventory.js.map +1 -0
  128. package/dist/core/lean-context-middleware.d.ts +12 -0
  129. package/dist/core/lean-context-middleware.d.ts.map +1 -0
  130. package/dist/core/lean-context-middleware.js +87 -0
  131. package/dist/core/lean-context-middleware.js.map +1 -0
  132. package/dist/core/lean-context-policy.d.ts +45 -0
  133. package/dist/core/lean-context-policy.d.ts.map +1 -0
  134. package/dist/core/lean-context-policy.js +108 -0
  135. package/dist/core/lean-context-policy.js.map +1 -0
  136. package/dist/core/loadout-access-policy.d.ts +41 -0
  137. package/dist/core/loadout-access-policy.d.ts.map +1 -0
  138. package/dist/core/loadout-access-policy.js +182 -0
  139. package/dist/core/loadout-access-policy.js.map +1 -0
  140. package/dist/core/loadout-runtime.d.ts +84 -0
  141. package/dist/core/loadout-runtime.d.ts.map +1 -0
  142. package/dist/core/loadout-runtime.js +157 -0
  143. package/dist/core/loadout-runtime.js.map +1 -0
  144. package/dist/core/loadouts.d.ts +147 -0
  145. package/dist/core/loadouts.d.ts.map +1 -0
  146. package/dist/core/loadouts.js +442 -0
  147. package/dist/core/loadouts.js.map +1 -0
  148. package/dist/core/mcp-inventory.d.ts +34 -0
  149. package/dist/core/mcp-inventory.d.ts.map +1 -1
  150. package/dist/core/mcp-inventory.js +53 -1
  151. package/dist/core/mcp-inventory.js.map +1 -1
  152. package/dist/core/mcp-presets.d.ts +57 -0
  153. package/dist/core/mcp-presets.d.ts.map +1 -0
  154. package/dist/core/mcp-presets.js +81 -0
  155. package/dist/core/mcp-presets.js.map +1 -0
  156. package/dist/core/model-registry.d.ts +1 -0
  157. package/dist/core/model-registry.d.ts.map +1 -1
  158. package/dist/core/model-registry.js +40 -17
  159. package/dist/core/model-registry.js.map +1 -1
  160. package/dist/core/model-resolver.d.ts.map +1 -1
  161. package/dist/core/model-resolver.js +1 -0
  162. package/dist/core/model-resolver.js.map +1 -1
  163. package/dist/core/native-adoption-benchmark.d.ts +166 -0
  164. package/dist/core/native-adoption-benchmark.d.ts.map +1 -0
  165. package/dist/core/native-adoption-benchmark.js +624 -0
  166. package/dist/core/native-adoption-benchmark.js.map +1 -0
  167. package/dist/core/observability-trace.d.ts +80 -0
  168. package/dist/core/observability-trace.d.ts.map +1 -0
  169. package/dist/core/observability-trace.js +140 -0
  170. package/dist/core/observability-trace.js.map +1 -0
  171. package/dist/core/orchestration/checkpoint.d.ts +83 -0
  172. package/dist/core/orchestration/checkpoint.d.ts.map +1 -0
  173. package/dist/core/orchestration/checkpoint.js +152 -0
  174. package/dist/core/orchestration/checkpoint.js.map +1 -0
  175. package/dist/core/orchestration/errors.d.ts +74 -0
  176. package/dist/core/orchestration/errors.d.ts.map +1 -0
  177. package/dist/core/orchestration/errors.js +52 -0
  178. package/dist/core/orchestration/errors.js.map +1 -0
  179. package/dist/core/orchestration/merge-queue.d.ts +121 -0
  180. package/dist/core/orchestration/merge-queue.d.ts.map +1 -0
  181. package/dist/core/orchestration/merge-queue.js +149 -0
  182. package/dist/core/orchestration/merge-queue.js.map +1 -0
  183. package/dist/core/orchestration/recovery.d.ts +106 -0
  184. package/dist/core/orchestration/recovery.d.ts.map +1 -0
  185. package/dist/core/orchestration/recovery.js +110 -0
  186. package/dist/core/orchestration/recovery.js.map +1 -0
  187. package/dist/core/orchestration/replay-ledger.d.ts +76 -0
  188. package/dist/core/orchestration/replay-ledger.d.ts.map +1 -0
  189. package/dist/core/orchestration/replay-ledger.js +395 -0
  190. package/dist/core/orchestration/replay-ledger.js.map +1 -0
  191. package/dist/core/orchestration/scheduler-state.d.ts +78 -0
  192. package/dist/core/orchestration/scheduler-state.d.ts.map +1 -0
  193. package/dist/core/orchestration/scheduler-state.js +185 -0
  194. package/dist/core/orchestration/scheduler-state.js.map +1 -0
  195. package/dist/core/orchestration/scheduler-store.d.ts +309 -0
  196. package/dist/core/orchestration/scheduler-store.d.ts.map +1 -0
  197. package/dist/core/orchestration/scheduler-store.js +368 -0
  198. package/dist/core/orchestration/scheduler-store.js.map +1 -0
  199. package/dist/core/orchestration/sqlite-scheduler-store.d.ts +57 -0
  200. package/dist/core/orchestration/sqlite-scheduler-store.d.ts.map +1 -0
  201. package/dist/core/orchestration/sqlite-scheduler-store.js +528 -0
  202. package/dist/core/orchestration/sqlite-scheduler-store.js.map +1 -0
  203. package/dist/core/orchestration/transaction-coordinator.d.ts +217 -0
  204. package/dist/core/orchestration/transaction-coordinator.d.ts.map +1 -0
  205. package/dist/core/orchestration/transaction-coordinator.js +281 -0
  206. package/dist/core/orchestration/transaction-coordinator.js.map +1 -0
  207. package/dist/core/orchestration/verification-contract.d.ts +197 -0
  208. package/dist/core/orchestration/verification-contract.d.ts.map +1 -0
  209. package/dist/core/orchestration/verification-contract.js +145 -0
  210. package/dist/core/orchestration/verification-contract.js.map +1 -0
  211. package/dist/core/package-composition.d.ts +68 -0
  212. package/dist/core/package-composition.d.ts.map +1 -0
  213. package/dist/core/package-composition.js +304 -0
  214. package/dist/core/package-composition.js.map +1 -0
  215. package/dist/core/package-gallery.d.ts +124 -0
  216. package/dist/core/package-gallery.d.ts.map +1 -0
  217. package/dist/core/package-gallery.js +392 -0
  218. package/dist/core/package-gallery.js.map +1 -0
  219. package/dist/core/package-manager.d.ts +69 -0
  220. package/dist/core/package-manager.d.ts.map +1 -1
  221. package/dist/core/package-manager.js +367 -69
  222. package/dist/core/package-manager.js.map +1 -1
  223. package/dist/core/package-procurement.d.ts +268 -0
  224. package/dist/core/package-procurement.d.ts.map +1 -0
  225. package/dist/core/package-procurement.js +697 -0
  226. package/dist/core/package-procurement.js.map +1 -0
  227. package/dist/core/package-trial-runtime.d.ts +75 -0
  228. package/dist/core/package-trial-runtime.d.ts.map +1 -0
  229. package/dist/core/package-trial-runtime.js +73 -0
  230. package/dist/core/package-trial-runtime.js.map +1 -0
  231. package/dist/core/package-trial-sandbox.d.ts +27 -0
  232. package/dist/core/package-trial-sandbox.d.ts.map +1 -0
  233. package/dist/core/package-trial-sandbox.js +102 -0
  234. package/dist/core/package-trial-sandbox.js.map +1 -0
  235. package/dist/core/policy-overlays-runtime.d.ts +141 -0
  236. package/dist/core/policy-overlays-runtime.d.ts.map +1 -0
  237. package/dist/core/policy-overlays-runtime.js +720 -0
  238. package/dist/core/policy-overlays-runtime.js.map +1 -0
  239. package/dist/core/read-anchor-registry.d.ts +27 -0
  240. package/dist/core/read-anchor-registry.d.ts.map +1 -0
  241. package/dist/core/read-anchor-registry.js +103 -0
  242. package/dist/core/read-anchor-registry.js.map +1 -0
  243. package/dist/core/read-anchors.d.ts +110 -0
  244. package/dist/core/read-anchors.d.ts.map +1 -0
  245. package/dist/core/read-anchors.js +193 -0
  246. package/dist/core/read-anchors.js.map +1 -0
  247. package/dist/core/read-content-cache.d.ts +22 -0
  248. package/dist/core/read-content-cache.d.ts.map +1 -0
  249. package/dist/core/read-content-cache.js +79 -0
  250. package/dist/core/read-content-cache.js.map +1 -0
  251. package/dist/core/recovery-checkpoint.d.ts +196 -0
  252. package/dist/core/recovery-checkpoint.d.ts.map +1 -0
  253. package/dist/core/recovery-checkpoint.js +382 -0
  254. package/dist/core/recovery-checkpoint.js.map +1 -0
  255. package/dist/core/resolve-config-value.d.ts +1 -1
  256. package/dist/core/resolve-config-value.d.ts.map +1 -1
  257. package/dist/core/resolve-config-value.js +30 -2
  258. package/dist/core/resolve-config-value.js.map +1 -1
  259. package/dist/core/resource-loader.d.ts +23 -21
  260. package/dist/core/resource-loader.d.ts.map +1 -1
  261. package/dist/core/resource-loader.js +93 -15
  262. package/dist/core/resource-loader.js.map +1 -1
  263. package/dist/core/sandbox/backend.d.ts +25 -0
  264. package/dist/core/sandbox/backend.d.ts.map +1 -0
  265. package/dist/core/sandbox/backend.js +150 -0
  266. package/dist/core/sandbox/backend.js.map +1 -0
  267. package/dist/core/sandbox/env.d.ts +6 -0
  268. package/dist/core/sandbox/env.d.ts.map +1 -0
  269. package/dist/core/sandbox/env.js +46 -0
  270. package/dist/core/sandbox/env.js.map +1 -0
  271. package/dist/core/sandbox/path-resolver.d.ts +4 -0
  272. package/dist/core/sandbox/path-resolver.d.ts.map +1 -0
  273. package/dist/core/sandbox/path-resolver.js +44 -0
  274. package/dist/core/sandbox/path-resolver.js.map +1 -0
  275. package/dist/core/sandbox/policy.d.ts +87 -0
  276. package/dist/core/sandbox/policy.d.ts.map +1 -0
  277. package/dist/core/sandbox/policy.js +280 -0
  278. package/dist/core/sandbox/policy.js.map +1 -0
  279. package/dist/core/sandbox/spawn.d.ts +20 -0
  280. package/dist/core/sandbox/spawn.d.ts.map +1 -0
  281. package/dist/core/sandbox/spawn.js +80 -0
  282. package/dist/core/sandbox/spawn.js.map +1 -0
  283. package/dist/core/sdk.d.ts +83 -4
  284. package/dist/core/sdk.d.ts.map +1 -1
  285. package/dist/core/sdk.js +143 -55
  286. package/dist/core/sdk.js.map +1 -1
  287. package/dist/core/semantic-cache-policy.d.ts +45 -0
  288. package/dist/core/semantic-cache-policy.d.ts.map +1 -0
  289. package/dist/core/semantic-cache-policy.js +220 -0
  290. package/dist/core/semantic-cache-policy.js.map +1 -0
  291. package/dist/core/session-digest.d.ts +57 -0
  292. package/dist/core/session-digest.d.ts.map +1 -0
  293. package/dist/core/session-digest.js +193 -0
  294. package/dist/core/session-digest.js.map +1 -0
  295. package/dist/core/session-manager.d.ts +2 -2
  296. package/dist/core/session-manager.d.ts.map +1 -1
  297. package/dist/core/session-manager.js +5 -4
  298. package/dist/core/session-manager.js.map +1 -1
  299. package/dist/core/settings-manager.d.ts +14 -0
  300. package/dist/core/settings-manager.d.ts.map +1 -1
  301. package/dist/core/settings-manager.js +43 -2
  302. package/dist/core/settings-manager.js.map +1 -1
  303. package/dist/core/system-prompt.d.ts.map +1 -1
  304. package/dist/core/system-prompt.js +25 -7
  305. package/dist/core/system-prompt.js.map +1 -1
  306. package/dist/core/telemetry.d.ts.map +1 -1
  307. package/dist/core/telemetry.js +1 -1
  308. package/dist/core/telemetry.js.map +1 -1
  309. package/dist/core/timings.d.ts +1 -1
  310. package/dist/core/timings.d.ts.map +1 -1
  311. package/dist/core/timings.js +2 -2
  312. package/dist/core/timings.js.map +1 -1
  313. package/dist/core/tools/bash.d.ts +28 -3
  314. package/dist/core/tools/bash.d.ts.map +1 -1
  315. package/dist/core/tools/bash.js +53 -10
  316. package/dist/core/tools/bash.js.map +1 -1
  317. package/dist/core/tools/edit.d.ts +12 -0
  318. package/dist/core/tools/edit.d.ts.map +1 -1
  319. package/dist/core/tools/edit.js +24 -0
  320. package/dist/core/tools/edit.js.map +1 -1
  321. package/dist/core/tools/find.d.ts +3 -0
  322. package/dist/core/tools/find.d.ts.map +1 -1
  323. package/dist/core/tools/find.js +3 -0
  324. package/dist/core/tools/find.js.map +1 -1
  325. package/dist/core/tools/grep.d.ts +3 -0
  326. package/dist/core/tools/grep.d.ts.map +1 -1
  327. package/dist/core/tools/grep.js +4 -1
  328. package/dist/core/tools/grep.js.map +1 -1
  329. package/dist/core/tools/index.d.ts +1 -1
  330. package/dist/core/tools/index.d.ts.map +1 -1
  331. package/dist/core/tools/index.js.map +1 -1
  332. package/dist/core/tools/ls.d.ts +3 -0
  333. package/dist/core/tools/ls.d.ts.map +1 -1
  334. package/dist/core/tools/ls.js +3 -0
  335. package/dist/core/tools/ls.js.map +1 -1
  336. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  337. package/dist/core/tools/output-accumulator.js +1 -1
  338. package/dist/core/tools/output-accumulator.js.map +1 -1
  339. package/dist/core/tools/read.d.ts +13 -0
  340. package/dist/core/tools/read.d.ts.map +1 -1
  341. package/dist/core/tools/read.js +29 -2
  342. package/dist/core/tools/read.js.map +1 -1
  343. package/dist/core/tools/write.d.ts +3 -0
  344. package/dist/core/tools/write.d.ts.map +1 -1
  345. package/dist/core/tools/write.js +3 -0
  346. package/dist/core/tools/write.js.map +1 -1
  347. package/dist/index.d.ts +19 -4
  348. package/dist/index.d.ts.map +1 -1
  349. package/dist/index.js +17 -2
  350. package/dist/index.js.map +1 -1
  351. package/dist/main.d.ts.map +1 -1
  352. package/dist/main.js +4 -6
  353. package/dist/main.js.map +1 -1
  354. package/dist/migrations.d.ts.map +1 -1
  355. package/dist/migrations.js +1 -1
  356. package/dist/migrations.js.map +1 -1
  357. package/dist/modes/interactive/components/control-panel-gradient-motion.d.ts +28 -0
  358. package/dist/modes/interactive/components/control-panel-gradient-motion.d.ts.map +1 -0
  359. package/dist/modes/interactive/components/control-panel-gradient-motion.js +146 -0
  360. package/dist/modes/interactive/components/control-panel-gradient-motion.js.map +1 -0
  361. package/dist/modes/interactive/components/control-panel-gradient.d.ts +27 -0
  362. package/dist/modes/interactive/components/control-panel-gradient.d.ts.map +1 -0
  363. package/dist/modes/interactive/components/control-panel-gradient.js +127 -0
  364. package/dist/modes/interactive/components/control-panel-gradient.js.map +1 -0
  365. package/dist/modes/interactive/components/control-panel.d.ts +28 -1
  366. package/dist/modes/interactive/components/control-panel.d.ts.map +1 -1
  367. package/dist/modes/interactive/components/control-panel.js +153 -3
  368. package/dist/modes/interactive/components/control-panel.js.map +1 -1
  369. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  370. package/dist/modes/interactive/components/earendil-announcement.js +1 -1
  371. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  372. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  373. package/dist/modes/interactive/components/extension-editor.js +1 -1
  374. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  375. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  376. package/dist/modes/interactive/components/footer.js +8 -0
  377. package/dist/modes/interactive/components/footer.js.map +1 -1
  378. package/dist/modes/interactive/components/mcp-selector.d.ts +2 -0
  379. package/dist/modes/interactive/components/mcp-selector.d.ts.map +1 -1
  380. package/dist/modes/interactive/components/mcp-selector.js +18 -1
  381. package/dist/modes/interactive/components/mcp-selector.js.map +1 -1
  382. package/dist/modes/interactive/components/model-selector-state.d.ts +101 -0
  383. package/dist/modes/interactive/components/model-selector-state.d.ts.map +1 -0
  384. package/dist/modes/interactive/components/model-selector-state.js +261 -0
  385. package/dist/modes/interactive/components/model-selector-state.js.map +1 -0
  386. package/dist/modes/interactive/components/model-selector.d.ts +44 -10
  387. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  388. package/dist/modes/interactive/components/model-selector.js +163 -110
  389. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  390. package/dist/modes/interactive/components/theme-selector.d.ts +1 -0
  391. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  392. package/dist/modes/interactive/components/theme-selector.js +10 -1
  393. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  394. package/dist/modes/interactive/interactive-mode.d.ts +4 -2
  395. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  396. package/dist/modes/interactive/interactive-mode.js +61 -13
  397. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  398. package/dist/modes/interactive/theme/omk-blackboard.json +91 -0
  399. package/dist/modes/interactive/theme/omk-freedom-grid.json +91 -0
  400. package/dist/modes/interactive/theme/omk-neon-ops.json +90 -0
  401. package/dist/modes/interactive/theme/omk-slate-light.json +91 -0
  402. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  403. package/dist/modes/interactive/theme/theme.js +14 -0
  404. package/dist/modes/interactive/theme/theme.js.map +1 -1
  405. package/dist/modes/print-mode.d.ts +2 -2
  406. package/dist/modes/print-mode.d.ts.map +1 -1
  407. package/dist/modes/print-mode.js +2 -2
  408. package/dist/modes/print-mode.js.map +1 -1
  409. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  410. package/dist/modes/rpc/rpc-mode.js +4 -0
  411. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  412. package/dist/package-manager-cli.d.ts.map +1 -1
  413. package/dist/package-manager-cli.js +114 -49
  414. package/dist/package-manager-cli.js.map +1 -1
  415. package/dist/utils/clipboard-image.d.ts.map +1 -1
  416. package/dist/utils/clipboard-image.js +1 -1
  417. package/dist/utils/clipboard-image.js.map +1 -1
  418. package/dist/utils/omk-user-agent.d.ts +2 -0
  419. package/dist/utils/omk-user-agent.d.ts.map +1 -0
  420. package/dist/utils/{pi-user-agent.js → omk-user-agent.js} +2 -2
  421. package/dist/utils/omk-user-agent.js.map +1 -0
  422. package/dist/utils/tools-manager.d.ts.map +1 -1
  423. package/dist/utils/tools-manager.js +1 -1
  424. package/dist/utils/tools-manager.js.map +1 -1
  425. package/dist/utils/version-check.d.ts +5 -5
  426. package/dist/utils/version-check.d.ts.map +1 -1
  427. package/dist/utils/version-check.js +8 -11
  428. package/dist/utils/version-check.js.map +1 -1
  429. package/dist/utils/windows-self-update.d.ts.map +1 -1
  430. package/dist/utils/windows-self-update.js +1 -1
  431. package/dist/utils/windows-self-update.js.map +1 -1
  432. package/docs/packages.md +47 -6
  433. package/docs/prompt-templates.md +2 -0
  434. package/docs/usage.md +16 -6
  435. package/examples/README.md +1 -1
  436. package/examples/extensions/README.md +11 -11
  437. package/examples/extensions/auto-commit-on-exit.ts +6 -6
  438. package/examples/extensions/bash-spawn-hook.ts +4 -4
  439. package/examples/extensions/bookmark.ts +5 -5
  440. package/examples/extensions/border-status-editor.ts +7 -7
  441. package/examples/extensions/built-in-tool-renderer.ts +6 -6
  442. package/examples/extensions/claude-rules.ts +4 -4
  443. package/examples/extensions/commands.ts +5 -5
  444. package/examples/extensions/confirm-destructive.ts +3 -3
  445. package/examples/extensions/custom-compaction.ts +3 -3
  446. package/examples/extensions/custom-footer.ts +2 -2
  447. package/examples/extensions/custom-header.ts +5 -5
  448. package/examples/extensions/custom-provider-anthropic/index.ts +4 -4
  449. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  450. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  451. package/examples/extensions/custom-provider-gitlab-duo/index.ts +3 -3
  452. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  453. package/examples/extensions/dirty-repo-guard.ts +7 -7
  454. package/examples/extensions/doom-overlay/README.md +3 -3
  455. package/examples/extensions/doom-overlay/doom/build.sh +2 -2
  456. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +1 -1
  457. package/examples/extensions/doom-overlay/index.ts +3 -3
  458. package/examples/extensions/dynamic-resources/dynamic.json +1 -1
  459. package/examples/extensions/dynamic-resources/index.ts +2 -2
  460. package/examples/extensions/dynamic-tools.ts +4 -4
  461. package/examples/extensions/event-bus.ts +8 -8
  462. package/examples/extensions/file-trigger.ts +3 -3
  463. package/examples/extensions/git-checkpoint.ts +7 -7
  464. package/examples/extensions/git-merge-and-resolve.ts +14 -14
  465. package/examples/extensions/github-issue-autocomplete.ts +6 -6
  466. package/examples/extensions/gondolin/index.ts +16 -16
  467. package/examples/extensions/gondolin/package-lock.json +2 -2
  468. package/examples/extensions/gondolin/package.json +1 -1
  469. package/examples/extensions/handoff.ts +2 -2
  470. package/examples/extensions/hello.ts +2 -2
  471. package/examples/extensions/hidden-thinking-label.ts +4 -4
  472. package/examples/extensions/inline-bash.ts +5 -5
  473. package/examples/extensions/input-transform-streaming.ts +5 -5
  474. package/examples/extensions/input-transform.ts +5 -5
  475. package/examples/extensions/interactive-shell.ts +3 -3
  476. package/examples/extensions/mac-system-theme.ts +5 -5
  477. package/examples/extensions/message-renderer.ts +4 -4
  478. package/examples/extensions/minimal-mode.ts +9 -9
  479. package/examples/extensions/modal-editor.ts +3 -3
  480. package/examples/extensions/model-status.ts +3 -3
  481. package/examples/extensions/notify.ts +5 -5
  482. package/examples/extensions/overlay-qa-tests.ts +20 -20
  483. package/examples/extensions/overlay-test.ts +3 -3
  484. package/examples/extensions/permission-gate.ts +2 -2
  485. package/examples/extensions/pirate.ts +4 -4
  486. package/examples/extensions/plan-mode/index.ts +22 -22
  487. package/examples/extensions/preset.ts +30 -30
  488. package/examples/extensions/prompt-customizer.ts +3 -3
  489. package/examples/extensions/protected-paths.ts +2 -2
  490. package/examples/extensions/provider-payload.ts +5 -5
  491. package/examples/extensions/qna.ts +2 -2
  492. package/examples/extensions/question.ts +2 -2
  493. package/examples/extensions/questionnaire.ts +2 -2
  494. package/examples/extensions/rainbow-editor.ts +3 -3
  495. package/examples/extensions/reload-runtime.ts +4 -4
  496. package/examples/extensions/rpc-demo.ts +10 -10
  497. package/examples/extensions/sandbox/index.ts +17 -17
  498. package/examples/extensions/sandbox/package-lock.json +2 -2
  499. package/examples/extensions/sandbox/package.json +1 -1
  500. package/examples/extensions/send-user-message.ts +13 -13
  501. package/examples/extensions/session-name.ts +4 -4
  502. package/examples/extensions/shutdown-command.ts +10 -10
  503. package/examples/extensions/snake.ts +3 -3
  504. package/examples/extensions/space-invaders.ts +3 -3
  505. package/examples/extensions/ssh.ts +12 -12
  506. package/examples/extensions/status-line.ts +4 -4
  507. package/examples/extensions/structured-output.ts +2 -2
  508. package/examples/extensions/subagent/README.md +13 -13
  509. package/examples/extensions/subagent/agents.ts +2 -2
  510. package/examples/extensions/subagent/index.ts +53 -21
  511. package/examples/extensions/summarize.ts +2 -2
  512. package/examples/extensions/system-prompt-header.ts +3 -3
  513. package/examples/extensions/tic-tac-toe.ts +15 -15
  514. package/examples/extensions/timed-confirm.ts +4 -4
  515. package/examples/extensions/titlebar-spinner.ts +9 -9
  516. package/examples/extensions/todo.ts +5 -5
  517. package/examples/extensions/tool-override.ts +5 -5
  518. package/examples/extensions/tools.ts +10 -10
  519. package/examples/extensions/trigger-compact.ts +3 -3
  520. package/examples/extensions/truncated-tool.ts +3 -3
  521. package/examples/extensions/widget-placement.ts +2 -2
  522. package/examples/extensions/with-deps/index.ts +2 -2
  523. package/examples/extensions/with-deps/package-lock.json +2 -2
  524. package/examples/extensions/with-deps/package.json +1 -1
  525. package/examples/extensions/working-indicator.ts +7 -7
  526. package/examples/extensions/working-message-test.ts +3 -3
  527. package/examples/sdk/01-minimal.ts +1 -1
  528. package/examples/sdk/03-custom-prompt.ts +1 -1
  529. package/examples/sdk/04-skills.ts +1 -1
  530. package/examples/sdk/05-tools.ts +1 -1
  531. package/examples/sdk/06-extensions.ts +11 -11
  532. package/examples/sdk/07-context-files.ts +2 -0
  533. package/examples/sdk/08-prompt-templates.ts +1 -1
  534. package/examples/sdk/09-api-keys-and-oauth.ts +2 -2
  535. package/examples/sdk/README.md +2 -2
  536. package/node_modules/@earendil-works/omk-agent-core/README.md +488 -0
  537. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts +24 -0
  538. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts.map +1 -0
  539. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js +553 -0
  540. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js.map +1 -0
  541. package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts +118 -0
  542. package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts.map +1 -0
  543. package/node_modules/@earendil-works/omk-agent-core/dist/agent.js +402 -0
  544. package/node_modules/@earendil-works/omk-agent-core/dist/agent.js.map +1 -0
  545. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts +95 -0
  546. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts.map +1 -0
  547. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js +996 -0
  548. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js.map +1 -0
  549. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts +53 -0
  550. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts.map +1 -0
  551. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js +175 -0
  552. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js.map +1 -0
  553. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts +117 -0
  554. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts.map +1 -0
  555. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js +568 -0
  556. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js.map +1 -0
  557. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts +25 -0
  558. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts.map +1 -0
  559. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js +131 -0
  560. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js.map +1 -0
  561. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts +51 -0
  562. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts.map +1 -0
  563. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js +510 -0
  564. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js.map +1 -0
  565. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts +51 -0
  566. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts.map +1 -0
  567. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js +102 -0
  568. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js.map +1 -0
  569. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts +48 -0
  570. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts.map +1 -0
  571. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js +230 -0
  572. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js.map +1 -0
  573. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts +26 -0
  574. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts.map +1 -0
  575. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js +101 -0
  576. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js.map +1 -0
  577. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts +36 -0
  578. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts.map +1 -0
  579. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js +273 -0
  580. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js.map +1 -0
  581. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts +18 -0
  582. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts.map +1 -0
  583. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js +42 -0
  584. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js.map +1 -0
  585. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts +25 -0
  586. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts.map +1 -0
  587. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js +114 -0
  588. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js.map +1 -0
  589. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts +11 -0
  590. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts.map +1 -0
  591. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js +39 -0
  592. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js.map +1 -0
  593. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts +33 -0
  594. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts.map +1 -0
  595. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js +210 -0
  596. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js.map +1 -0
  597. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts +2 -0
  598. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts.map +1 -0
  599. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js +50 -0
  600. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js.map +1 -0
  601. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts +44 -0
  602. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts.map +1 -0
  603. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js +311 -0
  604. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js.map +1 -0
  605. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts +3 -0
  606. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts.map +1 -0
  607. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js +30 -0
  608. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js.map +1 -0
  609. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts +616 -0
  610. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts.map +1 -0
  611. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js +94 -0
  612. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js.map +1 -0
  613. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts +14 -0
  614. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts.map +1 -0
  615. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js +126 -0
  616. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js.map +1 -0
  617. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts +70 -0
  618. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts.map +1 -0
  619. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js +297 -0
  620. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js.map +1 -0
  621. package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts +20 -0
  622. package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts.map +1 -0
  623. package/node_modules/@earendil-works/omk-agent-core/dist/index.js +25 -0
  624. package/node_modules/@earendil-works/omk-agent-core/dist/index.js.map +1 -0
  625. package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts +3 -0
  626. package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts.map +1 -0
  627. package/node_modules/@earendil-works/omk-agent-core/dist/node.js +3 -0
  628. package/node_modules/@earendil-works/omk-agent-core/dist/node.js.map +1 -0
  629. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts +69 -0
  630. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts.map +1 -0
  631. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js +278 -0
  632. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js.map +1 -0
  633. package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts +393 -0
  634. package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts.map +1 -0
  635. package/node_modules/@earendil-works/omk-agent-core/dist/types.js +2 -0
  636. package/node_modules/@earendil-works/omk-agent-core/dist/types.js.map +1 -0
  637. package/node_modules/@earendil-works/omk-agent-core/package.json +60 -0
  638. package/node_modules/@earendil-works/omk-ai/README.md +1389 -0
  639. package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts +20 -0
  640. package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts.map +1 -0
  641. package/node_modules/@earendil-works/omk-ai/dist/api-registry.js +44 -0
  642. package/node_modules/@earendil-works/omk-ai/dist/api-registry.js.map +1 -0
  643. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts +5 -0
  644. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts.map +1 -0
  645. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js +6 -0
  646. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js.map +1 -0
  647. package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts +3 -0
  648. package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts.map +1 -0
  649. package/node_modules/@earendil-works/omk-ai/dist/cli.js +130 -0
  650. package/node_modules/@earendil-works/omk-ai/dist/cli.js.map +1 -0
  651. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts +20 -0
  652. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts.map +1 -0
  653. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js +199 -0
  654. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js.map +1 -0
  655. package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts +10 -0
  656. package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts.map +1 -0
  657. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts +515 -0
  658. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts.map +1 -0
  659. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js +517 -0
  660. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js.map +1 -0
  661. package/node_modules/@earendil-works/omk-ai/dist/image-models.js +23 -0
  662. package/node_modules/@earendil-works/omk-ai/dist/image-models.js.map +1 -0
  663. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts +14 -0
  664. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts.map +1 -0
  665. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js +22 -0
  666. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js.map +1 -0
  667. package/node_modules/@earendil-works/omk-ai/dist/images.d.ts +4 -0
  668. package/node_modules/@earendil-works/omk-ai/dist/images.d.ts.map +1 -0
  669. package/node_modules/@earendil-works/omk-ai/dist/images.js +16 -0
  670. package/node_modules/@earendil-works/omk-ai/dist/images.js.map +1 -0
  671. package/node_modules/@earendil-works/omk-ai/dist/index.d.ts +33 -0
  672. package/node_modules/@earendil-works/omk-ai/dist/index.d.ts.map +1 -0
  673. package/node_modules/@earendil-works/omk-ai/dist/index.js +21 -0
  674. package/node_modules/@earendil-works/omk-ai/dist/index.js.map +1 -0
  675. package/node_modules/@earendil-works/omk-ai/dist/models.d.ts +18 -0
  676. package/node_modules/@earendil-works/omk-ai/dist/models.d.ts.map +1 -0
  677. package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts +18762 -0
  678. package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts.map +1 -0
  679. package/node_modules/@earendil-works/omk-ai/dist/models.generated.js +17197 -0
  680. package/node_modules/@earendil-works/omk-ai/dist/models.generated.js.map +1 -0
  681. package/node_modules/@earendil-works/omk-ai/dist/models.js +78 -0
  682. package/node_modules/@earendil-works/omk-ai/dist/models.js.map +1 -0
  683. package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts +2 -0
  684. package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts.map +1 -0
  685. package/node_modules/@earendil-works/omk-ai/dist/oauth.js +2 -0
  686. package/node_modules/@earendil-works/omk-ai/dist/oauth.js.map +1 -0
  687. package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts +39 -0
  688. package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts.map +1 -0
  689. package/node_modules/@earendil-works/omk-ai/dist/provider-network.js +170 -0
  690. package/node_modules/@earendil-works/omk-ai/dist/provider-network.js.map +1 -0
  691. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts +38 -0
  692. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts.map +1 -0
  693. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js +826 -0
  694. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js.map +1 -0
  695. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts +77 -0
  696. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts.map +1 -0
  697. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js +1123 -0
  698. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js.map +1 -0
  699. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts +15 -0
  700. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts.map +1 -0
  701. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js +221 -0
  702. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js.map +1 -0
  703. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts +13 -0
  704. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts.map +1 -0
  705. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js +26 -0
  706. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js.map +1 -0
  707. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts +56 -0
  708. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts.map +1 -0
  709. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js +368 -0
  710. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js.map +1 -0
  711. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts +8 -0
  712. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts.map +1 -0
  713. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js +29 -0
  714. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js.map +1 -0
  715. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts +70 -0
  716. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts.map +1 -0
  717. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js +331 -0
  718. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js.map +1 -0
  719. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts +15 -0
  720. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts.map +1 -0
  721. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js +442 -0
  722. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js.map +1 -0
  723. package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts +13 -0
  724. package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts.map +1 -0
  725. package/node_modules/@earendil-works/omk-ai/dist/providers/google.js +402 -0
  726. package/node_modules/@earendil-works/omk-ai/dist/providers/google.js.map +1 -0
  727. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts +3 -0
  728. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts.map +1 -0
  729. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js +128 -0
  730. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js.map +1 -0
  731. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts +4 -0
  732. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts.map +1 -0
  733. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js +34 -0
  734. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js.map +1 -0
  735. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts +25 -0
  736. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts.map +1 -0
  737. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js +534 -0
  738. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js.map +1 -0
  739. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts +30 -0
  740. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts.map +1 -0
  741. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js +1171 -0
  742. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js.map +1 -0
  743. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts +19 -0
  744. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts.map +1 -0
  745. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js +977 -0
  746. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js.map +1 -0
  747. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts +11 -0
  748. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts.map +1 -0
  749. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js +22 -0
  750. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js.map +1 -0
  751. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts +18 -0
  752. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts.map +1 -0
  753. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js +496 -0
  754. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js.map +1 -0
  755. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts +13 -0
  756. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts.map +1 -0
  757. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js +233 -0
  758. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js.map +1 -0
  759. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts +35 -0
  760. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts.map +1 -0
  761. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js +254 -0
  762. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js.map +1 -0
  763. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts +8 -0
  764. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts.map +1 -0
  765. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js +42 -0
  766. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js.map +1 -0
  767. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts +13 -0
  768. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts.map +1 -0
  769. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js +82 -0
  770. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js.map +1 -0
  771. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts +8 -0
  772. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts.map +1 -0
  773. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js +184 -0
  774. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js.map +1 -0
  775. package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts +4 -0
  776. package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts.map +1 -0
  777. package/node_modules/@earendil-works/omk-ai/dist/session-resources.js +22 -0
  778. package/node_modules/@earendil-works/omk-ai/dist/session-resources.js.map +1 -0
  779. package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts +8 -0
  780. package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts.map +1 -0
  781. package/node_modules/@earendil-works/omk-ai/dist/stream.js +77 -0
  782. package/node_modules/@earendil-works/omk-ai/dist/stream.js.map +1 -0
  783. package/node_modules/@earendil-works/omk-ai/dist/types.d.ts +570 -0
  784. package/node_modules/@earendil-works/omk-ai/dist/types.d.ts.map +1 -0
  785. package/node_modules/@earendil-works/omk-ai/dist/types.js +2 -0
  786. package/node_modules/@earendil-works/omk-ai/dist/types.js.map +1 -0
  787. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts +6 -0
  788. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts.map +1 -0
  789. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js +34 -0
  790. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js.map +1 -0
  791. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts +19 -0
  792. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts.map +1 -0
  793. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js +25 -0
  794. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js.map +1 -0
  795. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts +21 -0
  796. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts.map +1 -0
  797. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js +81 -0
  798. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js.map +1 -0
  799. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts +3 -0
  800. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts.map +1 -0
  801. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js +14 -0
  802. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js.map +1 -0
  803. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts +2 -0
  804. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts.map +1 -0
  805. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js +8 -0
  806. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js.map +1 -0
  807. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts +16 -0
  808. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts.map +1 -0
  809. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js +113 -0
  810. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js.map +1 -0
  811. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts +10 -0
  812. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts.map +1 -0
  813. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js +97 -0
  814. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js.map +1 -0
  815. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts +25 -0
  816. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts.map +1 -0
  817. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js +335 -0
  818. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js.map +1 -0
  819. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts +21 -0
  820. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts.map +1 -0
  821. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js +56 -0
  822. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js.map +1 -0
  823. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts +30 -0
  824. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -0
  825. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js +280 -0
  826. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js.map +1 -0
  827. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts +58 -0
  828. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts.map +1 -0
  829. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js +122 -0
  830. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js.map +1 -0
  831. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts +3 -0
  832. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts.map +1 -0
  833. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js +105 -0
  834. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js.map +1 -0
  835. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts +43 -0
  836. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -0
  837. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js +487 -0
  838. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js.map +1 -0
  839. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts +13 -0
  840. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts.map +1 -0
  841. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js +31 -0
  842. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js.map +1 -0
  843. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts +64 -0
  844. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts.map +1 -0
  845. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js +2 -0
  846. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js.map +1 -0
  847. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts +57 -0
  848. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts.map +1 -0
  849. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js +154 -0
  850. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js.map +1 -0
  851. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts +22 -0
  852. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts.map +1 -0
  853. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js +26 -0
  854. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js.map +1 -0
  855. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts +17 -0
  856. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts.map +1 -0
  857. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js +21 -0
  858. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js.map +1 -0
  859. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts +18 -0
  860. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts.map +1 -0
  861. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js +281 -0
  862. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js.map +1 -0
  863. package/node_modules/@earendil-works/omk-ai/package.json +106 -0
  864. package/node_modules/@earendil-works/omk-tui/README.md +791 -0
  865. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts +54 -0
  866. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts.map +1 -0
  867. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js +632 -0
  868. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js.map +1 -0
  869. package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts +22 -0
  870. package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts.map +1 -0
  871. package/node_modules/@earendil-works/omk-tui/dist/components/box.js +104 -0
  872. package/node_modules/@earendil-works/omk-tui/dist/components/box.js.map +1 -0
  873. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts +22 -0
  874. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts.map +1 -0
  875. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js +35 -0
  876. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js.map +1 -0
  877. package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts +249 -0
  878. package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts.map +1 -0
  879. package/node_modules/@earendil-works/omk-tui/dist/components/editor.js +1857 -0
  880. package/node_modules/@earendil-works/omk-tui/dist/components/editor.js.map +1 -0
  881. package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts +28 -0
  882. package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts.map +1 -0
  883. package/node_modules/@earendil-works/omk-tui/dist/components/image.js +89 -0
  884. package/node_modules/@earendil-works/omk-tui/dist/components/image.js.map +1 -0
  885. package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts +37 -0
  886. package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts.map +1 -0
  887. package/node_modules/@earendil-works/omk-tui/dist/components/input.js +378 -0
  888. package/node_modules/@earendil-works/omk-tui/dist/components/input.js.map +1 -0
  889. package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts +31 -0
  890. package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts.map +1 -0
  891. package/node_modules/@earendil-works/omk-tui/dist/components/loader.js +69 -0
  892. package/node_modules/@earendil-works/omk-tui/dist/components/loader.js.map +1 -0
  893. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts +96 -0
  894. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts.map +1 -0
  895. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js +644 -0
  896. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js.map +1 -0
  897. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts +50 -0
  898. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts.map +1 -0
  899. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js +159 -0
  900. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js.map +1 -0
  901. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts +50 -0
  902. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts.map +1 -0
  903. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js +185 -0
  904. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js.map +1 -0
  905. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts +12 -0
  906. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts.map +1 -0
  907. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js +23 -0
  908. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js.map +1 -0
  909. package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts +19 -0
  910. package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts.map +1 -0
  911. package/node_modules/@earendil-works/omk-tui/dist/components/text.js +89 -0
  912. package/node_modules/@earendil-works/omk-tui/dist/components/text.js.map +1 -0
  913. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts +13 -0
  914. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts.map +1 -0
  915. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js +51 -0
  916. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js.map +1 -0
  917. package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts +39 -0
  918. package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts.map +1 -0
  919. package/node_modules/@earendil-works/omk-tui/dist/editor-component.js +2 -0
  920. package/node_modules/@earendil-works/omk-tui/dist/editor-component.js.map +1 -0
  921. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts +16 -0
  922. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts.map +1 -0
  923. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js +110 -0
  924. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js.map +1 -0
  925. package/node_modules/@earendil-works/omk-tui/dist/index.d.ts +23 -0
  926. package/node_modules/@earendil-works/omk-tui/dist/index.d.ts.map +1 -0
  927. package/node_modules/@earendil-works/omk-tui/dist/index.js +32 -0
  928. package/node_modules/@earendil-works/omk-tui/dist/index.js.map +1 -0
  929. package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts +212 -0
  930. package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts.map +1 -0
  931. package/node_modules/@earendil-works/omk-tui/dist/keybindings.js +252 -0
  932. package/node_modules/@earendil-works/omk-tui/dist/keybindings.js.map +1 -0
  933. package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts +184 -0
  934. package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts.map +1 -0
  935. package/node_modules/@earendil-works/omk-tui/dist/keys.js +1173 -0
  936. package/node_modules/@earendil-works/omk-tui/dist/keys.js.map +1 -0
  937. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts +28 -0
  938. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts.map +1 -0
  939. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js +44 -0
  940. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js.map +1 -0
  941. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts +3 -0
  942. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts.map +1 -0
  943. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js +53 -0
  944. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js.map +1 -0
  945. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts +50 -0
  946. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts.map +1 -0
  947. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js +361 -0
  948. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js.map +1 -0
  949. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts +90 -0
  950. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts.map +1 -0
  951. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js +366 -0
  952. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js.map +1 -0
  953. package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts +113 -0
  954. package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts.map +1 -0
  955. package/node_modules/@earendil-works/omk-tui/dist/terminal.js +472 -0
  956. package/node_modules/@earendil-works/omk-tui/dist/terminal.js.map +1 -0
  957. package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts +242 -0
  958. package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts.map +1 -0
  959. package/node_modules/@earendil-works/omk-tui/dist/tui.js +1221 -0
  960. package/node_modules/@earendil-works/omk-tui/dist/tui.js.map +1 -0
  961. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts +17 -0
  962. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts.map +1 -0
  963. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js +25 -0
  964. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js.map +1 -0
  965. package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts +84 -0
  966. package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts.map +1 -0
  967. package/node_modules/@earendil-works/omk-tui/dist/utils.js +1032 -0
  968. package/node_modules/@earendil-works/omk-tui/dist/utils.js.map +1 -0
  969. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts +25 -0
  970. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts.map +1 -0
  971. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js +96 -0
  972. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js.map +1 -0
  973. package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
  974. package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
  975. package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
  976. package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
  977. package/node_modules/@earendil-works/omk-tui/package.json +47 -0
  978. package/package.json +22 -6
  979. package/dist/utils/pi-user-agent.d.ts +0 -2
  980. package/dist/utils/pi-user-agent.d.ts.map +0 -1
  981. package/dist/utils/pi-user-agent.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-graph-memory-store.js","sourceRoot":"","sources":["../../src/core/context-graph-memory-store.ts"],"names":[],"mappings":"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","sourcesContent":["export type MemoryGenerationStatus = \"active\" | \"archived\";\nexport type MemoryAssertionKind = \"observed\" | \"inferred\" | \"declared\";\nexport type MemoryAssertionStatus = \"active\" | \"superseded\" | \"retracted\";\n\nexport type AllowedMemoryCategory =\n\t| \"decision\"\n\t| \"verified_fact\"\n\t| \"resolved_error\"\n\t| \"user_preference\"\n\t| \"unresolved_task\"\n\t| \"test_evidence\"\n\t| \"build_evidence\";\n\nexport type ForbiddenMemoryCategory = \"raw_conversation\" | \"raw_shell_output\" | \"speculation\" | \"secret\";\nexport type MemoryCategory = AllowedMemoryCategory | ForbiddenMemoryCategory | (string & {});\n\nexport type MemoryJsonValue =\n\t| string\n\t| number\n\t| boolean\n\t| null\n\t| readonly MemoryJsonValue[]\n\t| { readonly [key: string]: MemoryJsonValue | undefined };\n\nexport type MemoryTemporalInstant = string | Date;\n\nexport interface MemoryTemporalInterval {\n\treadonly from: MemoryTemporalInstant;\n\treadonly to?: MemoryTemporalInstant;\n}\n\nexport interface MemoryScope {\n\treadonly workspaceId: string;\n\treadonly repoSha: string;\n\treadonly branch: string;\n}\n\nexport interface MemoryProvenance {\n\treadonly sourceKind: \"compiler\" | \"test\" | \"git\" | \"tool\" | \"user\" | \"document\" | \"llm\" | \"heuristic\";\n\treadonly sourceId: string;\n\treadonly observedAt?: MemoryTemporalInstant;\n\treadonly excerpt?: string;\n}\n\nexport interface MemoryGeneration {\n\treadonly id: string;\n\treadonly scope: MemoryScope;\n\treadonly status: MemoryGenerationStatus;\n\treadonly createdAt: MemoryTemporalInstant;\n\treadonly label?: string;\n}\n\nexport interface MemoryEntity {\n\treadonly id: string;\n\treadonly scope: MemoryScope;\n\treadonly generationId: string;\n\treadonly entityType: string;\n\treadonly name: string;\n\treadonly aliases?: readonly string[];\n\treadonly validTime: MemoryTemporalInterval;\n\treadonly transactionTime: MemoryTemporalInterval;\n}\n\nexport interface MemoryAssertion {\n\treadonly id: string;\n\treadonly scope: MemoryScope;\n\treadonly generationId: string;\n\treadonly subjectId: string;\n\treadonly predicate: string;\n\treadonly object: MemoryJsonValue;\n\treadonly category: MemoryCategory;\n\treadonly assertionKind: MemoryAssertionKind;\n\treadonly status: MemoryAssertionStatus;\n\treadonly confidence: number;\n\treadonly functional?: boolean;\n\treadonly validTime: MemoryTemporalInterval;\n\treadonly transactionTime: MemoryTemporalInterval;\n\treadonly provenance?: readonly MemoryProvenance[];\n}\n\nexport interface MemoryEpisode {\n\treadonly id: string;\n\treadonly scope: MemoryScope;\n\treadonly generationId: string;\n\treadonly category: MemoryCategory;\n\treadonly title: string;\n\treadonly occurredAt: MemoryTemporalInstant;\n\treadonly validTime: MemoryTemporalInterval;\n\treadonly transactionTime: MemoryTemporalInterval;\n\treadonly provenance?: readonly MemoryProvenance[];\n}\n\nexport type MemoryScopeValidationReason = \"eligible\" | \"missing_workspace_id\" | \"missing_repo_sha\" | \"missing_branch\";\nexport type MemoryScopeValidationDecision =\n\t| { readonly ok: true; readonly reason: \"eligible\" }\n\t| { readonly ok: false; readonly reason: Exclude<MemoryScopeValidationReason, \"eligible\"> };\n\nexport type MemoryCategoryValidationReason = \"eligible\" | \"forbidden_category\" | \"unsupported_category\";\nexport type MemoryCategoryValidationDecision =\n\t| { readonly ok: true; readonly reason: \"eligible\" }\n\t| { readonly ok: false; readonly reason: Exclude<MemoryCategoryValidationReason, \"eligible\"> };\n\nexport interface ListMemoryAssertionsInput {\n\treadonly scope: MemoryScope;\n\treadonly categories?: readonly MemoryCategory[];\n\treadonly statuses?: readonly MemoryAssertionStatus[];\n\treadonly validAt?: MemoryTemporalInstant;\n\treadonly transactionAsOf?: MemoryTemporalInstant;\n\treadonly includeInactiveGenerations?: boolean;\n}\n\nexport interface MemorySearchInput {\n\treadonly scope: MemoryScope;\n\treadonly category: MemoryCategory;\n\treadonly query: string;\n\treadonly statuses?: readonly MemoryAssertionStatus[];\n\treadonly validAt?: MemoryTemporalInstant;\n\treadonly transactionAsOf?: MemoryTemporalInstant;\n\treadonly limit?: number;\n\treadonly includeInactiveGenerations?: boolean;\n}\n\nexport interface MemorySearchHit {\n\treadonly assertion: MemoryAssertion;\n\treadonly score: number;\n\treadonly matchedTokens: readonly string[];\n}\n\nexport interface FunctionalConflictOptions {\n\treadonly functionalPredicates?: readonly string[];\n\treadonly statuses?: readonly MemoryAssertionStatus[];\n}\n\nexport interface MemoryAssertionConflict {\n\treadonly subjectId: string;\n\treadonly predicate: string;\n\treadonly assertionIds: readonly [string, string];\n\treadonly objectValues: readonly [MemoryJsonValue, MemoryJsonValue];\n\treadonly validOverlap: MemoryTemporalInterval;\n}\n\nexport interface ConfidenceReinforcementInput {\n\treadonly currentConfidence: number;\n\treadonly evidenceConfidence: number;\n\treadonly weight?: number;\n}\n\nexport interface ContextGraphMemoryStore {\n\tputGeneration(generation: MemoryGeneration): Promise<MemoryGeneration>;\n\tputEntity(entity: MemoryEntity): Promise<MemoryEntity>;\n\tputAssertion(assertion: MemoryAssertion): Promise<MemoryAssertion>;\n\tputEpisode(episode: MemoryEpisode): Promise<MemoryEpisode>;\n\tgetGeneration(id: string): Promise<MemoryGeneration | undefined>;\n\tlistAssertions(input: ListMemoryAssertionsInput): Promise<MemoryAssertion[]>;\n\tmemory_search(input: MemorySearchInput): Promise<MemorySearchHit[]>;\n}\n\nconst ALLOWED_MEMORY_CATEGORIES = new Set<string>([\n\t\"decision\",\n\t\"verified_fact\",\n\t\"resolved_error\",\n\t\"user_preference\",\n\t\"unresolved_task\",\n\t\"test_evidence\",\n\t\"build_evidence\",\n]);\n\nconst FORBIDDEN_MEMORY_CATEGORIES = new Set<string>([\"raw_conversation\", \"raw_shell_output\", \"speculation\", \"secret\"]);\nconst DEFAULT_ASSERTION_STATUSES: readonly MemoryAssertionStatus[] = [\"active\"];\n\nexport function validateMemoryScope(scope: MemoryScope): MemoryScopeValidationDecision {\n\tif (scope.workspaceId.trim().length === 0) return { ok: false, reason: \"missing_workspace_id\" };\n\tif (scope.repoSha.trim().length === 0) return { ok: false, reason: \"missing_repo_sha\" };\n\tif (scope.branch.trim().length === 0) return { ok: false, reason: \"missing_branch\" };\n\treturn { ok: true, reason: \"eligible\" };\n}\n\nexport function validateMemoryCategory(category: MemoryCategory): MemoryCategoryValidationDecision {\n\tconst normalized = category.trim();\n\tif (FORBIDDEN_MEMORY_CATEGORIES.has(normalized)) return { ok: false, reason: \"forbidden_category\" };\n\tif (!ALLOWED_MEMORY_CATEGORIES.has(normalized)) return { ok: false, reason: \"unsupported_category\" };\n\treturn { ok: true, reason: \"eligible\" };\n}\n\nexport function reinforceAssertionConfidence(input: ConfidenceReinforcementInput): number {\n\tconst currentConfidence = clamp01(input.currentConfidence);\n\tconst evidenceConfidence = clamp01(input.evidenceConfidence);\n\tconst weight = clamp01(input.weight ?? 1);\n\treturn clamp01(currentConfidence + (1 - currentConfidence) * evidenceConfidence * weight);\n}\n\nexport function detectFunctionalAssertionConflicts(\n\tassertions: readonly MemoryAssertion[],\n\toptions: FunctionalConflictOptions = {},\n): MemoryAssertionConflict[] {\n\tconst functionalPredicates = new Set(options.functionalPredicates ?? []);\n\tconst statuses = new Set(options.statuses ?? DEFAULT_ASSERTION_STATUSES);\n\tconst candidates = [...assertions]\n\t\t.filter((candidate) => statuses.has(candidate.status) && isFunctionalAssertion(candidate, functionalPredicates))\n\t\t.sort(compareAssertionIds);\n\tconst conflicts: MemoryAssertionConflict[] = [];\n\n\tfor (const [leftIndex, left] of candidates.entries()) {\n\t\tfor (const right of candidates.slice(leftIndex + 1)) {\n\t\t\tif (!canConflict(left, right)) continue;\n\t\t\tconst validOverlap = getIntervalOverlap(left.validTime, right.validTime);\n\t\t\tif (!validOverlap) continue;\n\t\t\tconflicts.push({\n\t\t\t\tsubjectId: left.subjectId,\n\t\t\t\tpredicate: left.predicate,\n\t\t\t\tassertionIds: [left.id, right.id],\n\t\t\t\tobjectValues: [left.object, right.object],\n\t\t\t\tvalidOverlap,\n\t\t\t});\n\t\t}\n\t}\n\n\treturn conflicts.sort(\n\t\t(a, b) =>\n\t\t\ta.assertionIds[0].localeCompare(b.assertionIds[0]) || a.assertionIds[1].localeCompare(b.assertionIds[1]),\n\t);\n}\n\nexport class InMemoryContextGraphMemoryStore implements ContextGraphMemoryStore {\n\tprivate readonly generations = new Map<string, MemoryGeneration>();\n\tprivate readonly entities = new Map<string, MemoryEntity>();\n\tprivate readonly assertions = new Map<string, MemoryAssertion>();\n\tprivate readonly episodes = new Map<string, MemoryEpisode>();\n\n\tasync putGeneration(generation: MemoryGeneration): Promise<MemoryGeneration> {\n\t\tassertValidScope(generation.scope);\n\t\tassertNonEmptyId(generation.id, \"generation id\");\n\t\tparseInstant(generation.createdAt, \"generation createdAt\");\n\t\tconst record = cloneGeneration(generation);\n\t\tthis.generations.set(record.id, record);\n\t\treturn cloneGeneration(record);\n\t}\n\n\tasync putEntity(entity: MemoryEntity): Promise<MemoryEntity> {\n\t\tassertValidScope(entity.scope);\n\t\tassertNonEmptyId(entity.id, \"entity id\");\n\t\tthis.assertGenerationScope(entity.generationId, entity.scope);\n\t\tassertValidInterval(entity.validTime, \"entity validTime\");\n\t\tassertValidInterval(entity.transactionTime, \"entity transactionTime\");\n\t\tconst record = cloneEntity(entity);\n\t\tthis.entities.set(record.id, record);\n\t\treturn cloneEntity(record);\n\t}\n\n\tasync putAssertion(assertion: MemoryAssertion): Promise<MemoryAssertion> {\n\t\tassertValidScope(assertion.scope);\n\t\tassertNonEmptyId(assertion.id, \"assertion id\");\n\t\tassertAllowedCategory(assertion.category);\n\t\tassertValidConfidence(assertion.confidence);\n\t\tassertProvenance(assertion);\n\t\tthis.assertGenerationScope(assertion.generationId, assertion.scope);\n\t\tassertValidInterval(assertion.validTime, \"assertion validTime\");\n\t\tassertValidInterval(assertion.transactionTime, \"assertion transactionTime\");\n\t\tconst record = cloneAssertion(assertion);\n\t\tthis.assertions.set(record.id, record);\n\t\treturn cloneAssertion(record);\n\t}\n\n\tasync putEpisode(episode: MemoryEpisode): Promise<MemoryEpisode> {\n\t\tassertValidScope(episode.scope);\n\t\tassertNonEmptyId(episode.id, \"episode id\");\n\t\tassertAllowedCategory(episode.category);\n\t\tparseInstant(episode.occurredAt, \"episode occurredAt\");\n\t\tthis.assertGenerationScope(episode.generationId, episode.scope);\n\t\tassertValidInterval(episode.validTime, \"episode validTime\");\n\t\tassertValidInterval(episode.transactionTime, \"episode transactionTime\");\n\t\tconst record = cloneEpisode(episode);\n\t\tthis.episodes.set(record.id, record);\n\t\treturn cloneEpisode(record);\n\t}\n\n\tasync getGeneration(id: string): Promise<MemoryGeneration | undefined> {\n\t\tconst generation = this.generations.get(id);\n\t\treturn generation ? cloneGeneration(generation) : undefined;\n\t}\n\n\tasync listAssertions(input: ListMemoryAssertionsInput): Promise<MemoryAssertion[]> {\n\t\tassertValidScope(input.scope);\n\t\tfor (const category of input.categories ?? []) {\n\t\t\tassertAllowedCategory(category);\n\t\t}\n\t\tconst categories = input.categories ? new Set(input.categories) : undefined;\n\t\tconst statuses = new Set(input.statuses ?? DEFAULT_ASSERTION_STATUSES);\n\t\tconst activeGenerationIds = this.getGenerationIds(input.scope, \"active\");\n\t\tconst filtered = [...this.assertions.values()]\n\t\t\t.filter((assertion) => sameScope(assertion.scope, input.scope))\n\t\t\t.filter((assertion) => categories === undefined || categories.has(assertion.category))\n\t\t\t.filter((assertion) => statuses.has(assertion.status))\n\t\t\t.filter(\n\t\t\t\t(assertion) => input.includeInactiveGenerations === true || activeGenerationIds.has(assertion.generationId),\n\t\t\t)\n\t\t\t.filter((assertion) => matchesValidTime(assertion.validTime, input.validAt))\n\t\t\t.filter((assertion) => matchesTransactionTime(assertion.transactionTime, input.transactionAsOf))\n\t\t\t.sort(compareAssertionIds)\n\t\t\t.map(cloneAssertion);\n\t\treturn filtered;\n\t}\n\n\tasync memory_search(input: MemorySearchInput): Promise<MemorySearchHit[]> {\n\t\tassertAllowedCategory(input.category);\n\t\tconst queryTokens = uniqueTokens(input.query);\n\t\tconst assertions = await this.listAssertions({\n\t\t\tscope: input.scope,\n\t\t\tcategories: [input.category],\n\t\t\tstatuses: input.statuses,\n\t\t\tvalidAt: input.validAt,\n\t\t\ttransactionAsOf: input.transactionAsOf,\n\t\t\tincludeInactiveGenerations: input.includeInactiveGenerations,\n\t\t});\n\t\tconst hits = assertions\n\t\t\t.map((assertion) => scoreSearchAssertion(assertion, input.query, queryTokens))\n\t\t\t.filter((hit) => queryTokens.length === 0 || hit.score > 0)\n\t\t\t.sort(compareSearchHits);\n\t\tconst limit = input.limit === undefined ? hits.length : Math.max(0, Math.floor(input.limit));\n\t\treturn hits.slice(0, limit);\n\t}\n\n\tprivate assertGenerationScope(generationId: string, scope: MemoryScope): void {\n\t\tconst generation = this.generations.get(generationId);\n\t\tif (!generation) throw new Error(`memory generation not found: ${generationId}`);\n\t\tif (!sameScope(generation.scope, scope)) throw new Error(`memory generation scope mismatch: ${generationId}`);\n\t}\n\n\tprivate getGenerationIds(scope: MemoryScope, status: MemoryGenerationStatus): Set<string> {\n\t\treturn new Set(\n\t\t\t[...this.generations.values()]\n\t\t\t\t.filter((generation) => generation.status === status && sameScope(generation.scope, scope))\n\t\t\t\t.map((generation) => generation.id),\n\t\t);\n\t}\n}\n\nfunction assertValidScope(scope: MemoryScope): void {\n\tconst decision = validateMemoryScope(scope);\n\tif (decision.ok) return;\n\tthrow new Error(`invalid memory scope: missing ${formatScopeReason(decision.reason)}`);\n}\n\nfunction assertAllowedCategory(category: MemoryCategory): void {\n\tconst decision = validateMemoryCategory(category);\n\tif (decision.ok) return;\n\tif (decision.reason === \"forbidden_category\") throw new Error(`forbidden memory category: ${category}`);\n\tthrow new Error(`unsupported memory category: ${category}`);\n}\n\nfunction assertProvenance(assertion: MemoryAssertion): void {\n\tif (assertion.assertionKind !== \"observed\" && assertion.assertionKind !== \"inferred\") return;\n\tconst provenance = assertion.provenance ?? [];\n\tif (provenance.length === 0 || provenance.some((entry) => entry.sourceId.trim().length === 0)) {\n\t\tthrow new Error(\"provenance is required for observed and inferred assertions\");\n\t}\n}\n\nfunction assertValidConfidence(confidence: number): void {\n\tif (!Number.isFinite(confidence) || confidence < 0 || confidence > 1) {\n\t\tthrow new Error(\"assertion confidence must be between 0 and 1\");\n\t}\n}\n\nfunction assertNonEmptyId(id: string, label: string): void {\n\tif (id.trim().length === 0) throw new Error(`missing ${label}`);\n}\n\nfunction assertValidInterval(interval: MemoryTemporalInterval, label: string): void {\n\tconst from = parseInstant(interval.from, `${label}.from`);\n\tconst to = interval.to === undefined ? Number.POSITIVE_INFINITY : parseInstant(interval.to, `${label}.to`);\n\tif (to <= from) throw new Error(`${label} must have to greater than from`);\n}\n\nfunction parseInstant(instant: MemoryTemporalInstant, label: string): number {\n\tconst timestamp = instant instanceof Date ? instant.getTime() : Date.parse(instant);\n\tif (!Number.isFinite(timestamp)) throw new Error(`invalid temporal instant: ${label}`);\n\treturn timestamp;\n}\n\nfunction matchesValidTime(interval: MemoryTemporalInterval, validAt: MemoryTemporalInstant | undefined): boolean {\n\tif (validAt === undefined) return true;\n\treturn intervalContains(interval, parseInstant(validAt, \"validAt\"));\n}\n\nfunction matchesTransactionTime(\n\tinterval: MemoryTemporalInterval,\n\ttransactionAsOf: MemoryTemporalInstant | undefined,\n): boolean {\n\tif (transactionAsOf === undefined) return interval.to === undefined;\n\treturn intervalContains(interval, parseInstant(transactionAsOf, \"transactionAsOf\"));\n}\n\nfunction intervalContains(interval: MemoryTemporalInterval, timestamp: number): boolean {\n\tconst from = parseInstant(interval.from, \"interval.from\");\n\tconst to = interval.to === undefined ? Number.POSITIVE_INFINITY : parseInstant(interval.to, \"interval.to\");\n\treturn from <= timestamp && timestamp < to;\n}\n\nfunction getIntervalOverlap(\n\tleft: MemoryTemporalInterval,\n\tright: MemoryTemporalInterval,\n): MemoryTemporalInterval | undefined {\n\tconst leftFrom = parseInstant(left.from, \"left validTime.from\");\n\tconst leftTo = left.to === undefined ? Number.POSITIVE_INFINITY : parseInstant(left.to, \"left validTime.to\");\n\tconst rightFrom = parseInstant(right.from, \"right validTime.from\");\n\tconst rightTo = right.to === undefined ? Number.POSITIVE_INFINITY : parseInstant(right.to, \"right validTime.to\");\n\tconst overlapFrom = Math.max(leftFrom, rightFrom);\n\tconst overlapTo = Math.min(leftTo, rightTo);\n\tif (overlapTo <= overlapFrom) return undefined;\n\treturn {\n\t\tfrom: new Date(overlapFrom).toISOString(),\n\t\tto: Number.isFinite(overlapTo) ? new Date(overlapTo).toISOString() : undefined,\n\t};\n}\n\nfunction isFunctionalAssertion(assertion: MemoryAssertion, functionalPredicates: ReadonlySet<string>): boolean {\n\treturn assertion.functional === true || functionalPredicates.has(assertion.predicate);\n}\n\nfunction canConflict(left: MemoryAssertion, right: MemoryAssertion): boolean {\n\treturn (\n\t\tsameScope(left.scope, right.scope) &&\n\t\tleft.subjectId === right.subjectId &&\n\t\tleft.predicate === right.predicate &&\n\t\tcanonicalJsonStringify(left.object) !== canonicalJsonStringify(right.object)\n\t);\n}\n\nfunction scoreSearchAssertion(\n\tassertion: MemoryAssertion,\n\tquery: string,\n\tqueryTokens: readonly string[],\n): MemorySearchHit {\n\tconst searchText = getAssertionSearchText(assertion);\n\tconst searchTokens = new Set(tokenize(searchText));\n\tconst matchedTokens = queryTokens.filter((token) => searchTokens.has(token));\n\tconst coverageScore = queryTokens.length === 0 ? 1 : matchedTokens.length / queryTokens.length;\n\tconst normalizedQuery = normalizeSearchText(query);\n\tconst phraseBonus =\n\t\tnormalizedQuery.length > 0 && normalizeSearchText(searchText).includes(normalizedQuery) ? 0.1 : 0;\n\treturn {\n\t\tassertion,\n\t\tscore: clamp01(coverageScore + phraseBonus),\n\t\tmatchedTokens,\n\t};\n}\n\nfunction getAssertionSearchText(assertion: MemoryAssertion): string {\n\treturn [\n\t\tassertion.id,\n\t\tassertion.subjectId,\n\t\tassertion.predicate,\n\t\tassertion.category,\n\t\tcanonicalJsonStringify(assertion.object),\n\t]\n\t\t.filter((part) => part.length > 0)\n\t\t.join(\"\\n\");\n}\n\nfunction uniqueTokens(text: string): string[] {\n\treturn [...new Set(tokenize(text))];\n}\n\nfunction tokenize(text: string): string[] {\n\treturn normalizeSearchText(text).match(/[\\p{L}\\p{N}]+/gu) ?? [];\n}\n\nfunction normalizeSearchText(text: string): string {\n\treturn text\n\t\t.replace(/([\\p{Ll}\\d])([\\p{Lu}])/gu, \"$1 $2\")\n\t\t.normalize(\"NFKC\")\n\t\t.toLowerCase();\n}\n\nfunction canonicalJsonStringify(value: MemoryJsonValue): string {\n\tif (value === null) return \"null\";\n\tif (typeof value === \"string\" || typeof value === \"boolean\") return JSON.stringify(value);\n\tif (typeof value === \"number\") return Number.isFinite(value) ? JSON.stringify(value) : \"null\";\n\tif (isMemoryJsonArray(value)) return `[${value.map((item) => canonicalJsonStringify(item)).join(\",\")}]`;\n\tconst record: { readonly [key: string]: MemoryJsonValue | undefined } = value;\n\tconst entries = Object.keys(record)\n\t\t.filter((key) => record[key] !== undefined)\n\t\t.sort()\n\t\t.map((key) => `${JSON.stringify(key)}:${canonicalJsonStringify(record[key] ?? null)}`);\n\treturn `{${entries.join(\",\")}}`;\n}\n\nfunction isMemoryJsonArray(value: MemoryJsonValue): value is readonly MemoryJsonValue[] {\n\treturn Array.isArray(value);\n}\n\nfunction compareAssertionIds(left: MemoryAssertion, right: MemoryAssertion): number {\n\treturn left.id.localeCompare(right.id);\n}\n\nfunction compareSearchHits(left: MemorySearchHit, right: MemorySearchHit): number {\n\treturn (\n\t\tright.score - left.score ||\n\t\tright.assertion.confidence - left.assertion.confidence ||\n\t\tleft.assertion.id.localeCompare(right.assertion.id)\n\t);\n}\n\nfunction sameScope(left: MemoryScope, right: MemoryScope): boolean {\n\treturn left.workspaceId === right.workspaceId && left.repoSha === right.repoSha && left.branch === right.branch;\n}\n\nfunction formatScopeReason(reason: Exclude<MemoryScopeValidationReason, \"eligible\">): string {\n\tif (reason === \"missing_workspace_id\") return \"workspaceId\";\n\tif (reason === \"missing_repo_sha\") return \"repoSha\";\n\treturn \"branch\";\n}\n\nfunction cloneScope(scope: MemoryScope): MemoryScope {\n\treturn { workspaceId: scope.workspaceId, repoSha: scope.repoSha, branch: scope.branch };\n}\n\nfunction cloneInterval(interval: MemoryTemporalInterval): MemoryTemporalInterval {\n\treturn { from: interval.from, to: interval.to };\n}\n\nfunction cloneProvenance(provenance: readonly MemoryProvenance[] | undefined): MemoryProvenance[] | undefined {\n\treturn provenance?.map((entry) => ({ ...entry }));\n}\n\nfunction cloneGeneration(generation: MemoryGeneration): MemoryGeneration {\n\treturn { ...generation, scope: cloneScope(generation.scope) };\n}\n\nfunction cloneEntity(entity: MemoryEntity): MemoryEntity {\n\treturn {\n\t\t...entity,\n\t\tscope: cloneScope(entity.scope),\n\t\taliases: entity.aliases ? [...entity.aliases] : undefined,\n\t\tvalidTime: cloneInterval(entity.validTime),\n\t\ttransactionTime: cloneInterval(entity.transactionTime),\n\t};\n}\n\nfunction cloneAssertion(assertion: MemoryAssertion): MemoryAssertion {\n\treturn {\n\t\t...assertion,\n\t\tscope: cloneScope(assertion.scope),\n\t\tobject: cloneJsonValue(assertion.object),\n\t\tvalidTime: cloneInterval(assertion.validTime),\n\t\ttransactionTime: cloneInterval(assertion.transactionTime),\n\t\tprovenance: cloneProvenance(assertion.provenance),\n\t};\n}\n\nfunction cloneJsonValue(value: MemoryJsonValue): MemoryJsonValue {\n\tif (value === null || typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n\t\treturn value;\n\t}\n\tif (isMemoryJsonArray(value)) return value.map((item) => cloneJsonValue(item));\n\tconst clone: Record<string, MemoryJsonValue> = {};\n\tfor (const key of Object.keys(value)) {\n\t\tconst item = value[key];\n\t\tif (item !== undefined) clone[key] = cloneJsonValue(item);\n\t}\n\treturn clone;\n}\n\nfunction cloneEpisode(episode: MemoryEpisode): MemoryEpisode {\n\treturn {\n\t\t...episode,\n\t\tscope: cloneScope(episode.scope),\n\t\tvalidTime: cloneInterval(episode.validTime),\n\t\ttransactionTime: cloneInterval(episode.transactionTime),\n\t\tprovenance: cloneProvenance(episode.provenance),\n\t};\n}\n\nfunction clamp01(value: number): number {\n\tif (!Number.isFinite(value) || value <= 0) return 0;\n\tif (value >= 1) return 1;\n\treturn value;\n}\n"]}
@@ -0,0 +1,104 @@
1
+ import { type JsonObject } from "./exact-cache-policy.ts";
2
+ export declare const ONTOLOGY_GENERATION_ID_VERSION = "v1";
3
+ export declare const ONTOLOGY_GENERATION_CACHE_KEY_VERSION = "v1";
4
+ export declare const ONTOLOGY_GENERATION_STATUSES: readonly ["draft", "active", "superseded", "failed"];
5
+ export type OntologyGenerationStatus = (typeof ONTOLOGY_GENERATION_STATUSES)[number];
6
+ export type UaGraphFreshnessReason = "fresh" | "metadata_missing" | "schema_mismatch" | "graph_commit_mismatch" | "meta_commit_mismatch" | "branch_mismatch" | "graph_hash_mismatch" | "dirty_covered_paths";
7
+ export interface CurrentRepositoryMetadata {
8
+ readonly repoSha: string;
9
+ readonly branch: string;
10
+ readonly ontologySchemaVersion?: string;
11
+ readonly schemaVersion?: string;
12
+ readonly uaGraphSha256?: string;
13
+ readonly graphSha256?: string;
14
+ }
15
+ export interface UaGraphMetadata {
16
+ readonly schemaVersion: string;
17
+ readonly branch: string;
18
+ readonly graphRepoSha?: string;
19
+ readonly graphCommitSha?: string;
20
+ readonly repoSha?: string;
21
+ readonly metadataRepoSha?: string;
22
+ readonly metaRepoSha?: string;
23
+ readonly uaGraphSha256?: string;
24
+ readonly graphSha256?: string;
25
+ readonly coveredPaths?: readonly string[];
26
+ }
27
+ export interface UaGraphFreshnessDiagnostic {
28
+ readonly reason: Exclude<UaGraphFreshnessReason, "fresh">;
29
+ readonly field: string;
30
+ readonly expected?: string;
31
+ readonly actual?: string;
32
+ readonly dirtyCoveredPaths?: readonly string[];
33
+ }
34
+ export interface UaGraphFreshnessEvaluation {
35
+ readonly fresh: boolean;
36
+ readonly reasons: readonly UaGraphFreshnessReason[];
37
+ readonly diagnostics: readonly UaGraphFreshnessDiagnostic[];
38
+ readonly dirtyCoveredPaths: readonly string[];
39
+ }
40
+ export interface OntologyGenerationIdentityInput {
41
+ readonly schemaVersion: string;
42
+ readonly registryVersion: string;
43
+ readonly uaGraphSha256: string;
44
+ readonly workspaceId: string;
45
+ readonly repositoryId: string;
46
+ readonly repoSha: string;
47
+ readonly branch: string;
48
+ }
49
+ export interface OntologyGenerationIdMaterial extends JsonObject {
50
+ readonly schemaVersion: string;
51
+ readonly registryVersion: string;
52
+ readonly uaGraphSha256: string;
53
+ readonly workspaceId: string;
54
+ readonly repositoryId: string;
55
+ readonly repoSha: string;
56
+ readonly branch: string;
57
+ }
58
+ export interface OntologyGenerationCacheKeyMaterial extends JsonObject {
59
+ readonly kind: "ontology-generation";
60
+ readonly version: typeof ONTOLOGY_GENERATION_CACHE_KEY_VERSION;
61
+ readonly schemaVersion: string;
62
+ readonly registryVersion: string;
63
+ readonly generationId: string;
64
+ readonly workspaceId: string;
65
+ readonly repositoryId: string;
66
+ readonly repoSha: string;
67
+ readonly branch: string;
68
+ readonly uaGraphSha256: string;
69
+ }
70
+ export interface OntologyGenerationCacheKey {
71
+ readonly kind: "ontology-generation";
72
+ readonly version: typeof ONTOLOGY_GENERATION_CACHE_KEY_VERSION;
73
+ readonly key: string;
74
+ readonly hash: string;
75
+ readonly material: OntologyGenerationCacheKeyMaterial;
76
+ }
77
+ export interface OntologyGenerationValidationIssue {
78
+ readonly code: string;
79
+ readonly severity: "error" | "warning" | "info";
80
+ readonly message: string;
81
+ }
82
+ export type OntologyGenerationActivationReason = "eligible" | "stale_source_graph" | "generation_failed" | "generation_superseded" | "validation_errors";
83
+ export type OntologyGenerationActivationDecision = {
84
+ readonly ok: true;
85
+ readonly reason: "eligible";
86
+ readonly nextStatus: "active";
87
+ } | {
88
+ readonly ok: false;
89
+ readonly reason: Exclude<OntologyGenerationActivationReason, "eligible">;
90
+ readonly blockers: readonly string[];
91
+ readonly diagnostics?: readonly UaGraphFreshnessDiagnostic[] | readonly OntologyGenerationValidationIssue[];
92
+ };
93
+ export interface OntologyGenerationActivationInput {
94
+ readonly status: OntologyGenerationStatus;
95
+ readonly freshness: UaGraphFreshnessEvaluation;
96
+ readonly validationIssues?: readonly OntologyGenerationValidationIssue[];
97
+ }
98
+ export declare function evaluateUaGraphFreshnessFromMetadata(currentMetadata: CurrentRepositoryMetadata, graphMetadata: UaGraphMetadata, dirtyPaths: readonly string[]): UaGraphFreshnessEvaluation;
99
+ export declare function createOntologyGenerationIdMaterial(input: OntologyGenerationIdentityInput): OntologyGenerationIdMaterial;
100
+ export declare function computeOntologyGenerationId(input: OntologyGenerationIdentityInput): string;
101
+ export declare function createOntologyGenerationCacheKeyMaterial(input: OntologyGenerationIdentityInput): OntologyGenerationCacheKeyMaterial;
102
+ export declare function createOntologyGenerationCacheKey(input: OntologyGenerationIdentityInput): OntologyGenerationCacheKey;
103
+ export declare function canActivateOntologyGeneration(input: OntologyGenerationActivationInput): OntologyGenerationActivationDecision;
104
+ //# sourceMappingURL=context-graph-ontology-generation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-graph-ontology-generation.d.ts","sourceRoot":"","sources":["../../src/core/context-graph-ontology-generation.ts"],"names":[],"mappings":"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","sourcesContent":["import { hashCanonicalJson, type JsonObject } from \"./exact-cache-policy.ts\";\n\nexport const ONTOLOGY_GENERATION_ID_VERSION = \"v1\";\nexport const ONTOLOGY_GENERATION_CACHE_KEY_VERSION = \"v1\";\n\nexport const ONTOLOGY_GENERATION_STATUSES = [\"draft\", \"active\", \"superseded\", \"failed\"] as const;\n\nexport type OntologyGenerationStatus = (typeof ONTOLOGY_GENERATION_STATUSES)[number];\n\nexport type UaGraphFreshnessReason =\n\t| \"fresh\"\n\t| \"metadata_missing\"\n\t| \"schema_mismatch\"\n\t| \"graph_commit_mismatch\"\n\t| \"meta_commit_mismatch\"\n\t| \"branch_mismatch\"\n\t| \"graph_hash_mismatch\"\n\t| \"dirty_covered_paths\";\n\nexport interface CurrentRepositoryMetadata {\n\treadonly repoSha: string;\n\treadonly branch: string;\n\treadonly ontologySchemaVersion?: string;\n\treadonly schemaVersion?: string;\n\treadonly uaGraphSha256?: string;\n\treadonly graphSha256?: string;\n}\n\nexport interface UaGraphMetadata {\n\treadonly schemaVersion: string;\n\treadonly branch: string;\n\treadonly graphRepoSha?: string;\n\treadonly graphCommitSha?: string;\n\treadonly repoSha?: string;\n\treadonly metadataRepoSha?: string;\n\treadonly metaRepoSha?: string;\n\treadonly uaGraphSha256?: string;\n\treadonly graphSha256?: string;\n\treadonly coveredPaths?: readonly string[];\n}\n\nexport interface UaGraphFreshnessDiagnostic {\n\treadonly reason: Exclude<UaGraphFreshnessReason, \"fresh\">;\n\treadonly field: string;\n\treadonly expected?: string;\n\treadonly actual?: string;\n\treadonly dirtyCoveredPaths?: readonly string[];\n}\n\nexport interface UaGraphFreshnessEvaluation {\n\treadonly fresh: boolean;\n\treadonly reasons: readonly UaGraphFreshnessReason[];\n\treadonly diagnostics: readonly UaGraphFreshnessDiagnostic[];\n\treadonly dirtyCoveredPaths: readonly string[];\n}\n\nexport interface OntologyGenerationIdentityInput {\n\treadonly schemaVersion: string;\n\treadonly registryVersion: string;\n\treadonly uaGraphSha256: string;\n\treadonly workspaceId: string;\n\treadonly repositoryId: string;\n\treadonly repoSha: string;\n\treadonly branch: string;\n}\n\nexport interface OntologyGenerationIdMaterial extends JsonObject {\n\treadonly schemaVersion: string;\n\treadonly registryVersion: string;\n\treadonly uaGraphSha256: string;\n\treadonly workspaceId: string;\n\treadonly repositoryId: string;\n\treadonly repoSha: string;\n\treadonly branch: string;\n}\n\nexport interface OntologyGenerationCacheKeyMaterial extends JsonObject {\n\treadonly kind: \"ontology-generation\";\n\treadonly version: typeof ONTOLOGY_GENERATION_CACHE_KEY_VERSION;\n\treadonly schemaVersion: string;\n\treadonly registryVersion: string;\n\treadonly generationId: string;\n\treadonly workspaceId: string;\n\treadonly repositoryId: string;\n\treadonly repoSha: string;\n\treadonly branch: string;\n\treadonly uaGraphSha256: string;\n}\n\nexport interface OntologyGenerationCacheKey {\n\treadonly kind: \"ontology-generation\";\n\treadonly version: typeof ONTOLOGY_GENERATION_CACHE_KEY_VERSION;\n\treadonly key: string;\n\treadonly hash: string;\n\treadonly material: OntologyGenerationCacheKeyMaterial;\n}\n\nexport interface OntologyGenerationValidationIssue {\n\treadonly code: string;\n\treadonly severity: \"error\" | \"warning\" | \"info\";\n\treadonly message: string;\n}\n\nexport type OntologyGenerationActivationReason =\n\t| \"eligible\"\n\t| \"stale_source_graph\"\n\t| \"generation_failed\"\n\t| \"generation_superseded\"\n\t| \"validation_errors\";\n\nexport type OntologyGenerationActivationDecision =\n\t| { readonly ok: true; readonly reason: \"eligible\"; readonly nextStatus: \"active\" }\n\t| {\n\t\t\treadonly ok: false;\n\t\t\treadonly reason: Exclude<OntologyGenerationActivationReason, \"eligible\">;\n\t\t\treadonly blockers: readonly string[];\n\t\t\treadonly diagnostics?: readonly UaGraphFreshnessDiagnostic[] | readonly OntologyGenerationValidationIssue[];\n\t };\n\nexport interface OntologyGenerationActivationInput {\n\treadonly status: OntologyGenerationStatus;\n\treadonly freshness: UaGraphFreshnessEvaluation;\n\treadonly validationIssues?: readonly OntologyGenerationValidationIssue[];\n}\n\nexport function evaluateUaGraphFreshnessFromMetadata(\n\tcurrentMetadata: CurrentRepositoryMetadata,\n\tgraphMetadata: UaGraphMetadata,\n\tdirtyPaths: readonly string[],\n): UaGraphFreshnessEvaluation {\n\tconst diagnostics: UaGraphFreshnessDiagnostic[] = [];\n\n\taddRequiredComparisonDiagnostic(\n\t\tdiagnostics,\n\t\t\"schema_mismatch\",\n\t\t\"schemaVersion\",\n\t\tfirstNonEmptyString(currentMetadata.ontologySchemaVersion, currentMetadata.schemaVersion),\n\t\tgraphMetadata.schemaVersion,\n\t);\n\taddRequiredComparisonDiagnostic(\n\t\tdiagnostics,\n\t\t\"graph_commit_mismatch\",\n\t\t\"graphRepoSha\",\n\t\tcurrentMetadata.repoSha,\n\t\tfirstNonEmptyString(graphMetadata.graphRepoSha, graphMetadata.graphCommitSha, graphMetadata.repoSha),\n\t);\n\taddRequiredComparisonDiagnostic(\n\t\tdiagnostics,\n\t\t\"meta_commit_mismatch\",\n\t\t\"metadataRepoSha\",\n\t\tcurrentMetadata.repoSha,\n\t\tfirstNonEmptyString(graphMetadata.metadataRepoSha, graphMetadata.metaRepoSha, graphMetadata.repoSha),\n\t);\n\taddRequiredComparisonDiagnostic(\n\t\tdiagnostics,\n\t\t\"branch_mismatch\",\n\t\t\"branch\",\n\t\tcurrentMetadata.branch,\n\t\tgraphMetadata.branch,\n\t);\n\taddRequiredComparisonDiagnostic(\n\t\tdiagnostics,\n\t\t\"graph_hash_mismatch\",\n\t\t\"uaGraphSha256\",\n\t\tfirstNonEmptyString(currentMetadata.uaGraphSha256, currentMetadata.graphSha256),\n\t\tfirstNonEmptyString(graphMetadata.uaGraphSha256, graphMetadata.graphSha256),\n\t);\n\n\tconst dirtyCoveredPaths = findDirtyCoveredPaths(graphMetadata.coveredPaths ?? [], dirtyPaths);\n\tif (dirtyCoveredPaths.length > 0) {\n\t\tdiagnostics.push({\n\t\t\treason: \"dirty_covered_paths\",\n\t\t\tfield: \"coveredPaths\",\n\t\t\tdirtyCoveredPaths,\n\t\t\tactual: dirtyCoveredPaths.join(\",\"),\n\t\t});\n\t}\n\n\tif (diagnostics.length === 0) {\n\t\treturn { fresh: true, reasons: [\"fresh\"], diagnostics: [], dirtyCoveredPaths: [] };\n\t}\n\n\treturn {\n\t\tfresh: false,\n\t\treasons: uniqueReasons(diagnostics),\n\t\tdiagnostics,\n\t\tdirtyCoveredPaths,\n\t};\n}\n\nexport function createOntologyGenerationIdMaterial(\n\tinput: OntologyGenerationIdentityInput,\n): OntologyGenerationIdMaterial {\n\treturn {\n\t\tschemaVersion: requireNonEmptyString(\"schemaVersion\", input.schemaVersion),\n\t\tregistryVersion: requireNonEmptyString(\"registryVersion\", input.registryVersion),\n\t\tuaGraphSha256: requireNonEmptyString(\"uaGraphSha256\", input.uaGraphSha256),\n\t\tworkspaceId: requireNonEmptyString(\"workspaceId\", input.workspaceId),\n\t\trepositoryId: requireNonEmptyString(\"repositoryId\", input.repositoryId),\n\t\trepoSha: requireNonEmptyString(\"repoSha\", input.repoSha),\n\t\tbranch: requireNonEmptyString(\"branch\", input.branch),\n\t};\n}\n\nexport function computeOntologyGenerationId(input: OntologyGenerationIdentityInput): string {\n\treturn hashCanonicalJson(createOntologyGenerationIdMaterial(input));\n}\n\nexport function createOntologyGenerationCacheKeyMaterial(\n\tinput: OntologyGenerationIdentityInput,\n): OntologyGenerationCacheKeyMaterial {\n\tconst material = createOntologyGenerationIdMaterial(input);\n\treturn {\n\t\tkind: \"ontology-generation\",\n\t\tversion: ONTOLOGY_GENERATION_CACHE_KEY_VERSION,\n\t\tschemaVersion: material.schemaVersion,\n\t\tregistryVersion: material.registryVersion,\n\t\tgenerationId: computeOntologyGenerationId(input),\n\t\tworkspaceId: material.workspaceId,\n\t\trepositoryId: material.repositoryId,\n\t\trepoSha: material.repoSha,\n\t\tbranch: material.branch,\n\t\tuaGraphSha256: material.uaGraphSha256,\n\t};\n}\n\nexport function createOntologyGenerationCacheKey(input: OntologyGenerationIdentityInput): OntologyGenerationCacheKey {\n\tconst material = createOntologyGenerationCacheKeyMaterial(input);\n\tconst hash = hashCanonicalJson(material);\n\treturn {\n\t\tkind: \"ontology-generation\",\n\t\tversion: ONTOLOGY_GENERATION_CACHE_KEY_VERSION,\n\t\tkey: `ontology-generation:${ONTOLOGY_GENERATION_CACHE_KEY_VERSION}:${hash}`,\n\t\thash,\n\t\tmaterial,\n\t};\n}\n\nexport function canActivateOntologyGeneration(\n\tinput: OntologyGenerationActivationInput,\n): OntologyGenerationActivationDecision {\n\tif (input.status === \"failed\") {\n\t\treturn denyActivation(\"generation_failed\", [\"failed generations are immutable and cannot be activated\"]);\n\t}\n\tif (input.status === \"superseded\") {\n\t\treturn denyActivation(\"generation_superseded\", [\"superseded generations cannot be reactivated\"]);\n\t}\n\tif (!input.freshness.fresh) {\n\t\treturn denyActivation(\"stale_source_graph\", input.freshness.reasons, input.freshness.diagnostics);\n\t}\n\n\tconst errors = (input.validationIssues ?? []).filter((issue) => issue.severity === \"error\");\n\tif (errors.length > 0) {\n\t\treturn denyActivation(\n\t\t\t\"validation_errors\",\n\t\t\terrors.map((issue) => issue.code),\n\t\t\terrors,\n\t\t);\n\t}\n\n\treturn { ok: true, reason: \"eligible\", nextStatus: \"active\" };\n}\n\nfunction addRequiredComparisonDiagnostic(\n\tdiagnostics: UaGraphFreshnessDiagnostic[],\n\treason: Exclude<UaGraphFreshnessReason, \"fresh\" | \"dirty_covered_paths\" | \"metadata_missing\">,\n\tfield: string,\n\texpected: string | undefined,\n\tactual: string | undefined,\n): void {\n\tconst normalizedExpected = normalizeMetadataValue(expected);\n\tconst normalizedActual = normalizeMetadataValue(actual);\n\tif (normalizedExpected === undefined || normalizedActual === undefined) {\n\t\tdiagnostics.push({ reason: \"metadata_missing\", field, expected: normalizedExpected, actual: normalizedActual });\n\t\treturn;\n\t}\n\tif (normalizedExpected !== normalizedActual) {\n\t\tdiagnostics.push({ reason, field, expected: normalizedExpected, actual: normalizedActual });\n\t}\n}\n\nfunction findDirtyCoveredPaths(coveredPaths: readonly string[], dirtyPaths: readonly string[]): readonly string[] {\n\tconst normalizedCoveredPaths = coveredPaths.map(normalizePath).filter((path) => path.length > 0);\n\treturn [\n\t\t...new Set(\n\t\t\tdirtyPaths\n\t\t\t\t.map(normalizePath)\n\t\t\t\t.filter((path) => path.length > 0)\n\t\t\t\t.filter((dirtyPath) => normalizedCoveredPaths.some((coveredPath) => pathsOverlap(coveredPath, dirtyPath))),\n\t\t),\n\t].sort();\n}\n\nfunction pathsOverlap(coveredPath: string, dirtyPath: string): boolean {\n\treturn (\n\t\tdirtyPath === coveredPath || dirtyPath.startsWith(`${coveredPath}/`) || coveredPath.startsWith(`${dirtyPath}/`)\n\t);\n}\n\nfunction uniqueReasons(diagnostics: readonly UaGraphFreshnessDiagnostic[]): readonly UaGraphFreshnessReason[] {\n\treturn [...new Set(diagnostics.map((diagnostic) => diagnostic.reason))];\n}\n\nfunction firstNonEmptyString(...values: readonly (string | undefined)[]): string | undefined {\n\treturn values.find((value) => normalizeMetadataValue(value) !== undefined);\n}\n\nfunction normalizeMetadataValue(value: string | undefined): string | undefined {\n\tif (value === undefined) return undefined;\n\tconst normalized = value.trim();\n\treturn normalized.length === 0 ? undefined : normalized;\n}\n\nfunction normalizePath(path: string): string {\n\treturn path.trim().replace(/\\\\/g, \"/\").replace(/\\/+/g, \"/\").replace(/^\\.\\//, \"\").replace(/\\/$/, \"\");\n}\n\nfunction requireNonEmptyString(name: string, value: string): string {\n\tconst normalized = value.trim();\n\tif (normalized.length === 0) {\n\t\tthrow new TypeError(`${name} must be a non-empty string`);\n\t}\n\treturn normalized;\n}\n\nfunction denyActivation(\n\treason: Exclude<OntologyGenerationActivationReason, \"eligible\">,\n\tblockers: readonly string[],\n\tdiagnostics?: readonly UaGraphFreshnessDiagnostic[] | readonly OntologyGenerationValidationIssue[],\n): OntologyGenerationActivationDecision {\n\treturn diagnostics === undefined ? { ok: false, reason, blockers } : { ok: false, reason, blockers, diagnostics };\n}\n"]}
@@ -0,0 +1,135 @@
1
+ import { hashCanonicalJson } from "./exact-cache-policy.js";
2
+ export const ONTOLOGY_GENERATION_ID_VERSION = "v1";
3
+ export const ONTOLOGY_GENERATION_CACHE_KEY_VERSION = "v1";
4
+ export const ONTOLOGY_GENERATION_STATUSES = ["draft", "active", "superseded", "failed"];
5
+ export function evaluateUaGraphFreshnessFromMetadata(currentMetadata, graphMetadata, dirtyPaths) {
6
+ const diagnostics = [];
7
+ addRequiredComparisonDiagnostic(diagnostics, "schema_mismatch", "schemaVersion", firstNonEmptyString(currentMetadata.ontologySchemaVersion, currentMetadata.schemaVersion), graphMetadata.schemaVersion);
8
+ addRequiredComparisonDiagnostic(diagnostics, "graph_commit_mismatch", "graphRepoSha", currentMetadata.repoSha, firstNonEmptyString(graphMetadata.graphRepoSha, graphMetadata.graphCommitSha, graphMetadata.repoSha));
9
+ addRequiredComparisonDiagnostic(diagnostics, "meta_commit_mismatch", "metadataRepoSha", currentMetadata.repoSha, firstNonEmptyString(graphMetadata.metadataRepoSha, graphMetadata.metaRepoSha, graphMetadata.repoSha));
10
+ addRequiredComparisonDiagnostic(diagnostics, "branch_mismatch", "branch", currentMetadata.branch, graphMetadata.branch);
11
+ addRequiredComparisonDiagnostic(diagnostics, "graph_hash_mismatch", "uaGraphSha256", firstNonEmptyString(currentMetadata.uaGraphSha256, currentMetadata.graphSha256), firstNonEmptyString(graphMetadata.uaGraphSha256, graphMetadata.graphSha256));
12
+ const dirtyCoveredPaths = findDirtyCoveredPaths(graphMetadata.coveredPaths ?? [], dirtyPaths);
13
+ if (dirtyCoveredPaths.length > 0) {
14
+ diagnostics.push({
15
+ reason: "dirty_covered_paths",
16
+ field: "coveredPaths",
17
+ dirtyCoveredPaths,
18
+ actual: dirtyCoveredPaths.join(","),
19
+ });
20
+ }
21
+ if (diagnostics.length === 0) {
22
+ return { fresh: true, reasons: ["fresh"], diagnostics: [], dirtyCoveredPaths: [] };
23
+ }
24
+ return {
25
+ fresh: false,
26
+ reasons: uniqueReasons(diagnostics),
27
+ diagnostics,
28
+ dirtyCoveredPaths,
29
+ };
30
+ }
31
+ export function createOntologyGenerationIdMaterial(input) {
32
+ return {
33
+ schemaVersion: requireNonEmptyString("schemaVersion", input.schemaVersion),
34
+ registryVersion: requireNonEmptyString("registryVersion", input.registryVersion),
35
+ uaGraphSha256: requireNonEmptyString("uaGraphSha256", input.uaGraphSha256),
36
+ workspaceId: requireNonEmptyString("workspaceId", input.workspaceId),
37
+ repositoryId: requireNonEmptyString("repositoryId", input.repositoryId),
38
+ repoSha: requireNonEmptyString("repoSha", input.repoSha),
39
+ branch: requireNonEmptyString("branch", input.branch),
40
+ };
41
+ }
42
+ export function computeOntologyGenerationId(input) {
43
+ return hashCanonicalJson(createOntologyGenerationIdMaterial(input));
44
+ }
45
+ export function createOntologyGenerationCacheKeyMaterial(input) {
46
+ const material = createOntologyGenerationIdMaterial(input);
47
+ return {
48
+ kind: "ontology-generation",
49
+ version: ONTOLOGY_GENERATION_CACHE_KEY_VERSION,
50
+ schemaVersion: material.schemaVersion,
51
+ registryVersion: material.registryVersion,
52
+ generationId: computeOntologyGenerationId(input),
53
+ workspaceId: material.workspaceId,
54
+ repositoryId: material.repositoryId,
55
+ repoSha: material.repoSha,
56
+ branch: material.branch,
57
+ uaGraphSha256: material.uaGraphSha256,
58
+ };
59
+ }
60
+ export function createOntologyGenerationCacheKey(input) {
61
+ const material = createOntologyGenerationCacheKeyMaterial(input);
62
+ const hash = hashCanonicalJson(material);
63
+ return {
64
+ kind: "ontology-generation",
65
+ version: ONTOLOGY_GENERATION_CACHE_KEY_VERSION,
66
+ key: `ontology-generation:${ONTOLOGY_GENERATION_CACHE_KEY_VERSION}:${hash}`,
67
+ hash,
68
+ material,
69
+ };
70
+ }
71
+ export function canActivateOntologyGeneration(input) {
72
+ if (input.status === "failed") {
73
+ return denyActivation("generation_failed", ["failed generations are immutable and cannot be activated"]);
74
+ }
75
+ if (input.status === "superseded") {
76
+ return denyActivation("generation_superseded", ["superseded generations cannot be reactivated"]);
77
+ }
78
+ if (!input.freshness.fresh) {
79
+ return denyActivation("stale_source_graph", input.freshness.reasons, input.freshness.diagnostics);
80
+ }
81
+ const errors = (input.validationIssues ?? []).filter((issue) => issue.severity === "error");
82
+ if (errors.length > 0) {
83
+ return denyActivation("validation_errors", errors.map((issue) => issue.code), errors);
84
+ }
85
+ return { ok: true, reason: "eligible", nextStatus: "active" };
86
+ }
87
+ function addRequiredComparisonDiagnostic(diagnostics, reason, field, expected, actual) {
88
+ const normalizedExpected = normalizeMetadataValue(expected);
89
+ const normalizedActual = normalizeMetadataValue(actual);
90
+ if (normalizedExpected === undefined || normalizedActual === undefined) {
91
+ diagnostics.push({ reason: "metadata_missing", field, expected: normalizedExpected, actual: normalizedActual });
92
+ return;
93
+ }
94
+ if (normalizedExpected !== normalizedActual) {
95
+ diagnostics.push({ reason, field, expected: normalizedExpected, actual: normalizedActual });
96
+ }
97
+ }
98
+ function findDirtyCoveredPaths(coveredPaths, dirtyPaths) {
99
+ const normalizedCoveredPaths = coveredPaths.map(normalizePath).filter((path) => path.length > 0);
100
+ return [
101
+ ...new Set(dirtyPaths
102
+ .map(normalizePath)
103
+ .filter((path) => path.length > 0)
104
+ .filter((dirtyPath) => normalizedCoveredPaths.some((coveredPath) => pathsOverlap(coveredPath, dirtyPath)))),
105
+ ].sort();
106
+ }
107
+ function pathsOverlap(coveredPath, dirtyPath) {
108
+ return (dirtyPath === coveredPath || dirtyPath.startsWith(`${coveredPath}/`) || coveredPath.startsWith(`${dirtyPath}/`));
109
+ }
110
+ function uniqueReasons(diagnostics) {
111
+ return [...new Set(diagnostics.map((diagnostic) => diagnostic.reason))];
112
+ }
113
+ function firstNonEmptyString(...values) {
114
+ return values.find((value) => normalizeMetadataValue(value) !== undefined);
115
+ }
116
+ function normalizeMetadataValue(value) {
117
+ if (value === undefined)
118
+ return undefined;
119
+ const normalized = value.trim();
120
+ return normalized.length === 0 ? undefined : normalized;
121
+ }
122
+ function normalizePath(path) {
123
+ return path.trim().replace(/\\/g, "/").replace(/\/+/g, "/").replace(/^\.\//, "").replace(/\/$/, "");
124
+ }
125
+ function requireNonEmptyString(name, value) {
126
+ const normalized = value.trim();
127
+ if (normalized.length === 0) {
128
+ throw new TypeError(`${name} must be a non-empty string`);
129
+ }
130
+ return normalized;
131
+ }
132
+ function denyActivation(reason, blockers, diagnostics) {
133
+ return diagnostics === undefined ? { ok: false, reason, blockers } : { ok: false, reason, blockers, diagnostics };
134
+ }
135
+ //# sourceMappingURL=context-graph-ontology-generation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-graph-ontology-generation.js","sourceRoot":"","sources":["../../src/core/context-graph-ontology-generation.ts"],"names":[],"mappings":"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","sourcesContent":["import { hashCanonicalJson, type JsonObject } from \"./exact-cache-policy.ts\";\n\nexport const ONTOLOGY_GENERATION_ID_VERSION = \"v1\";\nexport const ONTOLOGY_GENERATION_CACHE_KEY_VERSION = \"v1\";\n\nexport const ONTOLOGY_GENERATION_STATUSES = [\"draft\", \"active\", \"superseded\", \"failed\"] as const;\n\nexport type OntologyGenerationStatus = (typeof ONTOLOGY_GENERATION_STATUSES)[number];\n\nexport type UaGraphFreshnessReason =\n\t| \"fresh\"\n\t| \"metadata_missing\"\n\t| \"schema_mismatch\"\n\t| \"graph_commit_mismatch\"\n\t| \"meta_commit_mismatch\"\n\t| \"branch_mismatch\"\n\t| \"graph_hash_mismatch\"\n\t| \"dirty_covered_paths\";\n\nexport interface CurrentRepositoryMetadata {\n\treadonly repoSha: string;\n\treadonly branch: string;\n\treadonly ontologySchemaVersion?: string;\n\treadonly schemaVersion?: string;\n\treadonly uaGraphSha256?: string;\n\treadonly graphSha256?: string;\n}\n\nexport interface UaGraphMetadata {\n\treadonly schemaVersion: string;\n\treadonly branch: string;\n\treadonly graphRepoSha?: string;\n\treadonly graphCommitSha?: string;\n\treadonly repoSha?: string;\n\treadonly metadataRepoSha?: string;\n\treadonly metaRepoSha?: string;\n\treadonly uaGraphSha256?: string;\n\treadonly graphSha256?: string;\n\treadonly coveredPaths?: readonly string[];\n}\n\nexport interface UaGraphFreshnessDiagnostic {\n\treadonly reason: Exclude<UaGraphFreshnessReason, \"fresh\">;\n\treadonly field: string;\n\treadonly expected?: string;\n\treadonly actual?: string;\n\treadonly dirtyCoveredPaths?: readonly string[];\n}\n\nexport interface UaGraphFreshnessEvaluation {\n\treadonly fresh: boolean;\n\treadonly reasons: readonly UaGraphFreshnessReason[];\n\treadonly diagnostics: readonly UaGraphFreshnessDiagnostic[];\n\treadonly dirtyCoveredPaths: readonly string[];\n}\n\nexport interface OntologyGenerationIdentityInput {\n\treadonly schemaVersion: string;\n\treadonly registryVersion: string;\n\treadonly uaGraphSha256: string;\n\treadonly workspaceId: string;\n\treadonly repositoryId: string;\n\treadonly repoSha: string;\n\treadonly branch: string;\n}\n\nexport interface OntologyGenerationIdMaterial extends JsonObject {\n\treadonly schemaVersion: string;\n\treadonly registryVersion: string;\n\treadonly uaGraphSha256: string;\n\treadonly workspaceId: string;\n\treadonly repositoryId: string;\n\treadonly repoSha: string;\n\treadonly branch: string;\n}\n\nexport interface OntologyGenerationCacheKeyMaterial extends JsonObject {\n\treadonly kind: \"ontology-generation\";\n\treadonly version: typeof ONTOLOGY_GENERATION_CACHE_KEY_VERSION;\n\treadonly schemaVersion: string;\n\treadonly registryVersion: string;\n\treadonly generationId: string;\n\treadonly workspaceId: string;\n\treadonly repositoryId: string;\n\treadonly repoSha: string;\n\treadonly branch: string;\n\treadonly uaGraphSha256: string;\n}\n\nexport interface OntologyGenerationCacheKey {\n\treadonly kind: \"ontology-generation\";\n\treadonly version: typeof ONTOLOGY_GENERATION_CACHE_KEY_VERSION;\n\treadonly key: string;\n\treadonly hash: string;\n\treadonly material: OntologyGenerationCacheKeyMaterial;\n}\n\nexport interface OntologyGenerationValidationIssue {\n\treadonly code: string;\n\treadonly severity: \"error\" | \"warning\" | \"info\";\n\treadonly message: string;\n}\n\nexport type OntologyGenerationActivationReason =\n\t| \"eligible\"\n\t| \"stale_source_graph\"\n\t| \"generation_failed\"\n\t| \"generation_superseded\"\n\t| \"validation_errors\";\n\nexport type OntologyGenerationActivationDecision =\n\t| { readonly ok: true; readonly reason: \"eligible\"; readonly nextStatus: \"active\" }\n\t| {\n\t\t\treadonly ok: false;\n\t\t\treadonly reason: Exclude<OntologyGenerationActivationReason, \"eligible\">;\n\t\t\treadonly blockers: readonly string[];\n\t\t\treadonly diagnostics?: readonly UaGraphFreshnessDiagnostic[] | readonly OntologyGenerationValidationIssue[];\n\t };\n\nexport interface OntologyGenerationActivationInput {\n\treadonly status: OntologyGenerationStatus;\n\treadonly freshness: UaGraphFreshnessEvaluation;\n\treadonly validationIssues?: readonly OntologyGenerationValidationIssue[];\n}\n\nexport function evaluateUaGraphFreshnessFromMetadata(\n\tcurrentMetadata: CurrentRepositoryMetadata,\n\tgraphMetadata: UaGraphMetadata,\n\tdirtyPaths: readonly string[],\n): UaGraphFreshnessEvaluation {\n\tconst diagnostics: UaGraphFreshnessDiagnostic[] = [];\n\n\taddRequiredComparisonDiagnostic(\n\t\tdiagnostics,\n\t\t\"schema_mismatch\",\n\t\t\"schemaVersion\",\n\t\tfirstNonEmptyString(currentMetadata.ontologySchemaVersion, currentMetadata.schemaVersion),\n\t\tgraphMetadata.schemaVersion,\n\t);\n\taddRequiredComparisonDiagnostic(\n\t\tdiagnostics,\n\t\t\"graph_commit_mismatch\",\n\t\t\"graphRepoSha\",\n\t\tcurrentMetadata.repoSha,\n\t\tfirstNonEmptyString(graphMetadata.graphRepoSha, graphMetadata.graphCommitSha, graphMetadata.repoSha),\n\t);\n\taddRequiredComparisonDiagnostic(\n\t\tdiagnostics,\n\t\t\"meta_commit_mismatch\",\n\t\t\"metadataRepoSha\",\n\t\tcurrentMetadata.repoSha,\n\t\tfirstNonEmptyString(graphMetadata.metadataRepoSha, graphMetadata.metaRepoSha, graphMetadata.repoSha),\n\t);\n\taddRequiredComparisonDiagnostic(\n\t\tdiagnostics,\n\t\t\"branch_mismatch\",\n\t\t\"branch\",\n\t\tcurrentMetadata.branch,\n\t\tgraphMetadata.branch,\n\t);\n\taddRequiredComparisonDiagnostic(\n\t\tdiagnostics,\n\t\t\"graph_hash_mismatch\",\n\t\t\"uaGraphSha256\",\n\t\tfirstNonEmptyString(currentMetadata.uaGraphSha256, currentMetadata.graphSha256),\n\t\tfirstNonEmptyString(graphMetadata.uaGraphSha256, graphMetadata.graphSha256),\n\t);\n\n\tconst dirtyCoveredPaths = findDirtyCoveredPaths(graphMetadata.coveredPaths ?? [], dirtyPaths);\n\tif (dirtyCoveredPaths.length > 0) {\n\t\tdiagnostics.push({\n\t\t\treason: \"dirty_covered_paths\",\n\t\t\tfield: \"coveredPaths\",\n\t\t\tdirtyCoveredPaths,\n\t\t\tactual: dirtyCoveredPaths.join(\",\"),\n\t\t});\n\t}\n\n\tif (diagnostics.length === 0) {\n\t\treturn { fresh: true, reasons: [\"fresh\"], diagnostics: [], dirtyCoveredPaths: [] };\n\t}\n\n\treturn {\n\t\tfresh: false,\n\t\treasons: uniqueReasons(diagnostics),\n\t\tdiagnostics,\n\t\tdirtyCoveredPaths,\n\t};\n}\n\nexport function createOntologyGenerationIdMaterial(\n\tinput: OntologyGenerationIdentityInput,\n): OntologyGenerationIdMaterial {\n\treturn {\n\t\tschemaVersion: requireNonEmptyString(\"schemaVersion\", input.schemaVersion),\n\t\tregistryVersion: requireNonEmptyString(\"registryVersion\", input.registryVersion),\n\t\tuaGraphSha256: requireNonEmptyString(\"uaGraphSha256\", input.uaGraphSha256),\n\t\tworkspaceId: requireNonEmptyString(\"workspaceId\", input.workspaceId),\n\t\trepositoryId: requireNonEmptyString(\"repositoryId\", input.repositoryId),\n\t\trepoSha: requireNonEmptyString(\"repoSha\", input.repoSha),\n\t\tbranch: requireNonEmptyString(\"branch\", input.branch),\n\t};\n}\n\nexport function computeOntologyGenerationId(input: OntologyGenerationIdentityInput): string {\n\treturn hashCanonicalJson(createOntologyGenerationIdMaterial(input));\n}\n\nexport function createOntologyGenerationCacheKeyMaterial(\n\tinput: OntologyGenerationIdentityInput,\n): OntologyGenerationCacheKeyMaterial {\n\tconst material = createOntologyGenerationIdMaterial(input);\n\treturn {\n\t\tkind: \"ontology-generation\",\n\t\tversion: ONTOLOGY_GENERATION_CACHE_KEY_VERSION,\n\t\tschemaVersion: material.schemaVersion,\n\t\tregistryVersion: material.registryVersion,\n\t\tgenerationId: computeOntologyGenerationId(input),\n\t\tworkspaceId: material.workspaceId,\n\t\trepositoryId: material.repositoryId,\n\t\trepoSha: material.repoSha,\n\t\tbranch: material.branch,\n\t\tuaGraphSha256: material.uaGraphSha256,\n\t};\n}\n\nexport function createOntologyGenerationCacheKey(input: OntologyGenerationIdentityInput): OntologyGenerationCacheKey {\n\tconst material = createOntologyGenerationCacheKeyMaterial(input);\n\tconst hash = hashCanonicalJson(material);\n\treturn {\n\t\tkind: \"ontology-generation\",\n\t\tversion: ONTOLOGY_GENERATION_CACHE_KEY_VERSION,\n\t\tkey: `ontology-generation:${ONTOLOGY_GENERATION_CACHE_KEY_VERSION}:${hash}`,\n\t\thash,\n\t\tmaterial,\n\t};\n}\n\nexport function canActivateOntologyGeneration(\n\tinput: OntologyGenerationActivationInput,\n): OntologyGenerationActivationDecision {\n\tif (input.status === \"failed\") {\n\t\treturn denyActivation(\"generation_failed\", [\"failed generations are immutable and cannot be activated\"]);\n\t}\n\tif (input.status === \"superseded\") {\n\t\treturn denyActivation(\"generation_superseded\", [\"superseded generations cannot be reactivated\"]);\n\t}\n\tif (!input.freshness.fresh) {\n\t\treturn denyActivation(\"stale_source_graph\", input.freshness.reasons, input.freshness.diagnostics);\n\t}\n\n\tconst errors = (input.validationIssues ?? []).filter((issue) => issue.severity === \"error\");\n\tif (errors.length > 0) {\n\t\treturn denyActivation(\n\t\t\t\"validation_errors\",\n\t\t\terrors.map((issue) => issue.code),\n\t\t\terrors,\n\t\t);\n\t}\n\n\treturn { ok: true, reason: \"eligible\", nextStatus: \"active\" };\n}\n\nfunction addRequiredComparisonDiagnostic(\n\tdiagnostics: UaGraphFreshnessDiagnostic[],\n\treason: Exclude<UaGraphFreshnessReason, \"fresh\" | \"dirty_covered_paths\" | \"metadata_missing\">,\n\tfield: string,\n\texpected: string | undefined,\n\tactual: string | undefined,\n): void {\n\tconst normalizedExpected = normalizeMetadataValue(expected);\n\tconst normalizedActual = normalizeMetadataValue(actual);\n\tif (normalizedExpected === undefined || normalizedActual === undefined) {\n\t\tdiagnostics.push({ reason: \"metadata_missing\", field, expected: normalizedExpected, actual: normalizedActual });\n\t\treturn;\n\t}\n\tif (normalizedExpected !== normalizedActual) {\n\t\tdiagnostics.push({ reason, field, expected: normalizedExpected, actual: normalizedActual });\n\t}\n}\n\nfunction findDirtyCoveredPaths(coveredPaths: readonly string[], dirtyPaths: readonly string[]): readonly string[] {\n\tconst normalizedCoveredPaths = coveredPaths.map(normalizePath).filter((path) => path.length > 0);\n\treturn [\n\t\t...new Set(\n\t\t\tdirtyPaths\n\t\t\t\t.map(normalizePath)\n\t\t\t\t.filter((path) => path.length > 0)\n\t\t\t\t.filter((dirtyPath) => normalizedCoveredPaths.some((coveredPath) => pathsOverlap(coveredPath, dirtyPath))),\n\t\t),\n\t].sort();\n}\n\nfunction pathsOverlap(coveredPath: string, dirtyPath: string): boolean {\n\treturn (\n\t\tdirtyPath === coveredPath || dirtyPath.startsWith(`${coveredPath}/`) || coveredPath.startsWith(`${dirtyPath}/`)\n\t);\n}\n\nfunction uniqueReasons(diagnostics: readonly UaGraphFreshnessDiagnostic[]): readonly UaGraphFreshnessReason[] {\n\treturn [...new Set(diagnostics.map((diagnostic) => diagnostic.reason))];\n}\n\nfunction firstNonEmptyString(...values: readonly (string | undefined)[]): string | undefined {\n\treturn values.find((value) => normalizeMetadataValue(value) !== undefined);\n}\n\nfunction normalizeMetadataValue(value: string | undefined): string | undefined {\n\tif (value === undefined) return undefined;\n\tconst normalized = value.trim();\n\treturn normalized.length === 0 ? undefined : normalized;\n}\n\nfunction normalizePath(path: string): string {\n\treturn path.trim().replace(/\\\\/g, \"/\").replace(/\\/+/g, \"/\").replace(/^\\.\\//, \"\").replace(/\\/$/, \"\");\n}\n\nfunction requireNonEmptyString(name: string, value: string): string {\n\tconst normalized = value.trim();\n\tif (normalized.length === 0) {\n\t\tthrow new TypeError(`${name} must be a non-empty string`);\n\t}\n\treturn normalized;\n}\n\nfunction denyActivation(\n\treason: Exclude<OntologyGenerationActivationReason, \"eligible\">,\n\tblockers: readonly string[],\n\tdiagnostics?: readonly UaGraphFreshnessDiagnostic[] | readonly OntologyGenerationValidationIssue[],\n): OntologyGenerationActivationDecision {\n\treturn diagnostics === undefined ? { ok: false, reason, blockers } : { ok: false, reason, blockers, diagnostics };\n}\n"]}