@kilnai/cli 1.0.4 → 2.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 (546) hide show
  1. package/README.md +31 -8
  2. package/dist/application/__tests__/session-report.test.d.ts +2 -0
  3. package/dist/application/__tests__/session-report.test.d.ts.map +1 -0
  4. package/dist/application/__tests__/session-report.test.js +100 -0
  5. package/dist/application/__tests__/session-report.test.js.map +1 -0
  6. package/dist/application/agent-loader.d.ts +30 -2
  7. package/dist/application/agent-loader.d.ts.map +1 -1
  8. package/dist/application/agent-loader.js +99 -3
  9. package/dist/application/agent-loader.js.map +1 -1
  10. package/dist/application/agent-loader.test.js +112 -18
  11. package/dist/application/agent-loader.test.js.map +1 -1
  12. package/dist/application/agent-skill-context.d.ts +12 -0
  13. package/dist/application/agent-skill-context.d.ts.map +1 -0
  14. package/dist/application/agent-skill-context.js +32 -0
  15. package/dist/application/agent-skill-context.js.map +1 -0
  16. package/dist/application/agent-skill-context.test.d.ts +2 -0
  17. package/dist/application/agent-skill-context.test.d.ts.map +1 -0
  18. package/dist/application/agent-skill-context.test.js +156 -0
  19. package/dist/application/agent-skill-context.test.js.map +1 -0
  20. package/dist/application/benchmark-session-executor.d.ts +14 -0
  21. package/dist/application/benchmark-session-executor.d.ts.map +1 -0
  22. package/dist/application/benchmark-session-executor.js +210 -0
  23. package/dist/application/benchmark-session-executor.js.map +1 -0
  24. package/dist/application/config-apply-tool.d.ts +30 -0
  25. package/dist/application/config-apply-tool.d.ts.map +1 -0
  26. package/dist/application/config-apply-tool.js +68 -0
  27. package/dist/application/config-apply-tool.js.map +1 -0
  28. package/dist/application/config-apply.d.ts +9 -0
  29. package/dist/application/config-apply.d.ts.map +1 -0
  30. package/dist/application/config-apply.js +146 -0
  31. package/dist/application/config-apply.js.map +1 -0
  32. package/dist/application/config-approval.d.ts +10 -0
  33. package/dist/application/config-approval.d.ts.map +1 -0
  34. package/dist/application/config-approval.js +30 -0
  35. package/dist/application/config-approval.js.map +1 -0
  36. package/dist/application/config-mutation-store.d.ts +25 -0
  37. package/dist/application/config-mutation-store.d.ts.map +1 -0
  38. package/dist/application/config-mutation-store.js +59 -0
  39. package/dist/application/config-mutation-store.js.map +1 -0
  40. package/dist/application/config-proposal.d.ts +22 -0
  41. package/dist/application/config-proposal.d.ts.map +1 -0
  42. package/dist/application/config-proposal.js +395 -0
  43. package/dist/application/config-proposal.js.map +1 -0
  44. package/dist/application/config-propose-tool.d.ts +30 -0
  45. package/dist/application/config-propose-tool.d.ts.map +1 -0
  46. package/dist/application/config-propose-tool.js +63 -0
  47. package/dist/application/config-propose-tool.js.map +1 -0
  48. package/dist/application/config-read-tool.d.ts +26 -0
  49. package/dist/application/config-read-tool.d.ts.map +1 -0
  50. package/dist/application/config-read-tool.js +51 -0
  51. package/dist/application/config-read-tool.js.map +1 -0
  52. package/dist/application/config-status.d.ts +9 -0
  53. package/dist/application/config-status.d.ts.map +1 -0
  54. package/dist/application/config-status.js +361 -0
  55. package/dist/application/config-status.js.map +1 -0
  56. package/dist/application/config-tools.d.ts +3 -0
  57. package/dist/application/config-tools.d.ts.map +1 -0
  58. package/dist/application/config-tools.js +11 -0
  59. package/dist/application/config-tools.js.map +1 -0
  60. package/dist/application/context-types.d.ts +4 -17
  61. package/dist/application/context-types.d.ts.map +1 -1
  62. package/dist/application/context-types.js.map +1 -1
  63. package/dist/application/first-party-agent-defaults.d.ts +3 -0
  64. package/dist/application/first-party-agent-defaults.d.ts.map +1 -0
  65. package/dist/application/first-party-agent-defaults.js +135 -0
  66. package/dist/application/first-party-agent-defaults.js.map +1 -0
  67. package/dist/application/instruction-profile-context.d.ts +15 -0
  68. package/dist/application/instruction-profile-context.d.ts.map +1 -0
  69. package/dist/application/instruction-profile-context.js +80 -0
  70. package/dist/application/instruction-profile-context.js.map +1 -0
  71. package/dist/application/instruction-profile-loader.d.ts +20 -0
  72. package/dist/application/instruction-profile-loader.d.ts.map +1 -0
  73. package/dist/application/instruction-profile-loader.js +132 -0
  74. package/dist/application/instruction-profile-loader.js.map +1 -0
  75. package/dist/application/instruction-profile-loader.test.d.ts +2 -0
  76. package/dist/application/instruction-profile-loader.test.d.ts.map +1 -0
  77. package/dist/application/instruction-profile-loader.test.js +100 -0
  78. package/dist/application/instruction-profile-loader.test.js.map +1 -0
  79. package/dist/application/operator-theme-preferences.d.ts +11 -0
  80. package/dist/application/operator-theme-preferences.d.ts.map +1 -0
  81. package/dist/application/operator-theme-preferences.js +49 -0
  82. package/dist/application/operator-theme-preferences.js.map +1 -0
  83. package/dist/application/project-context.d.ts +22 -0
  84. package/dist/application/project-context.d.ts.map +1 -0
  85. package/dist/application/project-context.js +139 -0
  86. package/dist/application/project-context.js.map +1 -0
  87. package/dist/application/project-root-resolver.d.ts +14 -0
  88. package/dist/application/project-root-resolver.d.ts.map +1 -0
  89. package/dist/application/project-root-resolver.js +71 -0
  90. package/dist/application/project-root-resolver.js.map +1 -0
  91. package/dist/application/repo-shim-projection.d.ts +48 -0
  92. package/dist/application/repo-shim-projection.d.ts.map +1 -0
  93. package/dist/application/repo-shim-projection.js +536 -0
  94. package/dist/application/repo-shim-projection.js.map +1 -0
  95. package/dist/application/resume-sidebar-info.d.ts +9 -0
  96. package/dist/application/resume-sidebar-info.d.ts.map +1 -0
  97. package/dist/application/resume-sidebar-info.js +40 -0
  98. package/dist/application/resume-sidebar-info.js.map +1 -0
  99. package/dist/application/resume-strategy-feedback.d.ts.map +1 -1
  100. package/dist/application/resume-strategy-feedback.js +2 -1
  101. package/dist/application/resume-strategy-feedback.js.map +1 -1
  102. package/dist/application/run-session.d.ts +15 -0
  103. package/dist/application/run-session.d.ts.map +1 -1
  104. package/dist/application/run-session.js +110 -19
  105. package/dist/application/run-session.js.map +1 -1
  106. package/dist/application/runtime-session-rehydration.d.ts +9 -0
  107. package/dist/application/runtime-session-rehydration.d.ts.map +1 -0
  108. package/dist/application/runtime-session-rehydration.js +115 -0
  109. package/dist/application/runtime-session-rehydration.js.map +1 -0
  110. package/dist/application/session-context-artifacts.d.ts +19 -0
  111. package/dist/application/session-context-artifacts.d.ts.map +1 -0
  112. package/dist/application/session-context-artifacts.js +60 -0
  113. package/dist/application/session-context-artifacts.js.map +1 -0
  114. package/dist/application/session-metadata.d.ts +35 -0
  115. package/dist/application/session-metadata.d.ts.map +1 -0
  116. package/dist/application/session-metadata.js +157 -0
  117. package/dist/application/session-metadata.js.map +1 -0
  118. package/dist/application/session-report.d.ts.map +1 -1
  119. package/dist/application/session-report.js +8 -0
  120. package/dist/application/session-report.js.map +1 -1
  121. package/dist/application/session-resume.d.ts +1 -1
  122. package/dist/application/session-resume.d.ts.map +1 -1
  123. package/dist/application/session-resume.js +4 -4
  124. package/dist/application/session-resume.js.map +1 -1
  125. package/dist/application/work-governance-context.d.ts +7 -0
  126. package/dist/application/work-governance-context.d.ts.map +1 -0
  127. package/dist/application/work-governance-context.js +64 -0
  128. package/dist/application/work-governance-context.js.map +1 -0
  129. package/dist/application/work-governance-context.test.d.ts +2 -0
  130. package/dist/application/work-governance-context.test.d.ts.map +1 -0
  131. package/dist/application/work-governance-context.test.js +55 -0
  132. package/dist/application/work-governance-context.test.js.map +1 -0
  133. package/dist/application/work-governance-policy.d.ts +15 -0
  134. package/dist/application/work-governance-policy.d.ts.map +1 -0
  135. package/dist/application/work-governance-policy.js +53 -0
  136. package/dist/application/work-governance-policy.js.map +1 -0
  137. package/dist/application/work-governance-tool.d.ts +421 -0
  138. package/dist/application/work-governance-tool.d.ts.map +1 -0
  139. package/dist/application/work-governance-tool.js +937 -0
  140. package/dist/application/work-governance-tool.js.map +1 -0
  141. package/dist/application/work-governance-tool.test.d.ts +2 -0
  142. package/dist/application/work-governance-tool.test.d.ts.map +1 -0
  143. package/dist/application/work-governance-tool.test.js +935 -0
  144. package/dist/application/work-governance-tool.test.js.map +1 -0
  145. package/dist/application/work-governance-workflows.d.ts +23 -0
  146. package/dist/application/work-governance-workflows.d.ts.map +1 -0
  147. package/dist/application/work-governance-workflows.js +177 -0
  148. package/dist/application/work-governance-workflows.js.map +1 -0
  149. package/dist/application/workflow-snapshot-export.d.ts +81 -0
  150. package/dist/application/workflow-snapshot-export.d.ts.map +1 -0
  151. package/dist/application/workflow-snapshot-export.js +141 -0
  152. package/dist/application/workflow-snapshot-export.js.map +1 -0
  153. package/dist/commands/auth.d.ts.map +1 -1
  154. package/dist/commands/auth.js +242 -24
  155. package/dist/commands/auth.js.map +1 -1
  156. package/dist/commands/benchmark.d.ts +8 -0
  157. package/dist/commands/benchmark.d.ts.map +1 -0
  158. package/dist/commands/benchmark.js +287 -0
  159. package/dist/commands/benchmark.js.map +1 -0
  160. package/dist/commands/config.d.ts +1 -1
  161. package/dist/commands/config.d.ts.map +1 -1
  162. package/dist/commands/config.js +369 -39
  163. package/dist/commands/config.js.map +1 -1
  164. package/dist/commands/config.test.d.ts +2 -0
  165. package/dist/commands/config.test.d.ts.map +1 -0
  166. package/dist/commands/config.test.js +86 -0
  167. package/dist/commands/config.test.js.map +1 -0
  168. package/dist/commands/goal.d.ts +12 -0
  169. package/dist/commands/goal.d.ts.map +1 -0
  170. package/dist/commands/goal.js +469 -0
  171. package/dist/commands/goal.js.map +1 -0
  172. package/dist/commands/goal.test.d.ts +2 -0
  173. package/dist/commands/goal.test.d.ts.map +1 -0
  174. package/dist/commands/goal.test.js +317 -0
  175. package/dist/commands/goal.test.js.map +1 -0
  176. package/dist/commands/gui-options.d.ts +5 -0
  177. package/dist/commands/gui-options.d.ts.map +1 -0
  178. package/dist/commands/gui-options.js +18 -0
  179. package/dist/commands/gui-options.js.map +1 -0
  180. package/dist/commands/gui-session-detail.d.ts +4 -0
  181. package/dist/commands/gui-session-detail.d.ts.map +1 -0
  182. package/dist/commands/gui-session-detail.js +32 -0
  183. package/dist/commands/gui-session-detail.js.map +1 -0
  184. package/dist/commands/gui-session-summaries.d.ts +5 -0
  185. package/dist/commands/gui-session-summaries.d.ts.map +1 -0
  186. package/dist/commands/gui-session-summaries.js +62 -0
  187. package/dist/commands/gui-session-summaries.js.map +1 -0
  188. package/dist/commands/gui-shutdown-monitor.d.ts +8 -0
  189. package/dist/commands/gui-shutdown-monitor.d.ts.map +1 -0
  190. package/dist/commands/gui-shutdown-monitor.js +50 -0
  191. package/dist/commands/gui-shutdown-monitor.js.map +1 -0
  192. package/dist/commands/gui-window.d.ts +42 -0
  193. package/dist/commands/gui-window.d.ts.map +1 -0
  194. package/dist/commands/gui-window.js +287 -0
  195. package/dist/commands/gui-window.js.map +1 -0
  196. package/dist/commands/gui-workspace.d.ts +3 -0
  197. package/dist/commands/gui-workspace.d.ts.map +1 -0
  198. package/dist/commands/gui-workspace.js +297 -0
  199. package/dist/commands/gui-workspace.js.map +1 -0
  200. package/dist/commands/gui.d.ts +14 -0
  201. package/dist/commands/gui.d.ts.map +1 -0
  202. package/dist/commands/gui.js +392 -0
  203. package/dist/commands/gui.js.map +1 -0
  204. package/dist/commands/import-native.d.ts +34 -0
  205. package/dist/commands/import-native.d.ts.map +1 -0
  206. package/dist/commands/import-native.js +302 -0
  207. package/dist/commands/import-native.js.map +1 -0
  208. package/dist/commands/init-templates.d.ts.map +1 -1
  209. package/dist/commands/init-templates.js +13 -12
  210. package/dist/commands/init-templates.js.map +1 -1
  211. package/dist/commands/init.js +1 -1
  212. package/dist/commands/init.js.map +1 -1
  213. package/dist/commands/mcp-config.d.ts.map +1 -1
  214. package/dist/commands/mcp-config.js +6 -3
  215. package/dist/commands/mcp-config.js.map +1 -1
  216. package/dist/commands/memory.d.ts +1 -1
  217. package/dist/commands/memory.d.ts.map +1 -1
  218. package/dist/commands/memory.js +188 -39
  219. package/dist/commands/memory.js.map +1 -1
  220. package/dist/commands/project.d.ts +3 -0
  221. package/dist/commands/project.d.ts.map +1 -0
  222. package/dist/commands/project.js +64 -0
  223. package/dist/commands/project.js.map +1 -0
  224. package/dist/commands/route.d.ts +3 -0
  225. package/dist/commands/route.d.ts.map +1 -0
  226. package/dist/commands/route.js +19 -0
  227. package/dist/commands/route.js.map +1 -0
  228. package/dist/commands/run.d.ts +23 -1
  229. package/dist/commands/run.d.ts.map +1 -1
  230. package/dist/commands/run.js +416 -81
  231. package/dist/commands/run.js.map +1 -1
  232. package/dist/commands/skill-capture.js +34 -14
  233. package/dist/commands/skill-capture.js.map +1 -1
  234. package/dist/commands/skill.d.ts.map +1 -1
  235. package/dist/commands/skill.js +10 -9
  236. package/dist/commands/skill.js.map +1 -1
  237. package/dist/commands/status.d.ts +5 -1
  238. package/dist/commands/status.d.ts.map +1 -1
  239. package/dist/commands/status.js +134 -5
  240. package/dist/commands/status.js.map +1 -1
  241. package/dist/commands/sync.d.ts +8 -6
  242. package/dist/commands/sync.d.ts.map +1 -1
  243. package/dist/commands/sync.js +173 -48
  244. package/dist/commands/sync.js.map +1 -1
  245. package/dist/commands/tools.d.ts +2 -0
  246. package/dist/commands/tools.d.ts.map +1 -1
  247. package/dist/commands/tools.js +34 -15
  248. package/dist/commands/tools.js.map +1 -1
  249. package/dist/commands/tui.d.ts +6 -4
  250. package/dist/commands/tui.d.ts.map +1 -1
  251. package/dist/commands/tui.js +594 -94
  252. package/dist/commands/tui.js.map +1 -1
  253. package/dist/commands/uninstall.d.ts +13 -0
  254. package/dist/commands/uninstall.d.ts.map +1 -0
  255. package/dist/commands/uninstall.js +111 -0
  256. package/dist/commands/uninstall.js.map +1 -0
  257. package/dist/config/builtin-tool-surface-config.d.ts +6 -0
  258. package/dist/config/builtin-tool-surface-config.d.ts.map +1 -0
  259. package/dist/config/builtin-tool-surface-config.js +27 -0
  260. package/dist/config/builtin-tool-surface-config.js.map +1 -0
  261. package/dist/config/config-merger.d.ts +1 -1
  262. package/dist/config/config-merger.d.ts.map +1 -1
  263. package/dist/config/config-merger.js +21 -4
  264. package/dist/config/config-merger.js.map +1 -1
  265. package/dist/config/config-merger.test.js +202 -7
  266. package/dist/config/config-merger.test.js.map +1 -1
  267. package/dist/config/global-config.d.ts +59 -13
  268. package/dist/config/global-config.d.ts.map +1 -1
  269. package/dist/config/global-config.js +580 -5
  270. package/dist/config/global-config.js.map +1 -1
  271. package/dist/config/global-config.test.js +481 -8
  272. package/dist/config/global-config.test.js.map +1 -1
  273. package/dist/config/harness-integration-capabilities.d.ts +27 -0
  274. package/dist/config/harness-integration-capabilities.d.ts.map +1 -0
  275. package/dist/config/harness-integration-capabilities.js +64 -0
  276. package/dist/config/harness-integration-capabilities.js.map +1 -0
  277. package/dist/config/interactive-use-config.d.ts +25 -0
  278. package/dist/config/interactive-use-config.d.ts.map +1 -0
  279. package/dist/config/interactive-use-config.js +210 -0
  280. package/dist/config/interactive-use-config.js.map +1 -0
  281. package/dist/config/json-comments.d.ts +2 -0
  282. package/dist/config/json-comments.d.ts.map +1 -0
  283. package/dist/config/json-comments.js +21 -0
  284. package/dist/config/json-comments.js.map +1 -0
  285. package/dist/config/managed-agent-direct-adapters.d.ts +15 -0
  286. package/dist/config/managed-agent-direct-adapters.d.ts.map +1 -0
  287. package/dist/config/managed-agent-direct-adapters.js +54 -0
  288. package/dist/config/managed-agent-direct-adapters.js.map +1 -0
  289. package/dist/config/managed-agent-provider-models.d.ts +3 -0
  290. package/dist/config/managed-agent-provider-models.d.ts.map +1 -0
  291. package/dist/config/managed-agent-provider-models.js +12 -0
  292. package/dist/config/managed-agent-provider-models.js.map +1 -0
  293. package/dist/config/managed-agent-routes.d.ts +49 -0
  294. package/dist/config/managed-agent-routes.d.ts.map +1 -0
  295. package/dist/config/managed-agent-routes.js +578 -0
  296. package/dist/config/managed-agent-routes.js.map +1 -0
  297. package/dist/config/managed-invocation-context-resolver.d.ts +10 -0
  298. package/dist/config/managed-invocation-context-resolver.d.ts.map +1 -0
  299. package/dist/config/managed-invocation-context-resolver.js +98 -0
  300. package/dist/config/managed-invocation-context-resolver.js.map +1 -0
  301. package/dist/config/managed-invocation-context-resolver.test.d.ts +2 -0
  302. package/dist/config/managed-invocation-context-resolver.test.d.ts.map +1 -0
  303. package/dist/config/managed-invocation-context-resolver.test.js +133 -0
  304. package/dist/config/managed-invocation-context-resolver.test.js.map +1 -0
  305. package/dist/config/model-task-suitability.d.ts +9 -0
  306. package/dist/config/model-task-suitability.d.ts.map +1 -0
  307. package/dist/config/model-task-suitability.js +40 -0
  308. package/dist/config/model-task-suitability.js.map +1 -0
  309. package/dist/config/native-agent-projection.d.ts +16 -0
  310. package/dist/config/native-agent-projection.d.ts.map +1 -0
  311. package/dist/config/native-agent-projection.js +242 -0
  312. package/dist/config/native-agent-projection.js.map +1 -0
  313. package/dist/config/native-hook-projection.d.ts +11 -0
  314. package/dist/config/native-hook-projection.d.ts.map +1 -0
  315. package/dist/config/native-hook-projection.js +180 -0
  316. package/dist/config/native-hook-projection.js.map +1 -0
  317. package/dist/config/native-permission-projection.d.ts +12 -0
  318. package/dist/config/native-permission-projection.d.ts.map +1 -0
  319. package/dist/config/native-permission-projection.js +162 -0
  320. package/dist/config/native-permission-projection.js.map +1 -0
  321. package/dist/config/native-projection-backup.d.ts +8 -0
  322. package/dist/config/native-projection-backup.d.ts.map +1 -0
  323. package/dist/config/native-projection-backup.js +19 -0
  324. package/dist/config/native-projection-backup.js.map +1 -0
  325. package/dist/config/native-projection-policy.d.ts +10 -0
  326. package/dist/config/native-projection-policy.d.ts.map +1 -0
  327. package/dist/config/native-projection-policy.js +9 -0
  328. package/dist/config/native-projection-policy.js.map +1 -0
  329. package/dist/config/native-projection-state.d.ts +57 -0
  330. package/dist/config/native-projection-state.d.ts.map +1 -0
  331. package/dist/config/native-projection-state.js +199 -0
  332. package/dist/config/native-projection-state.js.map +1 -0
  333. package/dist/config/native-skill-projection.d.ts +24 -0
  334. package/dist/config/native-skill-projection.d.ts.map +1 -0
  335. package/dist/config/native-skill-projection.js +170 -0
  336. package/dist/config/native-skill-projection.js.map +1 -0
  337. package/dist/config/operator-identity-context.d.ts +7 -0
  338. package/dist/config/operator-identity-context.d.ts.map +1 -0
  339. package/dist/config/operator-identity-context.js +46 -0
  340. package/dist/config/operator-identity-context.js.map +1 -0
  341. package/dist/config/operator-identity-context.test.d.ts +2 -0
  342. package/dist/config/operator-identity-context.test.d.ts.map +1 -0
  343. package/dist/config/operator-identity-context.test.js +61 -0
  344. package/dist/config/operator-identity-context.test.js.map +1 -0
  345. package/dist/config/operator-voice.d.ts +10 -0
  346. package/dist/config/operator-voice.d.ts.map +1 -0
  347. package/dist/config/operator-voice.js +29 -0
  348. package/dist/config/operator-voice.js.map +1 -0
  349. package/dist/config/provider-route-candidates.d.ts +20 -0
  350. package/dist/config/provider-route-candidates.d.ts.map +1 -0
  351. package/dist/config/provider-route-candidates.js +211 -0
  352. package/dist/config/provider-route-candidates.js.map +1 -0
  353. package/dist/config/provider-route-candidates.test.d.ts +2 -0
  354. package/dist/config/provider-route-candidates.test.d.ts.map +1 -0
  355. package/dist/config/provider-route-candidates.test.js +150 -0
  356. package/dist/config/provider-route-candidates.test.js.map +1 -0
  357. package/dist/config/skill-registry.d.ts +9 -0
  358. package/dist/config/skill-registry.d.ts.map +1 -0
  359. package/dist/config/skill-registry.js +13 -0
  360. package/dist/config/skill-registry.js.map +1 -0
  361. package/dist/config/skill-registry.test.d.ts +2 -0
  362. package/dist/config/skill-registry.test.d.ts.map +1 -0
  363. package/dist/config/skill-registry.test.js +64 -0
  364. package/dist/config/skill-registry.test.js.map +1 -0
  365. package/dist/config/task-skill-selection.d.ts +24 -0
  366. package/dist/config/task-skill-selection.d.ts.map +1 -0
  367. package/dist/config/task-skill-selection.js +79 -0
  368. package/dist/config/task-skill-selection.js.map +1 -0
  369. package/dist/config/translators/claude-translator.d.ts +7 -0
  370. package/dist/config/translators/claude-translator.d.ts.map +1 -0
  371. package/dist/config/translators/claude-translator.js +30 -0
  372. package/dist/config/translators/claude-translator.js.map +1 -0
  373. package/dist/config/translators/codex-translator.d.ts +7 -0
  374. package/dist/config/translators/codex-translator.d.ts.map +1 -0
  375. package/dist/config/translators/codex-translator.js +20 -0
  376. package/dist/config/translators/codex-translator.js.map +1 -0
  377. package/dist/config/translators/opencode-translator.d.ts +7 -0
  378. package/dist/config/translators/opencode-translator.d.ts.map +1 -0
  379. package/dist/config/translators/opencode-translator.js +19 -0
  380. package/dist/config/translators/opencode-translator.js.map +1 -0
  381. package/dist/config/translators/permission-projection.d.ts +26 -0
  382. package/dist/config/translators/permission-projection.d.ts.map +1 -0
  383. package/dist/config/translators/permission-projection.js +22 -0
  384. package/dist/config/translators/permission-projection.js.map +1 -0
  385. package/dist/config/web-tools-config.d.ts +45 -0
  386. package/dist/config/web-tools-config.d.ts.map +1 -0
  387. package/dist/config/web-tools-config.js +846 -0
  388. package/dist/config/web-tools-config.js.map +1 -0
  389. package/dist/config.d.ts +4 -0
  390. package/dist/config.d.ts.map +1 -1
  391. package/dist/config.js.map +1 -1
  392. package/dist/engines/engine-registry.d.ts +45 -0
  393. package/dist/engines/engine-registry.d.ts.map +1 -0
  394. package/dist/engines/engine-registry.js +125 -0
  395. package/dist/engines/engine-registry.js.map +1 -0
  396. package/dist/index.d.ts +2 -2
  397. package/dist/index.d.ts.map +1 -1
  398. package/dist/index.js +141 -18
  399. package/dist/index.js.map +1 -1
  400. package/dist/kiln-yaml-types.d.ts +207 -1
  401. package/dist/kiln-yaml-types.d.ts.map +1 -1
  402. package/dist/kiln-yaml-types.js +29 -0
  403. package/dist/kiln-yaml-types.js.map +1 -1
  404. package/dist/kiln-yaml.d.ts +1 -1
  405. package/dist/kiln-yaml.d.ts.map +1 -1
  406. package/dist/kiln-yaml.js +93 -0
  407. package/dist/kiln-yaml.js.map +1 -1
  408. package/dist/mcp/config-generator.d.ts.map +1 -1
  409. package/dist/mcp/config-generator.js +8 -7
  410. package/dist/mcp/config-generator.js.map +1 -1
  411. package/dist/mcp/index.d.ts +2 -25
  412. package/dist/mcp/index.d.ts.map +1 -1
  413. package/dist/mcp/index.js +1 -103
  414. package/dist/mcp/index.js.map +1 -1
  415. package/dist/wrapper/__tests__/session-manager-context-governor.test.d.ts +2 -0
  416. package/dist/wrapper/__tests__/session-manager-context-governor.test.d.ts.map +1 -0
  417. package/dist/wrapper/__tests__/session-manager-context-governor.test.js +210 -0
  418. package/dist/wrapper/__tests__/session-manager-context-governor.test.js.map +1 -0
  419. package/dist/wrapper/claude-code-process.d.ts +1 -0
  420. package/dist/wrapper/claude-code-process.d.ts.map +1 -1
  421. package/dist/wrapper/claude-code-process.js +32 -19
  422. package/dist/wrapper/claude-code-process.js.map +1 -1
  423. package/dist/wrapper/cleanup-registry.d.ts.map +1 -1
  424. package/dist/wrapper/cleanup-registry.js +3 -1
  425. package/dist/wrapper/cleanup-registry.js.map +1 -1
  426. package/dist/wrapper/codex-session.d.ts +3 -0
  427. package/dist/wrapper/codex-session.d.ts.map +1 -1
  428. package/dist/wrapper/codex-session.js +193 -85
  429. package/dist/wrapper/codex-session.js.map +1 -1
  430. package/dist/wrapper/debug.d.ts.map +1 -1
  431. package/dist/wrapper/debug.js +2 -0
  432. package/dist/wrapper/debug.js.map +1 -1
  433. package/dist/wrapper/direct-provider-adapter-factory.d.ts +12 -0
  434. package/dist/wrapper/direct-provider-adapter-factory.d.ts.map +1 -0
  435. package/dist/wrapper/direct-provider-adapter-factory.js +99 -0
  436. package/dist/wrapper/direct-provider-adapter-factory.js.map +1 -0
  437. package/dist/wrapper/index.d.ts +0 -2
  438. package/dist/wrapper/index.d.ts.map +1 -1
  439. package/dist/wrapper/index.js +0 -1
  440. package/dist/wrapper/index.js.map +1 -1
  441. package/dist/wrapper/opencode-session.d.ts +4 -0
  442. package/dist/wrapper/opencode-session.d.ts.map +1 -1
  443. package/dist/wrapper/opencode-session.js +245 -38
  444. package/dist/wrapper/opencode-session.js.map +1 -1
  445. package/dist/wrapper/permission-evaluator.d.ts +2 -1
  446. package/dist/wrapper/permission-evaluator.d.ts.map +1 -1
  447. package/dist/wrapper/permission-evaluator.js +54 -0
  448. package/dist/wrapper/permission-evaluator.js.map +1 -1
  449. package/dist/wrapper/permission-normalizer.d.ts +5 -1
  450. package/dist/wrapper/permission-normalizer.d.ts.map +1 -1
  451. package/dist/wrapper/permission-normalizer.js +17 -0
  452. package/dist/wrapper/permission-normalizer.js.map +1 -1
  453. package/dist/wrapper/permission-policy-authorizer.d.ts +1 -1
  454. package/dist/wrapper/permission-policy-authorizer.js +1 -1
  455. package/dist/wrapper/pooled-harness-session.d.ts +24 -0
  456. package/dist/wrapper/pooled-harness-session.d.ts.map +1 -0
  457. package/dist/wrapper/pooled-harness-session.js +123 -0
  458. package/dist/wrapper/pooled-harness-session.js.map +1 -0
  459. package/dist/wrapper/preamble-builder.d.ts +4 -1
  460. package/dist/wrapper/preamble-builder.d.ts.map +1 -1
  461. package/dist/wrapper/preamble-builder.js +48 -20
  462. package/dist/wrapper/preamble-builder.js.map +1 -1
  463. package/dist/wrapper/provider-session.d.ts +25 -5
  464. package/dist/wrapper/provider-session.d.ts.map +1 -1
  465. package/dist/wrapper/provider-session.js +562 -138
  466. package/dist/wrapper/provider-session.js.map +1 -1
  467. package/dist/wrapper/session-manager.d.ts.map +1 -1
  468. package/dist/wrapper/session-manager.js +16 -5
  469. package/dist/wrapper/session-manager.js.map +1 -1
  470. package/dist/wrapper/session-registry.d.ts +11 -1
  471. package/dist/wrapper/session-registry.d.ts.map +1 -1
  472. package/dist/wrapper/session-registry.js +167 -259
  473. package/dist/wrapper/session-registry.js.map +1 -1
  474. package/dist/wrapper/session-store.d.ts +33 -10
  475. package/dist/wrapper/session-store.d.ts.map +1 -1
  476. package/dist/wrapper/session-store.js +327 -84
  477. package/dist/wrapper/session-store.js.map +1 -1
  478. package/dist/wrapper/session.d.ts +55 -2
  479. package/dist/wrapper/session.d.ts.map +1 -1
  480. package/dist/wrapper/session.js +11 -2
  481. package/dist/wrapper/session.js.map +1 -1
  482. package/package.json +6 -5
  483. package/dist/application/__tests__/plan-exit-tool.test.d.ts +0 -2
  484. package/dist/application/__tests__/plan-exit-tool.test.d.ts.map +0 -1
  485. package/dist/application/__tests__/plan-exit-tool.test.js +0 -12
  486. package/dist/application/__tests__/plan-exit-tool.test.js.map +0 -1
  487. package/dist/application/context-governor.d.ts +0 -26
  488. package/dist/application/context-governor.d.ts.map +0 -1
  489. package/dist/application/context-governor.js +0 -164
  490. package/dist/application/context-governor.js.map +0 -1
  491. package/dist/application/plan-exit-tool.d.ts +0 -19
  492. package/dist/application/plan-exit-tool.d.ts.map +0 -1
  493. package/dist/application/plan-exit-tool.js +0 -13
  494. package/dist/application/plan-exit-tool.js.map +0 -1
  495. package/dist/commands/serve.d.ts +0 -7
  496. package/dist/commands/serve.d.ts.map +0 -1
  497. package/dist/commands/serve.js +0 -24
  498. package/dist/commands/serve.js.map +0 -1
  499. package/dist/mcp/server.d.ts +0 -36
  500. package/dist/mcp/server.d.ts.map +0 -1
  501. package/dist/mcp/server.js +0 -156
  502. package/dist/mcp/server.js.map +0 -1
  503. package/dist/mcp/transports.d.ts +0 -28
  504. package/dist/mcp/transports.d.ts.map +0 -1
  505. package/dist/mcp/transports.js +0 -108
  506. package/dist/mcp/transports.js.map +0 -1
  507. package/dist/mcp-entry.d.ts +0 -3
  508. package/dist/mcp-entry.d.ts.map +0 -1
  509. package/dist/mcp-entry.js +0 -19
  510. package/dist/mcp-entry.js.map +0 -1
  511. package/dist/sync/agent-sync.d.ts +0 -13
  512. package/dist/sync/agent-sync.d.ts.map +0 -1
  513. package/dist/sync/agent-sync.js +0 -130
  514. package/dist/sync/agent-sync.js.map +0 -1
  515. package/dist/sync/agent-sync.test.d.ts +0 -2
  516. package/dist/sync/agent-sync.test.d.ts.map +0 -1
  517. package/dist/sync/agent-sync.test.js +0 -130
  518. package/dist/sync/agent-sync.test.js.map +0 -1
  519. package/dist/sync/agents-md-sync.d.ts +0 -7
  520. package/dist/sync/agents-md-sync.d.ts.map +0 -1
  521. package/dist/sync/agents-md-sync.js +0 -44
  522. package/dist/sync/agents-md-sync.js.map +0 -1
  523. package/dist/sync/agents-md-sync.test.d.ts +0 -2
  524. package/dist/sync/agents-md-sync.test.d.ts.map +0 -1
  525. package/dist/sync/agents-md-sync.test.js +0 -154
  526. package/dist/sync/agents-md-sync.test.js.map +0 -1
  527. package/dist/sync/hook-sync.d.ts +0 -8
  528. package/dist/sync/hook-sync.d.ts.map +0 -1
  529. package/dist/sync/hook-sync.js +0 -90
  530. package/dist/sync/hook-sync.js.map +0 -1
  531. package/dist/sync/security-sync.d.ts +0 -9
  532. package/dist/sync/security-sync.d.ts.map +0 -1
  533. package/dist/sync/security-sync.js +0 -161
  534. package/dist/sync/security-sync.js.map +0 -1
  535. package/dist/sync/skill-sync.d.ts +0 -10
  536. package/dist/sync/skill-sync.d.ts.map +0 -1
  537. package/dist/sync/skill-sync.js +0 -87
  538. package/dist/sync/skill-sync.js.map +0 -1
  539. package/dist/sync/skill-sync.test.d.ts +0 -2
  540. package/dist/sync/skill-sync.test.d.ts.map +0 -1
  541. package/dist/sync/skill-sync.test.js +0 -163
  542. package/dist/sync/skill-sync.test.js.map +0 -1
  543. package/dist/wrapper/executable-provider-session.d.ts +0 -26
  544. package/dist/wrapper/executable-provider-session.d.ts.map +0 -1
  545. package/dist/wrapper/executable-provider-session.js +0 -214
  546. package/dist/wrapper/executable-provider-session.js.map +0 -1
