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,729 @@
1
+ import { TextDecoder } from 'node:util';
2
+ import { isProxy } from 'node:util/types';
3
+ import { getRuntimeDescriptorPath } from '../config/paths.js';
4
+ import { KiokukoError } from '../errors.js';
5
+ import { cloneBoundaryJson, stringifyBoundaryJson, } from '../serialization/boundary-json.js';
6
+ import { isPidAlive } from '../server/instance-lock.js';
7
+ import { readRuntimeDescriptor } from '../server/runtime-descriptor.js';
8
+ import { MAX_STRICT_JSON_DEPTH, parseStrictJson } from '../setup/strict-json.js';
9
+ const MAX_JSON_BYTES = 2 * 1024 * 1024;
10
+ const MAX_PATH_BYTES = 16 * 1024;
11
+ const MAX_QUERY_BYTES = 8 * 1024;
12
+ const MAX_IDEMPOTENCY_KEY_BYTES = 256;
13
+ const MAX_OPERATION_BYTES = 256;
14
+ const MAX_JSON_NODES = 262_144;
15
+ const MAX_RESPONSE_CHUNKS = 8_192;
16
+ const RESPONSE_CLEANUP_TIMEOUT_MS = 250;
17
+ const HEALTH_READY_PATH = '/health/ready';
18
+ const WRITE_METHODS = new Set(['POST', 'PUT', 'PATCH', 'DELETE']);
19
+ const READ_METHODS = new Set(['GET']);
20
+ const SERVER_METHODS = new Set(['GET', 'POST', 'PUT', 'PATCH', 'DELETE']);
21
+ const ERROR_CODES = [
22
+ 'USAGE_ERROR',
23
+ 'VALIDATION_ERROR',
24
+ 'NOT_FOUND',
25
+ 'CONFLICT',
26
+ 'DATABASE_ERROR',
27
+ 'BACKPRESSURE',
28
+ 'SERVICE_UNAVAILABLE',
29
+ 'SECURITY_REJECTION',
30
+ 'AUTHENTICATION_ERROR',
31
+ 'INTEGRITY_ERROR',
32
+ 'PARTIAL_FAILURE',
33
+ 'NOT_IMPLEMENTED',
34
+ ];
35
+ const ERROR_STATUS = {
36
+ USAGE_ERROR: [400],
37
+ VALIDATION_ERROR: [400],
38
+ NOT_FOUND: [404],
39
+ CONFLICT: [409],
40
+ DATABASE_ERROR: [500, 503],
41
+ BACKPRESSURE: [429],
42
+ SERVICE_UNAVAILABLE: [503],
43
+ SECURITY_REJECTION: [422],
44
+ AUTHENTICATION_ERROR: [401],
45
+ INTEGRITY_ERROR: [500],
46
+ PARTIAL_FAILURE: [],
47
+ NOT_IMPLEMENTED: [],
48
+ };
49
+ function validationError() {
50
+ return new KiokukoError('VALIDATION_ERROR', 'Request is invalid');
51
+ }
52
+ function integrityError() {
53
+ return new KiokukoError('INTEGRITY_ERROR', 'Server response is invalid');
54
+ }
55
+ function unavailableError() {
56
+ return new KiokukoError('SERVICE_UNAVAILABLE', 'Kiokuko server is unavailable');
57
+ }
58
+ async function readLiveRuntimeDescriptor(options) {
59
+ const descriptorPath = options.descriptorPath ?? getRuntimeDescriptorPath();
60
+ const descriptor = await readRuntimeDescriptor(descriptorPath);
61
+ if (!descriptor)
62
+ throw unavailableError();
63
+ const live = await (options.isPidAlive ?? isPidAlive)(descriptor.pid);
64
+ if (!live)
65
+ throw unavailableError();
66
+ return descriptor;
67
+ }
68
+ function isPlainObject(value) {
69
+ if (typeof value !== 'object' || value === null || isProxy(value) || Array.isArray(value))
70
+ return false;
71
+ const prototype = Object.getPrototypeOf(value);
72
+ return prototype === Object.prototype || prototype === null;
73
+ }
74
+ function directPrototype(value) {
75
+ if ((typeof value !== 'object' || value === null) && typeof value !== 'function')
76
+ return undefined;
77
+ if (isProxy(value))
78
+ return undefined;
79
+ return Object.getPrototypeOf(value);
80
+ }
81
+ const BUILTIN_ERROR_PROTOTYPES = new Set([
82
+ Error.prototype,
83
+ EvalError.prototype,
84
+ RangeError.prototype,
85
+ ReferenceError.prototype,
86
+ SyntaxError.prototype,
87
+ TypeError.prototype,
88
+ URIError.prototype,
89
+ ]);
90
+ function isExactErrorObject(value) {
91
+ const prototype = directPrototype(value);
92
+ return prototype !== undefined && prototype !== null && BUILTIN_ERROR_PROTOTYPES.has(prototype);
93
+ }
94
+ function isExactKiokukoError(value) {
95
+ return directPrototype(value) === KiokukoError.prototype;
96
+ }
97
+ function hasControlCharacters(value) {
98
+ return /\p{Cc}/u.test(value);
99
+ }
100
+ function isByteString(value) {
101
+ for (let index = 0; index < value.length; index += 1) {
102
+ if (value.charCodeAt(index) > 0xff)
103
+ return false;
104
+ }
105
+ return true;
106
+ }
107
+ function ownDataDescriptors(value) {
108
+ if (isProxy(value))
109
+ throw validationError();
110
+ const keys = Reflect.ownKeys(value);
111
+ if (keys.some((key) => typeof key !== 'string'))
112
+ throw validationError();
113
+ const result = new Map();
114
+ for (const key of keys) {
115
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
116
+ if (descriptor === undefined || !('value' in descriptor))
117
+ throw validationError();
118
+ result.set(key, descriptor);
119
+ }
120
+ return result;
121
+ }
122
+ function jsonSnapshot(value) {
123
+ const snapshot = stringifyBoundaryJson(cloneBoundaryJson(value, {
124
+ failure: validationError,
125
+ maximumDepth: MAX_STRICT_JSON_DEPTH,
126
+ maximumNodes: MAX_JSON_NODES,
127
+ }));
128
+ if (Buffer.byteLength(snapshot, 'utf8') > MAX_JSON_BYTES)
129
+ throw validationError();
130
+ return snapshot;
131
+ }
132
+ function validateOperation(value) {
133
+ if (typeof value !== 'string' || value.length === 0 || Buffer.byteLength(value, 'utf8') > MAX_OPERATION_BYTES
134
+ || hasControlCharacters(value))
135
+ throw validationError();
136
+ return value;
137
+ }
138
+ function validatePath(value, method, baseUrl) {
139
+ if (typeof value !== 'string' || value.length === 0 || Buffer.byteLength(value, 'utf8') > MAX_PATH_BYTES
140
+ || hasControlCharacters(value) || value.includes('\\') || value.includes('#')
141
+ || value.startsWith('//') || /^[A-Za-z][A-Za-z\d+.-]*:/.test(value))
142
+ throw validationError();
143
+ const queryIndex = value.indexOf('?');
144
+ const rawPath = queryIndex < 0 ? value : value.slice(0, queryIndex);
145
+ const query = queryIndex < 0 ? undefined : value.slice(queryIndex + 1);
146
+ const healthPath = rawPath === HEALTH_READY_PATH;
147
+ if (!rawPath.startsWith('/api/v1/') && !healthPath)
148
+ throw validationError();
149
+ if (healthPath && queryIndex >= 0)
150
+ throw validationError();
151
+ if (queryIndex >= 0 && !READ_METHODS.has(method))
152
+ throw validationError();
153
+ if (query !== undefined && Buffer.byteLength(query, 'utf8') > MAX_QUERY_BYTES)
154
+ throw validationError();
155
+ for (const segment of rawPath.split('/')) {
156
+ let decoded;
157
+ try {
158
+ decoded = decodeURIComponent(segment);
159
+ }
160
+ catch {
161
+ throw validationError();
162
+ }
163
+ if (decoded === '.' || decoded === '..' || decoded.includes('/') || decoded.includes('\\')
164
+ || hasControlCharacters(decoded))
165
+ throw validationError();
166
+ }
167
+ try {
168
+ const base = new URL(baseUrl);
169
+ const target = new URL(value, `${baseUrl}/`);
170
+ if (target.origin !== base.origin || target.username !== '' || target.password !== '')
171
+ throw validationError();
172
+ if (Buffer.byteLength(`${target.pathname}${target.search}`, 'utf8') > MAX_PATH_BYTES
173
+ || Buffer.byteLength(target.search.slice(1), 'utf8') > MAX_QUERY_BYTES)
174
+ throw validationError();
175
+ return target.toString();
176
+ }
177
+ catch (error) {
178
+ if (isExactKiokukoError(error))
179
+ throw error;
180
+ throw validationError();
181
+ }
182
+ }
183
+ function validateIdempotencyKey(method, value) {
184
+ if (!WRITE_METHODS.has(method)) {
185
+ if (value !== undefined)
186
+ throw validationError();
187
+ return undefined;
188
+ }
189
+ if (typeof value !== 'string' || value.length === 0 || Buffer.byteLength(value, 'utf8') > MAX_IDEMPOTENCY_KEY_BYTES
190
+ || value.trim() !== value || hasControlCharacters(value) || !isByteString(value))
191
+ throw validationError();
192
+ return value;
193
+ }
194
+ function signalAborted(signal) {
195
+ return signal?.aborted === true;
196
+ }
197
+ function signalReason(signal) {
198
+ return signal.reason;
199
+ }
200
+ function throwIfSignalAborted(signal) {
201
+ if (signalAborted(signal))
202
+ throw signalReason(signal);
203
+ }
204
+ function awaitWithSignal(operation, signal) {
205
+ const guarded = Promise.resolve(operation);
206
+ if (signal === undefined)
207
+ return guarded;
208
+ if (signalAborted(signal)) {
209
+ guarded.then(() => undefined, () => undefined);
210
+ return Promise.reject(signalReason(signal));
211
+ }
212
+ return new Promise((resolve, reject) => {
213
+ let settled = false;
214
+ const cleanup = () => {
215
+ signal.removeEventListener('abort', onAbort);
216
+ };
217
+ const onAbort = () => {
218
+ if (settled)
219
+ return;
220
+ settled = true;
221
+ cleanup();
222
+ reject(signalReason(signal));
223
+ };
224
+ signal.addEventListener('abort', onAbort, { once: true });
225
+ guarded.then((value) => {
226
+ if (settled)
227
+ return;
228
+ settled = true;
229
+ cleanup();
230
+ if (signalAborted(signal))
231
+ reject(signalReason(signal));
232
+ else
233
+ resolve(value);
234
+ }, (error) => {
235
+ if (settled)
236
+ return;
237
+ settled = true;
238
+ cleanup();
239
+ if (signalAborted(signal))
240
+ reject(signalReason(signal));
241
+ else
242
+ reject(error);
243
+ });
244
+ });
245
+ }
246
+ function normalizeRequestInput(input) {
247
+ if (!isPlainObject(input))
248
+ throw validationError();
249
+ const descriptors = ownDataDescriptors(input);
250
+ const allowed = new Set(['method', 'path', 'operation', 'body', 'idempotencyKey', 'signal']);
251
+ if ([...descriptors.keys()].some((key) => !allowed.has(key)))
252
+ throw validationError();
253
+ for (const field of ['method', 'path', 'operation']) {
254
+ const descriptor = descriptors.get(field);
255
+ if (descriptor === undefined || descriptor.enumerable !== true)
256
+ throw validationError();
257
+ }
258
+ for (const descriptor of descriptors.values()) {
259
+ if (descriptor.enumerable !== true)
260
+ throw validationError();
261
+ }
262
+ const signal = descriptors.get('signal')?.value;
263
+ if (signal !== undefined && directPrototype(signal) !== AbortSignal.prototype) {
264
+ throw validationError();
265
+ }
266
+ if (signal !== undefined) {
267
+ try {
268
+ void signal.aborted;
269
+ }
270
+ catch {
271
+ throw validationError();
272
+ }
273
+ }
274
+ return {
275
+ method: descriptors.get('method')?.value,
276
+ path: descriptors.get('path')?.value,
277
+ operation: descriptors.get('operation')?.value,
278
+ body: descriptors.get('body')?.value,
279
+ idempotencyKey: descriptors.get('idempotencyKey')?.value,
280
+ signal,
281
+ };
282
+ }
283
+ function assertExactKeys(value, keys) {
284
+ const allowed = new Set(keys);
285
+ if (Object.keys(value).some((key) => !allowed.has(key)))
286
+ throw integrityError();
287
+ }
288
+ function isErrorCode(value) {
289
+ return typeof value === 'string' && ERROR_CODES.includes(value);
290
+ }
291
+ const TRANSPORT_ERROR_CODES = new Set([
292
+ 'EAI_AGAIN',
293
+ 'ECONNABORTED',
294
+ 'ECONNREFUSED',
295
+ 'ECONNRESET',
296
+ 'EHOSTUNREACH',
297
+ 'ENETDOWN',
298
+ 'ENETUNREACH',
299
+ 'ENOTFOUND',
300
+ 'EPIPE',
301
+ 'ETIMEDOUT',
302
+ 'UND_ERR_BODY_TIMEOUT',
303
+ 'UND_ERR_CONNECT_TIMEOUT',
304
+ 'UND_ERR_HEADERS_TIMEOUT',
305
+ 'UND_ERR_SOCKET',
306
+ ]);
307
+ function ownErrorField(value, field) {
308
+ if (isProxy(value))
309
+ return undefined;
310
+ const descriptor = Object.getOwnPropertyDescriptor(value, field);
311
+ return descriptor !== undefined && 'value' in descriptor ? descriptor.value : undefined;
312
+ }
313
+ function hasExactOwnKeys(value, expected) {
314
+ const keys = Reflect.ownKeys(value);
315
+ const allowed = new Set(expected);
316
+ return keys.length === allowed.size
317
+ && keys.every((key) => typeof key === 'string' && allowed.has(key));
318
+ }
319
+ function isExactSystemTransportCause(cause, code) {
320
+ if (directPrototype(cause) !== Error.prototype
321
+ || typeof ownErrorField(cause, 'message') !== 'string'
322
+ || typeof ownErrorField(cause, 'errno') !== 'number'
323
+ || ownErrorField(cause, 'code') !== code
324
+ || typeof ownErrorField(cause, 'syscall') !== 'string')
325
+ return false;
326
+ if (code === 'EAI_AGAIN' || code === 'ENOTFOUND') {
327
+ return typeof ownErrorField(cause, 'hostname') === 'string'
328
+ && hasExactOwnKeys(cause, ['stack', 'message', 'errno', 'code', 'syscall', 'hostname']);
329
+ }
330
+ return typeof ownErrorField(cause, 'address') === 'string'
331
+ && typeof ownErrorField(cause, 'port') === 'number'
332
+ && hasExactOwnKeys(cause, ['stack', 'message', 'errno', 'code', 'syscall', 'address', 'port']);
333
+ }
334
+ function isExactUndiciTransportCause(cause, code) {
335
+ const expectedName = {
336
+ UND_ERR_BODY_TIMEOUT: 'BodyTimeoutError',
337
+ UND_ERR_CONNECT_TIMEOUT: 'ConnectTimeoutError',
338
+ UND_ERR_HEADERS_TIMEOUT: 'HeadersTimeoutError',
339
+ };
340
+ return cause instanceof Error
341
+ && expectedName[code] !== undefined
342
+ && ownErrorField(cause, 'name') === expectedName[code]
343
+ && ownErrorField(cause, 'code') === code
344
+ && typeof ownErrorField(cause, 'message') === 'string'
345
+ && hasExactOwnKeys(cause, ['stack', 'message', 'name', 'code']);
346
+ }
347
+ function isExactTransportFailure(error) {
348
+ if (!isExactErrorObject(error))
349
+ return false;
350
+ const cause = ownErrorField(error, 'cause');
351
+ const message = ownErrorField(error, 'message');
352
+ if (directPrototype(error) !== TypeError.prototype || (message !== 'fetch failed' && message !== 'terminated')
353
+ || (typeof cause !== 'object' && typeof cause !== 'function') || cause === null
354
+ || isProxy(cause) || cause === error
355
+ || !hasExactOwnKeys(error, ['stack', 'message', 'cause']))
356
+ return false;
357
+ const causeCode = ownErrorField(cause, 'code');
358
+ if (message === 'fetch failed') {
359
+ return typeof causeCode === 'string'
360
+ && TRANSPORT_ERROR_CODES.has(causeCode)
361
+ && (isExactSystemTransportCause(cause, causeCode) || isExactUndiciTransportCause(cause, causeCode));
362
+ }
363
+ return cause instanceof Error
364
+ && causeCode === 'UND_ERR_SOCKET'
365
+ && ownErrorField(cause, 'name') === 'SocketError'
366
+ && typeof ownErrorField(cause, 'message') === 'string'
367
+ && hasExactOwnKeys(cause, ['stack', 'message', 'name', 'code', 'socket']);
368
+ }
369
+ function throwTransportOrOriginal(error) {
370
+ throw normalizedTransportOrOriginal(error);
371
+ }
372
+ function normalizedTransportOrOriginal(error) {
373
+ return isExactTransportFailure(error) ? unavailableError() : error;
374
+ }
375
+ function invalidFetchResponse() {
376
+ throw new TypeError('Fetch implementation returned a non-Response value');
377
+ }
378
+ function validateFetchResponse(value) {
379
+ if (directPrototype(value) !== Response.prototype || Reflect.ownKeys(value).length !== 0) {
380
+ invalidFetchResponse();
381
+ }
382
+ let status;
383
+ let headers;
384
+ let body;
385
+ let bodyUsed;
386
+ try {
387
+ const response = value;
388
+ status = response.status;
389
+ headers = response.headers;
390
+ body = response.body;
391
+ bodyUsed = response.bodyUsed;
392
+ if (directPrototype(headers) !== Headers.prototype
393
+ || Reflect.ownKeys(headers).some((key) => typeof key === 'string')
394
+ || (body !== null && (directPrototype(body) !== ReadableStream.prototype
395
+ || Reflect.ownKeys(body).some((key) => typeof key === 'string'))))
396
+ invalidFetchResponse();
397
+ }
398
+ catch {
399
+ invalidFetchResponse();
400
+ }
401
+ if (bodyUsed || body?.locked === true) {
402
+ throw integrityError();
403
+ }
404
+ return { status, headers, body };
405
+ }
406
+ function header(response, name) {
407
+ return response.headers.get(name);
408
+ }
409
+ function hasHeader(response, name) {
410
+ return response.headers.has(name);
411
+ }
412
+ async function settleResponseCleanup(operation, signal) {
413
+ let timer;
414
+ const settled = Promise.resolve(operation).then(() => true, () => false);
415
+ const timed = new Promise((resolve) => {
416
+ timer = setTimeout(() => resolve(false), RESPONSE_CLEANUP_TIMEOUT_MS);
417
+ });
418
+ let cleaned;
419
+ try {
420
+ cleaned = await awaitWithSignal(Promise.race([settled, timed]), signal);
421
+ }
422
+ finally {
423
+ if (timer !== undefined)
424
+ clearTimeout(timer);
425
+ }
426
+ if (!cleaned)
427
+ throw integrityError();
428
+ }
429
+ async function discardResponseBody(response, signal) {
430
+ if (response.body === null)
431
+ return;
432
+ try {
433
+ await settleResponseCleanup(response.body.cancel(), signal);
434
+ }
435
+ catch (error) {
436
+ throwIfSignalAborted(signal);
437
+ if (isExactKiokukoError(error))
438
+ throw error;
439
+ throw integrityError();
440
+ }
441
+ }
442
+ function exactResponseChunk(value) {
443
+ if (directPrototype(value) !== Uint8Array.prototype)
444
+ throw integrityError();
445
+ try {
446
+ const ownKeys = Reflect.ownKeys(value);
447
+ if (ownKeys.some((key) => typeof key !== 'string' || !/^(?:0|[1-9]\d*)$/u.test(key))) {
448
+ throw integrityError();
449
+ }
450
+ const byteLength = value.byteLength;
451
+ if (!Number.isSafeInteger(byteLength) || byteLength < 0
452
+ || ownKeys.some((key) => Number(key) >= byteLength))
453
+ throw integrityError();
454
+ return { value: value, byteLength };
455
+ }
456
+ catch (error) {
457
+ if (isExactKiokukoError(error))
458
+ throw error;
459
+ throw integrityError();
460
+ }
461
+ }
462
+ function copyResponseChunk(value, byteLength) {
463
+ try {
464
+ const copy = new Uint8Array(byteLength);
465
+ copy.set(value);
466
+ return Buffer.from(copy.buffer, copy.byteOffset, copy.byteLength);
467
+ }
468
+ catch {
469
+ throw integrityError();
470
+ }
471
+ }
472
+ async function readBoundedBody(response, signal) {
473
+ const contentLength = header(response, 'content-length');
474
+ if (contentLength !== null && /^\d+$/.test(contentLength) && Number(contentLength) > MAX_JSON_BYTES) {
475
+ await discardResponseBody(response, signal);
476
+ throw integrityError();
477
+ }
478
+ if (response.body === null) {
479
+ throwIfSignalAborted(signal);
480
+ return '';
481
+ }
482
+ let reader;
483
+ try {
484
+ reader = response.body.getReader();
485
+ }
486
+ catch {
487
+ throw integrityError();
488
+ }
489
+ const chunks = [];
490
+ let size = 0;
491
+ let chunkCount = 0;
492
+ let failed = false;
493
+ let primaryFailure;
494
+ const cleanupFailures = [];
495
+ try {
496
+ while (true) {
497
+ const item = await awaitWithSignal(reader.read(), signal);
498
+ throwIfSignalAborted(signal);
499
+ if (item.done)
500
+ break;
501
+ chunkCount += 1;
502
+ if (chunkCount > MAX_RESPONSE_CHUNKS)
503
+ throw integrityError();
504
+ const chunk = exactResponseChunk(item.value);
505
+ size += chunk.byteLength;
506
+ if (size > MAX_JSON_BYTES)
507
+ throw integrityError();
508
+ chunks.push(copyResponseChunk(chunk.value, chunk.byteLength));
509
+ }
510
+ }
511
+ catch (error) {
512
+ failed = true;
513
+ primaryFailure = signal !== undefined && signalAborted(signal)
514
+ ? signalReason(signal)
515
+ : isExactKiokukoError(error)
516
+ ? error
517
+ : normalizedTransportOrOriginal(error);
518
+ try {
519
+ await settleResponseCleanup(reader.cancel());
520
+ }
521
+ catch {
522
+ cleanupFailures.push(integrityError());
523
+ }
524
+ }
525
+ try {
526
+ reader.releaseLock();
527
+ }
528
+ catch {
529
+ cleanupFailures.push(integrityError());
530
+ }
531
+ if (!failed && signal !== undefined && signalAborted(signal)) {
532
+ failed = true;
533
+ primaryFailure = signalReason(signal);
534
+ }
535
+ if (failed) {
536
+ if (cleanupFailures.length > 0) {
537
+ throw new AggregateError([primaryFailure, ...cleanupFailures], signal !== undefined && signalAborted(signal)
538
+ ? 'Response cleanup failed after caller abort'
539
+ : 'Response body read failed and cleanup also failed');
540
+ }
541
+ throw primaryFailure;
542
+ }
543
+ if (cleanupFailures.length === 1)
544
+ throw cleanupFailures[0];
545
+ if (cleanupFailures.length > 1)
546
+ throw new AggregateError(cleanupFailures, 'Response body cleanup failed');
547
+ throwIfSignalAborted(signal);
548
+ try {
549
+ return new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(Buffer.concat(chunks));
550
+ }
551
+ catch {
552
+ throw integrityError();
553
+ }
554
+ }
555
+ function parseJson(text) {
556
+ try {
557
+ return parseStrictJson(text, { allowTrailingComma: false, disallowComments: true, allowEmptyContent: false }, 'Server response is not valid JSON with unique keys');
558
+ }
559
+ catch (error) {
560
+ if (isExactKiokukoError(error) && error.code === 'VALIDATION_ERROR')
561
+ throw integrityError();
562
+ throw error;
563
+ }
564
+ }
565
+ function validateHealthResponse(value) {
566
+ if (!isPlainObject(value))
567
+ throw integrityError();
568
+ assertExactKeys(value, ['ok']);
569
+ if (value.ok !== true)
570
+ throw integrityError();
571
+ return { ok: true };
572
+ }
573
+ function validateSuccessResponse(value, operation) {
574
+ if (!isPlainObject(value))
575
+ throw integrityError();
576
+ assertExactKeys(value, ['apiVersion', 'ok', 'operation', 'data', 'meta']);
577
+ if (value.apiVersion !== '1' || value.ok !== true || value.operation !== operation
578
+ || !Object.prototype.hasOwnProperty.call(value, 'data'))
579
+ throw integrityError();
580
+ if (Object.prototype.hasOwnProperty.call(value, 'meta') && !isPlainObject(value.meta))
581
+ throw integrityError();
582
+ return value.data;
583
+ }
584
+ function expectedErrorMessage(code, status) {
585
+ switch (code) {
586
+ case 'AUTHENTICATION_ERROR': return 'Authorization is invalid';
587
+ case 'NOT_FOUND': return 'Endpoint not found';
588
+ case 'USAGE_ERROR':
589
+ case 'VALIDATION_ERROR': return 'Request is invalid';
590
+ case 'CONFLICT': return 'Request conflicts with current state';
591
+ case 'BACKPRESSURE': return 'Service is busy';
592
+ case 'SERVICE_UNAVAILABLE': return 'Service unavailable';
593
+ case 'DATABASE_ERROR': return status === 503 ? 'Database unavailable' : 'Unexpected server error';
594
+ case 'SECURITY_REJECTION': return 'Request rejected';
595
+ case 'INTEGRITY_ERROR': return 'Internal integrity error';
596
+ case 'PARTIAL_FAILURE':
597
+ case 'NOT_IMPLEMENTED': throw integrityError();
598
+ }
599
+ }
600
+ function validateErrorResponse(value, operation, status) {
601
+ if (!isPlainObject(value))
602
+ throw integrityError();
603
+ assertExactKeys(value, ['apiVersion', 'ok', 'operation', 'error']);
604
+ if (value.apiVersion !== '1' || value.ok !== false || value.operation !== operation || !isPlainObject(value.error)) {
605
+ throw integrityError();
606
+ }
607
+ assertExactKeys(value.error, ['code', 'message', 'details']);
608
+ if (!isErrorCode(value.error.code))
609
+ throw integrityError();
610
+ if (!ERROR_STATUS[value.error.code].includes(status) || !isPlainObject(value.error.details))
611
+ throw integrityError();
612
+ const message = expectedErrorMessage(value.error.code, status);
613
+ if (value.error.message !== message)
614
+ throw integrityError();
615
+ if (value.error.code === 'BACKPRESSURE') {
616
+ assertExactKeys(value.error.details, ['retryAfterSeconds']);
617
+ if (typeof value.error.details.retryAfterSeconds !== 'number'
618
+ || !Number.isSafeInteger(value.error.details.retryAfterSeconds)
619
+ || value.error.details.retryAfterSeconds < 1 || value.error.details.retryAfterSeconds > 60)
620
+ throw integrityError();
621
+ }
622
+ else {
623
+ assertExactKeys(value.error.details, []);
624
+ }
625
+ return {
626
+ code: value.error.code,
627
+ message,
628
+ details: value.error.details,
629
+ };
630
+ }
631
+ function safeRetryAfter(response) {
632
+ const value = header(response, 'retry-after');
633
+ if (value === null || !/^\d{1,2}$/.test(value))
634
+ return undefined;
635
+ const seconds = Number(value);
636
+ return Number.isSafeInteger(seconds) && seconds >= 1 && seconds <= 60 ? seconds : undefined;
637
+ }
638
+ async function parseResponse(response, requestPath, operation, signal) {
639
+ if (response.status >= 200 && response.status < 300 && response.status !== 200) {
640
+ await discardResponseBody(response, signal);
641
+ throw integrityError();
642
+ }
643
+ const contentType = header(response, 'content-type') ?? '';
644
+ if (!/^application\/json(?:\s*;|\s*$)/i.test(contentType)) {
645
+ await discardResponseBody(response, signal);
646
+ throw integrityError();
647
+ }
648
+ const parsed = parseJson(await readBoundedBody(response, signal));
649
+ const isSuccess = response.status === 200;
650
+ if (requestPath === HEALTH_READY_PATH && response.status === 200)
651
+ return validateHealthResponse(parsed);
652
+ if (requestPath === HEALTH_READY_PATH && response.status === 503) {
653
+ if (!isPlainObject(parsed))
654
+ throw integrityError();
655
+ assertExactKeys(parsed, ['ok']);
656
+ if (parsed.ok !== false || hasHeader(response, 'retry-after'))
657
+ throw integrityError();
658
+ throw new KiokukoError('SERVICE_UNAVAILABLE', 'Kiokuko server is unavailable');
659
+ }
660
+ if (!isSuccess) {
661
+ const error = validateErrorResponse(parsed, operation, response.status);
662
+ const retryAfterHeader = header(response, 'retry-after');
663
+ if (error.code === 'BACKPRESSURE') {
664
+ const retryAfter = safeRetryAfter(response);
665
+ if (retryAfter === undefined || error.details.retryAfterSeconds !== retryAfter) {
666
+ throw integrityError();
667
+ }
668
+ }
669
+ else if (retryAfterHeader !== null) {
670
+ throw integrityError();
671
+ }
672
+ throw new KiokukoError(error.code, error.message, error.details);
673
+ }
674
+ return validateSuccessResponse(parsed, operation);
675
+ }
676
+ export async function createServerClient(options = {}) {
677
+ const descriptor = await readLiveRuntimeDescriptor(options);
678
+ const baseUrl = descriptor.baseUrl;
679
+ const authorizationHeader = `Bearer ${descriptor.capabilityToken}`;
680
+ const fetchImplementation = options.fetchImplementation ?? options.fetch ?? globalThis.fetch;
681
+ const request = async (input) => {
682
+ const normalized = normalizeRequestInput(input);
683
+ const method = normalized.method;
684
+ if (typeof method !== 'string' || !SERVER_METHODS.has(method))
685
+ throw validationError();
686
+ const typedMethod = method;
687
+ const operation = validateOperation(normalized.operation);
688
+ const url = validatePath(normalized.path, typedMethod, baseUrl);
689
+ const requestPath = normalized.path.split('?')[0] ?? normalized.path;
690
+ if ((READ_METHODS.has(typedMethod) && normalized.body !== undefined)
691
+ || (requestPath === HEALTH_READY_PATH && typedMethod !== 'GET')
692
+ || ((requestPath === HEALTH_READY_PATH) !== (operation === 'health.ready')))
693
+ throw validationError();
694
+ const idempotencyKey = validateIdempotencyKey(typedMethod, normalized.idempotencyKey);
695
+ const bodySnapshot = normalized.body === undefined ? undefined : jsonSnapshot(normalized.body);
696
+ if (typeof fetchImplementation !== 'function')
697
+ throw unavailableError();
698
+ const headers = {
699
+ Accept: 'application/json',
700
+ Authorization: authorizationHeader,
701
+ };
702
+ if (bodySnapshot !== undefined)
703
+ headers['Content-Type'] = 'application/json';
704
+ if (idempotencyKey !== undefined)
705
+ headers['Idempotency-Key'] = idempotencyKey;
706
+ const init = {
707
+ method: typedMethod,
708
+ headers,
709
+ ...(bodySnapshot === undefined ? {} : { body: bodySnapshot }),
710
+ ...(normalized.signal === undefined ? {} : { signal: normalized.signal }),
711
+ };
712
+ throwIfSignalAborted(normalized.signal);
713
+ let rawResponse;
714
+ try {
715
+ rawResponse = await awaitWithSignal(fetchImplementation(url, init), normalized.signal);
716
+ }
717
+ catch (error) {
718
+ throwIfSignalAborted(normalized.signal);
719
+ throwTransportOrOriginal(error);
720
+ }
721
+ throwIfSignalAborted(normalized.signal);
722
+ const response = validateFetchResponse(rawResponse);
723
+ const result = await parseResponse(response, requestPath, operation, normalized.signal);
724
+ throwIfSignalAborted(normalized.signal);
725
+ return result;
726
+ };
727
+ return Object.freeze({ request });
728
+ }
729
+ //# sourceMappingURL=server-client.js.map