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,690 @@
1
+ import { mkdir, rmdir } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { stdin, stdout } from 'node:process';
4
+ import { createInterface } from 'node:readline/promises';
5
+ import { assertAtomicCleanupComplete, assertFileExpectation, AtomicCommittedMutationError, AtomicCommittedUnlinkError, atomicWriteTextIfUnchanged, readDirectoryIdentity, readRegularFile, unlinkRegularFileIfUnchanged, } from '../agent-file/atomic-write.js';
6
+ import { getClaudeInstructionsPath, getClaudeMcpConfigPath, getClaudeSkillsDirectory, getCodexConfigPath, getCodexInstructionsPath, getCodexSkillsDirectory, getGlobalDatabasePath, getOpenCodeConfigDirectory, getOpenCodeInstructionsPath, getOpenCodeSkillsDirectory, resolveHermesProfilePaths, } from '../config/paths.js';
7
+ import { databaseFileIdentity, openConnection } from '../db/connection.js';
8
+ import { KiokukoError } from '../errors.js';
9
+ import { ensureGlobalWorkspace } from '../memory/workspaces.js';
10
+ import { findMissingRepositoryLocations, removeMissingRepositoryLocations, } from '../repository/binding.js';
11
+ import { renderClaudeConfig } from '../setup/claude-config.js';
12
+ import { detectInstalledClients } from '../setup/client-detection.js';
13
+ import { renderHermesConfig } from '../setup/hermes-config.js';
14
+ import { setupMcpIdentityConflictClient } from '../setup/mcp-conflict.js';
15
+ import { renderOpenCodeConfig } from '../setup/opencode-config.js';
16
+ import { listRegisteredProjectLocations, refreshRegisteredProjectAgentFiles, } from '../setup/project-agent-refresh.js';
17
+ import { renderCodexMcpConfig, renderGlobalInstructions } from '../setup/render.js';
18
+ import { loadBundledStandardSkillFiles, renderStandardSkillFile, } from '../setup/standard-skills.js';
19
+ import { isSkillDiscoveryMode, normalizeSkillDiscoveryMode, SKILL_DISCOVERY_ENV } from '../skills/config.js';
20
+ import { initializeDatabase } from './init.js';
21
+ export const SETUP_CLIENTS = ['codex', 'opencode', 'claude', 'hermes'];
22
+ function setupPathJoin(options, ...segments) {
23
+ const platform = options.platform ?? process.platform;
24
+ return platform === 'win32' ? path.win32.join(...segments) : path.posix.join(...segments);
25
+ }
26
+ export function parseSetupClients(value) {
27
+ const clients = [...new Set(value.split(',').map((client) => client.trim()).filter(Boolean))];
28
+ if (clients.length === 0 || clients.some((client) => !SETUP_CLIENTS.includes(client))) {
29
+ throw new KiokukoError('VALIDATION_ERROR', `clients must be a comma-separated subset of: ${SETUP_CLIENTS.join(', ')}`);
30
+ }
31
+ return clients;
32
+ }
33
+ export function parseSetupSkillDiscoveryMode(value) {
34
+ if (!isSkillDiscoveryMode(value)) {
35
+ throw new KiokukoError('VALIDATION_ERROR', 'skill discovery must be off, official, or community');
36
+ }
37
+ return value;
38
+ }
39
+ function setupClientLabel(client) {
40
+ if (client === 'codex')
41
+ return 'Codex';
42
+ if (client === 'opencode')
43
+ return 'OpenCode';
44
+ if (client === 'claude')
45
+ return 'Claude Code';
46
+ return 'Hermes Agent';
47
+ }
48
+ async function askSetupClients(prompt, output, detected) {
49
+ const defaultSelection = detected.length === 0 ? 'none' : detected.join(',');
50
+ output.write('Select clients to configure (detected clients are preselected):\n');
51
+ for (const [index, client] of SETUP_CLIENTS.entries()) {
52
+ const checked = detected.includes(client) ? 'x' : ' ';
53
+ const status = detected.includes(client) ? 'detected' : 'not detected';
54
+ output.write(` ${index + 1}. [${checked}] ${setupClientLabel(client)} (${status})\n`);
55
+ }
56
+ output.write('Enter client names or numbers separated by commas. Press Enter to accept the checked clients; type none to skip all.\n');
57
+ while (true) {
58
+ const answer = (await prompt.question(`Clients [${defaultSelection}]: `)).trim();
59
+ if (answer.length === 0)
60
+ return detected;
61
+ if (/^(?:none|なし)$/iu.test(answer))
62
+ return [];
63
+ const selected = [];
64
+ let invalid = false;
65
+ for (const token of answer.split(',').map((value) => value.trim()).filter(Boolean)) {
66
+ const index = Number(token);
67
+ const indexedClient = Number.isInteger(index) && index >= 1 && index <= SETUP_CLIENTS.length
68
+ ? SETUP_CLIENTS[index - 1]
69
+ : undefined;
70
+ const client = indexedClient ?? token.toLowerCase();
71
+ if (!SETUP_CLIENTS.includes(client)) {
72
+ invalid = true;
73
+ break;
74
+ }
75
+ selected.push(client);
76
+ }
77
+ if (!invalid)
78
+ return [...new Set(selected)];
79
+ output.write(`Invalid selection. Choose names or numbers for: ${SETUP_CLIENTS.join(', ')}.\n`);
80
+ }
81
+ }
82
+ async function askCommunitySkillDiscovery(prompt, output) {
83
+ output.write('Official external Skill discovery is enabled by default and uses validated content only as untrusted references. It never installs or executes Skills.\n');
84
+ output.write('Community discovery can also use audited community Skills as untrusted references when relevant.\n');
85
+ const answer = (await prompt.question('Enable community Skill discovery? [y/N] ')).trim();
86
+ return /^(?:y|yes|はい)$/iu.test(answer) ? 'community' : 'official';
87
+ }
88
+ async function askReplaceConflictingMcp(prompt, output, client) {
89
+ const label = setupClientLabel(client);
90
+ output.write(`${label} already has a non-canonical or unmanaged Kiokuko MCP identity.\n`);
91
+ output.write('Kiokuko can remove that identity, install the managed configuration, and continue setup.\n');
92
+ const answer = (await prompt.question(`Replace the existing ${label} Kiokuko MCP identity and continue? [Y/n] `)).trim();
93
+ return answer.length === 0 || /^(?:y|yes|はい)$/iu.test(answer);
94
+ }
95
+ /** Ask which supported clients should receive configuration in an interactive terminal. */
96
+ export async function promptSetupClients(detected, options = {}) {
97
+ const input = options.input ?? stdin;
98
+ const output = options.output ?? stdout;
99
+ const prompt = createInterface({ input, output });
100
+ try {
101
+ return await askSetupClients(prompt, output, detected);
102
+ }
103
+ finally {
104
+ prompt.close();
105
+ }
106
+ }
107
+ /** Ask whether audited community Skill discovery should be enabled. */
108
+ export async function promptCommunitySkillDiscovery(options = {}) {
109
+ const input = options.input ?? stdin;
110
+ const output = options.output ?? stdout;
111
+ const prompt = createInterface({ input, output });
112
+ try {
113
+ return await askCommunitySkillDiscovery(prompt, output);
114
+ }
115
+ finally {
116
+ prompt.close();
117
+ }
118
+ }
119
+ /** Ask before replacing a client Kiokuko MCP identity that setup does not own. */
120
+ export async function promptReplaceConflictingMcp(client, options = {}) {
121
+ const input = options.input ?? stdin;
122
+ const output = options.output ?? stdout;
123
+ const prompt = createInterface({ input, output });
124
+ try {
125
+ return await askReplaceConflictingMcp(prompt, output, client);
126
+ }
127
+ finally {
128
+ prompt.close();
129
+ }
130
+ }
131
+ /** Run the shared client-selection, conflict-confirmation, and setup flow. */
132
+ export async function runSetupFlow(options = {}, dependencyOverrides = {}) {
133
+ const pathEnvironment = options.environment ?? {};
134
+ const setupProcessEnvironment = pathEnvironment.env ?? process.env;
135
+ const requestedSkillDiscoveryMode = options.skillDiscoveryMode
136
+ ?? (Object.prototype.hasOwnProperty.call(setupProcessEnvironment, SKILL_DISCOVERY_ENV)
137
+ ? normalizeSkillDiscoveryMode(setupProcessEnvironment[SKILL_DISCOVERY_ENV])
138
+ : undefined);
139
+ const detectedClients = options.clients === undefined
140
+ ? await detectInstalledClients(pathEnvironment)
141
+ : [];
142
+ const input = options.input ?? stdin;
143
+ const output = options.output ?? stdout;
144
+ const interactive = options.json !== true
145
+ && input.isTTY === true
146
+ && output.isTTY === true;
147
+ let clients;
148
+ let skillDiscoveryMode = requestedSkillDiscoveryMode;
149
+ if (interactive && options.clients === undefined && requestedSkillDiscoveryMode === undefined) {
150
+ const prompted = await promptSetupConfiguration(detectedClients, { input, output });
151
+ clients = prompted.clients;
152
+ skillDiscoveryMode = prompted.skillDiscoveryMode;
153
+ }
154
+ else {
155
+ clients = options.clients ?? (interactive
156
+ ? await promptSetupClients(detectedClients, { input, output })
157
+ : detectedClients);
158
+ if (interactive && clients.length > 0 && skillDiscoveryMode === undefined) {
159
+ skillDiscoveryMode = await promptCommunitySkillDiscovery({ input, output });
160
+ }
161
+ }
162
+ const setupOptions = {
163
+ ...pathEnvironment,
164
+ clients,
165
+ command: options.command ?? 'kiokuko',
166
+ dryRun: options.dryRun === true,
167
+ standardSkills: options.standardSkills ?? true,
168
+ ...(skillDiscoveryMode === undefined ? {} : { skillDiscoveryMode }),
169
+ };
170
+ const runSetup = dependencyOverrides.setupGlobalClients
171
+ ?? setupGlobalClients;
172
+ const replacementClients = new Set();
173
+ for (;;) {
174
+ try {
175
+ return await runSetup({
176
+ ...setupOptions,
177
+ replaceConflictingMcpServers: [...replacementClients],
178
+ });
179
+ }
180
+ catch (error) {
181
+ const conflictClient = setupMcpIdentityConflictClient(error);
182
+ if (!interactive
183
+ || conflictClient === undefined
184
+ || !clients.includes(conflictClient)
185
+ || replacementClients.has(conflictClient))
186
+ throw error;
187
+ const replace = await promptReplaceConflictingMcp(conflictClient, { input, output });
188
+ if (!replace)
189
+ throw error;
190
+ replacementClients.add(conflictClient);
191
+ }
192
+ }
193
+ }
194
+ function replacementClientSet(value) {
195
+ if (value === undefined)
196
+ return new Set();
197
+ if (!Array.isArray(value)
198
+ || value.some((client) => !SETUP_CLIENTS.includes(client))
199
+ || new Set(value).size !== value.length) {
200
+ throw new KiokukoError('VALIDATION_ERROR', `replaceConflictingMcpServers must be a unique subset of: ${SETUP_CLIENTS.join(', ')}`);
201
+ }
202
+ return new Set(value);
203
+ }
204
+ /** Ask both setup questions through one readline session so buffered input remains intact. */
205
+ export async function promptSetupConfiguration(detected, options = {}) {
206
+ const input = options.input ?? stdin;
207
+ const output = options.output ?? stdout;
208
+ const prompt = createInterface({ input, output });
209
+ try {
210
+ const clients = await askSetupClients(prompt, output, detected);
211
+ const skillDiscoveryMode = clients.length === 0
212
+ ? 'official'
213
+ : await askCommunitySkillDiscovery(prompt, output);
214
+ return { clients, skillDiscoveryMode };
215
+ }
216
+ finally {
217
+ prompt.close();
218
+ }
219
+ }
220
+ function sameFileIdentity(left, right) {
221
+ return left.device === right.device && left.inode === right.inode;
222
+ }
223
+ function setupDirectoryChanged(directoryPath) {
224
+ return new KiokukoError('CONFLICT', 'Setup directory changed after planning', { target: directoryPath });
225
+ }
226
+ function plannedDirectoryIdentity(directory) {
227
+ return directory.original ?? directory.created;
228
+ }
229
+ function directoryLineage(directory) {
230
+ const lineage = [];
231
+ let current = directory;
232
+ while (current !== undefined) {
233
+ lineage.push(current);
234
+ current = current.parent;
235
+ }
236
+ return lineage.reverse();
237
+ }
238
+ async function assertPlannedDirectory(directory) {
239
+ for (const planned of directoryLineage(directory)) {
240
+ const current = await readDirectoryIdentity(planned.path);
241
+ const expected = plannedDirectoryIdentity(planned);
242
+ if ((current === undefined) !== (expected === undefined)
243
+ || (current !== undefined && expected !== undefined && !sameFileIdentity(current, expected))) {
244
+ throw setupDirectoryChanged(planned.path);
245
+ }
246
+ }
247
+ }
248
+ async function planDirectory(planning, directoryPath) {
249
+ const resolved = path.resolve(directoryPath);
250
+ const existing = planning.directories.get(resolved);
251
+ if (existing !== undefined)
252
+ return existing;
253
+ const original = await readDirectoryIdentity(resolved);
254
+ const parentPath = path.dirname(resolved);
255
+ const parent = original !== undefined || parentPath === resolved
256
+ ? undefined
257
+ : await planDirectory(planning, parentPath);
258
+ const planned = {
259
+ path: resolved,
260
+ parent,
261
+ original,
262
+ created: undefined,
263
+ };
264
+ planning.directories.set(resolved, planned);
265
+ return planned;
266
+ }
267
+ async function readPlannedRegularFile(planning, filePath) {
268
+ const parentDirectory = await planDirectory(planning, path.dirname(filePath));
269
+ await assertPlannedDirectory(parentDirectory);
270
+ const snapshot = await readRegularFile(filePath);
271
+ await assertPlannedDirectory(parentDirectory);
272
+ return { parentDirectory, snapshot };
273
+ }
274
+ function errno(error) {
275
+ return error instanceof Error && 'code' in error
276
+ ? String(error.code)
277
+ : undefined;
278
+ }
279
+ async function preparePlannedDirectories(files, createdDirectories) {
280
+ const required = new Set();
281
+ for (const file of files) {
282
+ if (file.action === 'unchanged')
283
+ continue;
284
+ for (const directory of directoryLineage(file.parentDirectory))
285
+ required.add(directory);
286
+ }
287
+ const ordered = [...required].sort((left, right) => directoryLineage(left).length - directoryLineage(right).length);
288
+ for (const directory of ordered) {
289
+ const expected = plannedDirectoryIdentity(directory);
290
+ if (expected !== undefined) {
291
+ await assertPlannedDirectory(directory);
292
+ continue;
293
+ }
294
+ if (directory.parent === undefined) {
295
+ throw new KiokukoError('INTEGRITY_ERROR', 'Setup cannot create a missing filesystem root');
296
+ }
297
+ await assertPlannedDirectory(directory.parent);
298
+ if (await readDirectoryIdentity(directory.path) !== undefined) {
299
+ throw setupDirectoryChanged(directory.path);
300
+ }
301
+ try {
302
+ await mkdir(directory.path, { mode: 0o700 });
303
+ }
304
+ catch (error) {
305
+ if (errno(error) === 'EEXIST')
306
+ throw setupDirectoryChanged(directory.path);
307
+ throw error;
308
+ }
309
+ const created = await readDirectoryIdentity(directory.path);
310
+ if (created === undefined) {
311
+ throw new KiokukoError('INTEGRITY_ERROR', 'Setup directory disappeared immediately after creation', {
312
+ target: directory.path,
313
+ });
314
+ }
315
+ directory.created = created;
316
+ createdDirectories.push(directory);
317
+ await assertPlannedDirectory(directory);
318
+ }
319
+ }
320
+ async function removeCreatedDirectories(createdDirectories) {
321
+ const failures = [];
322
+ for (const directory of [...createdDirectories].reverse()) {
323
+ try {
324
+ await assertPlannedDirectory(directory);
325
+ await rmdir(directory.path);
326
+ if (await readDirectoryIdentity(directory.path) !== undefined) {
327
+ throw setupDirectoryChanged(directory.path);
328
+ }
329
+ directory.created = undefined;
330
+ if (directory.parent !== undefined)
331
+ await assertPlannedDirectory(directory.parent);
332
+ }
333
+ catch (error) {
334
+ failures.push(error);
335
+ }
336
+ }
337
+ return failures;
338
+ }
339
+ async function planFile(planning, filePath, client, purpose, render, mustRemainAbsent = []) {
340
+ const { parentDirectory, snapshot: original } = await readPlannedRegularFile(planning, filePath);
341
+ const rendered = render(original?.content);
342
+ const action = original === undefined
343
+ ? 'created'
344
+ : rendered.content === original.content ? 'unchanged' : 'updated';
345
+ return {
346
+ path: filePath,
347
+ parentDirectory,
348
+ content: rendered.content,
349
+ mode: original?.mode ?? 0o600,
350
+ original,
351
+ ...(mustRemainAbsent.length === 0 ? {} : { mustRemainAbsent }),
352
+ action,
353
+ purpose,
354
+ client,
355
+ report: true,
356
+ };
357
+ }
358
+ async function openCodeConfigPath(planning, options) {
359
+ const directory = getOpenCodeConfigDirectory(options);
360
+ const jsonc = setupPathJoin(options, directory, 'opencode.jsonc');
361
+ if ((await readPlannedRegularFile(planning, jsonc)).snapshot !== undefined) {
362
+ return { path: jsonc, mustRemainAbsent: [] };
363
+ }
364
+ return { path: setupPathJoin(options, directory, 'opencode.json'), mustRemainAbsent: [jsonc] };
365
+ }
366
+ async function restoreFiles(mutations, dependencies) {
367
+ const failures = [];
368
+ for (const mutation of [...mutations].reverse()) {
369
+ const { file, installed } = mutation;
370
+ try {
371
+ if (file.original === undefined) {
372
+ if (installed === undefined)
373
+ throw new KiokukoError('INTEGRITY_ERROR', 'Setup rollback record is invalid');
374
+ const outcome = await dependencies.unlinkRegularFileIfUnchanged(file.path, fileExpectation(file, installed, false));
375
+ assertAtomicCleanupComplete(outcome);
376
+ }
377
+ else {
378
+ const outcome = await dependencies.atomicWriteTextIfUnchanged(file.path, file.original.content, fileExpectation(file, installed, false), file.original.mode);
379
+ assertAtomicCleanupComplete(outcome);
380
+ }
381
+ }
382
+ catch (error) {
383
+ failures.push(error);
384
+ }
385
+ }
386
+ return failures;
387
+ }
388
+ function setupNextStep(clients, standardSkills) {
389
+ return clients.map((client) => {
390
+ if (client === 'hermes') {
391
+ return standardSkills
392
+ ? 'Restart Hermes Agent, or use /reload-mcp and start a new session, so it reloads its profile-scoped MCP configuration and standard skills.'
393
+ : 'Restart Hermes Agent or use /reload-mcp to reload its profile-scoped MCP configuration.';
394
+ }
395
+ const label = client === 'codex' ? 'Codex' : client === 'opencode' ? 'OpenCode' : 'Claude Code';
396
+ const reload = `Restart ${label} so it reloads global MCP and instruction configuration${standardSkills ? ' and standard skills' : ''}.`;
397
+ return reload;
398
+ }).join(' ');
399
+ }
400
+ async function standardSkillDirectory(client, options, hermesProfile) {
401
+ if (client === 'codex')
402
+ return getCodexSkillsDirectory(options);
403
+ if (client === 'opencode')
404
+ return getOpenCodeSkillsDirectory(options);
405
+ if (client === 'claude')
406
+ return getClaudeSkillsDirectory(options);
407
+ if (hermesProfile === undefined)
408
+ throw new KiokukoError('INTEGRITY_ERROR', 'Hermes profile was not bound during setup planning');
409
+ return hermesProfile.skillsDirectory;
410
+ }
411
+ function fileExpectation(file, expected, includeAlternatePaths = true) {
412
+ const expectedParentDirectory = plannedDirectoryIdentity(file.parentDirectory);
413
+ if (expectedParentDirectory === undefined) {
414
+ throw new KiokukoError('INTEGRITY_ERROR', 'Setup file parent was not created or bound before mutation', {
415
+ target: file.parentDirectory.path,
416
+ });
417
+ }
418
+ return {
419
+ expected,
420
+ expectedParentDirectory,
421
+ ...(includeAlternatePaths && file.mustRemainAbsent !== undefined
422
+ ? { mustRemainAbsent: file.mustRemainAbsent }
423
+ : {}),
424
+ };
425
+ }
426
+ async function assertPlannedFile(file, expected) {
427
+ await assertPlannedDirectory(file.parentDirectory);
428
+ if (plannedDirectoryIdentity(file.parentDirectory) === undefined) {
429
+ if (expected !== undefined || await readRegularFile(file.path) !== undefined) {
430
+ throw setupDirectoryChanged(file.parentDirectory.path);
431
+ }
432
+ for (const absentPath of file.mustRemainAbsent ?? []) {
433
+ if (await readRegularFile(absentPath) !== undefined) {
434
+ throw new KiokukoError('CONFLICT', 'Setup target changed after planning', { target: absentPath });
435
+ }
436
+ }
437
+ }
438
+ else {
439
+ await assertFileExpectation(file.path, fileExpectation(file, expected));
440
+ }
441
+ await assertPlannedDirectory(file.parentDirectory);
442
+ }
443
+ async function assertPlannedFiles(files, applied = []) {
444
+ const installedByPath = new Map(applied.map((mutation) => [mutation.file.path, mutation.installed]));
445
+ for (const file of files) {
446
+ const expected = installedByPath.has(file.path) ? installedByPath.get(file.path) : file.original;
447
+ await assertPlannedFile(file, expected);
448
+ }
449
+ }
450
+ function setupFilesystemErrorCode(error) {
451
+ if ((typeof error !== 'object' && typeof error !== 'function') || error === null)
452
+ return undefined;
453
+ const descriptor = Object.getOwnPropertyDescriptor(error, 'code');
454
+ return descriptor !== undefined && 'value' in descriptor && typeof descriptor.value === 'string'
455
+ ? descriptor.value
456
+ : undefined;
457
+ }
458
+ function readDryRunProjectLocations(databasePath, openDatabase, allowUnavailableRegistry) {
459
+ let identity;
460
+ try {
461
+ identity = databaseFileIdentity(databasePath);
462
+ }
463
+ catch (error) {
464
+ const code = setupFilesystemErrorCode(error);
465
+ if (code === 'ENOENT' || code === 'ENOTDIR')
466
+ return [];
467
+ throw error;
468
+ }
469
+ const database = openDatabase(databasePath, { readOnly: true, expectedFileIdentity: identity });
470
+ let locations;
471
+ let readFailed = false;
472
+ let readError;
473
+ try {
474
+ locations = listRegisteredProjectLocations(database, { allowUnavailableRegistry });
475
+ }
476
+ catch (error) {
477
+ readFailed = true;
478
+ readError = error;
479
+ }
480
+ try {
481
+ database.close();
482
+ }
483
+ catch (closeError) {
484
+ if (readFailed) {
485
+ throw new AggregateError([readError, closeError], 'Registered project discovery failed and closing the database connection also failed');
486
+ }
487
+ throw closeError;
488
+ }
489
+ if (readFailed)
490
+ throw readError;
491
+ if (locations === undefined) {
492
+ throw new KiokukoError('INTEGRITY_ERROR', 'Registered project discovery produced no result');
493
+ }
494
+ return locations;
495
+ }
496
+ export async function setupGlobalClients(options = {}, dependencyOverrides = {}) {
497
+ const dependencies = {
498
+ atomicWriteTextIfUnchanged: dependencyOverrides.atomicWriteTextIfUnchanged ?? atomicWriteTextIfUnchanged,
499
+ unlinkRegularFileIfUnchanged: dependencyOverrides.unlinkRegularFileIfUnchanged ?? unlinkRegularFileIfUnchanged,
500
+ beforeCommit: dependencyOverrides.beforeCommit ?? (() => undefined),
501
+ openConnection: dependencyOverrides.openConnection ?? openConnection,
502
+ ensureGlobalWorkspace: dependencyOverrides.ensureGlobalWorkspace ?? ensureGlobalWorkspace,
503
+ refreshRegisteredProjectAgentFiles: dependencyOverrides.refreshRegisteredProjectAgentFiles
504
+ ?? refreshRegisteredProjectAgentFiles,
505
+ };
506
+ const pathEnvironment = {
507
+ ...(options.platform === undefined ? {} : { platform: options.platform }),
508
+ ...(options.env === undefined ? {} : { env: options.env }),
509
+ };
510
+ if (options.skillDiscoveryMode !== undefined && !isSkillDiscoveryMode(options.skillDiscoveryMode)) {
511
+ throw new KiokukoError('VALIDATION_ERROR', 'skill discovery must be off, official, or community');
512
+ }
513
+ const replaceConflictingMcpServers = replacementClientSet(options.replaceConflictingMcpServers);
514
+ const clients = options.clients ?? await detectInstalledClients(pathEnvironment);
515
+ if (!Array.isArray(clients) || clients.some((client) => !SETUP_CLIENTS.includes(client))) {
516
+ throw new KiokukoError('VALIDATION_ERROR', `clients must be a subset of: ${SETUP_CLIENTS.join(', ')}`);
517
+ }
518
+ const command = options.command ?? 'kiokuko';
519
+ if (typeof command !== 'string' || command.trim().length === 0 || command.includes('\0')) {
520
+ throw new KiokukoError('VALIDATION_ERROR', 'command must be a non-empty executable path or name');
521
+ }
522
+ const databasePath = options.databasePath ?? getGlobalDatabasePath(pathEnvironment);
523
+ const standardSkills = options.standardSkills ?? true;
524
+ const environment = options.env ?? process.env;
525
+ const environmentSkillDiscoveryMode = options.skillDiscoveryMode === undefined
526
+ && Object.prototype.hasOwnProperty.call(environment, SKILL_DISCOVERY_ENV)
527
+ ? normalizeSkillDiscoveryMode(environment[SKILL_DISCOVERY_ENV])
528
+ : undefined;
529
+ const skillDiscoveryMode = options.skillDiscoveryMode ?? environmentSkillDiscoveryMode;
530
+ const files = [];
531
+ const planning = { directories: new Map() };
532
+ const hermesProfile = clients.includes('hermes')
533
+ ? await resolveHermesProfilePaths(pathEnvironment)
534
+ : undefined;
535
+ if (clients.includes('codex')) {
536
+ const mcpFile = await planFile(planning, getCodexConfigPath(pathEnvironment), 'codex', 'mcp-config', (existing) => renderCodexMcpConfig(existing ?? '', command, skillDiscoveryMode, { replaceConflictingIdentity: replaceConflictingMcpServers.has('codex') }));
537
+ files.push(mcpFile);
538
+ files.push(await planFile(planning, getCodexInstructionsPath(pathEnvironment), 'codex', 'instructions', (existing) => renderGlobalInstructions(existing ?? '')));
539
+ }
540
+ if (clients.includes('opencode')) {
541
+ const selectedConfig = await openCodeConfigPath(planning, pathEnvironment);
542
+ const mcpFile = await planFile(planning, selectedConfig.path, 'opencode', 'mcp-config', (existing) => renderOpenCodeConfig(existing, command, skillDiscoveryMode, { replaceConflictingIdentity: replaceConflictingMcpServers.has('opencode') }), selectedConfig.mustRemainAbsent);
543
+ files.push(mcpFile);
544
+ files.push(await planFile(planning, getOpenCodeInstructionsPath(pathEnvironment), 'opencode', 'instructions', (existing) => renderGlobalInstructions(existing ?? '')));
545
+ }
546
+ if (clients.includes('claude')) {
547
+ const mcpFile = await planFile(planning, getClaudeMcpConfigPath(pathEnvironment), 'claude', 'mcp-config', (existing) => renderClaudeConfig(existing, command, skillDiscoveryMode, { replaceConflictingIdentity: replaceConflictingMcpServers.has('claude') }));
548
+ files.push(mcpFile);
549
+ files.push(await planFile(planning, getClaudeInstructionsPath(pathEnvironment), 'claude', 'instructions', (existing) => renderGlobalInstructions(existing ?? '')));
550
+ }
551
+ if (clients.includes('hermes')) {
552
+ if (hermesProfile === undefined)
553
+ throw new KiokukoError('INTEGRITY_ERROR', 'Hermes profile was not bound during setup planning');
554
+ files.push(await planFile(planning, hermesProfile.configPath, 'hermes', 'mcp-config', (existing) => renderHermesConfig(existing, command, skillDiscoveryMode, { replaceConflictingIdentity: replaceConflictingMcpServers.has('hermes') })));
555
+ }
556
+ if (standardSkills) {
557
+ const bundledFiles = await loadBundledStandardSkillFiles();
558
+ for (const client of clients) {
559
+ const skillsDirectory = await standardSkillDirectory(client, pathEnvironment, hermesProfile);
560
+ for (const bundled of bundledFiles) {
561
+ const destinationPath = setupPathJoin(pathEnvironment, skillsDirectory, bundled.skillName, bundled.relativePath);
562
+ files.push(await planFile(planning, destinationPath, client, 'standard-skill', (existing) => renderStandardSkillFile(existing, bundled, destinationPath)));
563
+ }
564
+ }
565
+ }
566
+ const result = {
567
+ clients,
568
+ databasePath,
569
+ databaseAction: options.dryRun ? 'planned' : 'initialized',
570
+ appliedMigrations: [],
571
+ files: files
572
+ .filter((file) => file.report)
573
+ .map(({ path: filePath, action, purpose, client }) => ({ path: filePath, action, purpose, client })),
574
+ projectAgentFiles: [],
575
+ standardSkills,
576
+ dryRun: options.dryRun ?? false,
577
+ nextStep: setupNextStep(clients, standardSkills),
578
+ };
579
+ if (options.dryRun) {
580
+ const registeredProjectLocations = readDryRunProjectLocations(databasePath, dependencies.openConnection, options.migrationsDirectory !== undefined);
581
+ result.projectAgentFiles = await dependencies.refreshRegisteredProjectAgentFiles(registeredProjectLocations, {
582
+ databasePath,
583
+ dryRun: true,
584
+ ...(options.migrationsDirectory === undefined
585
+ ? {}
586
+ : { migrationsDirectory: options.migrationsDirectory }),
587
+ });
588
+ return result;
589
+ }
590
+ const initialized = await initializeDatabase({
591
+ databasePath,
592
+ ...(options.migrationsDirectory === undefined ? {} : { migrationsDirectory: options.migrationsDirectory }),
593
+ });
594
+ result.appliedMigrations = initialized.applied;
595
+ const database = dependencies.openConnection(databasePath);
596
+ let registeredProjectLocations = [];
597
+ let workspaceInitializationFailed = false;
598
+ let workspaceInitializationError;
599
+ try {
600
+ const missingProjectLocations = findMissingRepositoryLocations(database);
601
+ removeMissingRepositoryLocations(database, missingProjectLocations);
602
+ dependencies.ensureGlobalWorkspace(database);
603
+ registeredProjectLocations = listRegisteredProjectLocations(database, {
604
+ allowUnavailableRegistry: options.migrationsDirectory !== undefined,
605
+ });
606
+ }
607
+ catch (error) {
608
+ workspaceInitializationFailed = true;
609
+ workspaceInitializationError = error;
610
+ }
611
+ try {
612
+ database.close();
613
+ }
614
+ catch (closeError) {
615
+ if (workspaceInitializationFailed) {
616
+ throw new AggregateError([workspaceInitializationError, closeError], 'Global workspace initialization failed and closing the database connection also failed');
617
+ }
618
+ throw closeError;
619
+ }
620
+ if (workspaceInitializationFailed)
621
+ throw workspaceInitializationError;
622
+ const applied = [];
623
+ const createdDirectories = [];
624
+ try {
625
+ await dependencies.beforeCommit();
626
+ await preparePlannedDirectories(files, createdDirectories);
627
+ await assertPlannedFiles(files);
628
+ for (const file of files) {
629
+ if (file.action === 'unchanged')
630
+ continue;
631
+ // Record a committed mutation before inspecting its cleanup outcome so
632
+ // rollback never loses ownership of a target that already changed.
633
+ let installed;
634
+ if (file.action === 'deleted') {
635
+ if (file.original === undefined)
636
+ throw new KiokukoError('INTEGRITY_ERROR', 'Setup deletion plan is missing original content');
637
+ let outcome;
638
+ try {
639
+ outcome = await dependencies.unlinkRegularFileIfUnchanged(file.path, fileExpectation(file, file.original));
640
+ }
641
+ catch (error) {
642
+ if (error instanceof AtomicCommittedUnlinkError) {
643
+ applied.push({ file, installed: undefined });
644
+ }
645
+ throw error;
646
+ }
647
+ applied.push({ file, installed: undefined });
648
+ assertAtomicCleanupComplete(outcome);
649
+ }
650
+ else {
651
+ if (file.content === undefined)
652
+ throw new KiokukoError('INTEGRITY_ERROR', 'Setup file plan is missing rendered content');
653
+ let outcome;
654
+ try {
655
+ outcome = await dependencies.atomicWriteTextIfUnchanged(file.path, file.content, fileExpectation(file, file.original), file.mode);
656
+ }
657
+ catch (error) {
658
+ if (error instanceof AtomicCommittedMutationError) {
659
+ applied.push({ file, installed: error.outcome.installed });
660
+ }
661
+ else if (error instanceof AtomicCommittedUnlinkError) {
662
+ applied.push({ file, installed: undefined });
663
+ }
664
+ throw error;
665
+ }
666
+ installed = outcome.installed;
667
+ applied.push({ file, installed });
668
+ assertAtomicCleanupComplete(outcome);
669
+ }
670
+ }
671
+ await assertPlannedFiles(files, applied);
672
+ }
673
+ catch (error) {
674
+ const restorationFailures = await restoreFiles(applied, dependencies);
675
+ const directoryRestorationFailures = await removeCreatedDirectories(createdDirectories);
676
+ const failures = [...restorationFailures, ...directoryRestorationFailures];
677
+ if (failures.length > 0) {
678
+ throw new AggregateError([error, ...failures], 'Setup failed and filesystem restoration also failed');
679
+ }
680
+ throw error;
681
+ }
682
+ result.projectAgentFiles = await dependencies.refreshRegisteredProjectAgentFiles(registeredProjectLocations, {
683
+ databasePath,
684
+ ...(options.migrationsDirectory === undefined
685
+ ? {}
686
+ : { migrationsDirectory: options.migrationsDirectory }),
687
+ });
688
+ return result;
689
+ }
690
+ //# sourceMappingURL=setup.js.map