@askdkc/kiokuko 0.1.16 → 0.1.19

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 (549) hide show
  1. package/README.ja.md +91 -112
  2. package/README.ko.md +90 -102
  3. package/README.md +103 -260
  4. package/README.zh-CN.md +88 -102
  5. package/dist/agent-file/atomic-write.d.ts +90 -3
  6. package/dist/agent-file/atomic-write.d.ts.map +1 -1
  7. package/dist/agent-file/atomic-write.js +990 -14
  8. package/dist/agent-file/atomic-write.js.map +1 -1
  9. package/dist/agent-file/managed-block.d.ts +12 -1
  10. package/dist/agent-file/managed-block.d.ts.map +1 -1
  11. package/dist/agent-file/managed-block.js +49 -4
  12. package/dist/agent-file/managed-block.js.map +1 -1
  13. package/dist/agent-file/render.d.ts +1 -1
  14. package/dist/agent-file/render.d.ts.map +1 -1
  15. package/dist/agent-file/render.js +10 -7
  16. package/dist/agent-file/render.js.map +1 -1
  17. package/dist/akinator/agent-task.d.ts +14 -24
  18. package/dist/akinator/agent-task.d.ts.map +1 -1
  19. package/dist/akinator/agent-task.js +460 -103
  20. package/dist/akinator/agent-task.js.map +1 -1
  21. package/dist/akinator/capabilities.d.ts +52 -7
  22. package/dist/akinator/capabilities.d.ts.map +1 -1
  23. package/dist/akinator/capabilities.js +226 -28
  24. package/dist/akinator/capabilities.js.map +1 -1
  25. package/dist/akinator/capability-binding.d.ts +11 -0
  26. package/dist/akinator/capability-binding.d.ts.map +1 -0
  27. package/dist/akinator/capability-binding.js +56 -0
  28. package/dist/akinator/capability-binding.js.map +1 -0
  29. package/dist/akinator/domain.js +2 -2
  30. package/dist/akinator/domain.js.map +1 -1
  31. package/dist/akinator/knowledge-path.d.ts.map +1 -1
  32. package/dist/akinator/knowledge-path.js +409 -39
  33. package/dist/akinator/knowledge-path.js.map +1 -1
  34. package/dist/akinator/orchestrator.d.ts +3 -4
  35. package/dist/akinator/orchestrator.d.ts.map +1 -1
  36. package/dist/akinator/orchestrator.js +1 -4
  37. package/dist/akinator/orchestrator.js.map +1 -1
  38. package/dist/akinator/service.d.ts +0 -4
  39. package/dist/akinator/service.d.ts.map +1 -1
  40. package/dist/akinator/service.js +19 -35
  41. package/dist/akinator/service.js.map +1 -1
  42. package/dist/akinator/skill-discovery-attempt.d.ts +20 -0
  43. package/dist/akinator/skill-discovery-attempt.d.ts.map +1 -0
  44. package/dist/akinator/skill-discovery-attempt.js +390 -0
  45. package/dist/akinator/skill-discovery-attempt.js.map +1 -0
  46. package/dist/akinator/store.d.ts.map +1 -1
  47. package/dist/akinator/store.js +107 -52
  48. package/dist/akinator/store.js.map +1 -1
  49. package/dist/akinator/types.d.ts +0 -12
  50. package/dist/akinator/types.d.ts.map +1 -1
  51. package/dist/bin/kiokuko.js +0 -0
  52. package/dist/cli.d.ts +2 -0
  53. package/dist/cli.d.ts.map +1 -1
  54. package/dist/cli.js +561 -144
  55. package/dist/cli.js.map +1 -1
  56. package/dist/client/server-client.d.ts +5 -3
  57. package/dist/client/server-client.d.ts.map +1 -1
  58. package/dist/client/server-client.js +486 -181
  59. package/dist/client/server-client.js.map +1 -1
  60. package/dist/commands/agent.d.ts +2 -0
  61. package/dist/commands/agent.d.ts.map +1 -1
  62. package/dist/commands/agent.js +861 -86
  63. package/dist/commands/agent.js.map +1 -1
  64. package/dist/commands/backup.d.ts +2 -1
  65. package/dist/commands/backup.d.ts.map +1 -1
  66. package/dist/commands/backup.js +64 -8
  67. package/dist/commands/backup.js.map +1 -1
  68. package/dist/commands/doctor.d.ts +5 -1
  69. package/dist/commands/doctor.d.ts.map +1 -1
  70. package/dist/commands/doctor.js +70 -26
  71. package/dist/commands/doctor.js.map +1 -1
  72. package/dist/commands/export.d.ts +0 -4
  73. package/dist/commands/export.d.ts.map +1 -1
  74. package/dist/commands/export.js +191 -32
  75. package/dist/commands/export.js.map +1 -1
  76. package/dist/commands/import.d.ts +10 -1
  77. package/dist/commands/import.d.ts.map +1 -1
  78. package/dist/commands/import.js +592 -113
  79. package/dist/commands/import.js.map +1 -1
  80. package/dist/commands/init.d.ts +19 -1
  81. package/dist/commands/init.d.ts.map +1 -1
  82. package/dist/commands/init.js +569 -22
  83. package/dist/commands/init.js.map +1 -1
  84. package/dist/commands/purge.d.ts.map +1 -1
  85. package/dist/commands/purge.js +3 -0
  86. package/dist/commands/purge.js.map +1 -1
  87. package/dist/commands/setup.d.ts +34 -8
  88. package/dist/commands/setup.d.ts.map +1 -1
  89. package/dist/commands/setup.js +418 -86
  90. package/dist/commands/setup.js.map +1 -1
  91. package/dist/commands/skills.d.ts +9 -0
  92. package/dist/commands/skills.d.ts.map +1 -0
  93. package/dist/commands/skills.js +317 -0
  94. package/dist/commands/skills.js.map +1 -0
  95. package/dist/commands/use.d.ts +10 -2
  96. package/dist/commands/use.d.ts.map +1 -1
  97. package/dist/commands/use.js +851 -73
  98. package/dist/commands/use.js.map +1 -1
  99. package/dist/config/paths.d.ts +11 -1
  100. package/dist/config/paths.d.ts.map +1 -1
  101. package/dist/config/paths.js +64 -29
  102. package/dist/config/paths.js.map +1 -1
  103. package/dist/config/project-config.d.ts +1 -0
  104. package/dist/config/project-config.d.ts.map +1 -1
  105. package/dist/config/project-config.js +70 -32
  106. package/dist/config/project-config.js.map +1 -1
  107. package/dist/context/broker.d.ts +30 -14
  108. package/dist/context/broker.d.ts.map +1 -1
  109. package/dist/context/broker.js +628 -150
  110. package/dist/context/broker.js.map +1 -1
  111. package/dist/context/delivery.d.ts +8 -22
  112. package/dist/context/delivery.d.ts.map +1 -1
  113. package/dist/context/delivery.js +204 -152
  114. package/dist/context/delivery.js.map +1 -1
  115. package/dist/context/feedback.d.ts +11 -12
  116. package/dist/context/feedback.d.ts.map +1 -1
  117. package/dist/context/feedback.js +250 -268
  118. package/dist/context/feedback.js.map +1 -1
  119. package/dist/context/origin.d.ts +9 -0
  120. package/dist/context/origin.d.ts.map +1 -0
  121. package/dist/context/origin.js +15 -0
  122. package/dist/context/origin.js.map +1 -0
  123. package/dist/context/ranking.d.ts +4 -13
  124. package/dist/context/ranking.d.ts.map +1 -1
  125. package/dist/context/ranking.js +21 -5
  126. package/dist/context/ranking.js.map +1 -1
  127. package/dist/context/recommendations.d.ts +0 -5
  128. package/dist/context/recommendations.d.ts.map +1 -1
  129. package/dist/context/recommendations.js +0 -1
  130. package/dist/context/recommendations.js.map +1 -1
  131. package/dist/context/run-state.d.ts +26 -0
  132. package/dist/context/run-state.d.ts.map +1 -0
  133. package/dist/context/run-state.js +399 -0
  134. package/dist/context/run-state.js.map +1 -0
  135. package/dist/context/scoped-broker.d.ts +19 -6
  136. package/dist/context/scoped-broker.d.ts.map +1 -1
  137. package/dist/context/scoped-broker.js +530 -131
  138. package/dist/context/scoped-broker.js.map +1 -1
  139. package/dist/context/selection-state.d.ts +19 -0
  140. package/dist/context/selection-state.d.ts.map +1 -0
  141. package/dist/context/selection-state.js +250 -0
  142. package/dist/context/selection-state.js.map +1 -0
  143. package/dist/db/adapter.d.ts +5 -3
  144. package/dist/db/adapter.d.ts.map +1 -1
  145. package/dist/db/adapter.js +6 -3
  146. package/dist/db/adapter.js.map +1 -1
  147. package/dist/db/capabilities.d.ts.map +1 -1
  148. package/dist/db/capabilities.js +34 -16
  149. package/dist/db/capabilities.js.map +1 -1
  150. package/dist/db/connection.d.ts +8 -0
  151. package/dist/db/connection.d.ts.map +1 -1
  152. package/dist/db/connection.js +55 -26
  153. package/dist/db/connection.js.map +1 -1
  154. package/dist/db/migrate.d.ts +28 -7
  155. package/dist/db/migrate.d.ts.map +1 -1
  156. package/dist/db/migrate.js +106 -78
  157. package/dist/db/migrate.js.map +1 -1
  158. package/dist/db/sqlite-retry.d.ts +11 -0
  159. package/dist/db/sqlite-retry.d.ts.map +1 -0
  160. package/dist/db/sqlite-retry.js +66 -0
  161. package/dist/db/sqlite-retry.js.map +1 -0
  162. package/dist/db/transaction.d.ts +13 -0
  163. package/dist/db/transaction.d.ts.map +1 -1
  164. package/dist/db/transaction.js +53 -24
  165. package/dist/db/transaction.js.map +1 -1
  166. package/dist/db/upgrade-backup.d.ts +58 -2
  167. package/dist/db/upgrade-backup.d.ts.map +1 -1
  168. package/dist/db/upgrade-backup.js +757 -28
  169. package/dist/db/upgrade-backup.js.map +1 -1
  170. package/dist/errors.js +1 -1
  171. package/dist/errors.js.map +1 -1
  172. package/dist/gateway/agent-service.d.ts +4 -1
  173. package/dist/gateway/agent-service.d.ts.map +1 -1
  174. package/dist/gateway/agent-service.js +71 -58
  175. package/dist/gateway/agent-service.js.map +1 -1
  176. package/dist/gateway/checkpoint-service.d.ts +1 -0
  177. package/dist/gateway/checkpoint-service.d.ts.map +1 -1
  178. package/dist/gateway/checkpoint-service.js +47 -24
  179. package/dist/gateway/checkpoint-service.js.map +1 -1
  180. package/dist/ledger/archive.d.ts +1 -4
  181. package/dist/ledger/archive.d.ts.map +1 -1
  182. package/dist/ledger/archive.js +134 -54
  183. package/dist/ledger/archive.js.map +1 -1
  184. package/dist/ledger/maintenance.d.ts +0 -11
  185. package/dist/ledger/maintenance.d.ts.map +1 -1
  186. package/dist/ledger/maintenance.js +41 -44
  187. package/dist/ledger/maintenance.js.map +1 -1
  188. package/dist/ledger/projection.d.ts +0 -1
  189. package/dist/ledger/projection.d.ts.map +1 -1
  190. package/dist/ledger/projection.js.map +1 -1
  191. package/dist/ledger/promotion.d.ts +0 -9
  192. package/dist/ledger/promotion.d.ts.map +1 -1
  193. package/dist/ledger/promotion.js.map +1 -1
  194. package/dist/ledger/query.d.ts +1 -15
  195. package/dist/ledger/query.d.ts.map +1 -1
  196. package/dist/ledger/query.js.map +1 -1
  197. package/dist/ledger/store.d.ts +0 -1
  198. package/dist/ledger/store.d.ts.map +1 -1
  199. package/dist/ledger/store.js +11 -8
  200. package/dist/ledger/store.js.map +1 -1
  201. package/dist/ledger/types.d.ts +0 -4
  202. package/dist/ledger/types.d.ts.map +1 -1
  203. package/dist/ledger/types.js.map +1 -1
  204. package/dist/ledger/validate.d.ts.map +1 -1
  205. package/dist/ledger/validate.js +0 -5
  206. package/dist/ledger/validate.js.map +1 -1
  207. package/dist/mcp/bounded-stdio-transport.d.ts +23 -0
  208. package/dist/mcp/bounded-stdio-transport.d.ts.map +1 -0
  209. package/dist/mcp/bounded-stdio-transport.js +109 -0
  210. package/dist/mcp/bounded-stdio-transport.js.map +1 -0
  211. package/dist/mcp/server.d.ts +4 -0
  212. package/dist/mcp/server.d.ts.map +1 -1
  213. package/dist/mcp/server.js +111 -75
  214. package/dist/mcp/server.js.map +1 -1
  215. package/dist/memory/audit.d.ts +0 -1
  216. package/dist/memory/audit.d.ts.map +1 -1
  217. package/dist/memory/audit.js +0 -1
  218. package/dist/memory/audit.js.map +1 -1
  219. package/dist/memory/curator.d.ts +45 -1
  220. package/dist/memory/curator.d.ts.map +1 -1
  221. package/dist/memory/curator.js +290 -68
  222. package/dist/memory/curator.js.map +1 -1
  223. package/dist/memory/entries.d.ts +12 -2
  224. package/dist/memory/entries.d.ts.map +1 -1
  225. package/dist/memory/entries.js +198 -114
  226. package/dist/memory/entries.js.map +1 -1
  227. package/dist/memory/federated-retrieval.d.ts +78 -0
  228. package/dist/memory/federated-retrieval.d.ts.map +1 -0
  229. package/dist/memory/federated-retrieval.js +441 -0
  230. package/dist/memory/federated-retrieval.js.map +1 -0
  231. package/dist/memory/hybrid-retrieval.d.ts +5 -11
  232. package/dist/memory/hybrid-retrieval.d.ts.map +1 -1
  233. package/dist/memory/hybrid-retrieval.js +78 -58
  234. package/dist/memory/hybrid-retrieval.js.map +1 -1
  235. package/dist/memory/lifecycle.d.ts.map +1 -1
  236. package/dist/memory/lifecycle.js +17 -13
  237. package/dist/memory/lifecycle.js.map +1 -1
  238. package/dist/memory/portability.d.ts +10 -0
  239. package/dist/memory/portability.d.ts.map +1 -0
  240. package/dist/memory/portability.js +44 -0
  241. package/dist/memory/portability.js.map +1 -0
  242. package/dist/memory/rebuild-search.d.ts +5 -0
  243. package/dist/memory/rebuild-search.d.ts.map +1 -1
  244. package/dist/memory/rebuild-search.js +101 -76
  245. package/dist/memory/rebuild-search.js.map +1 -1
  246. package/dist/memory/retrieval-query.d.ts +0 -5
  247. package/dist/memory/retrieval-query.d.ts.map +1 -1
  248. package/dist/memory/retrieval-query.js +0 -5
  249. package/dist/memory/retrieval-query.js.map +1 -1
  250. package/dist/memory/retrieval.d.ts +11 -0
  251. package/dist/memory/retrieval.d.ts.map +1 -1
  252. package/dist/memory/retrieval.js +34 -120
  253. package/dist/memory/retrieval.js.map +1 -1
  254. package/dist/memory/revisions.d.ts +76 -1
  255. package/dist/memory/revisions.d.ts.map +1 -1
  256. package/dist/memory/revisions.js +539 -35
  257. package/dist/memory/revisions.js.map +1 -1
  258. package/dist/memory/scoped-memory.d.ts +22 -13
  259. package/dist/memory/scoped-memory.d.ts.map +1 -1
  260. package/dist/memory/scoped-memory.js +248 -139
  261. package/dist/memory/scoped-memory.js.map +1 -1
  262. package/dist/memory/secrets.d.ts +2 -0
  263. package/dist/memory/secrets.d.ts.map +1 -1
  264. package/dist/memory/secrets.js +36 -0
  265. package/dist/memory/secrets.js.map +1 -1
  266. package/dist/memory/structured-memory.d.ts +8 -1
  267. package/dist/memory/structured-memory.d.ts.map +1 -1
  268. package/dist/memory/structured-memory.js +74 -20
  269. package/dist/memory/structured-memory.js.map +1 -1
  270. package/dist/memory/workspaces.d.ts +9 -0
  271. package/dist/memory/workspaces.d.ts.map +1 -1
  272. package/dist/memory/workspaces.js +67 -0
  273. package/dist/memory/workspaces.js.map +1 -1
  274. package/dist/package-version.d.ts +2 -0
  275. package/dist/package-version.d.ts.map +1 -0
  276. package/dist/package-version.js +7 -0
  277. package/dist/package-version.js.map +1 -0
  278. package/dist/repository/binding.d.ts +5 -0
  279. package/dist/repository/binding.d.ts.map +1 -1
  280. package/dist/repository/binding.js +117 -17
  281. package/dist/repository/binding.js.map +1 -1
  282. package/dist/repository/framework-version.d.ts +8 -0
  283. package/dist/repository/framework-version.d.ts.map +1 -0
  284. package/dist/repository/framework-version.js +29 -0
  285. package/dist/repository/framework-version.js.map +1 -0
  286. package/dist/repository/identity-value.d.ts +4 -0
  287. package/dist/repository/identity-value.d.ts.map +1 -0
  288. package/dist/repository/identity-value.js +24 -0
  289. package/dist/repository/identity-value.js.map +1 -0
  290. package/dist/repository/identity.d.ts.map +1 -1
  291. package/dist/repository/identity.js +2 -0
  292. package/dist/repository/identity.js.map +1 -1
  293. package/dist/repository/project-fingerprint.d.ts +33 -0
  294. package/dist/repository/project-fingerprint.d.ts.map +1 -0
  295. package/dist/repository/project-fingerprint.js +429 -0
  296. package/dist/repository/project-fingerprint.js.map +1 -0
  297. package/dist/repository/remote-url.d.ts +0 -1
  298. package/dist/repository/remote-url.d.ts.map +1 -1
  299. package/dist/repository/remote-url.js +0 -1
  300. package/dist/repository/remote-url.js.map +1 -1
  301. package/dist/runtime-version.d.ts +2 -1
  302. package/dist/runtime-version.d.ts.map +1 -1
  303. package/dist/runtime-version.js +21 -4
  304. package/dist/runtime-version.js.map +1 -1
  305. package/dist/serialization/boundary-json.d.ts +20 -0
  306. package/dist/serialization/boundary-json.d.ts.map +1 -0
  307. package/dist/serialization/boundary-json.js +129 -0
  308. package/dist/serialization/boundary-json.js.map +1 -0
  309. package/dist/serialization/envelope.js +1 -1
  310. package/dist/serialization/envelope.js.map +1 -1
  311. package/dist/serialization/validate.d.ts +7 -0
  312. package/dist/serialization/validate.d.ts.map +1 -1
  313. package/dist/serialization/validate.js +53 -13
  314. package/dist/serialization/validate.js.map +1 -1
  315. package/dist/server/app.js +1 -1
  316. package/dist/server/app.js.map +1 -1
  317. package/dist/server/http.d.ts +4 -3
  318. package/dist/server/http.d.ts.map +1 -1
  319. package/dist/server/http.js +90 -50
  320. package/dist/server/http.js.map +1 -1
  321. package/dist/server/idempotency.d.ts +0 -6
  322. package/dist/server/idempotency.d.ts.map +1 -1
  323. package/dist/server/idempotency.js.map +1 -1
  324. package/dist/server/router.d.ts.map +1 -1
  325. package/dist/server/router.js +21 -4
  326. package/dist/server/router.js.map +1 -1
  327. package/dist/server/routes/agent-capability-gate.d.ts +40 -0
  328. package/dist/server/routes/agent-capability-gate.d.ts.map +1 -0
  329. package/dist/server/routes/agent-capability-gate.js +182 -0
  330. package/dist/server/routes/agent-capability-gate.js.map +1 -0
  331. package/dist/server/routes/agent-events.d.ts.map +1 -1
  332. package/dist/server/routes/agent-events.js +8 -1
  333. package/dist/server/routes/agent-events.js.map +1 -1
  334. package/dist/server/routes/agent-intake.d.ts.map +1 -1
  335. package/dist/server/routes/agent-intake.js +10 -2
  336. package/dist/server/routes/agent-intake.js.map +1 -1
  337. package/dist/server/routes/agent-promotions.d.ts.map +1 -1
  338. package/dist/server/routes/agent-promotions.js +5 -2
  339. package/dist/server/routes/agent-promotions.js.map +1 -1
  340. package/dist/server/routes/agent-runs.d.ts.map +1 -1
  341. package/dist/server/routes/agent-runs.js +18 -4
  342. package/dist/server/routes/agent-runs.js.map +1 -1
  343. package/dist/server/routes/request-binding.d.ts +5 -0
  344. package/dist/server/routes/request-binding.d.ts.map +1 -0
  345. package/dist/server/routes/request-binding.js +49 -0
  346. package/dist/server/routes/request-binding.js.map +1 -0
  347. package/dist/server/routes/task5-support.d.ts +1 -8
  348. package/dist/server/routes/task5-support.d.ts.map +1 -1
  349. package/dist/server/routes/task5-support.js +1 -17
  350. package/dist/server/routes/task5-support.js.map +1 -1
  351. package/dist/server/routes/task5.d.ts.map +1 -1
  352. package/dist/server/routes/task5.js +106 -36
  353. package/dist/server/routes/task5.js.map +1 -1
  354. package/dist/server/write-queue.js +2 -2
  355. package/dist/server/write-queue.js.map +1 -1
  356. package/dist/setup/claude-config.d.ts +2 -1
  357. package/dist/setup/claude-config.d.ts.map +1 -1
  358. package/dist/setup/claude-config.js +54 -4
  359. package/dist/setup/claude-config.js.map +1 -1
  360. package/dist/setup/client-detection.d.ts +7 -2
  361. package/dist/setup/client-detection.d.ts.map +1 -1
  362. package/dist/setup/client-detection.js +27 -9
  363. package/dist/setup/client-detection.js.map +1 -1
  364. package/dist/setup/hermes-config.d.ts +2 -1
  365. package/dist/setup/hermes-config.d.ts.map +1 -1
  366. package/dist/setup/hermes-config.js +53 -12
  367. package/dist/setup/hermes-config.js.map +1 -1
  368. package/dist/setup/legacy-client-cleanup.d.ts +6 -0
  369. package/dist/setup/legacy-client-cleanup.d.ts.map +1 -0
  370. package/dist/setup/legacy-client-cleanup.js +152 -0
  371. package/dist/setup/legacy-client-cleanup.js.map +1 -0
  372. package/dist/setup/managed-text.d.ts.map +1 -1
  373. package/dist/setup/managed-text.js +11 -1
  374. package/dist/setup/managed-text.js.map +1 -1
  375. package/dist/setup/opencode-config.d.ts +2 -1
  376. package/dist/setup/opencode-config.d.ts.map +1 -1
  377. package/dist/setup/opencode-config.js +57 -5
  378. package/dist/setup/opencode-config.js.map +1 -1
  379. package/dist/setup/render.d.ts +2 -1
  380. package/dist/setup/render.d.ts.map +1 -1
  381. package/dist/setup/render.js +91 -17
  382. package/dist/setup/render.js.map +1 -1
  383. package/dist/setup/standard-skills.d.ts +16 -2
  384. package/dist/setup/standard-skills.d.ts.map +1 -1
  385. package/dist/setup/standard-skills.js +37 -13
  386. package/dist/setup/standard-skills.js.map +1 -1
  387. package/dist/setup/strict-json.d.ts +7 -0
  388. package/dist/setup/strict-json.d.ts.map +1 -0
  389. package/dist/setup/strict-json.js +98 -0
  390. package/dist/setup/strict-json.js.map +1 -0
  391. package/dist/setup/strict-toml.d.ts +7 -0
  392. package/dist/setup/strict-toml.d.ts.map +1 -0
  393. package/dist/setup/strict-toml.js +470 -0
  394. package/dist/setup/strict-toml.js.map +1 -0
  395. package/dist/skills/cache.d.ts +15 -0
  396. package/dist/skills/cache.d.ts.map +1 -0
  397. package/dist/skills/cache.js +19 -0
  398. package/dist/skills/cache.js.map +1 -0
  399. package/dist/skills/candidate-ranking.d.ts +15 -0
  400. package/dist/skills/candidate-ranking.d.ts.map +1 -0
  401. package/dist/skills/candidate-ranking.js +52 -0
  402. package/dist/skills/candidate-ranking.js.map +1 -0
  403. package/dist/skills/chunking.d.ts +11 -0
  404. package/dist/skills/chunking.d.ts.map +1 -0
  405. package/dist/skills/chunking.js +291 -0
  406. package/dist/skills/chunking.js.map +1 -0
  407. package/dist/skills/config.d.ts +19 -0
  408. package/dist/skills/config.d.ts.map +1 -0
  409. package/dist/skills/config.js +103 -0
  410. package/dist/skills/config.js.map +1 -0
  411. package/dist/skills/discovery-service.d.ts +26 -0
  412. package/dist/skills/discovery-service.d.ts.map +1 -0
  413. package/dist/skills/discovery-service.js +921 -0
  414. package/dist/skills/discovery-service.js.map +1 -0
  415. package/dist/skills/external-transport.d.ts +2 -0
  416. package/dist/skills/external-transport.d.ts.map +1 -0
  417. package/dist/skills/external-transport.js +30 -0
  418. package/dist/skills/external-transport.js.map +1 -0
  419. package/dist/skills/find.d.ts +16 -0
  420. package/dist/skills/find.d.ts.map +1 -0
  421. package/dist/skills/find.js +58 -0
  422. package/dist/skills/find.js.map +1 -0
  423. package/dist/skills/gap-detection.d.ts +23 -0
  424. package/dist/skills/gap-detection.d.ts.map +1 -0
  425. package/dist/skills/gap-detection.js +62 -0
  426. package/dist/skills/gap-detection.js.map +1 -0
  427. package/dist/skills/import-preparation.d.ts +4 -0
  428. package/dist/skills/import-preparation.d.ts.map +1 -0
  429. package/dist/skills/import-preparation.js +20 -0
  430. package/dist/skills/import-preparation.js.map +1 -0
  431. package/dist/skills/materialization-authority.d.ts +11 -0
  432. package/dist/skills/materialization-authority.d.ts.map +1 -0
  433. package/dist/skills/materialization-authority.js +92 -0
  434. package/dist/skills/materialization-authority.js.map +1 -0
  435. package/dist/skills/materialization-service.d.ts +22 -0
  436. package/dist/skills/materialization-service.d.ts.map +1 -0
  437. package/dist/skills/materialization-service.js +101 -0
  438. package/dist/skills/materialization-service.js.map +1 -0
  439. package/dist/skills/official-catalog.d.ts +31 -0
  440. package/dist/skills/official-catalog.d.ts.map +1 -0
  441. package/dist/skills/official-catalog.js +110 -0
  442. package/dist/skills/official-catalog.js.map +1 -0
  443. package/dist/skills/providers/schema.d.ts +30 -0
  444. package/dist/skills/providers/schema.d.ts.map +1 -0
  445. package/dist/skills/providers/schema.js +354 -0
  446. package/dist/skills/providers/schema.js.map +1 -0
  447. package/dist/skills/providers/skills-sh-compat.d.ts +17 -0
  448. package/dist/skills/providers/skills-sh-compat.d.ts.map +1 -0
  449. package/dist/skills/providers/skills-sh-compat.js +71 -0
  450. package/dist/skills/providers/skills-sh-compat.js.map +1 -0
  451. package/dist/skills/providers/skills-sh-v1.d.ts +23 -0
  452. package/dist/skills/providers/skills-sh-v1.d.ts.map +1 -0
  453. package/dist/skills/providers/skills-sh-v1.js +134 -0
  454. package/dist/skills/providers/skills-sh-v1.js.map +1 -0
  455. package/dist/skills/query-builder.d.ts +18 -0
  456. package/dist/skills/query-builder.d.ts.map +1 -0
  457. package/dist/skills/query-builder.js +93 -0
  458. package/dist/skills/query-builder.js.map +1 -0
  459. package/dist/skills/source/errors.d.ts +9 -0
  460. package/dist/skills/source/errors.d.ts.map +1 -0
  461. package/dist/skills/source/errors.js +15 -0
  462. package/dist/skills/source/errors.js.map +1 -0
  463. package/dist/skills/source/frontmatter.d.ts +9 -0
  464. package/dist/skills/source/frontmatter.d.ts.map +1 -0
  465. package/dist/skills/source/frontmatter.js +77 -0
  466. package/dist/skills/source/frontmatter.js.map +1 -0
  467. package/dist/skills/source/github-fetcher.d.ts +20 -0
  468. package/dist/skills/source/github-fetcher.d.ts.map +1 -0
  469. package/dist/skills/source/github-fetcher.js +292 -0
  470. package/dist/skills/source/github-fetcher.js.map +1 -0
  471. package/dist/skills/source/snapshot-validator.d.ts +28 -0
  472. package/dist/skills/source/snapshot-validator.d.ts.map +1 -0
  473. package/dist/skills/source/snapshot-validator.js +186 -0
  474. package/dist/skills/source/snapshot-validator.js.map +1 -0
  475. package/dist/skills/store.d.ts +181 -0
  476. package/dist/skills/store.d.ts.map +1 -0
  477. package/dist/skills/store.js +1710 -0
  478. package/dist/skills/store.js.map +1 -0
  479. package/dist/skills/types.d.ts +169 -0
  480. package/dist/skills/types.d.ts.map +1 -0
  481. package/dist/skills/types.js +2 -0
  482. package/dist/skills/types.js.map +1 -0
  483. package/dist/web/i18n.d.ts +56 -8
  484. package/dist/web/i18n.d.ts.map +1 -1
  485. package/dist/web/i18n.js +224 -32
  486. package/dist/web/i18n.js.map +1 -1
  487. package/dist/web/server.d.ts.map +1 -1
  488. package/dist/web/server.js +458 -42
  489. package/dist/web/server.js.map +1 -1
  490. package/dist/web/ui.d.ts +4 -0
  491. package/dist/web/ui.d.ts.map +1 -1
  492. package/dist/web/ui.js +697 -61
  493. package/dist/web/ui.js.map +1 -1
  494. package/migrations/008_federated_memory.sql +46 -0
  495. package/migrations/009_external_skill_discovery.sql +126 -0
  496. package/package.json +6 -3
  497. package/skills/kiokuko-single-purpose-functions/SKILL.md +288 -0
  498. package/skills/kiokuko-single-purpose-functions/references/kiokuko-patterns.md +344 -0
  499. package/skills/kiokuko-single-purpose-functions/references/review-checklist.md +97 -0
  500. package/skills/kiokuko-ui-design-soul/SKILL.md +1186 -28
  501. package/templates/AGENTS.md +8 -7
  502. package/dist/client/runtime-discovery.d.ts +0 -15
  503. package/dist/client/runtime-discovery.d.ts.map +0 -1
  504. package/dist/client/runtime-discovery.js +0 -45
  505. package/dist/client/runtime-discovery.js.map +0 -1
  506. package/dist/commands/call.d.ts +0 -7
  507. package/dist/commands/call.d.ts.map +0 -1
  508. package/dist/commands/call.js +0 -10
  509. package/dist/commands/call.js.map +0 -1
  510. package/dist/commands/link.d.ts +0 -6
  511. package/dist/commands/link.d.ts.map +0 -1
  512. package/dist/commands/link.js +0 -6
  513. package/dist/commands/link.js.map +0 -1
  514. package/dist/commands/promote.d.ts +0 -6
  515. package/dist/commands/promote.d.ts.map +0 -1
  516. package/dist/commands/promote.js +0 -6
  517. package/dist/commands/promote.js.map +0 -1
  518. package/dist/commands/read.d.ts +0 -6
  519. package/dist/commands/read.d.ts.map +0 -1
  520. package/dist/commands/read.js +0 -4
  521. package/dist/commands/read.js.map +0 -1
  522. package/dist/commands/recall.d.ts +0 -6
  523. package/dist/commands/recall.d.ts.map +0 -1
  524. package/dist/commands/recall.js +0 -4
  525. package/dist/commands/recall.js.map +0 -1
  526. package/dist/commands/record.d.ts +0 -6
  527. package/dist/commands/record.d.ts.map +0 -1
  528. package/dist/commands/record.js +0 -4
  529. package/dist/commands/record.js.map +0 -1
  530. package/dist/commands/search.d.ts +0 -6
  531. package/dist/commands/search.d.ts.map +0 -1
  532. package/dist/commands/search.js +0 -4
  533. package/dist/commands/search.js.map +0 -1
  534. package/dist/commands/supersede.d.ts +0 -6
  535. package/dist/commands/supersede.d.ts.map +0 -1
  536. package/dist/commands/supersede.js +0 -6
  537. package/dist/commands/supersede.js.map +0 -1
  538. package/dist/knowledge/sources.d.ts +0 -72
  539. package/dist/knowledge/sources.d.ts.map +0 -1
  540. package/dist/knowledge/sources.js +0 -388
  541. package/dist/knowledge/sources.js.map +0 -1
  542. package/dist/setup/opencode-evidence.d.ts +0 -37
  543. package/dist/setup/opencode-evidence.d.ts.map +0 -1
  544. package/dist/setup/opencode-evidence.js +0 -58
  545. package/dist/setup/opencode-evidence.js.map +0 -1
  546. package/dist/setup/opencode-loop-guard.d.ts +0 -9
  547. package/dist/setup/opencode-loop-guard.d.ts.map +0 -1
  548. package/dist/setup/opencode-loop-guard.js +0 -248
  549. package/dist/setup/opencode-loop-guard.js.map +0 -1