@@ -2,7 +2,37 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
3
  import { homedir } from "node:os";
4
4
  import { parse, stringify } from "yaml";
5
+ import { validateVoiceConfig } from "@kilnai/core";
5
6
  import { KilnYamlError } from "../kiln-yaml.js";
7
+ import { DEFAULT_WORK_GOVERNANCE_CONFIG } from "../kiln-yaml-types.js";
8
+ export const CANONICAL_GLOBAL_CONFIG_VERSION = "1";
9
+ const ROOT_FIELDS = new Set([
10
+ "version",
11
+ "identity",
12
+ "activeInstructionProfiles",
13
+ "workGovernance",
14
+ "engines",
15
+ "routing",
16
+ "permissions",
17
+ "mcp",
18
+ "hooks",
19
+ "models",
20
+ "managedAgents",
21
+ "modelTaskSuitability",
22
+ "web",
23
+ "ui",
24
+ "skills",
25
+ "components",
26
+ "operatorVoice",
27
+ ]);
28
+ const IDENTITY_FIELDS = new Set([
29
+ "name",
30
+ "timezone",
31
+ ]);
32
+ const GLOBAL_WEB_FIELDS = new Set([
33
+ "searchProvider",
34
+ "extractProvider",
35
+ ]);
6
36
  export function resolveGlobalConfigPath() {
7
37
  const xdgConfigHome = process.env.XDG_CONFIG_HOME;
8
38
  if (xdgConfigHome) {
@@ -18,9 +48,7 @@ export function readGlobalConfig() {
18
48
  const raw = readFileSync(configPath, "utf-8");
19
49
  try {
20
50
  const parsed = parse(raw);
21
- if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
22
- throw new KilnYamlError("Global config must be an object");
23
- }
51
+ validateGlobalConfig(parsed);
24
52
  return parsed;
25
53
  }
26
54
  catch (err) {
@@ -31,18 +59,565 @@ export function readGlobalConfig() {
31
59
  }
32
60
  }
33
61
  export function writeGlobalConfig(config) {
62
+ validateGlobalConfig(config);
34
63
  const configPath = resolveGlobalConfigPath();
35
64
  mkdirSync(dirname(configPath), { recursive: true });
36
65
  writeFileSync(configPath, stringify(config), "utf-8");
37
66
  }
38
67
  export function defaultGlobalConfig() {
39
68
  return {
40
- version: "1",
41
- provider: "claude",
69
+ version: CANONICAL_GLOBAL_CONFIG_VERSION,
70
+ engines: {
71
+ claude: { enabled: true, billing: "subscription" },
72
+ codex: { enabled: false, billing: "plus-quota" },
73
+ opencode: { enabled: false, billing: "free" },
74
+ },
75
+ routing: {
76
+ defaultWorker: "claude",
77
+ budgetAware: false,
78
+ },
42
79
  permissions: {
43
80
  approval: "on-request",
44
81
  sandbox: "read-only",
45
82
  },
83
+ skills: {
84
+ builtin: {
85
+ enabled: true,
86
+ },
87
+ },
88
+ workGovernance: DEFAULT_WORK_GOVERNANCE_CONFIG,
89
+ components: {
90
+ include: ["baseline:core"],
91
+ },
46
92
  };
47
93
  }
94
+ export function resolveGlobalDefaultProvider(config) {
95
+ if (!config) {
96
+ return undefined;
97
+ }
98
+ const firstRouteProvider = config.routing?.routes?.find((route) => route.provider.trim().length > 0)?.provider;
99
+ if (firstRouteProvider) {
100
+ return firstRouteProvider;
101
+ }
102
+ return config.routing?.defaultWorker
103
+ ?? Object.entries(config.engines ?? {}).find(([, engine]) => engine.enabled === true)?.[0];
104
+ }
105
+ export function resolveGlobalDefaultModel(config) {
106
+ if (!config) {
107
+ return undefined;
108
+ }
109
+ const firstRoute = config.routing?.routes?.find((route) => route.provider.trim().length > 0);
110
+ if (firstRoute?.model) {
111
+ return firstRoute.model;
112
+ }
113
+ const provider = resolveGlobalDefaultProvider(config);
114
+ return (provider ? config.models?.[provider] : undefined) ?? config.models?.default;
115
+ }
116
+ export function resolveGlobalUiTheme(config) {
117
+ return config?.ui?.theme;
118
+ }
119
+ export function validateGlobalConfig(config) {
120
+ if (!isRecord(config)) {
121
+ throw new KilnYamlError("Global config must be an object");
122
+ }
123
+ if (config.version !== CANONICAL_GLOBAL_CONFIG_VERSION) {
124
+ throw new KilnYamlError(`Global config version must be "${CANONICAL_GLOBAL_CONFIG_VERSION}". Recreate the canonical config through an explicit adoption flow.`);
125
+ }
126
+ for (const key of Object.keys(config)) {
127
+ if (!ROOT_FIELDS.has(key)) {
128
+ throw new KilnYamlError(`Unknown global config field: ${key}`);
129
+ }
130
+ }
131
+ validateRecordField(config, "identity");
132
+ validateRecordField(config, "workGovernance");
133
+ validateRecordField(config, "engines");
134
+ validateRecordField(config, "routing");
135
+ validateRecordField(config, "permissions");
136
+ validateRecordField(config, "mcp");
137
+ validateRecordField(config, "hooks");
138
+ validateRecordField(config, "models");
139
+ validateRecordField(config, "managedAgents");
140
+ validateRecordField(config, "web");
141
+ validateRecordField(config, "ui");
142
+ validateRecordField(config, "skills");
143
+ validateRecordField(config, "components");
144
+ validateRecordField(config, "operatorVoice");
145
+ validateIdentity(config.identity);
146
+ validateStringArray(config.activeInstructionProfiles, "activeInstructionProfiles");
147
+ validateWorkGovernance(config.workGovernance);
148
+ validateEngines(config.engines);
149
+ validateRouting(config.routing);
150
+ validateComponents(config.components);
151
+ validateOperatorVoice(config.operatorVoice);
152
+ validateManagedAgents(config.managedAgents, config.operatorVoice);
153
+ validateModelTaskSuitability(config.modelTaskSuitability);
154
+ validateSkills(config.skills);
155
+ validateGlobalWeb(config.web);
156
+ }
157
+ function validateIdentity(value) {
158
+ if (value === undefined) {
159
+ return;
160
+ }
161
+ if (!isRecord(value)) {
162
+ throw new KilnYamlError("identity must be an object");
163
+ }
164
+ for (const key of Object.keys(value)) {
165
+ if (!IDENTITY_FIELDS.has(key)) {
166
+ throw new KilnYamlError(`Unknown identity field: ${key}`);
167
+ }
168
+ }
169
+ validateOptionalNonEmptyString(value, "name", "identity.name");
170
+ validateOptionalNonEmptyString(value, "timezone", "identity.timezone");
171
+ }
172
+ function validateOptionalNonEmptyString(record, key, path) {
173
+ const value = record[key];
174
+ if (value === undefined) {
175
+ return;
176
+ }
177
+ if (typeof value !== "string" || value.trim().length === 0) {
178
+ throw new KilnYamlError(`${path} must be a non-empty string`);
179
+ }
180
+ }
181
+ function validateStringArray(value, path) {
182
+ if (value === undefined) {
183
+ return;
184
+ }
185
+ if (!Array.isArray(value) || value.some((entry) => typeof entry !== "string" || entry.trim().length === 0)) {
186
+ throw new KilnYamlError(`${path} must be an array of non-empty strings`);
187
+ }
188
+ }
189
+ function validateGlobalWeb(value) {
190
+ if (value === undefined) {
191
+ return;
192
+ }
193
+ if (!isRecord(value)) {
194
+ throw new KilnYamlError("web must be an object");
195
+ }
196
+ for (const key of Object.keys(value)) {
197
+ if (!GLOBAL_WEB_FIELDS.has(key)) {
198
+ throw new KilnYamlError(`Unknown global web field: ${key}. Put web authority in project .kiln/kiln.yaml.`);
199
+ }
200
+ }
201
+ validateOptionalRecord(value, "searchProvider", "web.searchProvider");
202
+ validateOptionalRecord(value, "extractProvider", "web.extractProvider");
203
+ }
204
+ function validateOperatorVoice(value) {
205
+ if (value === undefined) {
206
+ return;
207
+ }
208
+ if (!isRecord(value)) {
209
+ throw new KilnYamlError("operatorVoice must be an object");
210
+ }
211
+ const validationErrors = validateVoiceConfig(value);
212
+ if (validationErrors.length > 0) {
213
+ const first = validationErrors[0];
214
+ throw new KilnYamlError(`operatorVoice.${first.field} ${first.message}`);
215
+ }
216
+ }
217
+ function validateWorkGovernance(value) {
218
+ if (value === undefined) {
219
+ return;
220
+ }
221
+ if (!isRecord(value)) {
222
+ throw new KilnYamlError("workGovernance must be an object");
223
+ }
224
+ for (const key of Object.keys(value)) {
225
+ if (key !== "defaultPosture"
226
+ && key !== "directExecution"
227
+ && key !== "requireDelegationFor"
228
+ && key !== "requiredEvidence") {
229
+ throw new KilnYamlError(`Unknown workGovernance field: ${key}`);
230
+ }
231
+ }
232
+ if (value.defaultPosture !== undefined && value.defaultPosture !== "orchestrate" && value.defaultPosture !== "direct") {
233
+ throw new KilnYamlError('workGovernance.defaultPosture must be "orchestrate" or "direct"');
234
+ }
235
+ if (value.directExecution !== undefined) {
236
+ validateWorkGovernanceDirectExecution(value.directExecution);
237
+ }
238
+ const requireDelegationFor = value.requireDelegationFor;
239
+ validateOptionalStringArray(requireDelegationFor, "workGovernance.requireDelegationFor");
240
+ for (const trigger of requireDelegationFor ?? []) {
241
+ if (!isWorkGovernanceTrigger(trigger)) {
242
+ throw new KilnYamlError(`workGovernance.requireDelegationFor contains unsupported trigger: ${trigger}`);
243
+ }
244
+ }
245
+ const requiredEvidence = value.requiredEvidence;
246
+ validateOptionalStringArray(requiredEvidence, "workGovernance.requiredEvidence");
247
+ for (const evidence of requiredEvidence ?? []) {
248
+ if (!isWorkGovernanceEvidence(evidence)) {
249
+ throw new KilnYamlError(`workGovernance.requiredEvidence contains unsupported evidence: ${evidence}`);
250
+ }
251
+ }
252
+ }
253
+ function validateWorkGovernanceDirectExecution(value) {
254
+ if (!isRecord(value)) {
255
+ throw new KilnYamlError("workGovernance.directExecution must be an object");
256
+ }
257
+ for (const key of Object.keys(value)) {
258
+ if (key !== "maxFiles" && key !== "maxRisk") {
259
+ throw new KilnYamlError(`Unknown workGovernance.directExecution field: ${key}`);
260
+ }
261
+ }
262
+ const maxFiles = value.maxFiles;
263
+ if (maxFiles !== undefined && (typeof maxFiles !== "number" || !Number.isInteger(maxFiles) || maxFiles < 1)) {
264
+ throw new KilnYamlError("workGovernance.directExecution.maxFiles must be a positive integer");
265
+ }
266
+ if (value.maxRisk !== undefined && !isWorkGovernanceRisk(value.maxRisk)) {
267
+ throw new KilnYamlError('workGovernance.directExecution.maxRisk must be "low", "medium", or "high"');
268
+ }
269
+ }
270
+ function validateOptionalRecord(record, key, path) {
271
+ const value = record[key];
272
+ if (value === undefined) {
273
+ return;
274
+ }
275
+ if (!isRecord(value)) {
276
+ throw new KilnYamlError(`${path} must be an object`);
277
+ }
278
+ }
279
+ function validateEngines(value) {
280
+ if (value === undefined) {
281
+ return;
282
+ }
283
+ if (!isRecord(value)) {
284
+ throw new KilnYamlError("engines must be an object");
285
+ }
286
+ for (const [engineId, engine] of Object.entries(value)) {
287
+ if (!isRecord(engine)) {
288
+ throw new KilnYamlError(`engines.${engineId} must be an object`);
289
+ }
290
+ if (engine.enabled !== undefined && typeof engine.enabled !== "boolean") {
291
+ throw new KilnYamlError(`engines.${engineId}.enabled must be a boolean`);
292
+ }
293
+ if (engine.billing !== undefined && !isEngineBilling(engine.billing)) {
294
+ throw new KilnYamlError(`engines.${engineId}.billing has an unknown billing mode`);
295
+ }
296
+ }
297
+ }
298
+ function validateRouting(value) {
299
+ if (value === undefined) {
300
+ return;
301
+ }
302
+ if (!isRecord(value)) {
303
+ throw new KilnYamlError("routing must be an object");
304
+ }
305
+ if (value.defaultWorker !== undefined && typeof value.defaultWorker !== "string") {
306
+ throw new KilnYamlError("routing.defaultWorker must be a string");
307
+ }
308
+ if (value.fallback !== undefined && typeof value.fallback !== "string") {
309
+ throw new KilnYamlError("routing.fallback must be a string");
310
+ }
311
+ if (value.routes !== undefined) {
312
+ if (!Array.isArray(value.routes)) {
313
+ throw new KilnYamlError("routing.routes must be an array");
314
+ }
315
+ for (let index = 0; index < value.routes.length; index += 1) {
316
+ validateRoutingRoute(value.routes[index], index);
317
+ }
318
+ }
319
+ if (value.budgetAware !== undefined && typeof value.budgetAware !== "boolean") {
320
+ throw new KilnYamlError("routing.budgetAware must be a boolean");
321
+ }
322
+ if (value.budget !== undefined) {
323
+ if (!isRecord(value.budget)) {
324
+ throw new KilnYamlError("routing.budget must be an object");
325
+ }
326
+ for (const [engineId, budget] of Object.entries(value.budget)) {
327
+ if (!isRecord(budget)) {
328
+ throw new KilnYamlError(`routing.budget.${engineId} must be an object`);
329
+ }
330
+ const ceiling = budget.dailyTokenCeiling;
331
+ if (ceiling !== undefined && ceiling !== null && typeof ceiling !== "number") {
332
+ throw new KilnYamlError(`routing.budget.${engineId}.dailyTokenCeiling must be a number or null`);
333
+ }
334
+ if (budget.onCeiling !== undefined && budget.onCeiling !== "fallback" && budget.onCeiling !== "stop") {
335
+ throw new KilnYamlError(`routing.budget.${engineId}.onCeiling must be "fallback" or "stop"`);
336
+ }
337
+ }
338
+ }
339
+ }
340
+ function validateRoutingRoute(value, index) {
341
+ if (!isRecord(value)) {
342
+ throw new KilnYamlError(`routing.routes[${index}] must be an object`);
343
+ }
344
+ if (typeof value.provider !== "string" || value.provider.trim().length === 0) {
345
+ throw new KilnYamlError(`routing.routes[${index}].provider must be a non-empty string`);
346
+ }
347
+ if (value.model !== undefined && typeof value.model !== "string") {
348
+ throw new KilnYamlError(`routing.routes[${index}].model must be a string`);
349
+ }
350
+ }
351
+ function validateComponents(value) {
352
+ if (value === undefined) {
353
+ return;
354
+ }
355
+ if (!isRecord(value)) {
356
+ throw new KilnYamlError("components must be an object");
357
+ }
358
+ if (value.include !== undefined) {
359
+ if (!Array.isArray(value.include) || value.include.some((item) => typeof item !== "string")) {
360
+ throw new KilnYamlError("components.include must be an array of strings");
361
+ }
362
+ }
363
+ }
364
+ function validateSkills(value) {
365
+ if (value === undefined) {
366
+ return;
367
+ }
368
+ if (!isRecord(value)) {
369
+ throw new KilnYamlError("skills must be an object");
370
+ }
371
+ for (const key of Object.keys(value)) {
372
+ if (key !== "builtin" && key !== "selection") {
373
+ throw new KilnYamlError(`Unknown skills field: ${key}`);
374
+ }
375
+ }
376
+ if (value.builtin !== undefined) {
377
+ if (!isRecord(value.builtin)) {
378
+ throw new KilnYamlError("skills.builtin must be an object");
379
+ }
380
+ for (const key of Object.keys(value.builtin)) {
381
+ if (key !== "enabled" && key !== "include" && key !== "exclude") {
382
+ throw new KilnYamlError(`Unknown skills.builtin field: ${key}`);
383
+ }
384
+ }
385
+ if (value.builtin.enabled !== undefined && typeof value.builtin.enabled !== "boolean") {
386
+ throw new KilnYamlError("skills.builtin.enabled must be a boolean");
387
+ }
388
+ validateOptionalStringArray(value.builtin.include, "skills.builtin.include");
389
+ validateOptionalStringArray(value.builtin.exclude, "skills.builtin.exclude");
390
+ }
391
+ if (value.selection !== undefined) {
392
+ if (!isRecord(value.selection)) {
393
+ throw new KilnYamlError("skills.selection must be an object");
394
+ }
395
+ for (const key of Object.keys(value.selection)) {
396
+ if (key !== "mode") {
397
+ throw new KilnYamlError(`Unknown skills.selection field: ${key}`);
398
+ }
399
+ }
400
+ if (value.selection.mode !== undefined
401
+ && value.selection.mode !== "advisory"
402
+ && value.selection.mode !== "auto") {
403
+ throw new KilnYamlError("skills.selection.mode must be advisory or auto");
404
+ }
405
+ }
406
+ }
407
+ function validateManagedAgents(value, operatorVoice) {
408
+ if (value === undefined) {
409
+ return;
410
+ }
411
+ if (!isRecord(value)) {
412
+ throw new KilnYamlError("managedAgents must be an object");
413
+ }
414
+ validateManagedAgentVoiceProfile(value.defaultVoiceProfile, "managedAgents.defaultVoiceProfile", operatorVoice);
415
+ if (value.routes !== undefined) {
416
+ if (!Array.isArray(value.routes)) {
417
+ throw new KilnYamlError("managedAgents.routes must be an array");
418
+ }
419
+ for (let index = 0; index < value.routes.length; index += 1) {
420
+ validateManagedAgentRoute(value.routes[index], index, operatorVoice);
421
+ }
422
+ }
423
+ }
424
+ function validateManagedAgentRoute(value, index, operatorVoice) {
425
+ if (!isRecord(value)) {
426
+ throw new KilnYamlError(`managedAgents.routes[${index}] must be an object`);
427
+ }
428
+ if (typeof value.id !== "string" || value.id.trim().length === 0) {
429
+ throw new KilnYamlError(`managedAgents.routes[${index}].id is required`);
430
+ }
431
+ if (value.kind !== "harness" && value.kind !== "direct") {
432
+ throw new KilnYamlError(`managedAgents.routes[${index}].kind must be "harness" or "direct"`);
433
+ }
434
+ if (typeof value.provider !== "string" || value.provider.trim().length === 0) {
435
+ throw new KilnYamlError(`managedAgents.routes[${index}].provider is required`);
436
+ }
437
+ if (value.timeoutMs !== undefined && (typeof value.timeoutMs !== "number" || value.timeoutMs <= 0)) {
438
+ throw new KilnYamlError(`managedAgents.routes[${index}].timeoutMs must be positive`);
439
+ }
440
+ validateManagedAgentVoiceProfile(value.voiceProfile, `managedAgents.routes[${index}].voiceProfile`, operatorVoice);
441
+ validateManagedAgentWriteAuthority(value.writeAuthority, `managedAgents.routes[${index}].writeAuthority`);
442
+ }
443
+ function validateManagedAgentVoiceProfile(value, path, operatorVoice) {
444
+ if (value === undefined) {
445
+ return;
446
+ }
447
+ if (typeof value !== "string" || value.trim().length === 0) {
448
+ throw new KilnYamlError(`${path} must be a non-empty string`);
449
+ }
450
+ if (!operatorVoice?.ttsProfiles?.[value.trim()]) {
451
+ throw new KilnYamlError(`${path} references unknown operatorVoice.ttsProfiles entry "${value.trim()}"`);
452
+ }
453
+ }
454
+ function validateManagedAgentWriteAuthority(value, path) {
455
+ if (value === undefined) {
456
+ return;
457
+ }
458
+ if (!isRecord(value)) {
459
+ throw new KilnYamlError(`${path} must be an object`);
460
+ }
461
+ if (!isRecord(value.approval)) {
462
+ throw new KilnYamlError(`${path}.approval is required`);
463
+ }
464
+ if (value.approval.mode !== "required-before-apply" && value.approval.mode !== "policy-approved") {
465
+ throw new KilnYamlError(`${path}.approval.mode must be "required-before-apply" or "policy-approved"`);
466
+ }
467
+ validateOptionalStringArray(value.approval.evidenceUris, `${path}.approval.evidenceUris`);
468
+ validateManagedAgentWorkspaceWriteConfig(value.workspace, `${path}.workspace`);
469
+ validateManagedAgentMemoryWriteConfig(value.memory, `${path}.memory`);
470
+ validateManagedAgentArtifactWriteConfig(value.artifacts, `${path}.artifacts`);
471
+ validateManagedAgentToolWriteConfig(value.tools, `${path}.tools`);
472
+ }
473
+ function validateManagedAgentWorkspaceWriteConfig(value, path) {
474
+ if (value === undefined)
475
+ return;
476
+ if (!isRecord(value)) {
477
+ throw new KilnYamlError(`${path} must be an object`);
478
+ }
479
+ validateOptionalWriteMode(value.mode, `${path}.mode`);
480
+ validateOptionalStringArray(value.allowedPaths, `${path}.allowedPaths`);
481
+ validateOptionalStringArray(value.deniedPaths, `${path}.deniedPaths`);
482
+ }
483
+ function validateManagedAgentMemoryWriteConfig(value, path) {
484
+ if (value === undefined)
485
+ return;
486
+ if (!isRecord(value)) {
487
+ throw new KilnYamlError(`${path} must be an object`);
488
+ }
489
+ validateOptionalWriteMode(value.mode, `${path}.mode`);
490
+ if (value.operations !== undefined) {
491
+ if (!Array.isArray(value.operations) || value.operations.some((item) => !isManagedAgentMemoryWriteOperation(item))) {
492
+ throw new KilnYamlError(`${path}.operations contains an unsupported memory write operation`);
493
+ }
494
+ }
495
+ }
496
+ function validateManagedAgentArtifactWriteConfig(value, path) {
497
+ if (value === undefined)
498
+ return;
499
+ if (!isRecord(value)) {
500
+ throw new KilnYamlError(`${path} must be an object`);
501
+ }
502
+ validateOptionalWriteMode(value.mode, `${path}.mode`);
503
+ validateOptionalStringArray(value.resourceUris, `${path}.resourceUris`);
504
+ if (value.retention !== undefined
505
+ && value.retention !== "none"
506
+ && value.retention !== "session"
507
+ && value.retention !== "durable"
508
+ && value.retention !== "external") {
509
+ throw new KilnYamlError(`${path}.retention must be "none", "session", "durable", or "external"`);
510
+ }
511
+ }
512
+ function validateManagedAgentToolWriteConfig(value, path) {
513
+ if (value === undefined)
514
+ return;
515
+ if (!isRecord(value)) {
516
+ throw new KilnYamlError(`${path} must be an object`);
517
+ }
518
+ validateOptionalStringArray(value.allowed, `${path}.allowed`);
519
+ validateOptionalStringArray(value.denied, `${path}.denied`);
520
+ }
521
+ function validateModelTaskSuitability(value) {
522
+ if (value === undefined) {
523
+ return;
524
+ }
525
+ if (!Array.isArray(value)) {
526
+ throw new KilnYamlError("modelTaskSuitability must be an array");
527
+ }
528
+ for (let index = 0; index < value.length; index += 1) {
529
+ const entry = value[index];
530
+ if (!isRecord(entry)) {
531
+ throw new KilnYamlError(`modelTaskSuitability[${index}] must be an object`);
532
+ }
533
+ validateRequiredNonEmptyString(entry, "provider", `modelTaskSuitability[${index}].provider`);
534
+ validateRequiredNonEmptyString(entry, "model", `modelTaskSuitability[${index}].model`);
535
+ validateRequiredNonEmptyString(entry, "reason", `modelTaskSuitability[${index}].reason`);
536
+ if (!isModelTaskSuitabilityTask(entry.task)) {
537
+ throw new KilnYamlError(`modelTaskSuitability[${index}].task is not supported`);
538
+ }
539
+ if (!isModelTaskSuitabilityLevel(entry.level)) {
540
+ throw new KilnYamlError(`modelTaskSuitability[${index}].level must be "preferred", "capable", or "limited"`);
541
+ }
542
+ }
543
+ }
544
+ function validateRecordField(config, field) {
545
+ const value = config[field];
546
+ if (value !== undefined && !isRecord(value)) {
547
+ throw new KilnYamlError(`${field} must be an object`);
548
+ }
549
+ }
550
+ function validateRequiredNonEmptyString(record, key, path) {
551
+ if (typeof record[key] !== "string" || record[key].trim().length === 0) {
552
+ throw new KilnYamlError(`${path} must be a non-empty string`);
553
+ }
554
+ }
555
+ function validateOptionalStringArray(value, path) {
556
+ if (value !== undefined && (!Array.isArray(value) || value.some((item) => typeof item !== "string" || item.trim().length === 0))) {
557
+ throw new KilnYamlError(`${path} must be an array of non-empty strings`);
558
+ }
559
+ }
560
+ function validateOptionalWriteMode(value, path) {
561
+ if (value !== undefined && value !== "none" && value !== "propose" && value !== "apply-approved") {
562
+ throw new KilnYamlError(`${path} must be "none", "propose", or "apply-approved"`);
563
+ }
564
+ }
565
+ function isManagedAgentMemoryWriteOperation(value) {
566
+ return value === "create"
567
+ || value === "update"
568
+ || value === "archive"
569
+ || value === "forget"
570
+ || value === "redact"
571
+ || value === "promote";
572
+ }
573
+ function isEngineBilling(value) {
574
+ return value === "subscription"
575
+ || value === "plus-quota"
576
+ || value === "free"
577
+ || value === "api-key"
578
+ || value === "local";
579
+ }
580
+ function isModelTaskSuitabilityTask(value) {
581
+ return value === "architecture-review"
582
+ || value === "backend-coding"
583
+ || value === "frontend-design"
584
+ || value === "mechanical-edit"
585
+ || value === "research"
586
+ || value === "test-writing";
587
+ }
588
+ function isModelTaskSuitabilityLevel(value) {
589
+ return value === "preferred" || value === "capable" || value === "limited";
590
+ }
591
+ function isWorkGovernanceRisk(value) {
592
+ return value === "low" || value === "medium" || value === "high";
593
+ }
594
+ function isWorkGovernanceTrigger(value) {
595
+ return value === "architecture"
596
+ || value === "security"
597
+ || value === "ui"
598
+ || value === "runtime"
599
+ || value === "provider-routing"
600
+ || value === "managed-agents"
601
+ || value === "config"
602
+ || value === "multi-file"
603
+ || value === "cross-surface"
604
+ || value === "long-running"
605
+ || value === "verification-heavy"
606
+ || value === "formal-proof-candidate";
607
+ }
608
+ function isWorkGovernanceEvidence(value) {
609
+ return value === "surface-map"
610
+ || value === "risk-hypothesis"
611
+ || value === "spec"
612
+ || value === "plan"
613
+ || value === "tests"
614
+ || value === "typecheck"
615
+ || value === "browser-qa"
616
+ || value === "managed-agent-review"
617
+ || value === "formal-proof"
618
+ || value === "residual-risk";
619
+ }
620
+ function isRecord(value) {
621
+ return typeof value === "object" && value !== null && !Array.isArray(value);
622
+ }
48
623
  //# sourceMappingURL=global-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"global-config.js","sourceRoot":"","sources":["../../src/config/global-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA2BhD,MAAM,UAAU,uBAAuB;IACrC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAClD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,UAAU,GAAG,uBAAuB,EAAE,CAAC;IAC7C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,aAAa,CAAC,iCAAiC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,MAA0B,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;YACjC,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,aAAa,CACrB,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAwB;IACxD,MAAM,UAAU,GAAG,uBAAuB,EAAE,CAAC;IAC7C,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE;YACX,QAAQ,EAAE,YAAY;YACtB,OAAO,EAAE,WAAW;SACrB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"global-config.js","sourceRoot":"","sources":["../../src/config/global-config.ts"],"names":[],"mappings":"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"}