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,972 @@
1
+ -- Kiokuko 1.0 fresh database baseline. Previous database histories are unsupported.
2
+
3
+ CREATE TABLE repositories (
4
+ repository_id TEXT PRIMARY KEY,
5
+ workspace TEXT NOT NULL UNIQUE,
6
+ display_name TEXT NOT NULL,
7
+ remote_fingerprint TEXT,
8
+ binding_schema_version INTEGER NOT NULL,
9
+ agent_template_version INTEGER NOT NULL,
10
+ created_at TEXT NOT NULL,
11
+ last_used_at TEXT NOT NULL
12
+ );
13
+
14
+ CREATE TABLE repository_locations (
15
+ repository_id TEXT NOT NULL REFERENCES repositories(repository_id),
16
+ canonical_root TEXT NOT NULL UNIQUE,
17
+ first_seen_at TEXT NOT NULL,
18
+ last_seen_at TEXT NOT NULL,
19
+ PRIMARY KEY (repository_id, canonical_root)
20
+ );
21
+
22
+ CREATE TABLE entries (
23
+ id TEXT PRIMARY KEY,
24
+ workspace TEXT NOT NULL,
25
+ status TEXT NOT NULL CHECK (
26
+ status IN ('candidate', 'verified', 'superseded')
27
+ ),
28
+ trust_level TEXT NOT NULL DEFAULT 'user_asserted' CHECK (
29
+ trust_level IN ('untrusted', 'user_asserted', 'source_verified', 'system_verified')
30
+ ),
31
+ confidence REAL NOT NULL CHECK (confidence >= 0.0 AND confidence <= 1.0),
32
+ current_revision INTEGER NOT NULL CHECK (current_revision > 0),
33
+ superseded_by TEXT REFERENCES entries(id),
34
+ created_by TEXT NOT NULL,
35
+ created_at TEXT NOT NULL,
36
+ updated_at TEXT NOT NULL,
37
+ verified_at TEXT,
38
+ CHECK (status != 'superseded' OR superseded_by IS NOT NULL)
39
+ );
40
+
41
+ CREATE UNIQUE INDEX idx_entries_id_workspace
42
+ ON entries(id, workspace);
43
+
44
+ CREATE INDEX idx_entries_workspace_status
45
+ ON entries(workspace, status, updated_at DESC);
46
+
47
+ CREATE TABLE entry_revisions (
48
+ entry_id TEXT NOT NULL,
49
+ workspace TEXT NOT NULL,
50
+ revision INTEGER NOT NULL CHECK (revision > 0),
51
+ kind TEXT NOT NULL CHECK (
52
+ kind IN ('fact', 'decision', 'lesson', 'preference', 'reference')
53
+ ),
54
+ title TEXT NOT NULL,
55
+ body TEXT NOT NULL,
56
+ summary TEXT,
57
+ scope_json TEXT NOT NULL DEFAULT '{}',
58
+ provenance_json TEXT NOT NULL DEFAULT '{}',
59
+ content_hash TEXT NOT NULL,
60
+ created_by TEXT NOT NULL,
61
+ created_at TEXT NOT NULL,
62
+ PRIMARY KEY (entry_id, revision),
63
+ FOREIGN KEY (entry_id, workspace)
64
+ REFERENCES entries(id, workspace)
65
+ ON DELETE CASCADE
66
+ );
67
+
68
+ CREATE UNIQUE INDEX idx_entry_revisions_workspace_hash
69
+ ON entry_revisions(workspace, content_hash);
70
+
71
+ CREATE INDEX idx_entry_revisions_entry_created
72
+ ON entry_revisions(entry_id, revision DESC);
73
+
74
+ CREATE TABLE entry_revision_tags (
75
+ entry_id TEXT NOT NULL,
76
+ revision INTEGER NOT NULL,
77
+ tag TEXT NOT NULL,
78
+ PRIMARY KEY (entry_id, revision, tag),
79
+ FOREIGN KEY (entry_id, revision)
80
+ REFERENCES entry_revisions(entry_id, revision)
81
+ ON DELETE CASCADE
82
+ );
83
+
84
+ CREATE INDEX idx_entry_revision_tags_tag
85
+ ON entry_revision_tags(tag, entry_id, revision);
86
+
87
+ CREATE TRIGGER entry_revisions_immutable_update
88
+ BEFORE UPDATE ON entry_revisions
89
+ BEGIN
90
+ SELECT RAISE(ABORT, 'entry_revisions are immutable');
91
+ END;
92
+
93
+ CREATE TRIGGER entry_revision_tags_immutable_update
94
+ BEFORE UPDATE ON entry_revision_tags
95
+ BEGIN
96
+ SELECT RAISE(ABORT, 'entry_revision_tags are immutable');
97
+ END;
98
+
99
+ CREATE TABLE entry_links (
100
+ from_entry_id TEXT NOT NULL REFERENCES entries(id),
101
+ to_entry_id TEXT NOT NULL REFERENCES entries(id),
102
+ relation TEXT NOT NULL CHECK (
103
+ relation IN ('supports', 'contradicts', 'derived_from', 'related_to')
104
+ ),
105
+ created_at TEXT NOT NULL,
106
+ created_by TEXT NOT NULL,
107
+ PRIMARY KEY (from_entry_id, to_entry_id, relation)
108
+ );
109
+
110
+ CREATE TABLE audit_events (
111
+ event_id TEXT PRIMARY KEY,
112
+ entry_id TEXT REFERENCES entries(id),
113
+ workspace TEXT NOT NULL,
114
+ operation TEXT NOT NULL CHECK (
115
+ operation IN ('record', 'promote', 'supersede', 'link', 'import', 'purge')
116
+ ),
117
+ actor TEXT NOT NULL,
118
+ details_json TEXT NOT NULL DEFAULT '{}',
119
+ created_at TEXT NOT NULL
120
+ );
121
+
122
+ CREATE TABLE akinator_sessions (
123
+ id TEXT PRIMARY KEY,
124
+ workspace TEXT NOT NULL,
125
+ task_text TEXT NOT NULL,
126
+ profile_json TEXT NOT NULL,
127
+ status TEXT NOT NULL CHECK (status IN ('active', 'ready', 'exhausted')),
128
+ question_count INTEGER NOT NULL DEFAULT 0 CHECK (question_count >= 0),
129
+ created_at TEXT NOT NULL,
130
+ updated_at TEXT NOT NULL
131
+ );
132
+
133
+ CREATE INDEX idx_akinator_sessions_workspace
134
+ ON akinator_sessions(workspace, updated_at DESC);
135
+
136
+ CREATE TABLE akinator_answers (
137
+ session_id TEXT NOT NULL REFERENCES akinator_sessions(id) ON DELETE CASCADE,
138
+ question_id TEXT NOT NULL,
139
+ answer_json TEXT NOT NULL,
140
+ created_at TEXT NOT NULL,
141
+ PRIMARY KEY (session_id, question_id)
142
+ );
143
+
144
+ CREATE TABLE knowledge_sources (
145
+ source_id TEXT PRIMARY KEY,
146
+ repository_url TEXT NOT NULL UNIQUE,
147
+ ref_name TEXT NOT NULL,
148
+ commit_sha TEXT NOT NULL,
149
+ document_count INTEGER NOT NULL DEFAULT 0,
150
+ last_synced_at TEXT NOT NULL
151
+ );
152
+
153
+ CREATE TABLE ledger_runs (
154
+ run_id TEXT PRIMARY KEY,
155
+ workspace TEXT NOT NULL,
156
+ client_kind TEXT NOT NULL,
157
+ client_version TEXT,
158
+ source_session_id TEXT,
159
+ parent_run_id TEXT REFERENCES ledger_runs(run_id) ON DELETE SET NULL,
160
+ protocol_version TEXT NOT NULL,
161
+ capture_profile TEXT NOT NULL,
162
+ coverage_json TEXT NOT NULL,
163
+ status TEXT NOT NULL CHECK (
164
+ status IN ('intake', 'active', 'completed', 'failed', 'cancelled', 'interrupted')
165
+ ),
166
+ title TEXT,
167
+ task_hash TEXT,
168
+ metadata_json TEXT NOT NULL,
169
+ last_sequence INTEGER NOT NULL DEFAULT 0 CHECK (last_sequence >= 0),
170
+ last_source_sequence INTEGER,
171
+ started_at TEXT NOT NULL,
172
+ ended_at TEXT,
173
+ created_at TEXT NOT NULL,
174
+ updated_at TEXT NOT NULL
175
+ );
176
+
177
+ CREATE INDEX idx_ledger_runs_workspace_status_created_at
178
+ ON ledger_runs(workspace, status, created_at DESC);
179
+
180
+ CREATE INDEX idx_ledger_runs_parent
181
+ ON ledger_runs(parent_run_id);
182
+
183
+ CREATE TABLE run_intakes (
184
+ run_id TEXT PRIMARY KEY REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
185
+ session_id TEXT NOT NULL UNIQUE REFERENCES akinator_sessions(id),
186
+ policy_version TEXT NOT NULL,
187
+ profile_schema_version INTEGER NOT NULL CHECK (profile_schema_version > 0),
188
+ profile_sources_json TEXT NOT NULL,
189
+ initial_profile_hash TEXT,
190
+ recommended_tags_json TEXT NOT NULL,
191
+ linked_at TEXT NOT NULL,
192
+ finalized_at TEXT
193
+ );
194
+
195
+ CREATE INDEX idx_run_intakes_session
196
+ ON run_intakes(session_id);
197
+
198
+ CREATE TRIGGER run_intakes_workspace_guard
199
+ BEFORE INSERT ON run_intakes
200
+ BEGIN
201
+ SELECT RAISE(ABORT, 'run_intakes workspace mismatch')
202
+ WHERE (SELECT workspace FROM ledger_runs WHERE run_id = NEW.run_id) IS NULL
203
+ OR (SELECT workspace FROM akinator_sessions WHERE id = NEW.session_id) IS NULL
204
+ OR (SELECT workspace FROM ledger_runs WHERE run_id = NEW.run_id)
205
+ <> (SELECT workspace FROM akinator_sessions WHERE id = NEW.session_id);
206
+ END;
207
+
208
+ CREATE TRIGGER run_intakes_workspace_update_guard
209
+ BEFORE UPDATE OF run_id, session_id ON run_intakes
210
+ BEGIN
211
+ SELECT RAISE(ABORT, 'run_intakes workspace mismatch')
212
+ WHERE (SELECT workspace FROM ledger_runs WHERE run_id = NEW.run_id) IS NULL
213
+ OR (SELECT workspace FROM akinator_sessions WHERE id = NEW.session_id) IS NULL
214
+ OR (SELECT workspace FROM ledger_runs WHERE run_id = NEW.run_id)
215
+ <> (SELECT workspace FROM akinator_sessions WHERE id = NEW.session_id);
216
+ END;
217
+
218
+ CREATE TRIGGER run_intakes_parent_workspace_guard
219
+ BEFORE UPDATE OF workspace ON ledger_runs
220
+ WHEN EXISTS (SELECT 1 FROM run_intakes WHERE run_id = OLD.run_id)
221
+ BEGIN
222
+ SELECT RAISE(ABORT, 'workspace cannot change after run intake link');
223
+ END;
224
+
225
+ CREATE TRIGGER run_intakes_session_workspace_guard
226
+ BEFORE UPDATE OF workspace ON akinator_sessions
227
+ WHEN EXISTS (SELECT 1 FROM run_intakes WHERE session_id = OLD.id)
228
+ BEGIN
229
+ SELECT RAISE(ABORT, 'workspace cannot change after run intake link');
230
+ END;
231
+
232
+ CREATE TABLE intake_feedback (
233
+ feedback_id TEXT PRIMARY KEY,
234
+ run_id TEXT NOT NULL REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
235
+ session_id TEXT NOT NULL REFERENCES akinator_sessions(id),
236
+ question_id TEXT,
237
+ profile_field TEXT,
238
+ verdict TEXT NOT NULL CHECK (verdict IN ('helpful', 'unnecessary', 'corrected')),
239
+ comment TEXT,
240
+ actor TEXT NOT NULL,
241
+ idempotency_key TEXT NOT NULL,
242
+ created_at TEXT NOT NULL,
243
+ UNIQUE (run_id, actor, idempotency_key),
244
+ CHECK ((question_id IS NOT NULL) <> (profile_field IS NOT NULL))
245
+ );
246
+
247
+ CREATE INDEX idx_intake_feedback_run_created_at
248
+ ON intake_feedback(run_id, created_at DESC);
249
+
250
+ CREATE TRIGGER intake_feedback_link_guard
251
+ BEFORE INSERT ON intake_feedback
252
+ BEGIN
253
+ SELECT RAISE(ABORT, 'intake_feedback requires the linked run and session')
254
+ WHERE NOT EXISTS (
255
+ SELECT 1 FROM run_intakes
256
+ WHERE run_id = NEW.run_id AND session_id = NEW.session_id
257
+ );
258
+ END;
259
+
260
+ CREATE TABLE ledger_events (
261
+ event_id TEXT PRIMARY KEY,
262
+ run_id TEXT NOT NULL REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
263
+ sequence INTEGER NOT NULL CHECK (sequence > 0),
264
+ source_event_id TEXT,
265
+ source_sequence INTEGER,
266
+ event_type TEXT NOT NULL,
267
+ source_type TEXT,
268
+ actor TEXT NOT NULL,
269
+ outcome TEXT,
270
+ occurred_at TEXT,
271
+ ingested_at TEXT NOT NULL,
272
+ payload_json TEXT NOT NULL,
273
+ redaction_json TEXT NOT NULL,
274
+ previous_hash TEXT NOT NULL,
275
+ event_hash TEXT NOT NULL,
276
+ UNIQUE (run_id, sequence)
277
+ );
278
+
279
+ CREATE INDEX idx_ledger_events_run_sequence
280
+ ON ledger_events(run_id, sequence);
281
+
282
+ CREATE UNIQUE INDEX idx_ledger_events_run_source
283
+ ON ledger_events(run_id, source_event_id)
284
+ WHERE source_event_id IS NOT NULL;
285
+
286
+ CREATE TABLE ledger_evidence (
287
+ evidence_id TEXT PRIMARY KEY,
288
+ run_id TEXT NOT NULL REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
289
+ event_id TEXT REFERENCES ledger_events(event_id) ON DELETE SET NULL,
290
+ kind TEXT NOT NULL CHECK (kind IN ('command', 'test', 'file', 'diff', 'url', 'artifact')),
291
+ locator TEXT NOT NULL,
292
+ digest_algorithm TEXT,
293
+ digest TEXT,
294
+ byte_size INTEGER CHECK (byte_size IS NULL OR byte_size >= 0),
295
+ summary TEXT,
296
+ created_at TEXT NOT NULL
297
+ );
298
+
299
+ CREATE INDEX idx_ledger_evidence_run_created_at
300
+ ON ledger_evidence(run_id, created_at DESC);
301
+
302
+ CREATE TABLE context_deliveries (
303
+ delivery_id TEXT PRIMARY KEY,
304
+ run_id TEXT NOT NULL REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
305
+ through_sequence INTEGER NOT NULL CHECK (through_sequence >= 0),
306
+ intake_session_id TEXT REFERENCES akinator_sessions(id),
307
+ task_profile_hash TEXT NOT NULL,
308
+ query_hash TEXT NOT NULL,
309
+ policy_version TEXT NOT NULL,
310
+ char_budget INTEGER NOT NULL CHECK (char_budget >= 0),
311
+ char_count INTEGER NOT NULL CHECK (char_count >= 0 AND char_count <= char_budget),
312
+ truncated INTEGER NOT NULL CHECK (truncated IN (0, 1)),
313
+ created_at TEXT NOT NULL
314
+ , score_schema_version INTEGER NOT NULL DEFAULT 1 CHECK (score_schema_version >= 1));
315
+
316
+ CREATE INDEX idx_context_deliveries_run_created_at
317
+ ON context_deliveries(run_id, created_at DESC);
318
+
319
+ CREATE TABLE context_feedback (
320
+ feedback_id TEXT PRIMARY KEY,
321
+ delivery_id TEXT NOT NULL REFERENCES context_deliveries(delivery_id) ON DELETE CASCADE,
322
+ entry_id TEXT NOT NULL REFERENCES entries(id),
323
+ run_id TEXT NOT NULL REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
324
+ verdict TEXT NOT NULL CHECK (verdict IN ('helpful', 'irrelevant', 'stale', 'conflicting')),
325
+ comment TEXT,
326
+ actor TEXT NOT NULL,
327
+ idempotency_key TEXT NOT NULL,
328
+ created_at TEXT NOT NULL,
329
+ UNIQUE (run_id, actor, idempotency_key)
330
+ );
331
+
332
+ CREATE INDEX idx_context_feedback_run
333
+ ON context_feedback(run_id, created_at DESC);
334
+
335
+ CREATE TABLE run_feedback (
336
+ feedback_id TEXT PRIMARY KEY,
337
+ run_id TEXT NOT NULL REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
338
+ outcome TEXT,
339
+ recommendation_code TEXT,
340
+ recommendation_verdict TEXT CHECK (recommendation_verdict IS NULL OR recommendation_verdict IN ('accepted', 'dismissed', 'resolved')),
341
+ rating INTEGER CHECK (rating IS NULL OR (rating >= 1 AND rating <= 5)),
342
+ comment TEXT,
343
+ actor TEXT NOT NULL,
344
+ idempotency_key TEXT NOT NULL,
345
+ created_at TEXT NOT NULL,
346
+ UNIQUE (run_id, actor, idempotency_key)
347
+ );
348
+
349
+ CREATE INDEX idx_run_feedback_run_created_at
350
+ ON run_feedback(run_id, created_at DESC);
351
+
352
+ CREATE TABLE ledger_memory_links (
353
+ link_id TEXT PRIMARY KEY,
354
+ run_id TEXT NOT NULL REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
355
+ event_id TEXT REFERENCES ledger_events(event_id) ON DELETE SET NULL,
356
+ delivery_id TEXT REFERENCES context_deliveries(delivery_id) ON DELETE SET NULL,
357
+ entry_id TEXT NOT NULL REFERENCES entries(id),
358
+ created_at TEXT NOT NULL,
359
+ CHECK (event_id IS NOT NULL OR delivery_id IS NOT NULL)
360
+ );
361
+
362
+ CREATE INDEX idx_ledger_memory_links_run
363
+ ON ledger_memory_links(run_id, created_at DESC);
364
+
365
+ CREATE INDEX idx_ledger_memory_links_entry
366
+ ON ledger_memory_links(entry_id);
367
+
368
+ CREATE TABLE ledger_purge_audit (
369
+ purge_id TEXT PRIMARY KEY,
370
+ run_id TEXT REFERENCES ledger_runs(run_id) ON DELETE SET NULL,
371
+ event_id TEXT REFERENCES ledger_events(event_id) ON DELETE SET NULL,
372
+ delivery_id TEXT REFERENCES context_deliveries(delivery_id) ON DELETE SET NULL,
373
+ entry_id TEXT REFERENCES entries(id) ON DELETE SET NULL,
374
+ target_type TEXT NOT NULL CHECK (target_type IN ('run', 'event', 'evidence', 'delivery', 'feedback', 'memory_link')),
375
+ target_id TEXT NOT NULL,
376
+ actor TEXT NOT NULL,
377
+ reason TEXT,
378
+ created_at TEXT NOT NULL
379
+ );
380
+
381
+ CREATE INDEX idx_ledger_purge_audit_target
382
+ ON ledger_purge_audit(target_type, target_id);
383
+
384
+ CREATE TABLE gateway_idempotency (
385
+ scope TEXT NOT NULL,
386
+ key_hash TEXT NOT NULL CHECK (
387
+ length(key_hash) = 64
388
+ AND key_hash NOT GLOB '*[^0-9a-f]*'
389
+ ),
390
+ request_hash TEXT NOT NULL CHECK (
391
+ length(request_hash) = 64
392
+ AND request_hash NOT GLOB '*[^0-9a-f]*'
393
+ ),
394
+ response_json TEXT NOT NULL,
395
+ created_at TEXT NOT NULL,
396
+ PRIMARY KEY (scope, key_hash)
397
+ );
398
+
399
+ CREATE INDEX idx_gateway_idempotency_created_at
400
+ ON gateway_idempotency(created_at);
401
+
402
+ CREATE TABLE entry_search_signals (
403
+ entry_id TEXT NOT NULL REFERENCES entries(id) ON DELETE CASCADE,
404
+ signal_type TEXT NOT NULL CHECK (
405
+ signal_type IN ('language', 'framework', 'runtime', 'database', 'tool',
406
+ 'platform', 'package', 'symbol', 'path', 'error', 'command', 'tag')
407
+ ),
408
+ normalized_value TEXT NOT NULL,
409
+ PRIMARY KEY (entry_id, signal_type, normalized_value)
410
+ );
411
+
412
+ CREATE INDEX idx_entry_search_signals_lookup
413
+ ON entry_search_signals(signal_type, normalized_value);
414
+
415
+ CREATE TABLE akinator_reasoning_paths (
416
+ path_id TEXT PRIMARY KEY,
417
+ concept_key TEXT NOT NULL CHECK (
418
+ length(concept_key) = 64
419
+ AND concept_key NOT GLOB '*[^0-9a-f]*'
420
+ ),
421
+ entry_id TEXT NOT NULL REFERENCES entries(id) ON DELETE CASCADE,
422
+ entry_revision INTEGER NOT NULL CHECK (entry_revision > 0),
423
+ run_id TEXT NOT NULL REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
424
+ intake_session_id TEXT NOT NULL REFERENCES akinator_sessions(id) ON DELETE CASCADE,
425
+ workspace TEXT NOT NULL,
426
+ policy_version TEXT NOT NULL,
427
+ task_type TEXT NOT NULL,
428
+ intent TEXT NOT NULL,
429
+ hypotheses_json TEXT NOT NULL,
430
+ question_path_json TEXT NOT NULL,
431
+ selected_action TEXT NOT NULL,
432
+ conditions_json TEXT NOT NULL,
433
+ verification_json TEXT NOT NULL,
434
+ stop_conditions_json TEXT NOT NULL,
435
+ silo_completeness REAL NOT NULL CHECK (silo_completeness >= 0 AND silo_completeness <= 1),
436
+ outcome TEXT NOT NULL CHECK (outcome IN ('completed', 'failed', 'cancelled', 'interrupted')),
437
+ qualified INTEGER NOT NULL CHECK (qualified IN (0, 1)),
438
+ disqualification_reasons_json TEXT NOT NULL,
439
+ created_at TEXT NOT NULL,
440
+ UNIQUE (run_id, entry_id, entry_revision)
441
+ );
442
+
443
+ CREATE INDEX idx_akinator_reasoning_paths_concept
444
+ ON akinator_reasoning_paths(concept_key, qualified, created_at DESC);
445
+
446
+ CREATE INDEX idx_akinator_reasoning_paths_entry
447
+ ON akinator_reasoning_paths(entry_id, entry_revision, created_at DESC);
448
+
449
+ CREATE TRIGGER akinator_reasoning_paths_link_guard
450
+ BEFORE INSERT ON akinator_reasoning_paths
451
+ BEGIN
452
+ SELECT RAISE(ABORT, 'akinator reasoning path link mismatch')
453
+ WHERE NOT EXISTS (
454
+ SELECT 1
455
+ FROM run_intakes AS ri
456
+ JOIN ledger_runs AS lr ON lr.run_id = ri.run_id
457
+ JOIN akinator_sessions AS a ON a.id = ri.session_id
458
+ WHERE ri.run_id = NEW.run_id
459
+ AND ri.session_id = NEW.intake_session_id
460
+ AND lr.workspace = NEW.workspace
461
+ AND a.workspace = NEW.workspace
462
+ ) OR NOT EXISTS (
463
+ SELECT 1
464
+ FROM entries AS e
465
+ JOIN entry_revisions AS er
466
+ ON er.entry_id = e.id AND er.revision = NEW.entry_revision
467
+ WHERE e.id = NEW.entry_id
468
+ AND er.workspace IN (NEW.workspace, 'global')
469
+ );
470
+ END;
471
+
472
+ CREATE TABLE repository_fingerprints (
473
+ repository_id TEXT PRIMARY KEY
474
+ REFERENCES repositories(repository_id)
475
+ ON DELETE CASCADE,
476
+ fingerprint_json TEXT NOT NULL,
477
+ manifest_digest TEXT NOT NULL,
478
+ updated_at TEXT NOT NULL
479
+ );
480
+
481
+ CREATE INDEX idx_entry_search_signals_type_value_entry
482
+ ON entry_search_signals(signal_type, normalized_value, entry_id);
483
+
484
+ CREATE TABLE "context_delivery_entries" (
485
+ delivery_id TEXT NOT NULL REFERENCES context_deliveries(delivery_id) ON DELETE CASCADE,
486
+ entry_id TEXT NOT NULL,
487
+ entry_revision INTEGER NOT NULL CHECK (entry_revision > 0),
488
+ rank INTEGER NOT NULL CHECK (rank > 0),
489
+ score_components_json TEXT NOT NULL,
490
+ selection_reason_json TEXT NOT NULL,
491
+ origin_scope TEXT NOT NULL DEFAULT 'project' CHECK (origin_scope IN ('project', 'ecosystem', 'global')),
492
+ PRIMARY KEY (delivery_id, entry_id),
493
+ FOREIGN KEY (entry_id, entry_revision)
494
+ REFERENCES entry_revisions(entry_id, revision)
495
+ );
496
+
497
+ CREATE INDEX idx_context_delivery_entries_entry
498
+ ON context_delivery_entries(entry_id, entry_revision);
499
+
500
+ CREATE TABLE external_skill_generation_clock (
501
+ singleton INTEGER PRIMARY KEY CHECK (singleton = 1),
502
+ value INTEGER NOT NULL CHECK (typeof(value) = 'integer' AND value BETWEEN 0 AND 9007199254740991)
503
+ );
504
+
505
+ CREATE TABLE external_skill_generation_tokens (
506
+ generation INTEGER PRIMARY KEY AUTOINCREMENT
507
+ CHECK (typeof(generation) = 'integer' AND generation BETWEEN 1 AND 9007199254740991)
508
+ );
509
+
510
+ CREATE TABLE external_skills (
511
+ skill_id TEXT PRIMARY KEY,
512
+ generation INTEGER NOT NULL REFERENCES external_skill_generation_tokens(generation)
513
+ CHECK (typeof(generation) = 'integer' AND generation BETWEEN 1 AND 9007199254740991),
514
+ provider TEXT NOT NULL,
515
+ source_type TEXT NOT NULL CHECK (source_type = 'github'),
516
+ source_locator TEXT NOT NULL,
517
+ slug TEXT NOT NULL,
518
+ name TEXT NOT NULL,
519
+ install_url TEXT,
520
+ official_status TEXT NOT NULL CHECK (official_status IN ('curated', 'catalog-verified', 'owner-verified', 'registry-only', 'unknown')),
521
+ duplicate INTEGER NOT NULL DEFAULT 0 CHECK (duplicate IN (0, 1)),
522
+ installs INTEGER NOT NULL DEFAULT 0 CHECK (installs >= 0),
523
+ state TEXT NOT NULL CHECK (state IN ('discovered', 'imported', 'blocked', 'stale', 'disabled')),
524
+ source_workspace TEXT NOT NULL,
525
+ source_commit TEXT,
526
+ snapshot_hash TEXT,
527
+ metadata_json TEXT NOT NULL DEFAULT '{}',
528
+ first_seen_at TEXT NOT NULL,
529
+ last_seen_at TEXT NOT NULL,
530
+ last_checked_at TEXT NOT NULL,
531
+ disabled_at TEXT,
532
+ UNIQUE(generation),
533
+ UNIQUE(source_type, source_locator, slug)
534
+ );
535
+
536
+ CREATE INDEX idx_external_skills_state_checked ON external_skills(state, last_checked_at DESC);
537
+
538
+ CREATE INDEX idx_external_skills_source ON external_skills(source_locator, slug);
539
+
540
+ CREATE TABLE external_skill_entries (
541
+ skill_id TEXT NOT NULL REFERENCES external_skills(skill_id) ON DELETE CASCADE,
542
+ source_path TEXT NOT NULL,
543
+ chunk_index INTEGER NOT NULL CHECK (chunk_index >= 0),
544
+ entry_id TEXT NOT NULL REFERENCES entries(id),
545
+ entry_revision INTEGER NOT NULL CHECK (entry_revision > 0),
546
+ content_hash TEXT NOT NULL,
547
+ primary_document INTEGER NOT NULL DEFAULT 0 CHECK (primary_document IN (0, 1)),
548
+ active INTEGER NOT NULL DEFAULT 1 CHECK (active IN (0, 1)),
549
+ imported_at TEXT NOT NULL,
550
+ PRIMARY KEY(skill_id, source_path, chunk_index),
551
+ FOREIGN KEY(entry_id, entry_revision) REFERENCES entry_revisions(entry_id, revision)
552
+ );
553
+
554
+ CREATE INDEX idx_external_skill_entries_entry ON external_skill_entries(entry_id, entry_revision);
555
+
556
+ CREATE TABLE skill_discovery_cache (
557
+ cache_key TEXT PRIMARY KEY,
558
+ provider TEXT NOT NULL,
559
+ query_text TEXT NOT NULL,
560
+ owner TEXT,
561
+ mode TEXT NOT NULL CHECK (mode IN ('official', 'community')),
562
+ outcome TEXT NOT NULL CHECK (outcome IN ('success', 'empty', 'rate_limited', 'unavailable')),
563
+ response_json TEXT NOT NULL,
564
+ fetched_at TEXT NOT NULL,
565
+ expires_at TEXT NOT NULL
566
+ );
567
+
568
+ CREATE INDEX idx_skill_discovery_cache_expiry ON skill_discovery_cache(expires_at);
569
+
570
+ CREATE TABLE skill_source_failure_cache (
571
+ cache_key TEXT PRIMARY KEY,
572
+ source_type TEXT NOT NULL CHECK (source_type = 'github'),
573
+ source_locator TEXT NOT NULL,
574
+ slug TEXT NOT NULL,
575
+ outcome TEXT NOT NULL CHECK (outcome IN ('source_rate_limited', 'source_unavailable')),
576
+ fetched_at TEXT NOT NULL,
577
+ expires_at TEXT NOT NULL
578
+ );
579
+
580
+ CREATE INDEX idx_skill_source_failure_cache_expiry ON skill_source_failure_cache(expires_at);
581
+
582
+ CREATE TABLE skill_audit_failure_cache (
583
+ cache_key TEXT PRIMARY KEY,
584
+ provider TEXT NOT NULL,
585
+ source_type TEXT NOT NULL CHECK (source_type = 'github'),
586
+ source_locator TEXT NOT NULL,
587
+ slug TEXT NOT NULL,
588
+ outcome TEXT NOT NULL CHECK (outcome IN ('registry_rate_limited', 'registry_unavailable')),
589
+ fetched_at TEXT NOT NULL,
590
+ expires_at TEXT NOT NULL
591
+ );
592
+
593
+ CREATE INDEX idx_skill_audit_failure_cache_expiry ON skill_audit_failure_cache(expires_at);
594
+
595
+ CREATE TABLE entry_revision_hash_format (
596
+ singleton INTEGER PRIMARY KEY CHECK (singleton = 1),
597
+ algorithm TEXT NOT NULL CHECK (algorithm = 'canonical-json-utf16-tags-v1')
598
+ );
599
+
600
+ CREATE TABLE nudge_deliveries (
601
+ id TEXT PRIMARY KEY,
602
+ run_id TEXT NOT NULL,
603
+ policy_version TEXT NOT NULL CHECK (length(policy_version) BETWEEN 1 AND 100),
604
+ code TEXT NOT NULL CHECK (length(code) BETWEEN 1 AND 100),
605
+ occurrence_id TEXT NOT NULL CHECK (length(occurrence_id) BETWEEN 1 AND 256),
606
+ checkpoint_id TEXT NOT NULL CHECK (length(checkpoint_id) BETWEEN 1 AND 256),
607
+ through_sequence INTEGER NOT NULL CHECK (through_sequence >= 0),
608
+ priority INTEGER NOT NULL CHECK (priority >= 1),
609
+ evidence_event_ids_json TEXT NOT NULL CHECK (json_valid(evidence_event_ids_json)),
610
+ reference_ids_json TEXT NOT NULL CHECK (json_valid(reference_ids_json)),
611
+ delivered_at TEXT NOT NULL,
612
+
613
+ FOREIGN KEY (run_id)
614
+ REFERENCES ledger_runs(run_id)
615
+ ON DELETE CASCADE,
616
+
617
+ UNIQUE (
618
+ run_id,
619
+ policy_version,
620
+ occurrence_id
621
+ ),
622
+
623
+ UNIQUE (
624
+ run_id,
625
+ policy_version,
626
+ checkpoint_id
627
+ )
628
+ );
629
+
630
+ CREATE INDEX nudge_deliveries_run_code_sequence
631
+ ON nudge_deliveries (
632
+ run_id,
633
+ policy_version,
634
+ code,
635
+ through_sequence
636
+ );
637
+
638
+ CREATE INDEX nudge_deliveries_run_sequence
639
+ ON nudge_deliveries (
640
+ run_id,
641
+ through_sequence
642
+ );
643
+
644
+ CREATE INDEX nudge_deliveries_run_checkpoint
645
+ ON nudge_deliveries (
646
+ run_id,
647
+ policy_version,
648
+ checkpoint_id
649
+ );
650
+
651
+ CREATE TRIGGER nudge_deliveries_integrity_insert
652
+ BEFORE INSERT ON nudge_deliveries
653
+ BEGIN
654
+ SELECT RAISE(ABORT, 'invalid nudge delivery')
655
+ WHERE NEW.policy_version <> 'nudges.v1'
656
+ OR NEW.code NOT IN ('SIDE_EFFECT_OUTCOME_UNKNOWN', 'UNRESOLVED_FAILURE', 'VERIFY_AFTER_MUTATION')
657
+ OR NOT (
658
+ (NEW.code = 'SIDE_EFFECT_OUTCOME_UNKNOWN' AND NEW.priority = 2)
659
+ OR (NEW.code = 'UNRESOLVED_FAILURE' AND NEW.priority = 3)
660
+ OR (NEW.code = 'VERIFY_AFTER_MUTATION' AND NEW.priority = 4)
661
+ )
662
+ OR CASE
663
+ WHEN json_valid(NEW.evidence_event_ids_json)
664
+ THEN json_type(NEW.evidence_event_ids_json) = 'array'
665
+ AND json_array_length(NEW.evidence_event_ids_json) <= 16
666
+ ELSE 0
667
+ END = 0
668
+ OR CASE
669
+ WHEN json_valid(NEW.reference_ids_json)
670
+ THEN json_type(NEW.reference_ids_json) = 'array'
671
+ AND json_array_length(NEW.reference_ids_json) <= 16
672
+ ELSE 0
673
+ END = 0;
674
+ END;
675
+
676
+ CREATE TRIGGER nudge_deliveries_integrity_update
677
+ BEFORE UPDATE OF policy_version, code, priority, evidence_event_ids_json, reference_ids_json ON nudge_deliveries
678
+ BEGIN
679
+ SELECT RAISE(ABORT, 'invalid nudge delivery')
680
+ WHERE NEW.policy_version <> 'nudges.v1'
681
+ OR NEW.code NOT IN ('SIDE_EFFECT_OUTCOME_UNKNOWN', 'UNRESOLVED_FAILURE', 'VERIFY_AFTER_MUTATION')
682
+ OR NOT (
683
+ (NEW.code = 'SIDE_EFFECT_OUTCOME_UNKNOWN' AND NEW.priority = 2)
684
+ OR (NEW.code = 'UNRESOLVED_FAILURE' AND NEW.priority = 3)
685
+ OR (NEW.code = 'VERIFY_AFTER_MUTATION' AND NEW.priority = 4)
686
+ )
687
+ OR CASE
688
+ WHEN json_valid(NEW.evidence_event_ids_json)
689
+ THEN json_type(NEW.evidence_event_ids_json) = 'array'
690
+ AND json_array_length(NEW.evidence_event_ids_json) <= 16
691
+ ELSE 0
692
+ END = 0
693
+ OR CASE
694
+ WHEN json_valid(NEW.reference_ids_json)
695
+ THEN json_type(NEW.reference_ids_json) = 'array'
696
+ AND json_array_length(NEW.reference_ids_json) <= 16
697
+ ELSE 0
698
+ END = 0;
699
+ END;
700
+
701
+ CREATE TABLE agent_task_skill_discovery_attempts (
702
+ run_id TEXT NOT NULL REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
703
+ request_digest TEXT NOT NULL CHECK (
704
+ typeof(request_digest) = 'text'
705
+ AND length(request_digest) = 64
706
+ AND request_digest NOT GLOB '*[^0-9a-f]*'
707
+ ),
708
+ reserved_query_count INTEGER NOT NULL CHECK (typeof(reserved_query_count) = 'integer' AND reserved_query_count BETWEEN 0 AND 3),
709
+ reserved_selection_count INTEGER NOT NULL CHECK (typeof(reserved_selection_count) = 'integer' AND reserved_selection_count BETWEEN 0 AND 2),
710
+ consumed_query_count INTEGER NOT NULL CHECK (typeof(consumed_query_count) = 'integer' AND consumed_query_count BETWEEN 0 AND 3),
711
+ consumed_selection_count INTEGER NOT NULL CHECK (typeof(consumed_selection_count) = 'integer' AND consumed_selection_count BETWEEN 0 AND 2),
712
+ state TEXT NOT NULL CHECK (state IN ('started', 'completed', 'failed')),
713
+ summary_json TEXT,
714
+ failure_json TEXT,
715
+ started_at TEXT NOT NULL CHECK (typeof(started_at) = 'text' AND length(started_at) > 0),
716
+ finished_at TEXT,
717
+ PRIMARY KEY (run_id, request_digest),
718
+ CHECK (consumed_query_count <= reserved_query_count),
719
+ CHECK (consumed_selection_count <= reserved_selection_count),
720
+ CHECK (
721
+ finished_at IS NULL
722
+ OR (typeof(finished_at) = 'text' AND length(finished_at) > 0 AND finished_at >= started_at)
723
+ ),
724
+ CHECK (
725
+ (state = 'started'
726
+ AND consumed_query_count = 0
727
+ AND consumed_selection_count = 0
728
+ AND summary_json IS NULL
729
+ AND failure_json IS NULL
730
+ AND finished_at IS NULL)
731
+ OR (state = 'completed' AND typeof(summary_json) = 'text' AND failure_json IS NULL AND finished_at IS NOT NULL)
732
+ OR (state = 'failed' AND summary_json IS NULL AND typeof(failure_json) = 'text' AND finished_at IS NOT NULL)
733
+ )
734
+ );
735
+
736
+ CREATE UNIQUE INDEX idx_skill_discovery_attempts_active
737
+ ON agent_task_skill_discovery_attempts(run_id)
738
+ WHERE state = 'started';
739
+
740
+ CREATE TABLE entry_search_documents (
741
+ entry_rowid INTEGER PRIMARY KEY CHECK (entry_rowid > 0),
742
+ entry_id TEXT NOT NULL UNIQUE REFERENCES entries(id) ON DELETE CASCADE,
743
+ title TEXT NOT NULL,
744
+ body TEXT NOT NULL,
745
+ summary TEXT NOT NULL,
746
+ tags_text TEXT NOT NULL
747
+ );
748
+
749
+ CREATE VIRTUAL TABLE entries_fts USING fts5(
750
+ title,
751
+ body,
752
+ summary,
753
+ tags_text,
754
+ content='entry_search_documents',
755
+ content_rowid='entry_rowid',
756
+ tokenize='unicode61 remove_diacritics 2'
757
+ );
758
+
759
+ CREATE VIRTUAL TABLE entries_trigram USING fts5(
760
+ title,
761
+ body,
762
+ summary,
763
+ tags_text,
764
+ content='entry_search_documents',
765
+ content_rowid='entry_rowid',
766
+ tokenize='trigram'
767
+ );
768
+
769
+ CREATE TRIGGER entry_search_documents_ai
770
+ AFTER INSERT ON entry_search_documents
771
+ BEGIN
772
+ INSERT INTO entries_fts(rowid, title, body, summary, tags_text)
773
+ VALUES (new.entry_rowid, new.title, new.body, new.summary, new.tags_text);
774
+ INSERT INTO entries_trigram(rowid, title, body, summary, tags_text)
775
+ VALUES (new.entry_rowid, new.title, new.body, new.summary, new.tags_text);
776
+ END;
777
+
778
+ CREATE TRIGGER entry_search_documents_ad
779
+ AFTER DELETE ON entry_search_documents
780
+ BEGIN
781
+ INSERT INTO entries_fts(entries_fts, rowid, title, body, summary, tags_text)
782
+ VALUES ('delete', old.entry_rowid, old.title, old.body, old.summary, old.tags_text);
783
+ INSERT INTO entries_trigram(entries_trigram, rowid, title, body, summary, tags_text)
784
+ VALUES ('delete', old.entry_rowid, old.title, old.body, old.summary, old.tags_text);
785
+ END;
786
+
787
+ CREATE TRIGGER entry_search_documents_au
788
+ AFTER UPDATE ON entry_search_documents
789
+ BEGIN
790
+ INSERT INTO entries_fts(entries_fts, rowid, title, body, summary, tags_text)
791
+ VALUES ('delete', old.entry_rowid, old.title, old.body, old.summary, old.tags_text);
792
+ INSERT INTO entries_trigram(entries_trigram, rowid, title, body, summary, tags_text)
793
+ VALUES ('delete', old.entry_rowid, old.title, old.body, old.summary, old.tags_text);
794
+ INSERT INTO entries_fts(rowid, title, body, summary, tags_text)
795
+ VALUES (new.entry_rowid, new.title, new.body, new.summary, new.tags_text);
796
+ INSERT INTO entries_trigram(rowid, title, body, summary, tags_text)
797
+ VALUES (new.entry_rowid, new.title, new.body, new.summary, new.tags_text);
798
+ END;
799
+
800
+ CREATE TABLE "embedding_profiles" (
801
+ profile_id TEXT PRIMARY KEY
802
+ CHECK (length(profile_id) = 64 AND profile_id NOT GLOB '*[^0-9a-f]*'),
803
+ schema_version INTEGER NOT NULL DEFAULT 1 CHECK (schema_version IN (1, 2)),
804
+ provider_kind TEXT NOT NULL
805
+ CHECK (provider_kind IN ('openai-compatible', 'local-transformers')),
806
+ endpoint_fingerprint TEXT
807
+ CHECK (endpoint_fingerprint IS NULL OR (length(endpoint_fingerprint) = 64 AND endpoint_fingerprint NOT GLOB '*[^0-9a-f]*')),
808
+ model TEXT NOT NULL,
809
+ dimensions INTEGER NOT NULL CHECK (dimensions BETWEEN 2 AND 8192),
810
+ distance_metric TEXT NOT NULL CHECK (distance_metric = 'cosine'),
811
+ distance_ceiling REAL NOT NULL CHECK (distance_ceiling > 0.0 AND distance_ceiling < 2.0),
812
+ document_template_version INTEGER NOT NULL CHECK (document_template_version > 0),
813
+ query_template_version INTEGER NOT NULL CHECK (query_template_version > 0),
814
+ preset_id TEXT,
815
+ source_model TEXT,
816
+ artifact_repository TEXT,
817
+ model_revision TEXT,
818
+ artifact_manifest_hash TEXT
819
+ CHECK (artifact_manifest_hash IS NULL OR (length(artifact_manifest_hash) = 64 AND artifact_manifest_hash NOT GLOB '*[^0-9a-f]*')),
820
+ inference_engine TEXT,
821
+ inference_engine_version TEXT,
822
+ dtype TEXT,
823
+ pooling TEXT,
824
+ normalize INTEGER CHECK (normalize IS NULL OR normalize IN (0, 1)),
825
+ maximum_tokens INTEGER CHECK (maximum_tokens IS NULL OR maximum_tokens > 0),
826
+ input_contract TEXT,
827
+ query_prefix TEXT,
828
+ document_prefix TEXT,
829
+ created_at TEXT NOT NULL,
830
+ CHECK (
831
+ (schema_version = 1 AND provider_kind = 'openai-compatible'
832
+ AND endpoint_fingerprint IS NOT NULL
833
+ AND preset_id IS NULL AND source_model IS NULL AND artifact_repository IS NULL
834
+ AND model_revision IS NULL AND artifact_manifest_hash IS NULL
835
+ AND inference_engine IS NULL AND inference_engine_version IS NULL
836
+ AND dtype IS NULL AND pooling IS NULL AND normalize IS NULL
837
+ AND maximum_tokens IS NULL AND input_contract IS NULL
838
+ AND query_prefix IS NULL AND document_prefix IS NULL)
839
+ OR
840
+ (schema_version = 2 AND provider_kind = 'local-transformers'
841
+ AND endpoint_fingerprint IS NULL
842
+ AND preset_id IS NOT NULL AND source_model IS NOT NULL
843
+ AND artifact_repository IS NOT NULL AND model_revision IS NOT NULL
844
+ AND artifact_manifest_hash IS NOT NULL AND inference_engine IS NOT NULL
845
+ AND inference_engine_version IS NOT NULL AND dtype IS NOT NULL
846
+ AND pooling IS NOT NULL AND normalize IS NOT NULL
847
+ AND maximum_tokens IS NOT NULL AND input_contract IS NOT NULL
848
+ AND query_prefix IS NOT NULL AND document_prefix IS NOT NULL)
849
+ )
850
+ );
851
+
852
+ CREATE TABLE "embedding_runtime" (
853
+ singleton INTEGER PRIMARY KEY CHECK (singleton = 1),
854
+ active_profile_id TEXT REFERENCES "embedding_profiles"(profile_id),
855
+ generation INTEGER NOT NULL CHECK (generation > 0),
856
+ activated_at TEXT
857
+ );
858
+
859
+ CREATE TABLE "entry_embeddings" (
860
+ entry_id TEXT NOT NULL,
861
+ profile_id TEXT NOT NULL REFERENCES "embedding_profiles"(profile_id) ON DELETE CASCADE,
862
+ revision INTEGER NOT NULL CHECK (revision > 0),
863
+ content_hash TEXT NOT NULL,
864
+ document_hash TEXT NOT NULL CHECK (length(document_hash) = 64 AND document_hash NOT GLOB '*[^0-9a-f]*'),
865
+ dimensions INTEGER NOT NULL CHECK (dimensions BETWEEN 2 AND 8192),
866
+ embedding BLOB NOT NULL,
867
+ vector_hash TEXT NOT NULL CHECK (length(vector_hash) = 64 AND vector_hash NOT GLOB '*[^0-9a-f]*'),
868
+ created_at TEXT NOT NULL,
869
+ PRIMARY KEY (entry_id, profile_id),
870
+ FOREIGN KEY (entry_id, revision) REFERENCES entry_revisions(entry_id, revision) ON DELETE CASCADE,
871
+ CHECK (length(embedding) = dimensions * 4)
872
+ );
873
+
874
+ CREATE TABLE "embedding_jobs" (
875
+ entry_id TEXT NOT NULL,
876
+ profile_id TEXT NOT NULL REFERENCES "embedding_profiles"(profile_id) ON DELETE CASCADE,
877
+ revision INTEGER NOT NULL CHECK (revision > 0),
878
+ content_hash TEXT NOT NULL,
879
+ state TEXT NOT NULL CHECK (state IN ('pending', 'leased', 'failed', 'blocked')),
880
+ attempts INTEGER NOT NULL DEFAULT 0 CHECK (attempts >= 0),
881
+ available_at TEXT NOT NULL,
882
+ lease_id TEXT,
883
+ lease_expires_at TEXT,
884
+ error_code TEXT CHECK (error_code IS NULL OR error_code IN (
885
+ 'timeout', 'rate_limited', 'provider_unavailable', 'invalid_response',
886
+ 'dimension_mismatch', 'secret_blocked', 'profile_changed', 'entry_changed'
887
+ )),
888
+ created_at TEXT NOT NULL,
889
+ updated_at TEXT NOT NULL,
890
+ PRIMARY KEY (entry_id, profile_id),
891
+ FOREIGN KEY (entry_id, revision) REFERENCES entry_revisions(entry_id, revision) ON DELETE CASCADE,
892
+ CHECK (
893
+ (state = 'leased' AND lease_id IS NOT NULL AND lease_expires_at IS NOT NULL)
894
+ OR (state <> 'leased' AND lease_id IS NULL AND lease_expires_at IS NULL)
895
+ )
896
+ );
897
+
898
+ CREATE TABLE "query_embeddings" (
899
+ profile_id TEXT NOT NULL REFERENCES "embedding_profiles"(profile_id) ON DELETE CASCADE,
900
+ query_hash TEXT NOT NULL CHECK (length(query_hash) = 64 AND query_hash NOT GLOB '*[^0-9a-f]*'),
901
+ dimensions INTEGER NOT NULL CHECK (dimensions BETWEEN 2 AND 8192),
902
+ embedding BLOB NOT NULL,
903
+ vector_hash TEXT NOT NULL CHECK (length(vector_hash) = 64 AND vector_hash NOT GLOB '*[^0-9a-f]*'),
904
+ created_at TEXT NOT NULL,
905
+ last_used_at TEXT NOT NULL,
906
+ PRIMARY KEY (profile_id, query_hash),
907
+ CHECK (length(embedding) = dimensions * 4)
908
+ );
909
+
910
+ CREATE TRIGGER embedding_profiles_immutable_update
911
+ BEFORE UPDATE ON embedding_profiles
912
+ BEGIN
913
+ SELECT RAISE(ABORT, 'embedding_profiles are immutable');
914
+ END;
915
+
916
+ CREATE INDEX idx_entry_embeddings_profile_revision
917
+ ON entry_embeddings(profile_id, entry_id, revision);
918
+
919
+ CREATE INDEX idx_embedding_jobs_claim
920
+ ON embedding_jobs(profile_id, state, available_at, entry_id);
921
+
922
+ CREATE INDEX idx_query_embeddings_lru
923
+ ON query_embeddings(profile_id, last_used_at, query_hash);
924
+
925
+ CREATE TABLE embedding_model_installations (
926
+ installation_id TEXT PRIMARY KEY,
927
+ preset_id TEXT NOT NULL,
928
+ repository_id TEXT NOT NULL,
929
+ revision TEXT NOT NULL,
930
+ artifact_manifest_hash TEXT NOT NULL CHECK (length(artifact_manifest_hash) = 64 AND artifact_manifest_hash NOT GLOB '*[^0-9a-f]*'),
931
+ relative_path TEXT NOT NULL,
932
+ state TEXT NOT NULL CHECK (state IN ('staging', 'verified', 'corrupt', 'missing')),
933
+ total_bytes INTEGER NOT NULL CHECK (total_bytes >= 0),
934
+ installed_at TEXT NOT NULL,
935
+ verified_at TEXT,
936
+ last_checked_at TEXT NOT NULL
937
+ );
938
+
939
+ CREATE TABLE embedding_settings (
940
+ singleton INTEGER PRIMARY KEY CHECK (singleton = 1),
941
+ mode TEXT NOT NULL CHECK (mode IN ('off', 'optional', 'required')),
942
+ provider_kind TEXT CHECK (provider_kind IS NULL OR provider_kind IN ('local-transformers', 'openai-compatible', 'legacy-environment')),
943
+ preset_id TEXT,
944
+ model_installation_id TEXT REFERENCES embedding_model_installations(installation_id),
945
+ vector_backend TEXT NOT NULL CHECK (vector_backend IN ('auto', 'javascript', 'sqlite-vec')),
946
+ batch_size INTEGER NOT NULL CHECK (batch_size BETWEEN 1 AND 64),
947
+ timeout_ms INTEGER NOT NULL CHECK (timeout_ms BETWEEN 100 AND 120000),
948
+ setup_state TEXT NOT NULL CHECK (setup_state IN ('disabled', 'requires_setup', 'installing', 'ready', 'degraded')),
949
+ updated_at TEXT NOT NULL
950
+ );
951
+
952
+ CREATE TABLE embedding_setup_runs (
953
+ setup_id TEXT PRIMARY KEY,
954
+ preset_id TEXT NOT NULL,
955
+ phase TEXT NOT NULL CHECK (phase IN ('planned', 'downloading', 'verifying', 'probing', 'activating', 'embedding', 'completed', 'failed')),
956
+ model_installation_id TEXT REFERENCES embedding_model_installations(installation_id),
957
+ active_profile_id TEXT REFERENCES embedding_profiles(profile_id),
958
+ initial_entry_count INTEGER NOT NULL CHECK (initial_entry_count >= 0),
959
+ processed_entry_count INTEGER NOT NULL CHECK (processed_entry_count >= 0),
960
+ failure_code TEXT,
961
+ started_at TEXT NOT NULL,
962
+ updated_at TEXT NOT NULL,
963
+ completed_at TEXT
964
+ );
965
+
966
+ INSERT INTO embedding_runtime (singleton, active_profile_id, generation, activated_at) VALUES (1, NULL, 1, NULL);
967
+
968
+ INSERT INTO embedding_settings (singleton, mode, provider_kind, preset_id, model_installation_id, vector_backend, batch_size, timeout_ms, setup_state, updated_at) VALUES (1, 'off', NULL, NULL, NULL, 'auto', 16, 30000, 'disabled', '1970-01-01T00:00:00.000Z');
969
+
970
+ INSERT INTO external_skill_generation_clock (singleton, value) VALUES (1, 0);
971
+
972
+ INSERT INTO entry_revision_hash_format (singleton, algorithm) VALUES (1, 'canonical-json-utf16-tags-v1');