@@ -0,0 +1,26 @@
1
+ import type { SqliteDatabase } from '../db/adapter.js';
2
+ import type { TaskProfile } from '../akinator/types.js';
3
+ import { type LedgerProjection } from '../ledger/projection.js';
4
+ import { type RunRecord } from '../ledger/types.js';
5
+ export interface ContextRunRetrievalState {
6
+ run: RunRecord;
7
+ profile: TaskProfile;
8
+ profileHash: string;
9
+ recommendedTags: string[];
10
+ intakeSessionId: string;
11
+ intakeStatus: 'active' | 'ready' | 'exhausted';
12
+ projection: LedgerProjection | null;
13
+ stateHash: string;
14
+ }
15
+ export interface ContextRunProfileBinding {
16
+ workspace: string;
17
+ intakeSessionId: string;
18
+ intakePolicyVersion: string;
19
+ initialProfileHash: string;
20
+ profileHash: string;
21
+ }
22
+ /** Verify the exact intake/profile binding at a persisted delivery cursor. */
23
+ export declare function readContextRunProfileBinding(database: SqliteDatabase, runId: string, throughSequence: number): ContextRunProfileBinding;
24
+ /** Read and validate the complete immutable input used by broker ranking/recommendations. */
25
+ export declare function readContextRunRetrievalState(database: SqliteDatabase, runId: string): ContextRunRetrievalState;
26
+ //# sourceMappingURL=run-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-state.d.ts","sourceRoot":"","sources":["../../src/context/run-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAA2C,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEzG,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,oBAAoB,CAAC;AAgB5B,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,SAAS,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC;IAC/C,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AA2PD,8EAA8E;AAC9E,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,MAAM,GACtB,wBAAwB,CAiC1B;AAED,6FAA6F;AAC7F,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,MAAM,GACZ,wBAAwB,CA4G1B"}
@@ -0,0 +1,399 @@
1
+ import { KiokukoError } from '../errors.js';
2
+ import { AKINATOR_POLICY_VERSION, evaluateProfile } from '../akinator/domain.js';
3
+ import { readAkinatorSession, readRunIntakeLink } from '../akinator/store.js';
4
+ import { GENESIS_HASH, hashLedgerEvent } from '../ledger/hash.js';
5
+ import { projectLedger } from '../ledger/projection.js';
6
+ import { LedgerStore } from '../ledger/store.js';
7
+ import { COVERAGE_LEVELS, TERMINAL_RUN_STATUSES, } from '../ledger/types.js';
8
+ import { validateEventInput, validateTimestamp } from '../ledger/validate.js';
9
+ import { canonicalContentHash, canonicalJson } from '../serialization/validate.js';
10
+ const HASH = /^[0-9a-f]{64}$/u;
11
+ const CURRENT_PROFILE_SCHEMA_VERSION = 1;
12
+ const REDACTION_KINDS = [
13
+ 'sensitive_key',
14
+ 'secret_pattern',
15
+ 'url',
16
+ 'home_path',
17
+ 'preview_truncated',
18
+ 'environment_value',
19
+ 'hidden_reasoning',
20
+ ];
21
+ function integrity(message = 'Stored context run is invalid') {
22
+ throw new KiokukoError('INTEGRITY_ERROR', message);
23
+ }
24
+ function storedRun(database, runId) {
25
+ let run;
26
+ try {
27
+ run = new LedgerStore(database).readRun(runId);
28
+ }
29
+ catch (error) {
30
+ if (error instanceof SyntaxError)
31
+ integrity();
32
+ throw error;
33
+ }
34
+ if (run === undefined)
35
+ throw new KiokukoError('NOT_FOUND', 'Context run was not found');
36
+ const coverageFields = ['run', 'tool', 'command', 'file', 'approval'];
37
+ if (typeof run.workspace !== 'string'
38
+ || run.workspace.length === 0
39
+ || (run.title !== null && typeof run.title !== 'string')
40
+ || !Number.isSafeInteger(run.lastSequence)
41
+ || run.lastSequence < 0
42
+ || typeof run.createdAt !== 'string'
43
+ || typeof run.updatedAt !== 'string'
44
+ || typeof run.coverage !== 'object'
45
+ || run.coverage === null
46
+ || Array.isArray(run.coverage)
47
+ || Object.keys(run.coverage).length !== coverageFields.length
48
+ || coverageFields.some((field) => !COVERAGE_LEVELS.includes(run.coverage[field]))) {
49
+ integrity();
50
+ }
51
+ try {
52
+ validateTimestamp(run.createdAt, 'createdAt');
53
+ validateTimestamp(run.updatedAt, 'updatedAt');
54
+ }
55
+ catch (error) {
56
+ if (error instanceof KiokukoError && error.code === 'VALIDATION_ERROR')
57
+ integrity();
58
+ throw error;
59
+ }
60
+ return run;
61
+ }
62
+ function parseCanonicalJson(value) {
63
+ if (typeof value !== 'string')
64
+ integrity('Stored context ledger event is invalid');
65
+ let parsed;
66
+ try {
67
+ parsed = JSON.parse(value);
68
+ }
69
+ catch (error) {
70
+ if (error instanceof SyntaxError)
71
+ integrity('Stored context ledger event is invalid');
72
+ throw error;
73
+ }
74
+ try {
75
+ if (canonicalJson(parsed) !== value)
76
+ integrity('Stored context ledger event is invalid');
77
+ }
78
+ catch (error) {
79
+ if (error instanceof KiokukoError && error.code === 'VALIDATION_ERROR') {
80
+ integrity('Stored context ledger event is invalid');
81
+ }
82
+ throw error;
83
+ }
84
+ return parsed;
85
+ }
86
+ function parsedRedactions(value) {
87
+ const parsed = parseCanonicalJson(value);
88
+ if (!Array.isArray(parsed))
89
+ integrity('Stored context ledger event is invalid');
90
+ return parsed.map((item) => {
91
+ if (typeof item !== 'object'
92
+ || item === null
93
+ || Array.isArray(item)
94
+ || Object.keys(item).length !== 2
95
+ || typeof item.path !== 'string'
96
+ || item.path.length === 0
97
+ || typeof item.kind !== 'string'
98
+ || !REDACTION_KINDS.includes(item.kind)) {
99
+ integrity('Stored context ledger event is invalid');
100
+ }
101
+ return { path: item.path, kind: item.kind };
102
+ });
103
+ }
104
+ function validatedLedgerEvents(database, run) {
105
+ const rows = new LedgerStore(database).readEvents(run.runId);
106
+ if (rows.length !== run.lastSequence)
107
+ integrity('Stored context ledger sequence is invalid');
108
+ const events = [];
109
+ let previousHash = GENESIS_HASH;
110
+ for (let index = 0; index < rows.length; index += 1) {
111
+ const row = rows[index];
112
+ if (row === undefined
113
+ || row.run_id !== run.runId
114
+ || row.sequence !== index + 1
115
+ || row.previous_hash !== previousHash
116
+ || typeof row.event_hash !== 'string'
117
+ || !HASH.test(row.event_hash)
118
+ || typeof row.ingested_at !== 'string') {
119
+ integrity('Stored context ledger sequence is invalid');
120
+ }
121
+ const payload = parseCanonicalJson(row.payload_json);
122
+ const redaction = parsedRedactions(row.redaction_json);
123
+ let event;
124
+ try {
125
+ event = validateEventInput({
126
+ eventId: row.event_id,
127
+ ...(row.source_event_id === null ? {} : { sourceEventId: row.source_event_id }),
128
+ ...(row.source_sequence === null ? {} : { sourceSequence: row.source_sequence }),
129
+ eventType: row.event_type,
130
+ ...(row.source_type === null ? {} : { sourceType: row.source_type }),
131
+ actor: row.actor,
132
+ outcome: row.outcome,
133
+ ...(row.occurred_at === null ? {} : { occurredAt: row.occurred_at }),
134
+ payload,
135
+ });
136
+ validateTimestamp(row.ingested_at, 'ingestedAt');
137
+ }
138
+ catch (error) {
139
+ if (error instanceof KiokukoError
140
+ && (error.code === 'VALIDATION_ERROR' || error.code === 'SECURITY_REJECTION')) {
141
+ integrity('Stored context ledger event is invalid');
142
+ }
143
+ throw error;
144
+ }
145
+ const calculated = hashLedgerEvent({
146
+ runId: run.runId,
147
+ sequence: row.sequence,
148
+ eventId: event.eventId,
149
+ previousHash: row.previous_hash,
150
+ eventType: event.eventType,
151
+ ...(event.sourceEventId === undefined ? {} : { sourceEventId: event.sourceEventId }),
152
+ ...(event.sourceSequence === undefined ? {} : { sourceSequence: event.sourceSequence }),
153
+ ...(event.sourceType === undefined ? {} : { sourceType: event.sourceType }),
154
+ actor: event.actor,
155
+ ...(event.outcome === undefined ? {} : { outcome: event.outcome }),
156
+ ...(event.occurredAt === undefined ? {} : { occurredAt: event.occurredAt }),
157
+ ingestedAt: row.ingested_at,
158
+ payload: event.payload,
159
+ redaction,
160
+ });
161
+ if (calculated !== row.event_hash)
162
+ integrity('Stored context ledger hash chain is invalid');
163
+ const projection = {
164
+ eventId: event.eventId,
165
+ sequence: row.sequence,
166
+ eventType: event.eventType,
167
+ ...(event.outcome === undefined || event.outcome === null ? {} : { outcome: event.outcome }),
168
+ payload: event.payload,
169
+ };
170
+ events.push({
171
+ projection,
172
+ hashInput: {
173
+ eventId: event.eventId,
174
+ sequence: row.sequence,
175
+ eventType: event.eventType,
176
+ sourceEventId: event.sourceEventId ?? null,
177
+ sourceSequence: event.sourceSequence ?? null,
178
+ sourceType: event.sourceType ?? null,
179
+ actor: event.actor,
180
+ outcome: event.outcome ?? null,
181
+ occurredAt: event.occurredAt ?? null,
182
+ ingestedAt: row.ingested_at,
183
+ payload: event.payload,
184
+ redaction,
185
+ previousHash: row.previous_hash,
186
+ eventHash: row.event_hash,
187
+ },
188
+ });
189
+ previousHash = row.event_hash;
190
+ }
191
+ return events;
192
+ }
193
+ function validatedFinalizedIntake(database, run) {
194
+ let link;
195
+ try {
196
+ link = readRunIntakeLink(database, { workspace: run.workspace, runId: run.runId });
197
+ }
198
+ catch (error) {
199
+ if (error instanceof KiokukoError && error.code === 'NOT_FOUND') {
200
+ integrity('Stored context run intake state is invalid');
201
+ }
202
+ throw error;
203
+ }
204
+ let session;
205
+ try {
206
+ session = readAkinatorSession(database, { workspace: run.workspace, sessionId: link.sessionId });
207
+ }
208
+ catch (error) {
209
+ if (error instanceof KiokukoError && error.code === 'NOT_FOUND') {
210
+ integrity('Stored context run intake state is invalid');
211
+ }
212
+ throw error;
213
+ }
214
+ if (link.runId !== run.runId
215
+ || link.workspace !== run.workspace
216
+ || session.id !== link.sessionId
217
+ || session.workspace !== run.workspace
218
+ || session.status === 'active') {
219
+ integrity('Stored context run intake state is invalid');
220
+ }
221
+ validatedCurrentIntakeMetadata(link, session);
222
+ const initialProfileHash = canonicalContentHash(session.profile);
223
+ if (link.initialProfileHash !== initialProfileHash || link.finalizedAt === null) {
224
+ integrity('Context run intake link does not match its session state');
225
+ }
226
+ return { link, session, initialProfileHash };
227
+ }
228
+ function validatedCurrentIntakeMetadata(link, session) {
229
+ if (link.policyVersion !== AKINATOR_POLICY_VERSION
230
+ || link.profileSchemaVersion !== CURRENT_PROFILE_SCHEMA_VERSION) {
231
+ integrity('Stored context run intake state is invalid');
232
+ }
233
+ let expected;
234
+ try {
235
+ expected = evaluateProfile(session.profile, session.questionCount);
236
+ }
237
+ catch (error) {
238
+ if (error instanceof KiokukoError && error.code === 'VALIDATION_ERROR') {
239
+ integrity('Stored context run intake state is invalid');
240
+ }
241
+ throw error;
242
+ }
243
+ if (session.status !== 'active'
244
+ && (link.recommendedTags.length !== expected.recommendedTags.length
245
+ || link.recommendedTags.some((tag, index) => tag !== expected.recommendedTags[index]))) {
246
+ integrity('Stored context run intake state is invalid');
247
+ }
248
+ return [...expected.recommendedTags];
249
+ }
250
+ /** Verify the exact intake/profile binding at a persisted delivery cursor. */
251
+ export function readContextRunProfileBinding(database, runId, throughSequence) {
252
+ const run = storedRun(database, runId);
253
+ if (!Number.isSafeInteger(throughSequence)
254
+ || throughSequence < 0
255
+ || throughSequence > run.lastSequence) {
256
+ integrity('Stored context delivery sequence is invalid');
257
+ }
258
+ const { link, session, initialProfileHash } = validatedFinalizedIntake(database, run);
259
+ const events = validatedLedgerEvents(database, run);
260
+ let projection;
261
+ try {
262
+ projection = projectLedger({
263
+ initialProfile: session.profile,
264
+ intakeStatus: session.status,
265
+ coverage: run.coverage,
266
+ throughSequence,
267
+ events: events
268
+ .filter((event) => event.projection.sequence <= throughSequence)
269
+ .map((event) => event.projection),
270
+ });
271
+ }
272
+ catch (error) {
273
+ if (error instanceof KiokukoError && error.code === 'VALIDATION_ERROR') {
274
+ integrity('Stored context ledger projection state is invalid');
275
+ }
276
+ throw error;
277
+ }
278
+ return {
279
+ workspace: run.workspace,
280
+ intakeSessionId: link.sessionId,
281
+ intakePolicyVersion: link.policyVersion,
282
+ initialProfileHash,
283
+ profileHash: projection.profileHash,
284
+ };
285
+ }
286
+ /** Read and validate the complete immutable input used by broker ranking/recommendations. */
287
+ export function readContextRunRetrievalState(database, runId) {
288
+ const run = storedRun(database, runId);
289
+ if (TERMINAL_RUN_STATUSES.includes(run.status)) {
290
+ throw new KiokukoError('CONFLICT', 'Task run is terminal');
291
+ }
292
+ let link;
293
+ try {
294
+ link = readRunIntakeLink(database, { workspace: run.workspace, runId });
295
+ }
296
+ catch (error) {
297
+ if (error instanceof KiokukoError && error.code === 'NOT_FOUND') {
298
+ integrity('Stored context run intake state is invalid');
299
+ }
300
+ throw error;
301
+ }
302
+ let session;
303
+ try {
304
+ session = readAkinatorSession(database, { workspace: run.workspace, sessionId: link.sessionId });
305
+ }
306
+ catch (error) {
307
+ if (error instanceof KiokukoError && error.code === 'NOT_FOUND') {
308
+ integrity('Stored context run intake state is invalid');
309
+ }
310
+ throw error;
311
+ }
312
+ if (link.runId !== run.runId
313
+ || link.workspace !== run.workspace
314
+ || session.id !== link.sessionId
315
+ || session.workspace !== run.workspace) {
316
+ integrity('Stored context run intake state is invalid');
317
+ }
318
+ const recommendedTags = validatedCurrentIntakeMetadata(link, session);
319
+ const expectedRunStatus = session.status === 'active' ? 'intake' : 'active';
320
+ if (run.status !== expectedRunStatus) {
321
+ integrity('Context run status does not match its intake state');
322
+ }
323
+ const sessionProfileHash = canonicalContentHash(session.profile);
324
+ if (session.status === 'active'
325
+ ? link.initialProfileHash !== null || link.finalizedAt !== null
326
+ : link.initialProfileHash !== sessionProfileHash || link.finalizedAt === null) {
327
+ integrity('Context run intake link does not match its session state');
328
+ }
329
+ const events = validatedLedgerEvents(database, run);
330
+ let projection = null;
331
+ if (session.status !== 'active') {
332
+ try {
333
+ projection = projectLedger({
334
+ initialProfile: session.profile,
335
+ intakeStatus: session.status,
336
+ coverage: run.coverage,
337
+ throughSequence: run.lastSequence,
338
+ events: events.map((event) => event.projection),
339
+ });
340
+ }
341
+ catch (error) {
342
+ if (error instanceof KiokukoError && error.code === 'VALIDATION_ERROR') {
343
+ integrity('Stored context ledger projection state is invalid');
344
+ }
345
+ throw error;
346
+ }
347
+ }
348
+ const profile = projection?.taskProfile ?? session.profile;
349
+ const profileHash = projection?.profileHash ?? sessionProfileHash;
350
+ const stateHash = canonicalContentHash({
351
+ run: {
352
+ runId: run.runId,
353
+ workspace: run.workspace,
354
+ status: run.status,
355
+ title: run.title,
356
+ coverage: run.coverage,
357
+ lastSequence: run.lastSequence,
358
+ createdAt: run.createdAt,
359
+ updatedAt: run.updatedAt,
360
+ },
361
+ intake: {
362
+ session: {
363
+ id: session.id,
364
+ workspace: session.workspace,
365
+ task: session.task,
366
+ profile: session.profile,
367
+ status: session.status,
368
+ questionCount: session.questionCount,
369
+ createdAt: session.createdAt,
370
+ updatedAt: session.updatedAt,
371
+ },
372
+ link: {
373
+ runId: link.runId,
374
+ sessionId: link.sessionId,
375
+ workspace: link.workspace,
376
+ policyVersion: link.policyVersion,
377
+ profileSchemaVersion: link.profileSchemaVersion,
378
+ profileSources: link.profileSources,
379
+ initialProfileHash: link.initialProfileHash,
380
+ recommendedTags: link.recommendedTags,
381
+ linkedAt: link.linkedAt,
382
+ finalizedAt: link.finalizedAt,
383
+ },
384
+ },
385
+ events: events.map((event) => event.hashInput),
386
+ projection,
387
+ });
388
+ return {
389
+ run,
390
+ profile,
391
+ profileHash,
392
+ recommendedTags,
393
+ intakeSessionId: link.sessionId,
394
+ intakeStatus: session.status,
395
+ projection,
396
+ stateHash,
397
+ };
398
+ }
399
+ //# sourceMappingURL=run-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-state.js","sourceRoot":"","sources":["../../src/context/run-state.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
1
  import type { SqliteDatabase } from '../db/adapter.js';
