kiokuko 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (822) hide show
  1. package/LICENSE +21 -0
  2. package/README.ja.md +75 -0
  3. package/README.ko.md +60 -0
  4. package/README.md +90 -0
  5. package/README.zh-CN.md +61 -0
  6. package/dist/agent-file/atomic-write.d.ts +93 -0
  7. package/dist/agent-file/atomic-write.d.ts.map +1 -0
  8. package/dist/agent-file/atomic-write.js +1026 -0
  9. package/dist/agent-file/atomic-write.js.map +1 -0
  10. package/dist/agent-file/managed-block.d.ts +23 -0
  11. package/dist/agent-file/managed-block.d.ts.map +1 -0
  12. package/dist/agent-file/managed-block.js +101 -0
  13. package/dist/agent-file/managed-block.js.map +1 -0
  14. package/dist/agent-file/render.d.ts +14 -0
  15. package/dist/agent-file/render.d.ts.map +1 -0
  16. package/dist/agent-file/render.js +55 -0
  17. package/dist/agent-file/render.js.map +1 -0
  18. package/dist/akinator/agent-task.d.ts +70 -0
  19. package/dist/akinator/agent-task.d.ts.map +1 -0
  20. package/dist/akinator/agent-task.js +657 -0
  21. package/dist/akinator/agent-task.js.map +1 -0
  22. package/dist/akinator/capabilities.d.ts +92 -0
  23. package/dist/akinator/capabilities.d.ts.map +1 -0
  24. package/dist/akinator/capabilities.js +364 -0
  25. package/dist/akinator/capabilities.js.map +1 -0
  26. package/dist/akinator/capability-binding.d.ts +11 -0
  27. package/dist/akinator/capability-binding.d.ts.map +1 -0
  28. package/dist/akinator/capability-binding.js +71 -0
  29. package/dist/akinator/capability-binding.js.map +1 -0
  30. package/dist/akinator/discovery-policy.d.ts +4 -0
  31. package/dist/akinator/discovery-policy.d.ts.map +1 -0
  32. package/dist/akinator/discovery-policy.js +4 -0
  33. package/dist/akinator/discovery-policy.js.map +1 -0
  34. package/dist/akinator/domain.d.ts +25 -0
  35. package/dist/akinator/domain.d.ts.map +1 -0
  36. package/dist/akinator/domain.js +266 -0
  37. package/dist/akinator/domain.js.map +1 -0
  38. package/dist/akinator/instructions.d.ts +3 -0
  39. package/dist/akinator/instructions.d.ts.map +1 -0
  40. package/dist/akinator/instructions.js +4 -0
  41. package/dist/akinator/instructions.js.map +1 -0
  42. package/dist/akinator/knowledge-path.d.ts +33 -0
  43. package/dist/akinator/knowledge-path.d.ts.map +1 -0
  44. package/dist/akinator/knowledge-path.js +474 -0
  45. package/dist/akinator/knowledge-path.js.map +1 -0
  46. package/dist/akinator/orchestrator.d.ts +7 -0
  47. package/dist/akinator/orchestrator.d.ts.map +1 -0
  48. package/dist/akinator/orchestrator.js +8 -0
  49. package/dist/akinator/orchestrator.js.map +1 -0
  50. package/dist/akinator/reasoning.d.ts +8 -0
  51. package/dist/akinator/reasoning.d.ts.map +1 -0
  52. package/dist/akinator/reasoning.js +118 -0
  53. package/dist/akinator/reasoning.js.map +1 -0
  54. package/dist/akinator/service.d.ts +32 -0
  55. package/dist/akinator/service.d.ts.map +1 -0
  56. package/dist/akinator/service.js +294 -0
  57. package/dist/akinator/service.js.map +1 -0
  58. package/dist/akinator/skill-discovery-attempt.d.ts +25 -0
  59. package/dist/akinator/skill-discovery-attempt.d.ts.map +1 -0
  60. package/dist/akinator/skill-discovery-attempt.js +465 -0
  61. package/dist/akinator/skill-discovery-attempt.js.map +1 -0
  62. package/dist/akinator/store.d.ts +96 -0
  63. package/dist/akinator/store.d.ts.map +1 -0
  64. package/dist/akinator/store.js +642 -0
  65. package/dist/akinator/store.js.map +1 -0
  66. package/dist/akinator/types.d.ts +70 -0
  67. package/dist/akinator/types.d.ts.map +1 -0
  68. package/dist/akinator/types.js +2 -0
  69. package/dist/akinator/types.js.map +1 -0
  70. package/dist/bin/kiokuko.d.ts +3 -0
  71. package/dist/bin/kiokuko.d.ts.map +1 -0
  72. package/dist/bin/kiokuko.js +13 -0
  73. package/dist/bin/kiokuko.js.map +1 -0
  74. package/dist/cli.d.ts +24 -0
  75. package/dist/cli.d.ts.map +1 -0
  76. package/dist/cli.js +957 -0
  77. package/dist/cli.js.map +1 -0
  78. package/dist/client/server-client.d.ts +22 -0
  79. package/dist/client/server-client.d.ts.map +1 -0
  80. package/dist/client/server-client.js +729 -0
  81. package/dist/client/server-client.js.map +1 -0
  82. package/dist/commands/agent.d.ts +12 -0
  83. package/dist/commands/agent.d.ts.map +1 -0
  84. package/dist/commands/agent.js +1138 -0
  85. package/dist/commands/agent.js.map +1 -0
  86. package/dist/commands/backup.d.ts +6 -0
  87. package/dist/commands/backup.d.ts.map +1 -0
  88. package/dist/commands/backup.js +77 -0
  89. package/dist/commands/backup.js.map +1 -0
  90. package/dist/commands/curator.d.ts +25 -0
  91. package/dist/commands/curator.d.ts.map +1 -0
  92. package/dist/commands/curator.js +58 -0
  93. package/dist/commands/curator.js.map +1 -0
  94. package/dist/commands/doctor.d.ts +57 -0
  95. package/dist/commands/doctor.d.ts.map +1 -0
  96. package/dist/commands/doctor.js +389 -0
  97. package/dist/commands/doctor.js.map +1 -0
  98. package/dist/commands/embeddings.d.ts +40 -0
  99. package/dist/commands/embeddings.d.ts.map +1 -0
  100. package/dist/commands/embeddings.js +315 -0
  101. package/dist/commands/embeddings.js.map +1 -0
  102. package/dist/commands/export.d.ts +17 -0
  103. package/dist/commands/export.d.ts.map +1 -0
  104. package/dist/commands/export.js +233 -0
  105. package/dist/commands/export.js.map +1 -0
  106. package/dist/commands/import.d.ts +24 -0
  107. package/dist/commands/import.d.ts.map +1 -0
  108. package/dist/commands/import.js +778 -0
  109. package/dist/commands/import.js.map +1 -0
  110. package/dist/commands/init.d.ts +21 -0
  111. package/dist/commands/init.d.ts.map +1 -0
  112. package/dist/commands/init.js +201 -0
  113. package/dist/commands/init.js.map +1 -0
  114. package/dist/commands/ledger.d.ts +7 -0
  115. package/dist/commands/ledger.d.ts.map +1 -0
  116. package/dist/commands/ledger.js +66 -0
  117. package/dist/commands/ledger.js.map +1 -0
  118. package/dist/commands/purge.d.ts +10 -0
  119. package/dist/commands/purge.d.ts.map +1 -0
  120. package/dist/commands/purge.js +29 -0
  121. package/dist/commands/purge.js.map +1 -0
  122. package/dist/commands/serve.d.ts +34 -0
  123. package/dist/commands/serve.d.ts.map +1 -0
  124. package/dist/commands/serve.js +120 -0
  125. package/dist/commands/serve.js.map +1 -0
  126. package/dist/commands/server-status.d.ts +20 -0
  127. package/dist/commands/server-status.d.ts.map +1 -0
  128. package/dist/commands/server-status.js +21 -0
  129. package/dist/commands/server-status.js.map +1 -0
  130. package/dist/commands/server.d.ts +13 -0
  131. package/dist/commands/server.d.ts.map +1 -0
  132. package/dist/commands/server.js +89 -0
  133. package/dist/commands/server.js.map +1 -0
  134. package/dist/commands/setup.d.ts +98 -0
  135. package/dist/commands/setup.d.ts.map +1 -0
  136. package/dist/commands/setup.js +690 -0
  137. package/dist/commands/setup.js.map +1 -0
  138. package/dist/commands/skills.d.ts +9 -0
  139. package/dist/commands/skills.d.ts.map +1 -0
  140. package/dist/commands/skills.js +317 -0
  141. package/dist/commands/skills.js.map +1 -0
  142. package/dist/commands/use.d.ts +40 -0
  143. package/dist/commands/use.d.ts.map +1 -0
  144. package/dist/commands/use.js +1090 -0
  145. package/dist/commands/use.js.map +1 -0
  146. package/dist/config/paths.d.ts +47 -0
  147. package/dist/config/paths.d.ts.map +1 -0
  148. package/dist/config/paths.js +324 -0
  149. package/dist/config/paths.js.map +1 -0
  150. package/dist/config/project-config.d.ts +11 -0
  151. package/dist/config/project-config.d.ts.map +1 -0
  152. package/dist/config/project-config.js +97 -0
  153. package/dist/config/project-config.js.map +1 -0
  154. package/dist/context/broker.d.ts +99 -0
  155. package/dist/context/broker.d.ts.map +1 -0
  156. package/dist/context/broker.js +923 -0
  157. package/dist/context/broker.js.map +1 -0
  158. package/dist/context/delivery.d.ts +60 -0
  159. package/dist/context/delivery.d.ts.map +1 -0
  160. package/dist/context/delivery.js +845 -0
  161. package/dist/context/delivery.js.map +1 -0
  162. package/dist/context/feedback.d.ts +73 -0
  163. package/dist/context/feedback.d.ts.map +1 -0
  164. package/dist/context/feedback.js +993 -0
  165. package/dist/context/feedback.js.map +1 -0
  166. package/dist/context/nudge-store.d.ts +57 -0
  167. package/dist/context/nudge-store.d.ts.map +1 -0
  168. package/dist/context/nudge-store.js +227 -0
  169. package/dist/context/nudge-store.js.map +1 -0
  170. package/dist/context/nudge-validation.d.ts +26 -0
  171. package/dist/context/nudge-validation.d.ts.map +1 -0
  172. package/dist/context/nudge-validation.js +122 -0
  173. package/dist/context/nudge-validation.js.map +1 -0
  174. package/dist/context/nudges.d.ts +38 -0
  175. package/dist/context/nudges.d.ts.map +1 -0
  176. package/dist/context/nudges.js +131 -0
  177. package/dist/context/nudges.js.map +1 -0
  178. package/dist/context/origin.d.ts +9 -0
  179. package/dist/context/origin.d.ts.map +1 -0
  180. package/dist/context/origin.js +15 -0
  181. package/dist/context/origin.js.map +1 -0
  182. package/dist/context/ranking.d.ts +92 -0
  183. package/dist/context/ranking.d.ts.map +1 -0
  184. package/dist/context/ranking.js +560 -0
  185. package/dist/context/ranking.js.map +1 -0
  186. package/dist/context/recommendations.d.ts +80 -0
  187. package/dist/context/recommendations.d.ts.map +1 -0
  188. package/dist/context/recommendations.js +341 -0
  189. package/dist/context/recommendations.js.map +1 -0
  190. package/dist/context/run-state.d.ts +26 -0
  191. package/dist/context/run-state.d.ts.map +1 -0
  192. package/dist/context/run-state.js +399 -0
  193. package/dist/context/run-state.js.map +1 -0
  194. package/dist/context/scoped-broker.d.ts +77 -0
  195. package/dist/context/scoped-broker.d.ts.map +1 -0
  196. package/dist/context/scoped-broker.js +690 -0
  197. package/dist/context/scoped-broker.js.map +1 -0
  198. package/dist/context/selection-state.d.ts +32 -0
  199. package/dist/context/selection-state.d.ts.map +1 -0
  200. package/dist/context/selection-state.js +357 -0
  201. package/dist/context/selection-state.js.map +1 -0
  202. package/dist/db/adapter.d.ts +27 -0
  203. package/dist/db/adapter.d.ts.map +1 -0
  204. package/dist/db/adapter.js +41 -0
  205. package/dist/db/adapter.js.map +1 -0
  206. package/dist/db/capabilities.d.ts +21 -0
  207. package/dist/db/capabilities.d.ts.map +1 -0
  208. package/dist/db/capabilities.js +57 -0
  209. package/dist/db/capabilities.js.map +1 -0
  210. package/dist/db/connection.d.ts +21 -0
  211. package/dist/db/connection.d.ts.map +1 -0
  212. package/dist/db/connection.js +129 -0
  213. package/dist/db/connection.js.map +1 -0
  214. package/dist/db/inspection-snapshot.d.ts +4 -0
  215. package/dist/db/inspection-snapshot.d.ts.map +1 -0
  216. package/dist/db/inspection-snapshot.js +86 -0
  217. package/dist/db/inspection-snapshot.js.map +1 -0
  218. package/dist/db/migrate.d.ts +37 -0
  219. package/dist/db/migrate.d.ts.map +1 -0
  220. package/dist/db/migrate.js +202 -0
  221. package/dist/db/migrate.js.map +1 -0
  222. package/dist/db/serialized-backup.d.ts +58 -0
  223. package/dist/db/serialized-backup.d.ts.map +1 -0
  224. package/dist/db/serialized-backup.js +647 -0
  225. package/dist/db/serialized-backup.js.map +1 -0
  226. package/dist/db/sqlite-retry.d.ts +11 -0
  227. package/dist/db/sqlite-retry.d.ts.map +1 -0
  228. package/dist/db/sqlite-retry.js +70 -0
  229. package/dist/db/sqlite-retry.js.map +1 -0
  230. package/dist/db/transaction.d.ts +17 -0
  231. package/dist/db/transaction.d.ts.map +1 -0
  232. package/dist/db/transaction.js +68 -0
  233. package/dist/db/transaction.js.map +1 -0
  234. package/dist/embedding/backend.d.ts +27 -0
  235. package/dist/embedding/backend.d.ts.map +1 -0
  236. package/dist/embedding/backend.js +67 -0
  237. package/dist/embedding/backend.js.map +1 -0
  238. package/dist/embedding/config.d.ts +7 -0
  239. package/dist/embedding/config.d.ts.map +1 -0
  240. package/dist/embedding/config.js +125 -0
  241. package/dist/embedding/config.js.map +1 -0
  242. package/dist/embedding/diagnostics.d.ts +34 -0
  243. package/dist/embedding/diagnostics.d.ts.map +1 -0
  244. package/dist/embedding/diagnostics.js +274 -0
  245. package/dist/embedding/diagnostics.js.map +1 -0
  246. package/dist/embedding/document.d.ts +20 -0
  247. package/dist/embedding/document.d.ts.map +1 -0
  248. package/dist/embedding/document.js +122 -0
  249. package/dist/embedding/document.js.map +1 -0
  250. package/dist/embedding/javascript-backend.d.ts +11 -0
  251. package/dist/embedding/javascript-backend.d.ts.map +1 -0
  252. package/dist/embedding/javascript-backend.js +164 -0
  253. package/dist/embedding/javascript-backend.js.map +1 -0
  254. package/dist/embedding/jobs.d.ts +67 -0
  255. package/dist/embedding/jobs.d.ts.map +1 -0
  256. package/dist/embedding/jobs.js +259 -0
  257. package/dist/embedding/jobs.js.map +1 -0
  258. package/dist/embedding/local-model-loader.d.ts +24 -0
  259. package/dist/embedding/local-model-loader.d.ts.map +1 -0
  260. package/dist/embedding/local-model-loader.js +64 -0
  261. package/dist/embedding/local-model-loader.js.map +1 -0
  262. package/dist/embedding/local-transformers-provider.d.ts +17 -0
  263. package/dist/embedding/local-transformers-provider.d.ts.map +1 -0
  264. package/dist/embedding/local-transformers-provider.js +54 -0
  265. package/dist/embedding/local-transformers-provider.js.map +1 -0
  266. package/dist/embedding/model-download.d.ts +32 -0
  267. package/dist/embedding/model-download.d.ts.map +1 -0
  268. package/dist/embedding/model-download.js +41 -0
  269. package/dist/embedding/model-download.js.map +1 -0
  270. package/dist/embedding/model-installation.d.ts +17 -0
  271. package/dist/embedding/model-installation.d.ts.map +1 -0
  272. package/dist/embedding/model-installation.js +71 -0
  273. package/dist/embedding/model-installation.js.map +1 -0
  274. package/dist/embedding/model-manifest.d.ts +18 -0
  275. package/dist/embedding/model-manifest.d.ts.map +1 -0
  276. package/dist/embedding/model-manifest.js +86 -0
  277. package/dist/embedding/model-manifest.js.map +1 -0
  278. package/dist/embedding/openai-compatible-provider.d.ts +24 -0
  279. package/dist/embedding/openai-compatible-provider.d.ts.map +1 -0
  280. package/dist/embedding/openai-compatible-provider.js +330 -0
  281. package/dist/embedding/openai-compatible-provider.js.map +1 -0
  282. package/dist/embedding/presets/local-small.d.ts +8 -0
  283. package/dist/embedding/presets/local-small.d.ts.map +1 -0
  284. package/dist/embedding/presets/local-small.js +67 -0
  285. package/dist/embedding/presets/local-small.js.map +1 -0
  286. package/dist/embedding/presets/manifest.d.ts +27 -0
  287. package/dist/embedding/presets/manifest.d.ts.map +1 -0
  288. package/dist/embedding/presets/manifest.js +5 -0
  289. package/dist/embedding/presets/manifest.js.map +1 -0
  290. package/dist/embedding/profile.d.ts +10 -0
  291. package/dist/embedding/profile.d.ts.map +1 -0
  292. package/dist/embedding/profile.js +67 -0
  293. package/dist/embedding/profile.js.map +1 -0
  294. package/dist/embedding/provider.d.ts +13 -0
  295. package/dist/embedding/provider.d.ts.map +1 -0
  296. package/dist/embedding/provider.js +17 -0
  297. package/dist/embedding/provider.js.map +1 -0
  298. package/dist/embedding/query-cache.d.ts +45 -0
  299. package/dist/embedding/query-cache.d.ts.map +1 -0
  300. package/dist/embedding/query-cache.js +181 -0
  301. package/dist/embedding/query-cache.js.map +1 -0
  302. package/dist/embedding/runtime.d.ts +14 -0
  303. package/dist/embedding/runtime.d.ts.map +1 -0
  304. package/dist/embedding/runtime.js +407 -0
  305. package/dist/embedding/runtime.js.map +1 -0
  306. package/dist/embedding/settings.d.ts +6 -0
  307. package/dist/embedding/settings.d.ts.map +1 -0
  308. package/dist/embedding/settings.js +60 -0
  309. package/dist/embedding/settings.js.map +1 -0
  310. package/dist/embedding/setup-lock.d.ts +7 -0
  311. package/dist/embedding/setup-lock.d.ts.map +1 -0
  312. package/dist/embedding/setup-lock.js +35 -0
  313. package/dist/embedding/setup-lock.js.map +1 -0
  314. package/dist/embedding/setup-service.d.ts +47 -0
  315. package/dist/embedding/setup-service.d.ts.map +1 -0
  316. package/dist/embedding/setup-service.js +181 -0
  317. package/dist/embedding/setup-service.js.map +1 -0
  318. package/dist/embedding/sqlite-vec-backend.d.ts +9 -0
  319. package/dist/embedding/sqlite-vec-backend.d.ts.map +1 -0
  320. package/dist/embedding/sqlite-vec-backend.js +106 -0
  321. package/dist/embedding/sqlite-vec-backend.js.map +1 -0
  322. package/dist/embedding/sqlite-vec-loader.d.ts +17 -0
  323. package/dist/embedding/sqlite-vec-loader.d.ts.map +1 -0
  324. package/dist/embedding/sqlite-vec-loader.js +51 -0
  325. package/dist/embedding/sqlite-vec-loader.js.map +1 -0
  326. package/dist/embedding/store.d.ts +66 -0
  327. package/dist/embedding/store.d.ts.map +1 -0
  328. package/dist/embedding/store.js +474 -0
  329. package/dist/embedding/store.js.map +1 -0
  330. package/dist/embedding/types.d.ts +126 -0
  331. package/dist/embedding/types.d.ts.map +1 -0
  332. package/dist/embedding/types.js +2 -0
  333. package/dist/embedding/types.js.map +1 -0
  334. package/dist/embedding/vector.d.ts +9 -0
  335. package/dist/embedding/vector.d.ts.map +1 -0
  336. package/dist/embedding/vector.js +90 -0
  337. package/dist/embedding/vector.js.map +1 -0
  338. package/dist/embedding/worker.d.ts +23 -0
  339. package/dist/embedding/worker.d.ts.map +1 -0
  340. package/dist/embedding/worker.js +84 -0
  341. package/dist/embedding/worker.js.map +1 -0
  342. package/dist/errors.d.ts +13 -0
  343. package/dist/errors.d.ts.map +1 -0
  344. package/dist/errors.js +53 -0
  345. package/dist/errors.js.map +1 -0
  346. package/dist/gateway/agent-service.d.ts +72 -0
  347. package/dist/gateway/agent-service.d.ts.map +1 -0
  348. package/dist/gateway/agent-service.js +594 -0
  349. package/dist/gateway/agent-service.js.map +1 -0
  350. package/dist/gateway/checkpoint-mutation-service.d.ts +33 -0
  351. package/dist/gateway/checkpoint-mutation-service.d.ts.map +1 -0
  352. package/dist/gateway/checkpoint-mutation-service.js +503 -0
  353. package/dist/gateway/checkpoint-mutation-service.js.map +1 -0
  354. package/dist/gateway/checkpoint-service.d.ts +17 -0
  355. package/dist/gateway/checkpoint-service.d.ts.map +1 -0
  356. package/dist/gateway/checkpoint-service.js +123 -0
  357. package/dist/gateway/checkpoint-service.js.map +1 -0
  358. package/dist/gateway/nudge-delivery-service.d.ts +21 -0
  359. package/dist/gateway/nudge-delivery-service.d.ts.map +1 -0
  360. package/dist/gateway/nudge-delivery-service.js +67 -0
  361. package/dist/gateway/nudge-delivery-service.js.map +1 -0
  362. package/dist/ledger/archive.d.ts +48 -0
  363. package/dist/ledger/archive.d.ts.map +1 -0
  364. package/dist/ledger/archive.js +1252 -0
  365. package/dist/ledger/archive.js.map +1 -0
  366. package/dist/ledger/checkpoint-contract.d.ts +144 -0
  367. package/dist/ledger/checkpoint-contract.d.ts.map +1 -0
  368. package/dist/ledger/checkpoint-contract.js +91 -0
  369. package/dist/ledger/checkpoint-contract.js.map +1 -0
  370. package/dist/ledger/checkpoint-eligibility.d.ts +17 -0
  371. package/dist/ledger/checkpoint-eligibility.d.ts.map +1 -0
  372. package/dist/ledger/checkpoint-eligibility.js +19 -0
  373. package/dist/ledger/checkpoint-eligibility.js.map +1 -0
  374. package/dist/ledger/hash.d.ts +22 -0
  375. package/dist/ledger/hash.d.ts.map +1 -0
  376. package/dist/ledger/hash.js +25 -0
  377. package/dist/ledger/hash.js.map +1 -0
  378. package/dist/ledger/maintenance.d.ts +68 -0
  379. package/dist/ledger/maintenance.d.ts.map +1 -0
  380. package/dist/ledger/maintenance.js +758 -0
  381. package/dist/ledger/maintenance.js.map +1 -0
  382. package/dist/ledger/projection.d.ts +38 -0
  383. package/dist/ledger/projection.d.ts.map +1 -0
  384. package/dist/ledger/projection.js +315 -0
  385. package/dist/ledger/projection.js.map +1 -0
  386. package/dist/ledger/promotion.d.ts +19 -0
  387. package/dist/ledger/promotion.d.ts.map +1 -0
  388. package/dist/ledger/promotion.js +310 -0
  389. package/dist/ledger/promotion.js.map +1 -0
  390. package/dist/ledger/query.d.ts +41 -0
  391. package/dist/ledger/query.d.ts.map +1 -0
  392. package/dist/ledger/query.js +321 -0
  393. package/dist/ledger/query.js.map +1 -0
  394. package/dist/ledger/redaction.d.ts +8 -0
  395. package/dist/ledger/redaction.d.ts.map +1 -0
  396. package/dist/ledger/redaction.js +40 -0
  397. package/dist/ledger/redaction.js.map +1 -0
  398. package/dist/ledger/store.d.ts +45 -0
  399. package/dist/ledger/store.d.ts.map +1 -0
  400. package/dist/ledger/store.js +327 -0
  401. package/dist/ledger/store.js.map +1 -0
  402. package/dist/ledger/types.d.ts +115 -0
  403. package/dist/ledger/types.d.ts.map +1 -0
  404. package/dist/ledger/types.js +22 -0
  405. package/dist/ledger/types.js.map +1 -0
  406. package/dist/ledger/validate.d.ts +10 -0
  407. package/dist/ledger/validate.d.ts.map +1 -0
  408. package/dist/ledger/validate.js +178 -0
  409. package/dist/ledger/validate.js.map +1 -0
  410. package/dist/mcp/bounded-stdio-transport.d.ts +26 -0
  411. package/dist/mcp/bounded-stdio-transport.d.ts.map +1 -0
  412. package/dist/mcp/bounded-stdio-transport.js +121 -0
  413. package/dist/mcp/bounded-stdio-transport.js.map +1 -0
  414. package/dist/mcp/client-identity.d.ts +22 -0
  415. package/dist/mcp/client-identity.d.ts.map +1 -0
  416. package/dist/mcp/client-identity.js +65 -0
  417. package/dist/mcp/client-identity.js.map +1 -0
  418. package/dist/mcp/request-deadline.d.ts +51 -0
  419. package/dist/mcp/request-deadline.d.ts.map +1 -0
  420. package/dist/mcp/request-deadline.js +147 -0
  421. package/dist/mcp/request-deadline.js.map +1 -0
  422. package/dist/mcp/runtime-owner.d.ts +27 -0
  423. package/dist/mcp/runtime-owner.d.ts.map +1 -0
  424. package/dist/mcp/runtime-owner.js +129 -0
  425. package/dist/mcp/runtime-owner.js.map +1 -0
  426. package/dist/mcp/server.d.ts +24 -0
  427. package/dist/mcp/server.d.ts.map +1 -0
  428. package/dist/mcp/server.js +415 -0
  429. package/dist/mcp/server.js.map +1 -0
  430. package/dist/memory/audit.d.ts +13 -0
  431. package/dist/memory/audit.d.ts.map +1 -0
  432. package/dist/memory/audit.js +15 -0
  433. package/dist/memory/audit.js.map +1 -0
  434. package/dist/memory/checkpoint-contract.d.ts +490 -0
  435. package/dist/memory/checkpoint-contract.d.ts.map +1 -0
  436. package/dist/memory/checkpoint-contract.js +106 -0
  437. package/dist/memory/checkpoint-contract.js.map +1 -0
  438. package/dist/memory/curator-trust.d.ts +9 -0
  439. package/dist/memory/curator-trust.d.ts.map +1 -0
  440. package/dist/memory/curator-trust.js +47 -0
  441. package/dist/memory/curator-trust.js.map +1 -0
  442. package/dist/memory/curator.d.ts +115 -0
  443. package/dist/memory/curator.d.ts.map +1 -0
  444. package/dist/memory/curator.js +674 -0
  445. package/dist/memory/curator.js.map +1 -0
  446. package/dist/memory/entries.d.ts +75 -0
  447. package/dist/memory/entries.d.ts.map +1 -0
  448. package/dist/memory/entries.js +355 -0
  449. package/dist/memory/entries.js.map +1 -0
  450. package/dist/memory/federated-retrieval.d.ts +79 -0
  451. package/dist/memory/federated-retrieval.d.ts.map +1 -0
  452. package/dist/memory/federated-retrieval.js +515 -0
  453. package/dist/memory/federated-retrieval.js.map +1 -0
  454. package/dist/memory/hybrid-retrieval.d.ts +33 -0
  455. package/dist/memory/hybrid-retrieval.d.ts.map +1 -0
  456. package/dist/memory/hybrid-retrieval.js +398 -0
  457. package/dist/memory/hybrid-retrieval.js.map +1 -0
  458. package/dist/memory/lifecycle.d.ts +29 -0
  459. package/dist/memory/lifecycle.d.ts.map +1 -0
  460. package/dist/memory/lifecycle.js +65 -0
  461. package/dist/memory/lifecycle.js.map +1 -0
  462. package/dist/memory/portability.d.ts +10 -0
  463. package/dist/memory/portability.d.ts.map +1 -0
  464. package/dist/memory/portability.js +44 -0
  465. package/dist/memory/portability.js.map +1 -0
  466. package/dist/memory/rebuild-search.d.ts +19 -0
  467. package/dist/memory/rebuild-search.d.ts.map +1 -0
  468. package/dist/memory/rebuild-search.js +138 -0
  469. package/dist/memory/rebuild-search.js.map +1 -0
  470. package/dist/memory/retrieval-query.d.ts +16 -0
  471. package/dist/memory/retrieval-query.d.ts.map +1 -0
  472. package/dist/memory/retrieval-query.js +161 -0
  473. package/dist/memory/retrieval-query.js.map +1 -0
  474. package/dist/memory/retrieval.d.ts +56 -0
  475. package/dist/memory/retrieval.d.ts.map +1 -0
  476. package/dist/memory/retrieval.js +101 -0
  477. package/dist/memory/retrieval.js.map +1 -0
  478. package/dist/memory/revisions.d.ts +109 -0
  479. package/dist/memory/revisions.d.ts.map +1 -0
  480. package/dist/memory/revisions.js +409 -0
  481. package/dist/memory/revisions.js.map +1 -0
  482. package/dist/memory/scoped-memory.d.ts +76 -0
  483. package/dist/memory/scoped-memory.d.ts.map +1 -0
  484. package/dist/memory/scoped-memory.js +530 -0
  485. package/dist/memory/scoped-memory.js.map +1 -0
  486. package/dist/memory/secrets.d.ts +8 -0
  487. package/dist/memory/secrets.d.ts.map +1 -0
  488. package/dist/memory/secrets.js +54 -0
  489. package/dist/memory/secrets.js.map +1 -0
  490. package/dist/memory/structured-memory.d.ts +56 -0
  491. package/dist/memory/structured-memory.d.ts.map +1 -0
  492. package/dist/memory/structured-memory.js +281 -0
  493. package/dist/memory/structured-memory.js.map +1 -0
  494. package/dist/memory/workspaces.d.ts +26 -0
  495. package/dist/memory/workspaces.d.ts.map +1 -0
  496. package/dist/memory/workspaces.js +159 -0
  497. package/dist/memory/workspaces.js.map +1 -0
  498. package/dist/package-version.d.ts +2 -0
  499. package/dist/package-version.d.ts.map +1 -0
  500. package/dist/package-version.js +7 -0
  501. package/dist/package-version.js.map +1 -0
  502. package/dist/repository/binding.d.ts +32 -0
  503. package/dist/repository/binding.d.ts.map +1 -0
  504. package/dist/repository/binding.js +208 -0
  505. package/dist/repository/binding.js.map +1 -0
  506. package/dist/repository/cwd-schema.d.ts +4 -0
  507. package/dist/repository/cwd-schema.d.ts.map +1 -0
  508. package/dist/repository/cwd-schema.js +8 -0
  509. package/dist/repository/cwd-schema.js.map +1 -0
  510. package/dist/repository/detect-root.d.ts +13 -0
  511. package/dist/repository/detect-root.d.ts.map +1 -0
  512. package/dist/repository/detect-root.js +77 -0
  513. package/dist/repository/detect-root.js.map +1 -0
  514. package/dist/repository/framework-version.d.ts +8 -0
  515. package/dist/repository/framework-version.d.ts.map +1 -0
  516. package/dist/repository/framework-version.js +29 -0
  517. package/dist/repository/framework-version.js.map +1 -0
  518. package/dist/repository/git-origin.d.ts +2 -0
  519. package/dist/repository/git-origin.d.ts.map +1 -0
  520. package/dist/repository/git-origin.js +15 -0
  521. package/dist/repository/git-origin.js.map +1 -0
  522. package/dist/repository/gitignore.d.ts +8 -0
  523. package/dist/repository/gitignore.d.ts.map +1 -0
  524. package/dist/repository/gitignore.js +21 -0
  525. package/dist/repository/gitignore.js.map +1 -0
  526. package/dist/repository/identity-value.d.ts +4 -0
  527. package/dist/repository/identity-value.d.ts.map +1 -0
  528. package/dist/repository/identity-value.js +24 -0
  529. package/dist/repository/identity-value.js.map +1 -0
  530. package/dist/repository/identity.d.ts +19 -0
  531. package/dist/repository/identity.d.ts.map +1 -0
  532. package/dist/repository/identity.js +25 -0
  533. package/dist/repository/identity.js.map +1 -0
  534. package/dist/repository/project-fingerprint.d.ts +33 -0
  535. package/dist/repository/project-fingerprint.d.ts.map +1 -0
  536. package/dist/repository/project-fingerprint.js +429 -0
  537. package/dist/repository/project-fingerprint.js.map +1 -0
  538. package/dist/repository/remote-url.d.ts +3 -0
  539. package/dist/repository/remote-url.d.ts.map +1 -0
  540. package/dist/repository/remote-url.js +35 -0
  541. package/dist/repository/remote-url.js.map +1 -0
  542. package/dist/runtime-version.d.ts +6 -0
  543. package/dist/runtime-version.d.ts.map +1 -0
  544. package/dist/runtime-version.js +33 -0
  545. package/dist/runtime-version.js.map +1 -0
  546. package/dist/security/sanitize.d.ts +4 -0
  547. package/dist/security/sanitize.d.ts.map +1 -0
  548. package/dist/security/sanitize.js +174 -0
  549. package/dist/security/sanitize.js.map +1 -0
  550. package/dist/serialization/boundary-json.d.ts +20 -0
  551. package/dist/serialization/boundary-json.d.ts.map +1 -0
  552. package/dist/serialization/boundary-json.js +129 -0
  553. package/dist/serialization/boundary-json.js.map +1 -0
  554. package/dist/serialization/envelope.d.ts +20 -0
  555. package/dist/serialization/envelope.d.ts.map +1 -0
  556. package/dist/serialization/envelope.js +11 -0
  557. package/dist/serialization/envelope.js.map +1 -0
  558. package/dist/serialization/validate.d.ts +38 -0
  559. package/dist/serialization/validate.d.ts.map +1 -0
  560. package/dist/serialization/validate.js +233 -0
  561. package/dist/serialization/validate.js.map +1 -0
  562. package/dist/server/agent-application.d.ts +6 -0
  563. package/dist/server/agent-application.d.ts.map +1 -0
  564. package/dist/server/agent-application.js +74 -0
  565. package/dist/server/agent-application.js.map +1 -0
  566. package/dist/server/agent-checkpoint-use-case.d.ts +40 -0
  567. package/dist/server/agent-checkpoint-use-case.d.ts.map +1 -0
  568. package/dist/server/agent-checkpoint-use-case.js +157 -0
  569. package/dist/server/agent-checkpoint-use-case.js.map +1 -0
  570. package/dist/server/app.d.ts +5 -0
  571. package/dist/server/app.d.ts.map +1 -0
  572. package/dist/server/app.js +87 -0
  573. package/dist/server/app.js.map +1 -0
  574. package/dist/server/auth.d.ts +2 -0
  575. package/dist/server/auth.d.ts.map +1 -0
  576. package/dist/server/auth.js +22 -0
  577. package/dist/server/auth.js.map +1 -0
  578. package/dist/server/http.d.ts +86 -0
  579. package/dist/server/http.d.ts.map +1 -0
  580. package/dist/server/http.js +455 -0
  581. package/dist/server/http.js.map +1 -0
  582. package/dist/server/idempotency.d.ts +6 -0
  583. package/dist/server/idempotency.d.ts.map +1 -0
  584. package/dist/server/idempotency.js +210 -0
  585. package/dist/server/idempotency.js.map +1 -0
  586. package/dist/server/instance-lock.d.ts +17 -0
  587. package/dist/server/instance-lock.d.ts.map +1 -0
  588. package/dist/server/instance-lock.js +118 -0
  589. package/dist/server/instance-lock.js.map +1 -0
  590. package/dist/server/router.d.ts +29 -0
  591. package/dist/server/router.d.ts.map +1 -0
  592. package/dist/server/router.js +129 -0
  593. package/dist/server/router.js.map +1 -0
  594. package/dist/server/routes/agent-capability-gate.d.ts +43 -0
  595. package/dist/server/routes/agent-capability-gate.d.ts.map +1 -0
  596. package/dist/server/routes/agent-capability-gate.js +202 -0
  597. package/dist/server/routes/agent-capability-gate.js.map +1 -0
  598. package/dist/server/routes/agent-events.d.ts +5 -0
  599. package/dist/server/routes/agent-events.d.ts.map +1 -0
  600. package/dist/server/routes/agent-events.js +53 -0
  601. package/dist/server/routes/agent-events.js.map +1 -0
  602. package/dist/server/routes/agent-intake.d.ts +5 -0
  603. package/dist/server/routes/agent-intake.d.ts.map +1 -0
  604. package/dist/server/routes/agent-intake.js +50 -0
  605. package/dist/server/routes/agent-intake.js.map +1 -0
  606. package/dist/server/routes/agent-promotions.d.ts +5 -0
  607. package/dist/server/routes/agent-promotions.d.ts.map +1 -0
  608. package/dist/server/routes/agent-promotions.js +55 -0
  609. package/dist/server/routes/agent-promotions.js.map +1 -0
  610. package/dist/server/routes/agent-runs.d.ts +26 -0
  611. package/dist/server/routes/agent-runs.d.ts.map +1 -0
  612. package/dist/server/routes/agent-runs.js +165 -0
  613. package/dist/server/routes/agent-runs.js.map +1 -0
  614. package/dist/server/routes/request-binding.d.ts +5 -0
  615. package/dist/server/routes/request-binding.d.ts.map +1 -0
  616. package/dist/server/routes/request-binding.js +49 -0
  617. package/dist/server/routes/request-binding.js.map +1 -0
  618. package/dist/server/routes/task5-support.d.ts +4 -0
  619. package/dist/server/routes/task5-support.d.ts.map +1 -0
  620. package/dist/server/routes/task5-support.js +6 -0
  621. package/dist/server/routes/task5-support.js.map +1 -0
  622. package/dist/server/routes/task5.d.ts +5 -0
  623. package/dist/server/routes/task5.d.ts.map +1 -0
  624. package/dist/server/routes/task5.js +56 -0
  625. package/dist/server/routes/task5.js.map +1 -0
  626. package/dist/server/runtime-descriptor.d.ts +24 -0
  627. package/dist/server/runtime-descriptor.d.ts.map +1 -0
  628. package/dist/server/runtime-descriptor.js +156 -0
  629. package/dist/server/runtime-descriptor.js.map +1 -0
  630. package/dist/server/write-queue.d.ts +20 -0
  631. package/dist/server/write-queue.d.ts.map +1 -0
  632. package/dist/server/write-queue.js +83 -0
  633. package/dist/server/write-queue.js.map +1 -0
  634. package/dist/setup/claude-config.d.ts +6 -0
  635. package/dist/setup/claude-config.d.ts.map +1 -0
  636. package/dist/setup/claude-config.js +83 -0
  637. package/dist/setup/claude-config.js.map +1 -0
  638. package/dist/setup/client-detection.d.ts +13 -0
  639. package/dist/setup/client-detection.d.ts.map +1 -0
  640. package/dist/setup/client-detection.js +64 -0
  641. package/dist/setup/client-detection.js.map +1 -0
  642. package/dist/setup/hermes-config.d.ts +7 -0
  643. package/dist/setup/hermes-config.d.ts.map +1 -0
  644. package/dist/setup/hermes-config.js +145 -0
  645. package/dist/setup/hermes-config.js.map +1 -0
  646. package/dist/setup/managed-text.d.ts +6 -0
  647. package/dist/setup/managed-text.d.ts.map +1 -0
  648. package/dist/setup/managed-text.js +52 -0
  649. package/dist/setup/managed-text.js.map +1 -0
  650. package/dist/setup/mcp-conflict.d.ts +4 -0
  651. package/dist/setup/mcp-conflict.d.ts.map +1 -0
  652. package/dist/setup/mcp-conflict.js +15 -0
  653. package/dist/setup/mcp-conflict.js.map +1 -0
  654. package/dist/setup/opencode-config.d.ts +6 -0
  655. package/dist/setup/opencode-config.d.ts.map +1 -0
  656. package/dist/setup/opencode-config.js +86 -0
  657. package/dist/setup/opencode-config.js.map +1 -0
  658. package/dist/setup/project-agent-refresh.d.ts +41 -0
  659. package/dist/setup/project-agent-refresh.d.ts.map +1 -0
  660. package/dist/setup/project-agent-refresh.js +158 -0
  661. package/dist/setup/project-agent-refresh.js.map +1 -0
  662. package/dist/setup/render.d.ts +11 -0
  663. package/dist/setup/render.d.ts.map +1 -0
  664. package/dist/setup/render.js +323 -0
  665. package/dist/setup/render.js.map +1 -0
  666. package/dist/setup/standard-skills.d.ts +52 -0
  667. package/dist/setup/standard-skills.d.ts.map +1 -0
  668. package/dist/setup/standard-skills.js +125 -0
  669. package/dist/setup/standard-skills.js.map +1 -0
  670. package/dist/setup/strict-json.d.ts +7 -0
  671. package/dist/setup/strict-json.d.ts.map +1 -0
  672. package/dist/setup/strict-json.js +98 -0
  673. package/dist/setup/strict-json.js.map +1 -0
  674. package/dist/setup/strict-toml.d.ts +18 -0
  675. package/dist/setup/strict-toml.d.ts.map +1 -0
  676. package/dist/setup/strict-toml.js +491 -0
  677. package/dist/setup/strict-toml.js.map +1 -0
  678. package/dist/skills/cache.d.ts +15 -0
  679. package/dist/skills/cache.d.ts.map +1 -0
  680. package/dist/skills/cache.js +19 -0
  681. package/dist/skills/cache.js.map +1 -0
  682. package/dist/skills/candidate-ranking.d.ts +15 -0
  683. package/dist/skills/candidate-ranking.d.ts.map +1 -0
  684. package/dist/skills/candidate-ranking.js +52 -0
  685. package/dist/skills/candidate-ranking.js.map +1 -0
  686. package/dist/skills/chunking.d.ts +11 -0
  687. package/dist/skills/chunking.d.ts.map +1 -0
  688. package/dist/skills/chunking.js +291 -0
  689. package/dist/skills/chunking.js.map +1 -0
  690. package/dist/skills/config.d.ts +19 -0
  691. package/dist/skills/config.d.ts.map +1 -0
  692. package/dist/skills/config.js +103 -0
  693. package/dist/skills/config.js.map +1 -0
  694. package/dist/skills/discovery-service.d.ts +26 -0
  695. package/dist/skills/discovery-service.d.ts.map +1 -0
  696. package/dist/skills/discovery-service.js +929 -0
  697. package/dist/skills/discovery-service.js.map +1 -0
  698. package/dist/skills/external-transport.d.ts +2 -0
  699. package/dist/skills/external-transport.d.ts.map +1 -0
  700. package/dist/skills/external-transport.js +30 -0
  701. package/dist/skills/external-transport.js.map +1 -0
  702. package/dist/skills/find.d.ts +17 -0
  703. package/dist/skills/find.d.ts.map +1 -0
  704. package/dist/skills/find.js +59 -0
  705. package/dist/skills/find.js.map +1 -0
  706. package/dist/skills/gap-detection.d.ts +23 -0
  707. package/dist/skills/gap-detection.d.ts.map +1 -0
  708. package/dist/skills/gap-detection.js +62 -0
  709. package/dist/skills/gap-detection.js.map +1 -0
  710. package/dist/skills/import-preparation.d.ts +4 -0
  711. package/dist/skills/import-preparation.d.ts.map +1 -0
  712. package/dist/skills/import-preparation.js +20 -0
  713. package/dist/skills/import-preparation.js.map +1 -0
  714. package/dist/skills/materialization-authority.d.ts +11 -0
  715. package/dist/skills/materialization-authority.d.ts.map +1 -0
  716. package/dist/skills/materialization-authority.js +92 -0
  717. package/dist/skills/materialization-authority.js.map +1 -0
  718. package/dist/skills/materialization-service.d.ts +22 -0
  719. package/dist/skills/materialization-service.d.ts.map +1 -0
  720. package/dist/skills/materialization-service.js +101 -0
  721. package/dist/skills/materialization-service.js.map +1 -0
  722. package/dist/skills/official-catalog.d.ts +31 -0
  723. package/dist/skills/official-catalog.d.ts.map +1 -0
  724. package/dist/skills/official-catalog.js +110 -0
  725. package/dist/skills/official-catalog.js.map +1 -0
  726. package/dist/skills/providers/schema.d.ts +30 -0
  727. package/dist/skills/providers/schema.d.ts.map +1 -0
  728. package/dist/skills/providers/schema.js +354 -0
  729. package/dist/skills/providers/schema.js.map +1 -0
  730. package/dist/skills/providers/skills-sh-compat.d.ts +17 -0
  731. package/dist/skills/providers/skills-sh-compat.d.ts.map +1 -0
  732. package/dist/skills/providers/skills-sh-compat.js +73 -0
  733. package/dist/skills/providers/skills-sh-compat.js.map +1 -0
  734. package/dist/skills/providers/skills-sh-v1.d.ts +23 -0
  735. package/dist/skills/providers/skills-sh-v1.d.ts.map +1 -0
  736. package/dist/skills/providers/skills-sh-v1.js +152 -0
  737. package/dist/skills/providers/skills-sh-v1.js.map +1 -0
  738. package/dist/skills/query-builder.d.ts +18 -0
  739. package/dist/skills/query-builder.d.ts.map +1 -0
  740. package/dist/skills/query-builder.js +93 -0
  741. package/dist/skills/query-builder.js.map +1 -0
  742. package/dist/skills/source/errors.d.ts +9 -0
  743. package/dist/skills/source/errors.d.ts.map +1 -0
  744. package/dist/skills/source/errors.js +15 -0
  745. package/dist/skills/source/errors.js.map +1 -0
  746. package/dist/skills/source/frontmatter.d.ts +9 -0
  747. package/dist/skills/source/frontmatter.d.ts.map +1 -0
  748. package/dist/skills/source/frontmatter.js +77 -0
  749. package/dist/skills/source/frontmatter.js.map +1 -0
  750. package/dist/skills/source/github-fetcher.d.ts +20 -0
  751. package/dist/skills/source/github-fetcher.d.ts.map +1 -0
  752. package/dist/skills/source/github-fetcher.js +296 -0
  753. package/dist/skills/source/github-fetcher.js.map +1 -0
  754. package/dist/skills/source/snapshot-validator.d.ts +28 -0
  755. package/dist/skills/source/snapshot-validator.d.ts.map +1 -0
  756. package/dist/skills/source/snapshot-validator.js +186 -0
  757. package/dist/skills/source/snapshot-validator.js.map +1 -0
  758. package/dist/skills/store.d.ts +180 -0
  759. package/dist/skills/store.d.ts.map +1 -0
  760. package/dist/skills/store.js +1712 -0
  761. package/dist/skills/store.js.map +1 -0
  762. package/dist/skills/types.d.ts +171 -0
  763. package/dist/skills/types.d.ts.map +1 -0
  764. package/dist/skills/types.js +2 -0
  765. package/dist/skills/types.js.map +1 -0
  766. package/dist/web/i18n.d.ts +184 -0
  767. package/dist/web/i18n.d.ts.map +1 -0
  768. package/dist/web/i18n.js +733 -0
  769. package/dist/web/i18n.js.map +1 -0
  770. package/dist/web/server.d.ts +16 -0
  771. package/dist/web/server.d.ts.map +1 -0
  772. package/dist/web/server.js +864 -0
  773. package/dist/web/server.js.map +1 -0
  774. package/dist/web/ui.d.ts +6 -0
  775. package/dist/web/ui.d.ts.map +1 -0
  776. package/dist/web/ui.js +1328 -0
  777. package/dist/web/ui.js.map +1 -0
  778. package/docs/README.ja.md +13 -0
  779. package/docs/README.md +15 -0
  780. package/docs/agent-file.md +53 -0
  781. package/docs/agent-gateway.md +102 -0
  782. package/docs/architecture.md +12 -0
  783. package/docs/breaking-changes-1.0.md +64 -0
  784. package/docs/cli-contract.md +39 -0
  785. package/docs/client-compatibility.md +110 -0
  786. package/docs/concepts.ja.md +25 -0
  787. package/docs/concepts.md +33 -0
  788. package/docs/database.md +20 -0
  789. package/docs/execution-ledger.md +68 -0
  790. package/docs/getting-started.ja.md +45 -0
  791. package/docs/getting-started.md +49 -0
  792. package/docs/release-notes-0.1.18.md +105 -0
  793. package/docs/retrieval-evaluation.md +10 -0
  794. package/docs/security-and-trust.ja.md +29 -0
  795. package/docs/security-and-trust.md +39 -0
  796. package/docs/security.md +11 -0
  797. package/docs/semantic-retrieval.ja.md +18 -0
  798. package/docs/semantic-retrieval.md +26 -0
  799. package/docs/sqlite-driver-adr.md +8 -0
  800. package/migrations/001_baseline.sql +972 -0
  801. package/package.json +81 -0
  802. package/skills/kiokuko-simple-work/SKILL.md +112 -0
  803. package/skills/kiokuko-single-purpose-functions/SKILL.md +81 -0
  804. package/skills/kiokuko-single-purpose-functions/references/boundaries-and-ownership.md +50 -0
  805. package/skills/kiokuko-single-purpose-functions/references/domain-and-types.md +48 -0
  806. package/skills/kiokuko-single-purpose-functions/references/effects-and-data.md +43 -0
  807. package/skills/kiokuko-single-purpose-functions/references/kiokuko-patterns.md +344 -0
  808. package/skills/kiokuko-single-purpose-functions/references/problem-shaping-and-language.md +84 -0
  809. package/skills/kiokuko-single-purpose-functions/references/protocols-and-idempotency.md +42 -0
  810. package/skills/kiokuko-single-purpose-functions/references/review-checklist.md +97 -0
  811. package/skills/kiokuko-single-purpose-functions/references/verification.md +41 -0
  812. package/skills/kiokuko-soul/SKILL.md +93 -0
  813. package/skills/kiokuko-ui-design-soul/SKILL.md +71 -0
  814. package/skills/kiokuko-ui-design-soul/references/accessibility-and-navigation.md +31 -0
  815. package/skills/kiokuko-ui-design-soul/references/async-recovery.md +49 -0
  816. package/skills/kiokuko-ui-design-soul/references/forms-and-controls.md +35 -0
  817. package/skills/kiokuko-ui-design-soul/references/interaction-feedback.md +34 -0
  818. package/skills/kiokuko-ui-design-soul/references/responsive-and-platform.md +38 -0
  819. package/skills/kiokuko-ui-design-soul/references/safety-and-review.md +39 -0
  820. package/skills/kiokuko-ui-design-soul/references/ui-checklist.md +71 -0
  821. package/skills/memory-reasoning/SKILL.md +52 -0
  822. package/templates/AGENTS.md +39 -0
