@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
@@ -0,0 +1,98 @@
1
+ import { homedir } from "node:os";
2
+ import { findAgent, loadAgentDefinitions } from "../application/agent-loader.js";
3
+ import { resolveInstructionProfileContextCandidates } from "../application/instruction-profile-context.js";
4
+ import { readGlobalConfig } from "./global-config.js";
5
+ import { readKilnYaml } from "../kiln-yaml.js";
6
+ import { join } from "node:path";
7
+ import { inferRouteTask } from "./provider-route-candidates.js";
8
+ import { resolveTaskSkillSelection } from "./task-skill-selection.js";
9
+ export function createManagedInvocationContextResolver(projectPath, userHome = homedir(), config = {}) {
10
+ return async (input) => {
11
+ if (input.contextMode === "fork") {
12
+ throw new Error("Managed invocation fork context is not enabled for this surface.");
13
+ }
14
+ const sections = [];
15
+ let admittedAgentProfile;
16
+ let profileSkills = [];
17
+ let agentInstructionProfiles = [];
18
+ let agentTaskAffinity = [];
19
+ if (input.agentProfile) {
20
+ const definitions = await loadAgentDefinitions(projectPath);
21
+ const agent = findAgent(definitions, input.agentProfile);
22
+ if (!agent) {
23
+ throw new Error(`Managed invocation agent profile not found: ${input.agentProfile}`);
24
+ }
25
+ admittedAgentProfile = agent.name;
26
+ profileSkills = agent.skills ?? [];
27
+ agentInstructionProfiles = agent.instructionProfiles ?? [];
28
+ agentTaskAffinity = agent.taskAffinity ?? [];
29
+ sections.push([
30
+ "## Child Agent Profile",
31
+ `name: ${agent.name}`,
32
+ agent.displayName ? `displayName: ${agent.displayName}` : undefined,
33
+ agent.nicknameCandidates?.length ? `nicknameCandidates: ${agent.nicknameCandidates.join(", ")}` : undefined,
34
+ `role: ${agent.role}`,
35
+ agent.description ? `description: ${agent.description}` : undefined,
36
+ agent.goal ? `goal: ${agent.goal}` : undefined,
37
+ agent.backstory ? `backstory: ${agent.backstory}` : undefined,
38
+ agent.tier ? `tier: ${agent.tier}` : undefined,
39
+ agent.instructionProfiles?.length ? `instructionProfiles: ${agent.instructionProfiles.join(", ")}` : undefined,
40
+ agent.instructions ? "instructions:" : undefined,
41
+ agent.instructions,
42
+ ].filter((line) => Boolean(line)).join("\n"));
43
+ }
44
+ const admittedInstructionProfiles = resolveManagedInstructionProfiles(projectPath, userHome, agentInstructionProfiles, sections, config);
45
+ const skillSelection = resolveTaskSkillSelection({
46
+ explicitSkills: unique([
47
+ ...profileSkills,
48
+ ...input.skills,
49
+ ]),
50
+ projectPath,
51
+ userHome,
52
+ skillConfig: config.skillConfig,
53
+ selection: config.skillConfig?.selection,
54
+ task: inferRouteTask({
55
+ text: input.task,
56
+ agentTaskAffinity,
57
+ }),
58
+ provider: input.providerRoute?.providerId,
59
+ model: input.providerRoute?.model,
60
+ taskSuitability: input.taskSuitability,
61
+ modelTaskSuitability: config.modelTaskSuitability,
62
+ requesterLabel: "Managed invocation",
63
+ });
64
+ for (const candidate of skillSelection.contextCandidates) {
65
+ sections.push(candidate.content);
66
+ }
67
+ return {
68
+ ...(sections.length > 0 ? { promptPrefix: sections.join("\n\n") } : {}),
69
+ ...(admittedAgentProfile ? { admittedAgentProfile } : {}),
70
+ ...(skillSelection.skillNames.length > 0 ? { admittedSkills: skillSelection.skillNames } : {}),
71
+ ...(admittedInstructionProfiles.length > 0 ? { admittedInstructionProfiles } : {}),
72
+ };
73
+ };
74
+ }
75
+ function resolveManagedInstructionProfiles(projectPath, userHome, agentInstructionProfiles, sections, config) {
76
+ const candidates = resolveInstructionProfileContextCandidates({
77
+ projectPath,
78
+ userHome,
79
+ globalConfig: config.globalConfig === undefined ? readGlobalConfig() : config.globalConfig,
80
+ projectConfig: config.projectConfig === undefined ? readKilnYaml(join(projectPath, ".kiln")) : config.projectConfig,
81
+ agent: agentInstructionProfiles.length > 0
82
+ ? { name: "managed-child", instructionProfiles: agentInstructionProfiles }
83
+ : undefined,
84
+ });
85
+ const admitted = [];
86
+ for (const candidate of candidates) {
87
+ const match = /^Instruction Profile\nname: ([^\n]+)/u.exec(candidate.content);
88
+ if (match?.[1]) {
89
+ admitted.push(match[1]);
90
+ }
91
+ sections.push(candidate.content);
92
+ }
93
+ return admitted;
94
+ }
95
+ function unique(values) {
96
+ return [...new Set(values.map((value) => value.trim()).filter((value) => value.length > 0))];
97
+ }
98
+ //# sourceMappingURL=managed-invocation-context-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-invocation-context-resolver.js","sourceRoot":"","sources":["../../src/config/managed-invocation-context-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=managed-invocation-context-resolver.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-invocation-context-resolver.test.d.ts","sourceRoot":"","sources":["../../src/config/managed-invocation-context-resolver.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,133 @@
1
+ import { afterEach, describe, expect, it } from "vitest";
2
+ import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ import { tmpdir } from "node:os";
5
+ import { createManagedInvocationContextResolver } from "./managed-invocation-context-resolver.js";
6
+ const tempRoots = [];
7
+ function createTempRoot() {
8
+ const root = mkdtempSync(join(tmpdir(), "kiln-managed-context-resolver-"));
9
+ tempRoots.push(root);
10
+ return root;
11
+ }
12
+ function writeAgent(root) {
13
+ const agentDir = join(root, ".kiln", "agents");
14
+ mkdirSync(agentDir, { recursive: true });
15
+ writeFileSync(join(agentDir, "architecture-reviewer.md"), [
16
+ "---",
17
+ "name: architecture-reviewer",
18
+ "displayName: Lloyd",
19
+ "nicknameCandidates:",
20
+ " - architecture-review",
21
+ "role: reviewer",
22
+ "goal: Review architecture",
23
+ "tier: reasoning",
24
+ "skills:",
25
+ " - ddd-review",
26
+ "---",
27
+ "",
28
+ "Review architecture boundaries.",
29
+ "",
30
+ ].join("\n"), "utf-8");
31
+ }
32
+ function writeSkill(root) {
33
+ const skillDir = join(root, ".kiln", "skills", "ddd-review");
34
+ mkdirSync(skillDir, { recursive: true });
35
+ writeFileSync(join(skillDir, "SKILL.md"), [
36
+ "---",
37
+ "name: ddd-review",
38
+ "description: Review DDD boundaries",
39
+ "---",
40
+ "",
41
+ "Check bounded contexts.",
42
+ "",
43
+ ].join("\n"), "utf-8");
44
+ }
45
+ function writeFrontendSkill(root) {
46
+ const skillDir = join(root, ".kiln", "skills", "frontend-design");
47
+ mkdirSync(skillDir, { recursive: true });
48
+ writeFileSync(join(skillDir, "SKILL.md"), [
49
+ "---",
50
+ "name: frontend-design",
51
+ "description: Frontend design implementation",
52
+ "---",
53
+ "",
54
+ "Build polished UI.",
55
+ "",
56
+ ].join("\n"), "utf-8");
57
+ }
58
+ describe("managed invocation context resolver", () => {
59
+ afterEach(() => {
60
+ for (const root of tempRoots.splice(0)) {
61
+ rmSync(root, { recursive: true, force: true });
62
+ }
63
+ });
64
+ it("resolves requested agent profile and skills into a prompt prefix", async () => {
65
+ const root = createTempRoot();
66
+ writeAgent(root);
67
+ writeSkill(root);
68
+ const resolver = createManagedInvocationContextResolver(root, root, {
69
+ globalConfig: null,
70
+ projectConfig: null,
71
+ });
72
+ const resolved = await resolver({
73
+ agentProfile: "architecture-reviewer",
74
+ skills: [],
75
+ contextMode: "isolated",
76
+ task: "Inspect architecture.",
77
+ });
78
+ expect(resolved).toMatchObject({
79
+ admittedAgentProfile: "architecture-reviewer",
80
+ admittedSkills: ["ddd-review"],
81
+ });
82
+ expect(resolved.promptPrefix).toContain("Review architecture boundaries.");
83
+ expect(resolved.promptPrefix).toContain("displayName: Lloyd");
84
+ expect(resolved.promptPrefix).toContain("nicknameCandidates: architecture-review");
85
+ expect(resolved.promptPrefix).toContain("Check bounded contexts.");
86
+ });
87
+ it("fails closed for fork mode until policy support exists", async () => {
88
+ const root = createTempRoot();
89
+ const resolver = createManagedInvocationContextResolver(root, root, {
90
+ globalConfig: null,
91
+ projectConfig: null,
92
+ });
93
+ await expect(resolver({
94
+ skills: [],
95
+ contextMode: "fork",
96
+ task: "Inspect architecture.",
97
+ })).rejects.toThrow("Managed invocation fork context is not enabled for this surface.");
98
+ });
99
+ it("auto-admits selected route recommended skills when skill selection policy allows it", async () => {
100
+ const root = createTempRoot();
101
+ writeFrontendSkill(root);
102
+ const resolver = createManagedInvocationContextResolver(root, root, {
103
+ globalConfig: null,
104
+ projectConfig: null,
105
+ skillConfig: {
106
+ selection: {
107
+ mode: "auto",
108
+ },
109
+ },
110
+ });
111
+ const resolved = await resolver({
112
+ skills: [],
113
+ contextMode: "isolated",
114
+ task: "Build a responsive React UI.",
115
+ providerRoute: {
116
+ providerId: "custom-provider",
117
+ model: "custom-model",
118
+ },
119
+ taskSuitability: [{
120
+ task: "frontend-design",
121
+ level: "preferred",
122
+ source: "live-proof",
123
+ reason: "Selected route declares frontend suitability.",
124
+ recommendedSkills: ["frontend-design"],
125
+ }],
126
+ });
127
+ expect(resolved).toMatchObject({
128
+ admittedSkills: ["frontend-design"],
129
+ });
130
+ expect(resolved.promptPrefix).toContain("Build polished UI.");
131
+ });
132
+ });
133
+ //# sourceMappingURL=managed-invocation-context-resolver.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-invocation-context-resolver.test.js","sourceRoot":"","sources":["../../src/config/managed-invocation-context-resolver.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type ModelTaskSuitability, type ModelTaskSuitabilityEvidence } from "@kilnai/core";
2
+ import type { KilnModelTaskSuitabilityOverride } from "../kiln-yaml-types.js";
3
+ export declare function resolveConfiguredModelTaskSuitability(input: {
4
+ readonly provider: string;
5
+ readonly model: string;
6
+ readonly overrides?: readonly KilnModelTaskSuitabilityOverride[];
7
+ readonly liveProof?: ModelTaskSuitabilityEvidence;
8
+ }): readonly ModelTaskSuitability[];
9
+ //# sourceMappingURL=model-task-suitability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-task-suitability.d.ts","sourceRoot":"","sources":["../../src/config/model-task-suitability.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EAElC,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AAI9E,wBAAgB,qCAAqC,CACnD,KAAK,EAAE;IACL,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,gCAAgC,EAAE,CAAC;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,4BAA4B,CAAC;CACnD,GACA,SAAS,oBAAoB,EAAE,CA2BjC"}
@@ -0,0 +1,40 @@
1
+ import { ModelCapabilityRegistry, } from "@kilnai/core";
2
+ const MODEL_CAPABILITIES = new ModelCapabilityRegistry();
3
+ export function resolveConfiguredModelTaskSuitability(input) {
4
+ const merged = new Map();
5
+ for (const entry of MODEL_CAPABILITIES.taskSuitability(input.provider, input.model)) {
6
+ merged.set(entry.task, appendSuitabilityEvidence(entry, input.liveProof));
7
+ }
8
+ for (const override of input.overrides ?? []) {
9
+ if (override.provider !== input.provider || override.model !== input.model) {
10
+ continue;
11
+ }
12
+ const existing = merged.get(override.task);
13
+ merged.set(override.task, {
14
+ task: override.task,
15
+ level: override.level,
16
+ source: "operator-override",
17
+ reason: override.reason,
18
+ ...(existing?.recommendedSkills ? { recommendedSkills: existing.recommendedSkills } : {}),
19
+ evidence: [
20
+ {
21
+ source: "operator-override",
22
+ status: "declared",
23
+ summary: override.reason,
24
+ },
25
+ ...(input.liveProof ? [input.liveProof] : []),
26
+ ],
27
+ });
28
+ }
29
+ return [...merged.values()];
30
+ }
31
+ function appendSuitabilityEvidence(entry, evidence) {
32
+ if (!evidence) {
33
+ return entry;
34
+ }
35
+ return {
36
+ ...entry,
37
+ evidence: [...(entry.evidence ?? []), evidence],
38
+ };
39
+ }
40
+ //# sourceMappingURL=model-task-suitability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-task-suitability.js","sourceRoot":"","sources":["../../src/config/model-task-suitability.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,GAIxB,MAAM,cAAc,CAAC;AAGtB,MAAM,kBAAkB,GAAG,IAAI,uBAAuB,EAAE,CAAC;AAEzD,MAAM,UAAU,qCAAqC,CACnD,KAKC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkD,CAAC;IACzE,KAAK,MAAM,KAAK,IAAI,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACpF,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAC7C,IAAI,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;YAC3E,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;YACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,mBAAmB;YAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzF,QAAQ,EAAE;gBACR;oBACE,MAAM,EAAE,mBAAmB;oBAC3B,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,QAAQ,CAAC,MAAM;iBACzB;gBACD,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9C;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,yBAAyB,CAChC,KAA2B,EAC3B,QAAkD;IAElD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO;QACL,GAAG,KAAK;QACR,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC;KAChD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { KilnAgentDefinition } from "../application/agent-loader.js";
2
+ import { type NativeProjectionSyncOptions } from "./native-projection-policy.js";
3
+ export interface NativeAgentProjectionResult {
4
+ claude: boolean;
5
+ codex: boolean;
6
+ opencode: boolean;
7
+ synced: number;
8
+ errors: string[];
9
+ }
10
+ export interface NativeAgentProjectionOptions extends NativeProjectionSyncOptions {
11
+ }
12
+ export declare function agentToClaudeMd(agent: KilnAgentDefinition): string;
13
+ export declare function agentToCodexToml(agent: KilnAgentDefinition): string;
14
+ export declare function agentToOpenCodeMd(agent: KilnAgentDefinition): string;
15
+ export declare function syncNativeAgentProjections(projectPath: string, options?: NativeAgentProjectionOptions): Promise<NativeAgentProjectionResult>;
16
+ //# sourceMappingURL=native-agent-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-agent-projection.d.ts","sourceRoot":"","sources":["../../src/config/native-agent-projection.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAW1E,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,4BAA6B,SAAQ,2BAA2B;CAAG;AAwBpF,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAiDlE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAqBnE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CA8BpE;AAwBD,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,2BAA2B,CAAC,CAyFtC"}
@@ -0,0 +1,242 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import os from "node:os";
3
+ import { join } from "node:path";
4
+ import { stringify } from "yaml";
5
+ import { loadAgentDefinitions } from "../application/agent-loader.js";
6
+ import { createNativeProjectionFileSnapshot, detectNativeProjectionFileDrift, readNativeProjectionInstallState, upsertNativeProjectionTargetState, writeNativeProjectionInstallState, } from "./native-projection-state.js";
7
+ import { backupNativeProjectionFile } from "./native-projection-backup.js";
8
+ import { isNativeProjectionHarnessDisabled, } from "./native-projection-policy.js";
9
+ function escapeTomlString(value) {
10
+ return value.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"");
11
+ }
12
+ function escapeTomlMultiline(value) {
13
+ return value.replaceAll("\"\"\"", "\\\"\\\"\\\"");
14
+ }
15
+ export function agentToClaudeMd(agent) {
16
+ const frontmatter = {
17
+ name: agent.name,
18
+ role: agent.role,
19
+ };
20
+ if (agent.displayName) {
21
+ frontmatter.displayName = agent.displayName;
22
+ }
23
+ if (agent.nicknameCandidates && agent.nicknameCandidates.length > 0) {
24
+ frontmatter.nicknameCandidates = [...agent.nicknameCandidates];
25
+ }
26
+ if (agent.description) {
27
+ frontmatter.description = agent.description;
28
+ }
29
+ if (agent.goal) {
30
+ frontmatter.goal = agent.goal;
31
+ }
32
+ if (agent.tools && agent.tools.length > 0) {
33
+ frontmatter.tools = [...agent.tools];
34
+ }
35
+ if (agent.model) {
36
+ frontmatter.model = agent.model;
37
+ }
38
+ if (agent.skills && agent.skills.length > 0) {
39
+ frontmatter.skills = [...agent.skills];
40
+ }
41
+ if (agent.taskAffinity && agent.taskAffinity.length > 0) {
42
+ frontmatter.taskAffinity = [...agent.taskAffinity];
43
+ }
44
+ if (agent.instructionProfiles && agent.instructionProfiles.length > 0) {
45
+ frontmatter.instructionProfiles = [...agent.instructionProfiles];
46
+ }
47
+ if (agent.mode) {
48
+ frontmatter.mode = agent.mode;
49
+ }
50
+ const yamlFrontmatter = stringify(frontmatter).trimEnd();
51
+ const body = agent.instructions ?? "";
52
+ return `---\n${yamlFrontmatter}\n---\n${body}`;
53
+ }
54
+ export function agentToCodexToml(agent) {
55
+ const instructions = buildNativeAgentInstructions(agent);
56
+ const lines = [
57
+ `name = "${escapeTomlString(agent.name)}"`,
58
+ `description = "${escapeTomlString(agent.description ?? agent.role)}"`,
59
+ `developer_instructions = """${escapeTomlMultiline(instructions)}"""`,
60
+ ];
61
+ if (agent.model) {
62
+ lines.push(`model = "${escapeTomlString(agent.model)}"`);
63
+ }
64
+ const nicknameCandidates = nativeNicknameCandidates(agent);
65
+ if (nicknameCandidates.length > 0) {
66
+ const renderedNicknames = nicknameCandidates
67
+ .map((nickname) => `"${escapeTomlString(nickname)}"`)
68
+ .join(", ");
69
+ lines.push(`nickname_candidates = [${renderedNicknames}]`);
70
+ }
71
+ return `${lines.join("\n")}\n`;
72
+ }
73
+ export function agentToOpenCodeMd(agent) {
74
+ const frontmatter = {
75
+ name: agent.name,
76
+ description: agent.description ?? agent.role,
77
+ };
78
+ if (agent.displayName) {
79
+ frontmatter.displayName = agent.displayName;
80
+ }
81
+ if (agent.nicknameCandidates && agent.nicknameCandidates.length > 0) {
82
+ frontmatter.nicknameCandidates = [...agent.nicknameCandidates];
83
+ }
84
+ if (agent.model) {
85
+ frontmatter.model = agent.model;
86
+ }
87
+ if (agent.mode) {
88
+ frontmatter.mode = agent.mode;
89
+ }
90
+ if (agent.skills && agent.skills.length > 0) {
91
+ frontmatter.skills = [...agent.skills];
92
+ }
93
+ if (agent.taskAffinity && agent.taskAffinity.length > 0) {
94
+ frontmatter.taskAffinity = [...agent.taskAffinity];
95
+ }
96
+ if (agent.instructionProfiles && agent.instructionProfiles.length > 0) {
97
+ frontmatter.instructionProfiles = [...agent.instructionProfiles];
98
+ }
99
+ const yamlFrontmatter = stringify(frontmatter).trimEnd();
100
+ const body = buildNativeAgentInstructions(agent);
101
+ return `---\n${yamlFrontmatter}\n---\n${body}`;
102
+ }
103
+ function buildNativeAgentInstructions(agent) {
104
+ return [
105
+ agent.displayName ? `Display name: ${agent.displayName}` : undefined,
106
+ `Goal: ${agent.goal}`,
107
+ agent.backstory ? `Backstory: ${agent.backstory}` : undefined,
108
+ agent.instructionProfiles?.length ? `Instruction profiles: ${agent.instructionProfiles.join(", ")}` : undefined,
109
+ agent.taskAffinity?.length ? `Task affinity: ${agent.taskAffinity.join(", ")}` : undefined,
110
+ agent.instructions,
111
+ ].filter((line) => Boolean(line)).join("\n\n");
112
+ }
113
+ function nativeNicknameCandidates(agent) {
114
+ const nicknames = new Set();
115
+ if (agent.displayName) {
116
+ nicknames.add(agent.displayName);
117
+ }
118
+ for (const nickname of agent.nicknameCandidates ?? []) {
119
+ nicknames.add(nickname);
120
+ }
121
+ return [...nicknames];
122
+ }
123
+ export async function syncNativeAgentProjections(projectPath, options = {}) {
124
+ const errors = [];
125
+ let synced = 0;
126
+ const kilnDir = join(projectPath, ".kiln");
127
+ let installState = readNativeProjectionInstallState(kilnDir);
128
+ let agents;
129
+ try {
130
+ agents = await loadAgentDefinitions(projectPath);
131
+ }
132
+ catch (error) {
133
+ const message = error instanceof Error ? error.message : String(error);
134
+ return {
135
+ claude: false,
136
+ codex: false,
137
+ opencode: false,
138
+ synced: 0,
139
+ errors: [`Agent load failed: ${message}`],
140
+ };
141
+ }
142
+ if (agents.length === 0) {
143
+ return { claude: true, codex: true, opencode: true, synced: 0, errors: [] };
144
+ }
145
+ const targets = [
146
+ {
147
+ key: "claude",
148
+ label: "Claude Code",
149
+ dir: join(os.homedir(), ".claude", "agents"),
150
+ extension: "md",
151
+ render: agentToClaudeMd,
152
+ },
153
+ {
154
+ key: "codex",
155
+ label: "Codex",
156
+ dir: join(os.homedir(), ".codex", "agents"),
157
+ extension: "toml",
158
+ render: agentToCodexToml,
159
+ },
160
+ {
161
+ key: "opencode",
162
+ label: "OpenCode",
163
+ dir: join(os.homedir(), ".config", "opencode", "agents"),
164
+ extension: "md",
165
+ render: agentToOpenCodeMd,
166
+ },
167
+ ];
168
+ let claude = true;
169
+ let codex = true;
170
+ let opencode = true;
171
+ const setTargetFailed = (targetKey) => {
172
+ if (targetKey === "claude") {
173
+ claude = false;
174
+ return;
175
+ }
176
+ if (targetKey === "codex") {
177
+ codex = false;
178
+ return;
179
+ }
180
+ opencode = false;
181
+ };
182
+ for (const target of targets.filter((target) => !isNativeProjectionHarnessDisabled(options, target.key))) {
183
+ try {
184
+ mkdirSync(target.dir, { recursive: true });
185
+ }
186
+ catch (error) {
187
+ setTargetFailed(target.key);
188
+ errors.push(`${target.label} mkdir failed: ${error instanceof Error ? error.message : String(error)}`);
189
+ }
190
+ for (const agent of agents) {
191
+ const result = syncAgentFile(agent, target, kilnDir, installState, options);
192
+ if (!result.ok) {
193
+ setTargetFailed(target.key);
194
+ errors.push(`${target.label} agent "${agent.name}" failed: ${result.error ?? "unknown error"}`);
195
+ continue;
196
+ }
197
+ if (result.snapshot) {
198
+ installState = upsertNativeProjectionTargetState(installState, result.snapshot);
199
+ }
200
+ synced += 1;
201
+ }
202
+ }
203
+ writeNativeProjectionInstallState(kilnDir, installState);
204
+ return { claude, codex, opencode, synced, errors };
205
+ }
206
+ function syncAgentFile(agent, target, kilnDir, installState, options) {
207
+ const filePath = join(target.dir, `${agent.name}.${target.extension}`);
208
+ const targetId = `${target.key}-agent:${agent.name}`;
209
+ try {
210
+ if (existsSync(filePath)) {
211
+ const drift = detectNativeProjectionFileDrift({
212
+ targetId,
213
+ state: installState,
214
+ currentContent: readFileSync(filePath, "utf-8"),
215
+ });
216
+ if (drift && !options.force) {
217
+ return {
218
+ ok: false,
219
+ error: `managed file drift detected: ${drift.driftedFields.join(", ")}`,
220
+ };
221
+ }
222
+ }
223
+ const content = target.render(agent);
224
+ backupNativeProjectionFile({ kilnDir, targetId, filePath });
225
+ writeFileSync(filePath, content, "utf-8");
226
+ return {
227
+ ok: true,
228
+ snapshot: createNativeProjectionFileSnapshot({
229
+ targetId,
230
+ filePath,
231
+ content,
232
+ }),
233
+ };
234
+ }
235
+ catch (error) {
236
+ return {
237
+ ok: false,
238
+ error: error instanceof Error ? error.message : String(error),
239
+ };
240
+ }
241
+ }
242
+ //# sourceMappingURL=native-agent-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-agent-projection.js","sourceRoot":"","sources":["../../src/config/native-agent-projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EACL,kCAAkC,EAClC,+BAA+B,EAC/B,gCAAgC,EAChC,iCAAiC,EACjC,iCAAiC,GAGlC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EACL,iCAAiC,GAElC,MAAM,+BAA+B,CAAC;AA0BvC,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAA0B;IACxD,MAAM,WAAW,GAA4B;QAC3C,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;IAEF,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IAC9C,CAAC;IAED,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,WAAW,CAAC,kBAAkB,GAAG,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IAC9C,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,WAAW,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,WAAW,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtE,WAAW,CAAC,mBAAmB,GAAG,CAAC,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,MAAM,eAAe,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;IACzD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;IACtC,OAAO,QAAQ,eAAe,UAAU,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAA0B;IACzD,MAAM,YAAY,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG;QACZ,WAAW,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;QAC1C,kBAAkB,gBAAgB,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG;QACtE,+BAA+B,mBAAmB,CAAC,YAAY,CAAC,KAAK;KACtE,CAAC;IAEF,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,YAAY,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,iBAAiB,GAAG,kBAAkB;aACzC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC;aACpD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,0BAA0B,iBAAiB,GAAG,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAA0B;IAC1D,MAAM,WAAW,GAA4B;QAC3C,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI;KAC7C,CAAC;IACF,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IAC9C,CAAC;IACD,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,WAAW,CAAC,kBAAkB,GAAG,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAClC,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAChC,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,WAAW,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtE,WAAW,CAAC,mBAAmB,GAAG,CAAC,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,eAAe,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;IACzD,MAAM,IAAI,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACjD,OAAO,QAAQ,eAAe,UAAU,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,4BAA4B,CAAC,KAA0B;IAC9D,OAAO;QACL,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;QACpE,SAAS,KAAK,CAAC,IAAI,EAAE;QACrB,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS;QAC7D,KAAK,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,yBAAyB,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QAC/G,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QAC1F,KAAK,CAAC,YAAY;KACnB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,wBAAwB,CAAC,KAA0B;IAC1D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,kBAAkB,IAAI,EAAE,EAAE,CAAC;QACtD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,WAAmB,EACnB,UAAwC,EAAE;IAE1C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,YAAY,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;IAE7D,IAAI,MAA6B,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC,sBAAsB,OAAO,EAAE,CAAC;SAC1C,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC9E,CAAC;IAED,MAAM,OAAO,GAAkC;QAC7C;YACE,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,aAAa;YACpB,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC;YAC5C,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,eAAe;SACxB;QACD;YACE,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC;YAC3C,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,gBAAgB;SACzB;QACD;YACE,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,UAAU;YACjB,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC;YACxD,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,iBAAiB;SAC1B;KACF,CAAC;IAEF,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,MAAM,eAAe,GAAG,CAAC,SAA6C,EAAQ,EAAE;QAC9E,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,GAAG,KAAK,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,KAAK,GAAG,KAAK,CAAC;YACd,OAAO;QACT,CAAC;QACD,QAAQ,GAAG,KAAK,CAAC;IACnB,CAAC,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,iCAAiC,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACzG,IAAI,CAAC;YACH,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,kBAAkB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzG,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAC5E,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,WAAW,KAAK,CAAC,IAAI,aAAa,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;gBAChG,SAAS;YACX,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,YAAY,GAAG,iCAAiC,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClF,CAAC;YACD,MAAM,IAAI,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,iCAAiC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEzD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,aAAa,CACpB,KAA0B,EAC1B,MAAmC,EACnC,OAAe,EACf,YAA0C,EAC1C,OAAqC;IAErC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,GAAG,UAAU,KAAK,CAAC,IAAI,EAAE,CAAC;IACrD,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,+BAA+B,CAAC;gBAC5C,QAAQ;gBACR,KAAK,EAAE,YAAY;gBACnB,cAAc,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;aAChD,CAAC,CAAC;YACH,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC5B,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,gCAAgC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBACxE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,0BAA0B,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5D,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,OAAO;YACL,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,kCAAkC,CAAC;gBAC3C,QAAQ;gBACR,QAAQ;gBACR,OAAO;aACR,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type NativeProjectionSyncOptions } from "./native-projection-policy.js";
2
+ export interface NativeHookProjectionResult {
3
+ claudeHook: boolean;
4
+ codexHook: boolean;
5
+ skippedWindows: boolean;
6
+ errors: string[];
7
+ }
8
+ export interface NativeHookProjectionOptions extends NativeProjectionSyncOptions {
9
+ }
10
+ export declare function syncNativeHookProjections(projectPath: string, kilnDir: string, options?: NativeHookProjectionOptions): Promise<NativeHookProjectionResult>;
11
+ //# sourceMappingURL=native-hook-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-hook-projection.d.ts","sourceRoot":"","sources":["../../src/config/native-hook-projection.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,+BAA+B,CAAC;AAmBvC,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,2BAA4B,SAAQ,2BAA2B;CAAG;AAcnF,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,0BAA0B,CAAC,CAsDrC"}