2
- import { type JsonObject } from '../serialization/validate.js';
3
- import { type EntryRecord } from '../memory/entries.js';
4
2
  import { type ResolvedProjectWorkspace } from '../memory/workspaces.js';
3
+ import { type FederatedOrigin } from '../memory/federated-retrieval.js';
5
4
  import type { TaskProfile } from '../akinator/types.js';
6
- export declare const SCOPED_CONTEXT_POLICY_VERSION: "context-ranking-v2";
5
+ import { type ProjectFingerprint } from '../repository/project-fingerprint.js';
6
+ export declare const SCOPED_CONTEXT_POLICY_VERSION: "context-ranking-v4";
7
+ export declare const SCOPED_CONTEXT_DEFAULT_CHARACTER_BUDGET = 8000;
8
+ export declare const SCOPED_CONTEXT_MAX_CHARACTER_BUDGET = 100000;
7
9
  export interface ScopedContextQuery {
8
10
  cwd?: string;
9
11
  project?: ResolvedProjectWorkspace;
12
+ fingerprint?: ProjectFingerprint;
10
13
  task: string;
11
14
  taskProfile: TaskProfile;
12
15
  recommendedTags?: string[];
@@ -19,7 +22,7 @@ export interface ScopedContextQuery {
19
22
  export interface ScopedContextItem {
20
23
  entryId: string;
21
24
  revision: number;
22
- origin: 'project' | 'global';
25
+ origin: FederatedOrigin;
23
26
  title: string;
24
27
  summary: string | null;
25
28
  bodyPreview: string;
@@ -57,7 +60,17 @@ export interface ScopedContextResult {
57
60
  truncated: boolean;
58
61
  untrusted: true;
59
62
  }
63
+ export interface ScopedContextGateDecision<T> {
64
+ persist: boolean;
65
+ value: T;
66
+ assertBeforePersist?: () => void;
67
+ }
68
+ export interface ScopedContextGatedResult<T> {
69
+ context: ScopedContextResult | null;
70
+ value: T;
71
+ /** Internal corpus generation used by callers that guard later side effects. */
72
+ selectionStateHash: string;
73
+ }
60
74
  export declare function queryScopedContext(database: SqliteDatabase, raw: ScopedContextQuery): Promise<ScopedContextResult>;
61
- export declare function entryOrigin(entry: EntryRecord): 'project' | 'global';
62
- export declare function structuredScope(entry: EntryRecord): JsonObject;
75
+ export declare function queryScopedContextGated<T>(database: SqliteDatabase, raw: ScopedContextQuery, decide: (candidate: ScopedContextResult) => ScopedContextGateDecision<T>): Promise<ScopedContextGatedResult<T>>;
63
76
  //# sourceMappingURL=scoped-broker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scoped-broker.d.ts","sourceRoot":"","sources":["../../src/context/scoped-broker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAwB,KAAK,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAErF,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAoE,KAAK,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC1I,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKxD,eAAO,MAAM,6BAA6B,EAAG,oBAA6B,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,wBAAwB,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE;QACf,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE;QACR,UAAU,EAAE,IAAI,CAAC;QACjB,SAAS,EAAE,IAAI,CAAC;QAChB,YAAY,EAAE,KAAK,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,6BAA6B,CAAC;IACpD,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;CACjB;AAqHD,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAyGxH;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAEpE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,CAE9D"}
1
+ {"version":3,"file":"scoped-broker.d.ts","sourceRoot":"","sources":["../../src/context/scoped-broker.ts"],"names":[],"mappings":"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"}