@@ -0,0 +1,923 @@
1
+ import { KiokukoError } from '../errors.js';
2
+ import { withImmediateTransaction } from '../db/transaction.js';
3
+ import { listContextDeliveries, readContextDelivery, recordContextDeliveryInTransaction, } from './delivery.js';
4
+ import { contextFeedbackSignals } from './feedback.js';
5
+ import { buildRecommendations, RECOMMENDATION_POLICY_VERSION } from './recommendations.js';
6
+ import { CONTEXT_RANKING_VERSION, CONTEXT_SELECTION_REASON_ORDER, rankContextCandidates } from './ranking.js';
7
+ import { rankedEntryHits } from '../memory/retrieval.js';
8
+ import { readEntry } from '../memory/entries.js';
9
+ import { decodeStoredStructuredScope, readEntryRevision } from '../memory/revisions.js';
10
+ import { federatedEntries } from '../memory/federated-retrieval.js';
11
+ import { isRetrievableEntry } from '../memory/hybrid-retrieval.js';
12
+ import { GLOBAL_WORKSPACE } from '../memory/workspaces.js';
13
+ import { effectiveRetrievalScope, hasExplicitApplicability } from '../memory/structured-memory.js';
14
+ import { canonicalContentHash, compareCanonicalStrings } from '../serialization/validate.js';
15
+ import { entryOriginMatchesWorkspace } from './origin.js';
16
+ import { isExternalSkillReference } from '../skills/store.js';
17
+ import { contextRetrievalStateHash } from './selection-state.js';
18
+ import { readContextRunRetrievalState } from './run-state.js';
19
+ import { prepareEmbeddingSearchRuntime } from '../embedding/runtime.js';
20
+ import { captureProjectManifestSnapshot, resolveProjectFingerprint, } from '../repository/project-fingerprint.js';
21
+ export const CONTEXT_BROKER_POLICY_VERSION = `${CONTEXT_RANKING_VERSION}+${RECOMMENDATION_POLICY_VERSION}`;
22
+ export const CONTEXT_BROKER_DEFAULT_LIMIT = 20;
23
+ export const CONTEXT_BROKER_MAX_LIMIT = 100;
24
+ export const CONTEXT_BROKER_DEFAULT_CHARACTER_BUDGET = 8_000;
25
+ export const CONTEXT_BROKER_MAX_CHARACTER_BUDGET = 100_000;
26
+ function normalizedGateDecision(value) {
27
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
28
+ throw new TypeError('Context broker gate returned an invalid decision');
29
+ }
30
+ const prototype = Object.getPrototypeOf(value);
31
+ const keys = Reflect.ownKeys(value);
32
+ if ((prototype !== Object.prototype && prototype !== null)
33
+ || keys.some((key) => typeof key !== 'string'
34
+ || key !== 'persist' && key !== 'value' && key !== 'assertBeforePersist')
35
+ || !keys.includes('persist')
36
+ || !keys.includes('value')) {
37
+ throw new TypeError('Context broker gate returned an invalid decision');
38
+ }
39
+ const persistDescriptor = Object.getOwnPropertyDescriptor(value, 'persist');
40
+ const resultDescriptor = Object.getOwnPropertyDescriptor(value, 'value');
41
+ const assertionDescriptor = Object.getOwnPropertyDescriptor(value, 'assertBeforePersist');
42
+ if (persistDescriptor === undefined
43
+ || !Object.hasOwn(persistDescriptor, 'value')
44
+ || typeof persistDescriptor.value !== 'boolean'
45
+ || resultDescriptor === undefined
46
+ || !Object.hasOwn(resultDescriptor, 'value')
47
+ || assertionDescriptor !== undefined
48
+ && (!Object.hasOwn(assertionDescriptor, 'value') || typeof assertionDescriptor.value !== 'function')) {
49
+ throw new TypeError('Context broker gate returned an invalid decision');
50
+ }
51
+ return {
52
+ persist: persistDescriptor.value,
53
+ value: resultDescriptor.value,
54
+ ...(assertionDescriptor === undefined
55
+ ? {}
56
+ : { assertBeforePersist: assertionDescriptor.value }),
57
+ };
58
+ }
59
+ function contextDeliverySnapshotHash(delivery) {
60
+ return canonicalContentHash({
61
+ workspace: delivery.workspace,
62
+ deliveryId: delivery.deliveryId,
63
+ runId: delivery.runId,
64
+ throughSequence: delivery.throughSequence,
65
+ intakeSessionId: delivery.intakeSessionId,
66
+ taskProfileHash: delivery.taskProfileHash,
67
+ queryHash: delivery.queryHash,
68
+ policyVersion: delivery.policyVersion,
69
+ charBudget: delivery.charBudget,
70
+ charCount: delivery.charCount,
71
+ truncated: delivery.truncated,
72
+ createdAt: delivery.createdAt,
73
+ scoreSchemaVersion: delivery.scoreSchemaVersion ?? 1,
74
+ items: delivery.items.map((item) => ({
75
+ entryId: item.entryId,
76
+ entryRevision: item.entryRevision,
77
+ rank: item.rank,
78
+ scoreComponents: item.scoreComponents,
79
+ selectionReasons: item.selectionReasons,
80
+ ...(item.origin === undefined ? {} : { origin: item.origin }),
81
+ })),
82
+ });
83
+ }
84
+ function assertReplayDeliveryUnchanged(database, expected) {
85
+ let current;
86
+ try {
87
+ current = readContextDelivery(database, {
88
+ workspace: expected.workspace,
89
+ deliveryId: expected.deliveryId,
90
+ });
91
+ }
92
+ catch (error) {
93
+ if (error instanceof KiokukoError && error.code === 'NOT_FOUND') {
94
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context delivery disappeared during replay');
95
+ }
96
+ throw error;
97
+ }
98
+ if (contextDeliverySnapshotHash(current) !== contextDeliverySnapshotHash(expected)) {
99
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context delivery changed during replay');
100
+ }
101
+ }
102
+ function invalid() {
103
+ throw new KiokukoError('VALIDATION_ERROR', 'Context query input is invalid');
104
+ }
105
+ function notFound() {
106
+ throw new KiokukoError('NOT_FOUND', 'Context run was not found');
107
+ }
108
+ function isTaskProfile(value) {
109
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
110
+ return false;
111
+ const profile = value;
112
+ return Object.keys(profile).length === 4
113
+ && ['taskType', 'target', 'expected', 'constraints'].every((field) => Object.hasOwn(profile, field))
114
+ && (profile.taskType === null || ['build', 'debug', 'research', 'review', 'devops', 'writing', 'analysis'].includes(String(profile.taskType)))
115
+ && ['target', 'expected', 'constraints'].every((field) => profile[field] === null || typeof profile[field] === 'string');
116
+ }
117
+ function boundedStringArray(value, max) {
118
+ if (value === undefined)
119
+ return [];
120
+ if (!Array.isArray(value) || value.length > max || value.some((item) => typeof item !== 'string' || item.length === 0 || item.length > 2_000))
121
+ invalid();
122
+ return [...new Set(value)].sort();
123
+ }
124
+ function normalizeInput(input) {
125
+ if (typeof input !== 'object' || input === null || Array.isArray(input))
126
+ invalid();
127
+ const value = input;
128
+ const allowed = new Set(['apiVersion', 'workspace', 'runId', 'task', 'taskProfile', 'recommendedTags', 'changedPaths', 'errorSignatures', 'limit', 'characterBudget']);
129
+ if (Object.keys(value).some((key) => !allowed.has(key)))
130
+ invalid();
131
+ if (value.apiVersion !== undefined && value.apiVersion !== '1')
132
+ invalid();
133
+ if (value.workspace !== undefined && (typeof value.workspace !== 'string' || value.workspace.length === 0 || value.workspace.length > 256))
134
+ invalid();
135
+ if (value.runId === undefined && value.workspace === undefined)
136
+ invalid();
137
+ if (value.runId !== undefined && (typeof value.runId !== 'string' || value.runId.length === 0 || value.runId.length > 256))
138
+ invalid();
139
+ if (value.task !== undefined && (typeof value.task !== 'string' || value.task.length > 16_384))
140
+ invalid();
141
+ if (value.taskProfile !== undefined && !isTaskProfile(value.taskProfile))
142
+ invalid();
143
+ if (value.limit !== undefined && (typeof value.limit !== 'number' || !Number.isSafeInteger(value.limit) || value.limit < 1 || value.limit > CONTEXT_BROKER_MAX_LIMIT))
144
+ invalid();
145
+ if (value.characterBudget !== undefined && (typeof value.characterBudget !== 'number' || !Number.isSafeInteger(value.characterBudget) || value.characterBudget < 1 || value.characterBudget > CONTEXT_BROKER_MAX_CHARACTER_BUDGET))
146
+ invalid();
147
+ return {
148
+ ...(value.workspace === undefined ? {} : { workspace: value.workspace }),
149
+ ...(value.runId === undefined ? {} : { runId: value.runId }),
150
+ ...(value.task === undefined ? {} : { task: value.task }),
151
+ ...(value.taskProfile === undefined ? {} : { taskProfile: value.taskProfile }),
152
+ recommendedTags: boundedStringArray(value.recommendedTags, 500),
153
+ changedPaths: boundedStringArray(value.changedPaths, 500),
154
+ errorSignatures: boundedStringArray(value.errorSignatures, 500),
155
+ ...(value.limit === undefined ? {} : { limit: value.limit }),
156
+ ...(value.characterBudget === undefined ? {} : { characterBudget: value.characterBudget }),
157
+ };
158
+ }
159
+ function normalizePersistence(value) {
160
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
161
+ throw new TypeError('Context broker persistence adapter is invalid');
162
+ }
163
+ const object = value;
164
+ const prototype = Object.getPrototypeOf(object);
165
+ const keys = Reflect.ownKeys(object);
166
+ const descriptor = Object.getOwnPropertyDescriptor(object, 'enqueueWrite');
167
+ if ((prototype !== Object.prototype && prototype !== null)
168
+ || keys.some((key) => key !== 'enqueueWrite')
169
+ || descriptor !== undefined && !Object.hasOwn(descriptor, 'value')) {
170
+ throw new TypeError('Context broker persistence adapter is invalid');
171
+ }
172
+ const enqueueWrite = descriptor?.value;
173
+ if (enqueueWrite !== undefined && typeof enqueueWrite !== 'function') {
174
+ throw new TypeError('Context broker persistence adapter is invalid');
175
+ }
176
+ return enqueueWrite === undefined
177
+ ? {}
178
+ : { enqueueWrite: enqueueWrite };
179
+ }
180
+ function currentRunContext(database, runId) {
181
+ try {
182
+ return readContextRunRetrievalState(database, runId);
183
+ }
184
+ catch (error) {
185
+ if (error instanceof KiokukoError
186
+ && error.code === 'NOT_FOUND'
187
+ && error.message === 'Context run was not found') {
188
+ notFound();
189
+ }
190
+ throw error;
191
+ }
192
+ }
193
+ /** Read the same authoritative run/intake/profile snapshot used to rank broker context. */
194
+ export function readContextBrokerRunState(database, runId) {
195
+ const current = currentRunContext(database, runId);
196
+ return {
197
+ run: current.run,
198
+ taskProfile: { ...current.profile },
199
+ profileHash: current.profileHash,
200
+ recommendedTags: [...current.recommendedTags],
201
+ intakeSessionId: current.intakeSessionId,
202
+ status: current.intakeStatus === 'active' ? 'needs_answer' : current.intakeStatus,
203
+ };
204
+ }
205
+ function preparedQuery(database, input) {
206
+ const runContext = input.runId === undefined ? null : currentRunContext(database, input.runId);
207
+ const requestedWorkspace = input.workspace ?? 'run-bound';
208
+ const profile = runContext?.profile ?? input.taskProfile;
209
+ if (profile === undefined || !isTaskProfile(profile))
210
+ invalid();
211
+ const task = runContext?.run.title ?? input.task ?? [profile.target, profile.expected, profile.constraints].filter((value) => value !== null).join(' ');
212
+ const throughSequence = runContext?.run.lastSequence ?? 0;
213
+ const taskProfileHash = runContext?.profileHash ?? canonicalContentHash(profile);
214
+ const recommendedTags = runContext?.recommendedTags ?? input.recommendedTags ?? [];
215
+ const workspace = runContext?.run.workspace ?? requestedWorkspace;
216
+ const project = projectForWorkspace(database, workspace);
217
+ const projectState = project === undefined
218
+ ? null
219
+ : {
220
+ project,
221
+ fingerprint: resolveProjectFingerprint(database, project, captureProjectManifestSnapshot(project)),
222
+ };
223
+ const includeEcosystem = projectState !== null;
224
+ const selectionWorkspaces = !includeEcosystem
225
+ ? [workspace]
226
+ : [workspace, GLOBAL_WORKSPACE];
227
+ const retrievalStateHash = runContext === null || runContext.intakeStatus !== 'active'
228
+ ? contextRetrievalStateHash(database, selectionWorkspaces, { includeEcosystem })
229
+ : null;
230
+ const queryShape = {
231
+ runId: input.runId ?? null,
232
+ workspace: input.runId === undefined ? requestedWorkspace : null,
233
+ task,
234
+ taskProfile: profile,
235
+ recommendedTags: [...recommendedTags].sort(),
236
+ changedPaths: input.changedPaths ?? [],
237
+ errorSignatures: input.errorSignatures ?? [],
238
+ throughSequence,
239
+ characterBudget: input.characterBudget ?? CONTEXT_BROKER_DEFAULT_CHARACTER_BUDGET,
240
+ limit: input.limit ?? CONTEXT_BROKER_DEFAULT_LIMIT,
241
+ projectState,
242
+ retrievalStateHash,
243
+ runStateHash: runContext?.stateHash ?? null,
244
+ };
245
+ const queryHash = canonicalContentHash(queryShape);
246
+ return {
247
+ workspace,
248
+ selectionWorkspaces,
249
+ includeEcosystem,
250
+ run: runContext?.run ?? null,
251
+ taskProfile: profile,
252
+ profileHash: taskProfileHash,
253
+ recommendedTags,
254
+ changedPaths: input.changedPaths ?? [],
255
+ errorSignatures: input.errorSignatures ?? [],
256
+ task,
257
+ limit: input.limit ?? CONTEXT_BROKER_DEFAULT_LIMIT,
258
+ characterBudget: input.characterBudget ?? CONTEXT_BROKER_DEFAULT_CHARACTER_BUDGET,
259
+ throughSequence,
260
+ intakeSessionId: runContext?.intakeSessionId ?? null,
261
+ projection: runContext?.projection ?? null,
262
+ runStatus: runContext === null ? 'unbound' : runContext.intakeStatus === 'active' ? 'needs_answer' : runContext.intakeStatus,
263
+ projectState,
264
+ retrievalStateHash,
265
+ runStateHash: runContext?.stateHash ?? null,
266
+ deliveryHistoryStateHash: null,
267
+ deliveryHistoryExcludeQueryHash: null,
268
+ queryHash,
269
+ deliveryId: null,
270
+ };
271
+ }
272
+ function entrySnapshot(entry, origin, selectionReasons = []) {
273
+ return {
274
+ id: entry.id,
275
+ revision: entry.revision,
276
+ kind: entry.kind,
277
+ status: entry.status,
278
+ trustLevel: entry.trustLevel,
279
+ confidence: entry.confidence,
280
+ title: entry.title,
281
+ summary: entry.summary,
282
+ body: entry.body,
283
+ tags: [...entry.tags],
284
+ scope: entry.scope,
285
+ updatedAt: entry.updatedAt,
286
+ selectionReasons: [...selectionReasons],
287
+ ...(origin === undefined ? {} : { origin }),
288
+ };
289
+ }
290
+ function retrievalQuery(query) {
291
+ const values = [query.task, query.taskProfile.target, query.taskProfile.expected, ...query.recommendedTags].filter((value) => value !== null && value.length > 0);
292
+ return values.join(' ').slice(0, 16_384) || 'kiokuko';
293
+ }
294
+ const APPLICABILITY_DETAIL_REASONS = new Set([
295
+ 'language_match',
296
+ 'database_match',
297
+ 'runtime_match',
298
+ 'tool_match',
299
+ 'platform_match',
300
+ 'framework_exact_match',
301
+ 'framework_match',
302
+ ]);
303
+ function canonicalRetrievedReasons(reasons) {
304
+ const normalized = reasons.map((reason) => {
305
+ if (APPLICABILITY_DETAIL_REASONS.has(reason))
306
+ return 'applicability_match';
307
+ if (CONTEXT_SELECTION_REASON_ORDER.includes(reason))
308
+ return reason;
309
+ throw new KiokukoError('INTEGRITY_ERROR', 'Retrieval returned an unknown selection reason');
310
+ });
311
+ const rank = (reason) => CONTEXT_SELECTION_REASON_ORDER.indexOf(reason);
312
+ return [...new Set(normalized)].sort((left, right) => rank(left) - rank(right) || compareCanonicalStrings(left, right));
313
+ }
314
+ function addRetrievedEntry(entries, value) {
315
+ const existing = entries.get(value.entry.id);
316
+ entries.set(value.entry.id, {
317
+ ...value,
318
+ selectionReasons: canonicalRetrievedReasons([...(existing?.selectionReasons ?? []), ...value.selectionReasons]),
319
+ });
320
+ }
321
+ function projectForWorkspace(database, workspace) {
322
+ const row = database.prepare(`
323
+ SELECT r.repository_id AS repositoryId, r.workspace, l.canonical_root AS repositoryRoot
324
+ FROM repositories AS r JOIN repository_locations AS l ON l.repository_id = r.repository_id
325
+ WHERE r.workspace = ? ORDER BY l.last_seen_at DESC, l.canonical_root ASC LIMIT 1
326
+ `).get(workspace);
327
+ if (row === undefined)
328
+ return undefined;
329
+ const { repositoryId, repositoryRoot, workspace: storedWorkspace } = row;
330
+ if (typeof repositoryId !== 'string' || repositoryId.length === 0
331
+ || typeof storedWorkspace !== 'string' || storedWorkspace !== workspace
332
+ || typeof repositoryRoot !== 'string' || repositoryRoot.length === 0) {
333
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context project binding is invalid');
334
+ }
335
+ return { repositoryRoot, repositoryId, workspace: storedWorkspace, source: 'location' };
336
+ }
337
+ async function retrieveEntries(database, query, runtime) {
338
+ const terms = [query.task, query.taskProfile.target, query.taskProfile.expected, ...query.recommendedTags]
339
+ .filter((value) => value !== null && value.length > 0)
340
+ .map((value) => value.slice(0, 2_000));
341
+ const queries = [retrievalQuery(query), ...terms];
342
+ const entries = new Map();
343
+ for (const value of queries) {
344
+ if (query.projectState !== null) {
345
+ for (const hit of await federatedEntries(database, {
346
+ project: query.projectState.project,
347
+ fingerprint: query.projectState.fingerprint,
348
+ query: value,
349
+ limit: 500,
350
+ }, runtime)) {
351
+ addRetrievedEntry(entries, { entry: hit.entry, origin: hit.origin, selectionReasons: hit.selectionReasons });
352
+ }
353
+ }
354
+ else {
355
+ for (const hit of rankedEntryHits(database, { workspace: query.workspace, query: value, limit: 500, includeSuperseded: false }, runtime).hits) {
356
+ addRetrievedEntry(entries, {
357
+ entry: readEntry(database, { workspace: query.workspace, entryId: hit.entryId }),
358
+ origin: 'project',
359
+ selectionReasons: ['project_origin', ...hit.reasons],
360
+ });
361
+ }
362
+ }
363
+ }
364
+ return [...entries.values()];
365
+ }
366
+ function assertPreparedProjectState(database, query) {
367
+ const currentProject = projectForWorkspace(database, query.workspace);
368
+ if (query.projectState === null) {
369
+ if (currentProject !== undefined) {
370
+ throw new KiokukoError('CONFLICT', 'Context project state changed after ranking');
371
+ }
372
+ return;
373
+ }
374
+ if (currentProject === undefined
375
+ || canonicalContentHash(currentProject) !== canonicalContentHash(query.projectState.project)) {
376
+ throw new KiokukoError('CONFLICT', 'Context project state changed after ranking');
377
+ }
378
+ const manifestSnapshot = captureProjectManifestSnapshot(currentProject);
379
+ if (manifestSnapshot.manifestDigest !== query.projectState.fingerprint.manifestDigest) {
380
+ throw new KiokukoError('CONFLICT', 'Context project state changed after ranking');
381
+ }
382
+ const currentFingerprint = resolveProjectFingerprint(database, currentProject, manifestSnapshot, { readOnly: true });
383
+ if (canonicalContentHash(currentFingerprint) !== canonicalContentHash(query.projectState.fingerprint)) {
384
+ throw new KiokukoError('CONFLICT', 'Context project state changed after ranking');
385
+ }
386
+ }
387
+ async function rank(database, query, prior, runtime) {
388
+ const entries = await retrieveEntries(database, query, runtime);
389
+ const feedback = entries.flatMap(({ entry }) => contextFeedbackSignals(database, entry.id).flatMap((signal) => Array.from({ length: signal.boundedInfluence }, () => ({ entryId: entry.id, verdict: signal.verdict }))));
390
+ return rankContextCandidates({
391
+ taskProfile: query.taskProfile,
392
+ recommendedTags: query.recommendedTags,
393
+ changedPaths: query.changedPaths,
394
+ errorSignatures: query.errorSignatures,
395
+ priorDelivered: prior.delivered,
396
+ feedback,
397
+ candidates: entries.map(({ entry, origin, selectionReasons }) => entrySnapshot(entry, origin, selectionReasons)),
398
+ limit: query.limit,
399
+ characterBudget: query.characterBudget,
400
+ });
401
+ }
402
+ function priorData(database, query, options = {}) {
403
+ if (query.run === null)
404
+ return { delivered: [], stale: [], stateHash: null };
405
+ const deliveries = [];
406
+ let cursor;
407
+ let complete = false;
408
+ for (let page = 0; page < 10; page += 1) {
409
+ const result = listContextDeliveries(database, { workspace: query.workspace, runId: query.run.runId, limit: 100, ...(cursor === undefined ? {} : { cursor }) });
410
+ deliveries.push(...result.items);
411
+ if (result.nextCursor === null) {
412
+ complete = true;
413
+ break;
414
+ }
415
+ cursor = result.nextCursor;
416
+ }
417
+ if (!complete) {
418
+ throw new KiokukoError('INTEGRITY_ERROR', 'Context delivery history exceeds the broker policy bound');
419
+ }
420
+ for (const delivery of deliveries) {
421
+ for (const item of delivery.items) {
422
+ currentRetrievableDeliveryEntry(database, query.workspace, item);
423
+ }
424
+ }
425
+ const stateDeliveries = deliveries.filter((delivery) => delivery.deliveryId !== options.excludeDeliveryId);
426
+ const delivered = stateDeliveries
427
+ .filter((delivery) => delivery.queryHash !== options.excludeDeliveredQueryHash)
428
+ .flatMap((delivery) => delivery.items.flatMap((item) => contextFeedbackSignals(database, item.entryId)
429
+ .some((signal) => signal.verdict === 'helpful')
430
+ ? []
431
+ : [{ entryId: item.entryId, revision: item.entryRevision }]));
432
+ const stale = stateDeliveries.flatMap((delivery) => delivery.items.flatMap((item) => {
433
+ const current = database.prepare('SELECT current_revision FROM entries WHERE id = ?').get(item.entryId);
434
+ return current && Number(current.current_revision) > item.entryRevision ? [{ entryId: item.entryId, deliveredRevision: item.entryRevision, currentRevision: Number(current.current_revision), stale: true }] : [];
435
+ }));
436
+ return {
437
+ delivered,
438
+ stale,
439
+ stateHash: canonicalContentHash({
440
+ runId: query.run.runId,
441
+ excludeDeliveredQueryHash: options.excludeDeliveredQueryHash ?? null,
442
+ deliveries: stateDeliveries.map(contextDeliverySnapshotHash),
443
+ delivered,
444
+ stale,
445
+ }),
446
+ };
447
+ }
448
+ function historyAttestedDeliveryId(query, historyStateHash, excludeDeliveredQueryHash) {
449
+ return `context-${canonicalContentHash({
450
+ kind: 'context-delivery-history-attestation-v1',
451
+ queryHash: query.queryHash,
452
+ historyStateHash,
453
+ excludeDeliveredQueryHash,
454
+ })}`;
455
+ }
456
+ function deliveryHistoryExclusionForReplay(database, query, deliveryId) {
457
+ if (query.run === null)
458
+ return null;
459
+ const priorSameQuery = database.prepare(`
460
+ SELECT 1 AS present
461
+ FROM context_deliveries
462
+ WHERE run_id = ? AND query_hash = ? AND delivery_id <> ?
463
+ LIMIT 1
464
+ `).get(query.run.runId, query.queryHash, deliveryId);
465
+ if (priorSameQuery === undefined)
466
+ return null;
467
+ if (priorSameQuery.present !== 1) {
468
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context delivery history is invalid');
469
+ }
470
+ return query.queryHash;
471
+ }
472
+ function deliveryHistoryIsAttested(database, query, delivery) {
473
+ const excludeDeliveredQueryHash = deliveryHistoryExclusionForReplay(database, query, delivery.deliveryId);
474
+ const history = priorData(database, query, {
475
+ ...(excludeDeliveredQueryHash === null ? {} : { excludeDeliveredQueryHash }),
476
+ excludeDeliveryId: delivery.deliveryId,
477
+ });
478
+ if (history.stateHash === null) {
479
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context delivery history is invalid');
480
+ }
481
+ return delivery.deliveryId === historyAttestedDeliveryId(query, history.stateHash, excludeDeliveredQueryHash);
482
+ }
483
+ function outputContext(query, items, delivery) {
484
+ const sourceItems = items.map((item, index) => ({
485
+ entryId: item.entryId,
486
+ entryRevision: item.revision,
487
+ rank: index + 1,
488
+ scoreComponents: { ...item.scoreComponents },
489
+ selectionReasons: [...item.selectionReasons],
490
+ content: { ...item.content },
491
+ untrusted: true,
492
+ ...(item.origin === undefined ? {} : { origin: item.origin }),
493
+ }));
494
+ return {
495
+ deliveryId: delivery?.deliveryId ?? query.deliveryId,
496
+ runId: query.run?.runId ?? null,
497
+ throughSequence: query.throughSequence,
498
+ taskProfileHash: query.profileHash,
499
+ queryHash: query.queryHash,
500
+ policyVersion: CONTEXT_BROKER_POLICY_VERSION,
501
+ items: sourceItems,
502
+ untrusted: true,
503
+ };
504
+ }
505
+ function deliveryInput(query, ranked) {
506
+ const items = ranked.map((item, index) => ({
507
+ entryId: item.entryId,
508
+ entryRevision: item.revision,
509
+ rank: index + 1,
510
+ scoreComponents: { ...item.scoreComponents },
511
+ selectionReasons: [...item.selectionReasons],
512
+ ...(item.origin === undefined ? {} : { origin: item.origin }),
513
+ }));
514
+ const charCount = ranked.reduce((sum, item) => sum + item.content.characterCount, 0);
515
+ const truncated = ranked.some((item) => item.content.truncated);
516
+ return {
517
+ workspace: query.workspace,
518
+ deliveryId: query.deliveryId,
519
+ runId: query.run?.runId,
520
+ throughSequence: query.throughSequence,
521
+ intakeSessionId: query.intakeSessionId,
522
+ taskProfileHash: query.profileHash,
523
+ queryHash: query.queryHash,
524
+ policyVersion: CONTEXT_BROKER_POLICY_VERSION,
525
+ charBudget: query.characterBudget,
526
+ charCount,
527
+ truncated,
528
+ createdAt: query.run?.updatedAt ?? new Date().toISOString(),
529
+ items,
530
+ };
531
+ }
532
+ function currentRetrievableDeliveryEntry(database, runWorkspace, item) {
533
+ const candidate = database.prepare('SELECT workspace FROM entries WHERE id = ?')
534
+ .get(item.entryId);
535
+ if (candidate === undefined) {
536
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context entry is missing');
537
+ }
538
+ if (typeof candidate.workspace !== 'string' || candidate.workspace.length === 0) {
539
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context entry is invalid');
540
+ }
541
+ const origin = item.origin ?? 'project';
542
+ let deliveredRevision;
543
+ try {
544
+ deliveredRevision = readEntryRevision(database, {
545
+ workspace: candidate.workspace,
546
+ entryId: item.entryId,
547
+ revision: item.entryRevision,
548
+ });
549
+ }
550
+ catch (error) {
551
+ if (error instanceof KiokukoError && error.code === 'NOT_FOUND') {
552
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context entry revision is missing');
553
+ }
554
+ throw error;
555
+ }
556
+ const deliveredScope = decodeStoredStructuredScope(deliveredRevision.scope, origin !== 'project').canonicalScope;
557
+ if (!entryOriginMatchesWorkspace({ origin, runWorkspace, entryWorkspace: deliveredRevision.workspace })) {
558
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context entry origin is invalid');
559
+ }
560
+ if (origin === 'global'
561
+ && (deliveredScope.visibility !== 'global' || effectiveRetrievalScope(deliveredScope) !== 'global')) {
562
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context entry scope is invalid');
563
+ }
564
+ if (origin === 'ecosystem'
565
+ && (!Object.hasOwn(deliveredScope, 'retrievalScope')
566
+ || effectiveRetrievalScope(deliveredScope) !== 'ecosystem'
567
+ || !hasExplicitApplicability(deliveredScope))) {
568
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context entry scope is invalid');
569
+ }
570
+ if (isExternalSkillReference(deliveredRevision)) {
571
+ const mappings = database.prepare('SELECT COUNT(*) AS count FROM external_skill_entries WHERE entry_id = ?')
572
+ .get(item.entryId)?.count;
573
+ if (typeof mappings !== 'number' || !Number.isSafeInteger(mappings) || mappings < 1) {
574
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context external entry mapping is missing');
575
+ }
576
+ }
577
+ const entry = readEntry(database, { workspace: candidate.workspace, entryId: item.entryId }, { requireStructuredScope: origin !== 'project' });
578
+ const retrievable = isRetrievableEntry(database, entry);
579
+ if (entry.revision !== item.entryRevision)
580
+ return null;
581
+ if (!retrievable)
582
+ return null;
583
+ if (entry.status === 'superseded')
584
+ return null;
585
+ return entry;
586
+ }
587
+ function storedContext(database, query, delivery) {
588
+ let remaining = query.characterBudget;
589
+ let totalCharacterCount = 0;
590
+ let anyTruncated = false;
591
+ const items = delivery.items.map((item) => {
592
+ const current = currentRetrievableDeliveryEntry(database, query.workspace, item);
593
+ if (current === null)
594
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context entry is no longer retrievable');
595
+ const entry = readEntryRevision(database, {
596
+ entryId: item.entryId,
597
+ workspace: current.workspace,
598
+ revision: item.entryRevision,
599
+ });
600
+ const take = (value, budget) => Array.from(value).slice(0, Math.max(0, budget)).join('');
601
+ const count = (value) => Array.from(value).length;
602
+ const title = take(entry.title, remaining);
603
+ remaining -= count(title);
604
+ const summary = entry.summary === null ? null : take(entry.summary, remaining);
605
+ remaining -= count(summary ?? '');
606
+ const bodyPreview = take(entry.body, remaining);
607
+ remaining -= count(bodyPreview);
608
+ const characterCount = count(title) + count(summary ?? '') + count(bodyPreview);
609
+ const truncated = count(title) < count(entry.title)
610
+ || (entry.summary !== null && count(summary ?? '') < count(entry.summary))
611
+ || count(bodyPreview) < count(entry.body);
612
+ totalCharacterCount += characterCount;
613
+ anyTruncated ||= truncated;
614
+ return {
615
+ entryId: item.entryId,
616
+ entryRevision: item.entryRevision,
617
+ rank: item.rank,
618
+ scoreComponents: item.scoreComponents,
619
+ selectionReasons: [...item.selectionReasons],
620
+ content: {
621
+ title,
622
+ summary,
623
+ bodyPreview,
624
+ characterCount,
625
+ truncated,
626
+ },
627
+ untrusted: true,
628
+ ...(item.origin === undefined ? {} : { origin: item.origin }),
629
+ };
630
+ });
631
+ if (totalCharacterCount !== delivery.charCount || anyTruncated !== delivery.truncated) {
632
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context character accounting is invalid');
633
+ }
634
+ return {
635
+ deliveryId: delivery.deliveryId,
636
+ runId: delivery.runId,
637
+ throughSequence: delivery.throughSequence,
638
+ taskProfileHash: delivery.taskProfileHash,
639
+ queryHash: delivery.queryHash,
640
+ policyVersion: delivery.policyVersion,
641
+ items,
642
+ untrusted: true,
643
+ };
644
+ }
645
+ function storedDeliveryIsRetrievable(database, query, delivery) {
646
+ if (delivery.throughSequence !== query.throughSequence) {
647
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context delivery sequence is invalid');
648
+ }
649
+ if (!delivery.items.every((item) => currentRetrievableDeliveryEntry(database, query.workspace, item) !== null))
650
+ return false;
651
+ return !(delivery.taskProfileHash !== query.profileHash
652
+ || delivery.queryHash !== query.queryHash
653
+ || delivery.policyVersion !== CONTEXT_BROKER_POLICY_VERSION
654
+ || (delivery.scoreSchemaVersion ?? 1) !== 1
655
+ || delivery.charBudget !== query.characterBudget
656
+ || delivery.items.length > query.limit);
657
+ }
658
+ function assertPreparedSelectedEntries(database, query, result) {
659
+ if (result.context !== null
660
+ && result.context.items.some((item) => currentRetrievableDeliveryEntry(database, query.workspace, item) === null)) {
661
+ throw new KiokukoError('CONFLICT', 'Context delivery selection changed before return');
662
+ }
663
+ }
664
+ function assertPreparedBrokerState(database, query, result, expectedHistoryStateHash = query.deliveryHistoryStateHash) {
665
+ assertPreparedProjectState(database, query);
666
+ if (query.run === null) {
667
+ if (query.retrievalStateHash !== null
668
+ && contextRetrievalStateHash(database, query.selectionWorkspaces, { includeEcosystem: query.includeEcosystem }) !== query.retrievalStateHash) {
669
+ throw new KiokukoError('CONFLICT', 'Context selection state changed after ranking');
670
+ }
671
+ return;
672
+ }
673
+ const current = currentRunContext(database, query.run.runId);
674
+ const currentStatus = current.intakeStatus === 'active' ? 'needs_answer' : current.intakeStatus;
675
+ if (query.runStateHash === null
676
+ || current.stateHash !== query.runStateHash
677
+ || current.run.workspace !== query.workspace
678
+ || current.run.status !== query.run.status
679
+ || current.run.lastSequence !== query.throughSequence
680
+ || current.intakeSessionId !== query.intakeSessionId
681
+ || currentStatus !== query.runStatus
682
+ || current.profileHash !== query.profileHash
683
+ || canonicalContentHash([...current.recommendedTags].sort()) !== canonicalContentHash([...query.recommendedTags].sort())) {
684
+ throw new KiokukoError('CONFLICT', 'Context delivery conflicts with current run state');
685
+ }
686
+ if (result.context !== null && query.run.status !== 'active') {
687
+ throw new KiokukoError('CONFLICT', 'Context delivery conflicts with current run state');
688
+ }
689
+ assertPreparedSelectedEntries(database, query, result);
690
+ if (query.retrievalStateHash !== null
691
+ && contextRetrievalStateHash(database, query.selectionWorkspaces, { includeEcosystem: query.includeEcosystem }) !== query.retrievalStateHash) {
692
+ throw new KiokukoError('CONFLICT', 'Context selection state changed after ranking');
693
+ }
694
+ if (expectedHistoryStateHash !== null) {
695
+ const currentHistory = priorData(database, query, query.deliveryHistoryExcludeQueryHash === null
696
+ ? {}
697
+ : { excludeDeliveredQueryHash: query.deliveryHistoryExcludeQueryHash });
698
+ if (currentHistory.stateHash !== expectedHistoryStateHash) {
699
+ throw new KiokukoError('CONFLICT', 'Context delivery history changed after ranking');
700
+ }
701
+ }
702
+ }
703
+ function replayableDelivery(database, query) {
704
+ if (query.run === null)
705
+ return { delivery: null, found: false };
706
+ const rows = database.prepare(`
707
+ SELECT delivery_id AS deliveryId
708
+ FROM context_deliveries
709
+ WHERE run_id = ? AND query_hash = ?
710
+ ORDER BY delivery_id ASC
711
+ `).all(query.run.runId, query.queryHash);
712
+ for (const row of rows) {
713
+ const delivery = readContextDelivery(database, { workspace: query.workspace, deliveryId: row.deliveryId });
714
+ if (storedDeliveryIsRetrievable(database, query, delivery)
715
+ && deliveryHistoryIsAttested(database, query, delivery)) {
716
+ return { delivery, found: true };
717
+ }
718
+ }
719
+ return { delivery: null, found: rows.length > 0 };
720
+ }
721
+ export class ContextBroker {
722
+ database;
723
+ embeddingRuntime;
724
+ inFlight = new Map();
725
+ constructor(database, embeddingRuntime) {
726
+ this.database = database;
727
+ this.embeddingRuntime = embeddingRuntime;
728
+ }
729
+ listDeliveries(input) {
730
+ const context = currentRunContext(this.database, input.runId);
731
+ return {
732
+ ...listContextDeliveries(this.database, {
733
+ workspace: context.run.workspace,
734
+ runId: input.runId,
735
+ ...(input.cursor === undefined ? {} : { cursor: input.cursor }),
736
+ ...(input.limit === undefined ? {} : { limit: input.limit }),
737
+ }),
738
+ untrusted: true,
739
+ };
740
+ }
741
+ async query(rawInput, persistence = {}) {
742
+ return this.execute(rawInput, normalizePersistence(persistence));
743
+ }
744
+ async queryGated(rawInput, decide, persistence = {}) {
745
+ const normalizedPersistence = normalizePersistence(persistence);
746
+ const input = normalizeInput(rawInput);
747
+ const query = preparedQuery(this.database, input);
748
+ const prepared = await this.prepareResult(query);
749
+ const decision = normalizedGateDecision(decide(prepared.result));
750
+ const broker = decision.persist
751
+ ? await this.persistPrepared(prepared, normalizedPersistence, query, decision.assertBeforePersist)
752
+ : this.validatePrepared(prepared, query, decision.assertBeforePersist);
753
+ return { broker, value: decision.value };
754
+ }
755
+ async execute(rawInput, persistence) {
756
+ const input = normalizeInput(rawInput);
757
+ const query = preparedQuery(this.database, input);
758
+ const previous = this.inFlight.get(query.queryHash);
759
+ if (previous !== undefined)
760
+ return previous;
761
+ const operation = this.queryPrepared(query, persistence);
762
+ this.inFlight.set(query.queryHash, operation);
763
+ try {
764
+ return await operation;
765
+ }
766
+ finally {
767
+ if (this.inFlight.get(query.queryHash) === operation)
768
+ this.inFlight.delete(query.queryHash);
769
+ }
770
+ }
771
+ async queryPrepared(query, persistence) {
772
+ const prepared = await this.prepareResult(query);
773
+ return this.persistPrepared(prepared, persistence, query);
774
+ }
775
+ async prepareResult(query) {
776
+ const base = {
777
+ status: query.runStatus,
778
+ taskProfile: { ...query.taskProfile },
779
+ profileHash: query.profileHash,
780
+ acceptedThrough: query.throughSequence,
781
+ intakeSessionId: query.intakeSessionId,
782
+ recommendedTags: [...query.recommendedTags],
783
+ projection: query.projection,
784
+ context: null,
785
+ recommendations: query.projection === null ? [] : buildRecommendations({ projection: query.projection, broker: {} }),
786
+ };
787
+ if (query.runStatus === 'needs_answer')
788
+ return { result: base, replayDelivery: null, pendingDelivery: null };
789
+ const replay = replayableDelivery(this.database, query);
790
+ const excludeDeliveredQueryHash = replay.delivery === null && replay.found ? query.queryHash : undefined;
791
+ const prior = priorData(this.database, query, excludeDeliveredQueryHash === undefined
792
+ ? {}
793
+ : { excludeDeliveredQueryHash });
794
+ query.deliveryHistoryStateHash = prior.stateHash;
795
+ query.deliveryHistoryExcludeQueryHash = excludeDeliveredQueryHash ?? null;
796
+ if (replay.delivery !== null) {
797
+ return {
798
+ result: {
799
+ ...base,
800
+ context: storedContext(this.database, query, replay.delivery),
801
+ recommendations: query.projection === null ? [] : buildRecommendations({ projection: query.projection, broker: { staleDeliveredEntries: prior.stale } }),
802
+ },
803
+ replayDelivery: replay.delivery,
804
+ pendingDelivery: null,
805
+ };
806
+ }
807
+ const retrievalRuntime = await prepareEmbeddingSearchRuntime(this.embeddingRuntime, this.database, retrievalQuery(query));
808
+ const ranked = await rank(this.database, query, prior, retrievalRuntime);
809
+ if (query.run !== null && prior.stateHash === null) {
810
+ throw new KiokukoError('INTEGRITY_ERROR', 'Stored context delivery history is invalid');
811
+ }
812
+ const deliveryQuery = query.run === null
813
+ ? query
814
+ : {
815
+ ...query,
816
+ deliveryId: historyAttestedDeliveryId(query, prior.stateHash, query.deliveryHistoryExcludeQueryHash),
817
+ };
818
+ const recommendations = query.projection === null
819
+ ? []
820
+ : buildRecommendations({ projection: query.projection, broker: { staleDeliveredEntries: prior.stale } });
821
+ const context = outputContext(deliveryQuery, ranked, null);
822
+ if (deliveryQuery.deliveryId === null || deliveryQuery.run === null) {
823
+ return { result: { ...base, context, recommendations }, replayDelivery: null, pendingDelivery: null };
824
+ }
825
+ const deliveryRequest = deliveryInput(deliveryQuery, ranked);
826
+ return {
827
+ result: { ...base, context, recommendations },
828
+ replayDelivery: null,
829
+ pendingDelivery: { query: deliveryQuery, ranked, input: deliveryRequest },
830
+ };
831
+ }
832
+ async persistPrepared(prepared, persistence, query, assertBeforePersist) {
833
+ if (prepared.pendingDelivery === null) {
834
+ return withImmediateTransaction(this.database, () => {
835
+ if (prepared.replayDelivery !== null) {
836
+ assertPreparedSelectedEntries(this.database, query, prepared.result);
837
+ assertReplayDeliveryUnchanged(this.database, prepared.replayDelivery);
838
+ }
839
+ assertPreparedBrokerState(this.database, query, prepared.result);
840
+ if (assertBeforePersist !== undefined) {
841
+ assertBeforePersist();
842
+ if (prepared.replayDelivery !== null) {
843
+ assertPreparedSelectedEntries(this.database, query, prepared.result);
844
+ assertReplayDeliveryUnchanged(this.database, prepared.replayDelivery);
845
+ }
846
+ assertPreparedBrokerState(this.database, query, prepared.result);
847
+ }
848
+ return prepared.result;
849
+ });
850
+ }
851
+ const pendingDelivery = prepared.pendingDelivery;
852
+ let committedDelivery = null;
853
+ let committedHistoryStateHash = null;
854
+ let invocationCount = 0;
855
+ let acceptingInvocation = true;
856
+ const persist = () => {
857
+ if (!acceptingInvocation) {
858
+ throw new KiokukoError('INTEGRITY_ERROR', 'Context broker write adapter invoked persistence outside its queue operation');
859
+ }
860
+ invocationCount += 1;
861
+ if (invocationCount !== 1) {
862
+ throw new KiokukoError('INTEGRITY_ERROR', 'Context broker write adapter invoked persistence more than once');
863
+ }
864
+ committedDelivery = withImmediateTransaction(this.database, () => {
865
+ assertPreparedBrokerState(this.database, query, prepared.result);
866
+ if (assertBeforePersist !== undefined) {
867
+ assertBeforePersist();
868
+ assertPreparedBrokerState(this.database, query, prepared.result);
869
+ }
870
+ const delivery = recordContextDeliveryInTransaction(this.database, pendingDelivery.input);
871
+ committedHistoryStateHash = priorData(this.database, query, query.deliveryHistoryExcludeQueryHash === null
872
+ ? {}
873
+ : { excludeDeliveredQueryHash: query.deliveryHistoryExcludeQueryHash }).stateHash;
874
+ return delivery;
875
+ });
876
+ return committedDelivery;
877
+ };
878
+ let returned;
879
+ try {
880
+ returned = persistence.enqueueWrite === undefined
881
+ ? persist()
882
+ : await persistence.enqueueWrite(persist);
883
+ }
884
+ finally {
885
+ acceptingInvocation = false;
886
+ }
887
+ const committed = committedDelivery;
888
+ const committedHistory = committedHistoryStateHash;
889
+ if (invocationCount !== 1 || committed === null || committedHistory === null || returned !== committed) {
890
+ throw new KiokukoError('INTEGRITY_ERROR', 'Context broker write adapter returned an invalid result');
891
+ }
892
+ withImmediateTransaction(this.database, () => {
893
+ assertReplayDeliveryUnchanged(this.database, committed);
894
+ if (!deliveryHistoryIsAttested(this.database, query, committed)) {
895
+ throw new KiokukoError('CONFLICT', 'Context delivery history changed after ranking');
896
+ }
897
+ assertPreparedBrokerState(this.database, query, prepared.result, committedHistory);
898
+ });
899
+ return {
900
+ ...prepared.result,
901
+ context: outputContext(pendingDelivery.query, pendingDelivery.ranked, committed),
902
+ };
903
+ }
904
+ validatePrepared(prepared, query, assertBeforeReturn) {
905
+ return withImmediateTransaction(this.database, () => {
906
+ if (prepared.replayDelivery !== null) {
907
+ assertPreparedSelectedEntries(this.database, query, prepared.result);
908
+ assertReplayDeliveryUnchanged(this.database, prepared.replayDelivery);
909
+ }
910
+ assertPreparedBrokerState(this.database, query, prepared.result);
911
+ if (assertBeforeReturn !== undefined) {
912
+ assertBeforeReturn();
913
+ if (prepared.replayDelivery !== null) {
914
+ assertPreparedSelectedEntries(this.database, query, prepared.result);
915
+ assertReplayDeliveryUnchanged(this.database, prepared.replayDelivery);
916
+ }
917
+ assertPreparedBrokerState(this.database, query, prepared.result);
918
+ }
919
+ return prepared.result;
920
+ });
921
+ }
922
+ }
923
+ //# sourceMappingURL=broker.js.map