mewkit 1.14.0 → 1.15.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 (392) hide show
  1. package/README.md +7 -0
  2. package/dist/commands/capabilities.d.ts +13 -0
  3. package/dist/commands/capabilities.d.ts.map +1 -0
  4. package/dist/commands/capabilities.js +230 -0
  5. package/dist/commands/capabilities.js.map +1 -0
  6. package/dist/commands/context.d.ts +10 -0
  7. package/dist/commands/context.d.ts.map +1 -0
  8. package/dist/commands/context.js +125 -0
  9. package/dist/commands/context.js.map +1 -0
  10. package/dist/commands/doctor.d.ts +27 -0
  11. package/dist/commands/doctor.d.ts.map +1 -1
  12. package/dist/commands/doctor.js +123 -0
  13. package/dist/commands/doctor.js.map +1 -1
  14. package/dist/commands/providers.d.ts +2 -0
  15. package/dist/commands/providers.d.ts.map +1 -1
  16. package/dist/commands/providers.js +77 -0
  17. package/dist/commands/providers.js.map +1 -1
  18. package/dist/commands/task-state.d.ts +13 -0
  19. package/dist/commands/task-state.d.ts.map +1 -0
  20. package/dist/commands/task-state.js +106 -0
  21. package/dist/commands/task-state.js.map +1 -0
  22. package/dist/commands/validate.d.ts +48 -1
  23. package/dist/commands/validate.d.ts.map +1 -1
  24. package/dist/commands/validate.js +97 -24
  25. package/dist/commands/validate.js.map +1 -1
  26. package/dist/core/availability.d.ts +40 -0
  27. package/dist/core/availability.d.ts.map +1 -0
  28. package/dist/core/availability.js +47 -0
  29. package/dist/core/availability.js.map +1 -0
  30. package/dist/core/bootstrap.d.ts +19 -0
  31. package/dist/core/bootstrap.d.ts.map +1 -0
  32. package/dist/core/bootstrap.js +42 -0
  33. package/dist/core/bootstrap.js.map +1 -0
  34. package/dist/core/build-capabilities.d.ts +9 -0
  35. package/dist/core/build-capabilities.d.ts.map +1 -0
  36. package/dist/core/build-capabilities.js +123 -0
  37. package/dist/core/build-capabilities.js.map +1 -0
  38. package/dist/core/build-inventory.d.ts +2 -0
  39. package/dist/core/build-inventory.d.ts.map +1 -1
  40. package/dist/core/build-inventory.js +1 -1
  41. package/dist/core/build-inventory.js.map +1 -1
  42. package/dist/core/capability-authored.d.ts +26 -0
  43. package/dist/core/capability-authored.d.ts.map +1 -0
  44. package/dist/core/capability-authored.js +117 -0
  45. package/dist/core/capability-authored.js.map +1 -0
  46. package/dist/core/capability-snapshot.d.ts +13 -0
  47. package/dist/core/capability-snapshot.d.ts.map +1 -0
  48. package/dist/core/capability-snapshot.js +53 -0
  49. package/dist/core/capability-snapshot.js.map +1 -0
  50. package/dist/core/capability.d.ts +519 -0
  51. package/dist/core/capability.d.ts.map +1 -0
  52. package/dist/core/capability.js +114 -0
  53. package/dist/core/capability.js.map +1 -0
  54. package/dist/core/compute-checksums.d.ts.map +1 -1
  55. package/dist/core/compute-checksums.js +8 -2
  56. package/dist/core/compute-checksums.js.map +1 -1
  57. package/dist/core/consolidation-ledger.d.ts +30 -0
  58. package/dist/core/consolidation-ledger.d.ts.map +1 -0
  59. package/dist/core/consolidation-ledger.js +145 -0
  60. package/dist/core/consolidation-ledger.js.map +1 -0
  61. package/dist/core/generate-capability-view.d.ts +21 -0
  62. package/dist/core/generate-capability-view.d.ts.map +1 -0
  63. package/dist/core/generate-capability-view.js +48 -0
  64. package/dist/core/generate-capability-view.js.map +1 -0
  65. package/dist/core/install-metadata.d.ts +47 -30
  66. package/dist/core/install-metadata.d.ts.map +1 -1
  67. package/dist/core/install-metadata.js +49 -9
  68. package/dist/core/install-metadata.js.map +1 -1
  69. package/dist/core/plugin-manifest.d.ts +16 -16
  70. package/dist/core/provider-adapter.d.ts +28 -0
  71. package/dist/core/provider-adapter.d.ts.map +1 -0
  72. package/dist/core/provider-adapter.js +31 -0
  73. package/dist/core/provider-adapter.js.map +1 -0
  74. package/dist/core/provider-invocation.d.ts +14 -0
  75. package/dist/core/provider-invocation.d.ts.map +1 -0
  76. package/dist/core/provider-invocation.js +56 -0
  77. package/dist/core/provider-invocation.js.map +1 -0
  78. package/dist/core/provider-lifecycle.d.ts +35 -0
  79. package/dist/core/provider-lifecycle.d.ts.map +1 -0
  80. package/dist/core/provider-lifecycle.js +101 -0
  81. package/dist/core/provider-lifecycle.js.map +1 -0
  82. package/dist/core/provider-projection.d.ts +29 -0
  83. package/dist/core/provider-projection.d.ts.map +1 -0
  84. package/dist/core/provider-projection.js +47 -0
  85. package/dist/core/provider-projection.js.map +1 -0
  86. package/dist/core/release-metadata.d.ts +9 -2
  87. package/dist/core/release-metadata.d.ts.map +1 -1
  88. package/dist/core/release-metadata.js +13 -0
  89. package/dist/core/release-metadata.js.map +1 -1
  90. package/dist/core/repo-context-adapter.d.ts +23 -0
  91. package/dist/core/repo-context-adapter.d.ts.map +1 -0
  92. package/dist/core/repo-context-adapter.js +44 -0
  93. package/dist/core/repo-context-adapter.js.map +1 -0
  94. package/dist/core/repo-context.d.ts +147 -0
  95. package/dist/core/repo-context.d.ts.map +1 -0
  96. package/dist/core/repo-context.js +204 -0
  97. package/dist/core/repo-context.js.map +1 -0
  98. package/dist/core/resolve-capabilities.d.ts +70 -0
  99. package/dist/core/resolve-capabilities.d.ts.map +1 -0
  100. package/dist/core/resolve-capabilities.js +124 -0
  101. package/dist/core/resolve-capabilities.js.map +1 -0
  102. package/dist/core/smart-update.d.ts.map +1 -1
  103. package/dist/core/smart-update.js +13 -12
  104. package/dist/core/smart-update.js.map +1 -1
  105. package/dist/core/task-record.d.ts +252 -0
  106. package/dist/core/task-record.d.ts.map +1 -0
  107. package/dist/core/task-record.js +252 -0
  108. package/dist/core/task-record.js.map +1 -0
  109. package/dist/core/validate-capabilities.d.ts +12 -0
  110. package/dist/core/validate-capabilities.d.ts.map +1 -0
  111. package/dist/core/validate-capabilities.js +138 -0
  112. package/dist/core/validate-capabilities.js.map +1 -0
  113. package/dist/index.js +66 -4
  114. package/dist/index.js.map +1 -1
  115. package/dist/migrate/apply-env-var-rewrites.d.ts +15 -0
  116. package/dist/migrate/apply-env-var-rewrites.d.ts.map +1 -0
  117. package/dist/migrate/apply-env-var-rewrites.js +26 -0
  118. package/dist/migrate/apply-env-var-rewrites.js.map +1 -0
  119. package/dist/migrate/capability-bootstrap-projection.d.ts +11 -0
  120. package/dist/migrate/capability-bootstrap-projection.d.ts.map +1 -0
  121. package/dist/migrate/capability-bootstrap-projection.js +48 -0
  122. package/dist/migrate/capability-bootstrap-projection.js.map +1 -0
  123. package/dist/migrate/converters/command-to-codex-skill.d.ts.map +1 -1
  124. package/dist/migrate/converters/command-to-codex-skill.js +15 -5
  125. package/dist/migrate/converters/command-to-codex-skill.js.map +1 -1
  126. package/dist/migrate/converters/fm-to-codex-toml.d.ts +4 -1
  127. package/dist/migrate/converters/fm-to-codex-toml.d.ts.map +1 -1
  128. package/dist/migrate/converters/fm-to-codex-toml.js +7 -2
  129. package/dist/migrate/converters/fm-to-codex-toml.js.map +1 -1
  130. package/dist/migrate/converters/index.js +1 -1
  131. package/dist/migrate/converters/index.js.map +1 -1
  132. package/dist/migrate/discovery/config-discovery.d.ts +29 -0
  133. package/dist/migrate/discovery/config-discovery.d.ts.map +1 -1
  134. package/dist/migrate/discovery/config-discovery.js +45 -0
  135. package/dist/migrate/discovery/config-discovery.js.map +1 -1
  136. package/dist/migrate/discovery/handlers-json-filter.d.ts.map +1 -1
  137. package/dist/migrate/discovery/handlers-json-filter.js +4 -2
  138. package/dist/migrate/discovery/handlers-json-filter.js.map +1 -1
  139. package/dist/migrate/discovery/hooks-discovery.d.ts +5 -0
  140. package/dist/migrate/discovery/hooks-discovery.d.ts.map +1 -1
  141. package/dist/migrate/discovery/hooks-discovery.js +21 -5
  142. package/dist/migrate/discovery/hooks-discovery.js.map +1 -1
  143. package/dist/migrate/hooks/codex-hook-wrapper.d.ts +15 -1
  144. package/dist/migrate/hooks/codex-hook-wrapper.d.ts.map +1 -1
  145. package/dist/migrate/hooks/codex-hook-wrapper.js +78 -7
  146. package/dist/migrate/hooks/codex-hook-wrapper.js.map +1 -1
  147. package/dist/migrate/hooks/codex-path-safety.d.ts +29 -0
  148. package/dist/migrate/hooks/codex-path-safety.d.ts.map +1 -1
  149. package/dist/migrate/hooks/codex-path-safety.js +36 -1
  150. package/dist/migrate/hooks/codex-path-safety.js.map +1 -1
  151. package/dist/migrate/hooks/codex-sh-wrapper-script.d.ts +8 -0
  152. package/dist/migrate/hooks/codex-sh-wrapper-script.d.ts.map +1 -0
  153. package/dist/migrate/hooks/codex-sh-wrapper-script.js +118 -0
  154. package/dist/migrate/hooks/codex-sh-wrapper-script.js.map +1 -0
  155. package/dist/migrate/hooks/codex-shell-env-installer.d.ts +14 -0
  156. package/dist/migrate/hooks/codex-shell-env-installer.d.ts.map +1 -0
  157. package/dist/migrate/hooks/codex-shell-env-installer.js +82 -0
  158. package/dist/migrate/hooks/codex-shell-env-installer.js.map +1 -0
  159. package/dist/migrate/hooks/codex-toml-installer.d.ts +2 -0
  160. package/dist/migrate/hooks/codex-toml-installer.d.ts.map +1 -1
  161. package/dist/migrate/hooks/codex-toml-installer.js +3 -1
  162. package/dist/migrate/hooks/codex-toml-installer.js.map +1 -1
  163. package/dist/migrate/hooks/hooks-settings-merger.d.ts +3 -0
  164. package/dist/migrate/hooks/hooks-settings-merger.d.ts.map +1 -1
  165. package/dist/migrate/hooks/hooks-settings-merger.js +152 -20
  166. package/dist/migrate/hooks/hooks-settings-merger.js.map +1 -1
  167. package/dist/migrate/migrate-orchestrator.d.ts +19 -0
  168. package/dist/migrate/migrate-orchestrator.d.ts.map +1 -1
  169. package/dist/migrate/migrate-orchestrator.js +176 -24
  170. package/dist/migrate/migrate-orchestrator.js.map +1 -1
  171. package/dist/migrate/migrate-ui-summary.d.ts +23 -0
  172. package/dist/migrate/migrate-ui-summary.d.ts.map +1 -1
  173. package/dist/migrate/migrate-ui-summary.js +24 -0
  174. package/dist/migrate/migrate-ui-summary.js.map +1 -1
  175. package/dist/migrate/model-routing-config.d.ts +3 -1
  176. package/dist/migrate/model-routing-config.d.ts.map +1 -1
  177. package/dist/migrate/model-routing-config.js +28 -0
  178. package/dist/migrate/model-routing-config.js.map +1 -1
  179. package/dist/migrate/portable-installer.d.ts +14 -1
  180. package/dist/migrate/portable-installer.d.ts.map +1 -1
  181. package/dist/migrate/portable-installer.js +110 -9
  182. package/dist/migrate/portable-installer.js.map +1 -1
  183. package/dist/migrate/providers/codex/capabilities.d.ts +5 -0
  184. package/dist/migrate/providers/codex/capabilities.d.ts.map +1 -1
  185. package/dist/migrate/providers/codex/capabilities.js +31 -0
  186. package/dist/migrate/providers/codex/capabilities.js.map +1 -1
  187. package/dist/migrate/providers/codex/config.d.ts.map +1 -1
  188. package/dist/migrate/providers/codex/config.js +8 -2
  189. package/dist/migrate/providers/codex/config.js.map +1 -1
  190. package/dist/migrate/providers/codex/shell-env-policy-emitter.d.ts +27 -0
  191. package/dist/migrate/providers/codex/shell-env-policy-emitter.d.ts.map +1 -0
  192. package/dist/migrate/providers/codex/shell-env-policy-emitter.js +86 -0
  193. package/dist/migrate/providers/codex/shell-env-policy-emitter.js.map +1 -0
  194. package/dist/migrate/reconcile/index.d.ts +1 -1
  195. package/dist/migrate/reconcile/index.d.ts.map +1 -1
  196. package/dist/migrate/reconcile/index.js +1 -1
  197. package/dist/migrate/reconcile/index.js.map +1 -1
  198. package/dist/migrate/reconcile/portable-manifest.d.ts +6 -0
  199. package/dist/migrate/reconcile/portable-manifest.d.ts.map +1 -1
  200. package/dist/migrate/reconcile/portable-manifest.js +23 -0
  201. package/dist/migrate/reconcile/portable-manifest.js.map +1 -1
  202. package/dist/migrate/reconcile/reconcile-state-builders.d.ts +12 -5
  203. package/dist/migrate/reconcile/reconcile-state-builders.d.ts.map +1 -1
  204. package/dist/migrate/reconcile/reconcile-state-builders.js +2 -2
  205. package/dist/migrate/reconcile/reconcile-state-builders.js.map +1 -1
  206. package/dist/migrate/references/env-var-rewrite-table.d.ts +36 -0
  207. package/dist/migrate/references/env-var-rewrite-table.d.ts.map +1 -0
  208. package/dist/migrate/references/env-var-rewrite-table.js +97 -0
  209. package/dist/migrate/references/env-var-rewrite-table.js.map +1 -0
  210. package/dist/migrate/references/reference-classifier.d.ts +15 -0
  211. package/dist/migrate/references/reference-classifier.d.ts.map +1 -1
  212. package/dist/migrate/references/reference-classifier.js +33 -0
  213. package/dist/migrate/references/reference-classifier.js.map +1 -1
  214. package/dist/migrate/runtime-compat-audit.d.ts +1 -0
  215. package/dist/migrate/runtime-compat-audit.d.ts.map +1 -1
  216. package/dist/migrate/runtime-compat-audit.js +8 -3
  217. package/dist/migrate/runtime-compat-audit.js.map +1 -1
  218. package/dist/migrate/runtime-coupling-patterns.d.ts +30 -2
  219. package/dist/migrate/runtime-coupling-patterns.d.ts.map +1 -1
  220. package/dist/migrate/runtime-coupling-patterns.js +36 -8
  221. package/dist/migrate/runtime-coupling-patterns.js.map +1 -1
  222. package/dist/migrate/skill-directory-audit.d.ts +14 -0
  223. package/dist/migrate/skill-directory-audit.d.ts.map +1 -1
  224. package/dist/migrate/skill-directory-audit.js +68 -10
  225. package/dist/migrate/skill-directory-audit.js.map +1 -1
  226. package/dist/migrate/skill-directory-installer.d.ts +3 -0
  227. package/dist/migrate/skill-directory-installer.d.ts.map +1 -1
  228. package/dist/migrate/skill-directory-installer.js +98 -1
  229. package/dist/migrate/skill-directory-installer.js.map +1 -1
  230. package/dist/migrate/state-changing-script-detector.d.ts +16 -0
  231. package/dist/migrate/state-changing-script-detector.d.ts.map +1 -0
  232. package/dist/migrate/state-changing-script-detector.js +144 -0
  233. package/dist/migrate/state-changing-script-detector.js.map +1 -0
  234. package/dist/migrate/validation/migrate-conversion-report.d.ts +28 -0
  235. package/dist/migrate/validation/migrate-conversion-report.d.ts.map +1 -1
  236. package/dist/migrate/validation/migrate-conversion-report.js +48 -7
  237. package/dist/migrate/validation/migrate-conversion-report.js.map +1 -1
  238. package/dist/migrate/validation/migration-ledger-inputs.d.ts +56 -0
  239. package/dist/migrate/validation/migration-ledger-inputs.d.ts.map +1 -0
  240. package/dist/migrate/validation/migration-ledger-inputs.js +160 -0
  241. package/dist/migrate/validation/migration-ledger-inputs.js.map +1 -0
  242. package/dist/migrate/validation/migration-record-types.d.ts +38 -0
  243. package/dist/migrate/validation/migration-record-types.d.ts.map +1 -0
  244. package/dist/migrate/validation/migration-record-types.js +12 -0
  245. package/dist/migrate/validation/migration-record-types.js.map +1 -0
  246. package/dist/migrate/validation/migration-report-writer.d.ts +98 -0
  247. package/dist/migrate/validation/migration-report-writer.d.ts.map +1 -0
  248. package/dist/migrate/validation/migration-report-writer.js +0 -0
  249. package/dist/migrate/validation/migration-report-writer.js.map +1 -0
  250. package/dist/orchviz-web/index.js +3 -3
  251. package/package.json +1 -1
  252. package/portable-manifest.json +10 -2
  253. package/dist/commands/evolve.d.ts +0 -11
  254. package/dist/commands/evolve.d.ts.map +0 -1
  255. package/dist/commands/evolve.js +0 -63
  256. package/dist/commands/evolve.js.map +0 -1
  257. package/dist/commands/health.d.ts +0 -14
  258. package/dist/commands/health.d.ts.map +0 -1
  259. package/dist/commands/health.js +0 -193
  260. package/dist/commands/health.js.map +0 -1
  261. package/dist/commands/policy.d.ts +0 -8
  262. package/dist/commands/policy.d.ts.map +0 -1
  263. package/dist/commands/policy.js +0 -65
  264. package/dist/commands/policy.js.map +0 -1
  265. package/dist/commands/portability.d.ts +0 -7
  266. package/dist/commands/portability.d.ts.map +0 -1
  267. package/dist/commands/portability.js +0 -50
  268. package/dist/commands/portability.js.map +0 -1
  269. package/dist/commands/reflect.d.ts +0 -14
  270. package/dist/commands/reflect.d.ts.map +0 -1
  271. package/dist/commands/reflect.js +0 -135
  272. package/dist/commands/reflect.js.map +0 -1
  273. package/dist/commands/simulate.d.ts +0 -14
  274. package/dist/commands/simulate.d.ts.map +0 -1
  275. package/dist/commands/simulate.js +0 -86
  276. package/dist/commands/simulate.js.map +0 -1
  277. package/dist/core/event-log.d.ts +0 -44
  278. package/dist/core/event-log.d.ts.map +0 -1
  279. package/dist/core/event-log.js +0 -169
  280. package/dist/core/event-log.js.map +0 -1
  281. package/dist/core/evolution/event-clusters.d.ts +0 -4
  282. package/dist/core/evolution/event-clusters.d.ts.map +0 -1
  283. package/dist/core/evolution/event-clusters.js +0 -82
  284. package/dist/core/evolution/event-clusters.js.map +0 -1
  285. package/dist/core/evolution/recommendation-renderer.d.ts +0 -3
  286. package/dist/core/evolution/recommendation-renderer.d.ts.map +0 -1
  287. package/dist/core/evolution/recommendation-renderer.js +0 -24
  288. package/dist/core/evolution/recommendation-renderer.js.map +0 -1
  289. package/dist/core/evolution/review-failure-clusters.d.ts +0 -10
  290. package/dist/core/evolution/review-failure-clusters.d.ts.map +0 -1
  291. package/dist/core/evolution/review-failure-clusters.js +0 -30
  292. package/dist/core/evolution/review-failure-clusters.js.map +0 -1
  293. package/dist/core/evolution/suggestions.d.ts +0 -24
  294. package/dist/core/evolution/suggestions.d.ts.map +0 -1
  295. package/dist/core/evolution/suggestions.js +0 -11
  296. package/dist/core/evolution/suggestions.js.map +0 -1
  297. package/dist/core/gate-policy.d.ts +0 -20
  298. package/dist/core/gate-policy.d.ts.map +0 -1
  299. package/dist/core/gate-policy.js +0 -64
  300. package/dist/core/gate-policy.js.map +0 -1
  301. package/dist/core/portability-matrix.d.ts +0 -17
  302. package/dist/core/portability-matrix.d.ts.map +0 -1
  303. package/dist/core/portability-matrix.js +0 -31
  304. package/dist/core/portability-matrix.js.map +0 -1
  305. package/dist/core/simulation-runner.d.ts +0 -93
  306. package/dist/core/simulation-runner.d.ts.map +0 -1
  307. package/dist/core/simulation-runner.js +0 -161
  308. package/dist/core/simulation-runner.js.map +0 -1
  309. package/dist/core/usage/usage-analyzer.d.ts +0 -18
  310. package/dist/core/usage/usage-analyzer.d.ts.map +0 -1
  311. package/dist/core/usage/usage-analyzer.js +0 -41
  312. package/dist/core/usage/usage-analyzer.js.map +0 -1
  313. package/dist/memory/archive.d.ts +0 -9
  314. package/dist/memory/archive.d.ts.map +0 -1
  315. package/dist/memory/archive.js +0 -42
  316. package/dist/memory/archive.js.map +0 -1
  317. package/dist/memory/compact.d.ts +0 -9
  318. package/dist/memory/compact.d.ts.map +0 -1
  319. package/dist/memory/compact.js +0 -33
  320. package/dist/memory/compact.js.map +0 -1
  321. package/dist/memory/conflicts.d.ts +0 -8
  322. package/dist/memory/conflicts.d.ts.map +0 -1
  323. package/dist/memory/conflicts.js +0 -28
  324. package/dist/memory/conflicts.js.map +0 -1
  325. package/dist/memory/promote.d.ts +0 -8
  326. package/dist/memory/promote.d.ts.map +0 -1
  327. package/dist/memory/promote.js +0 -10
  328. package/dist/memory/promote.js.map +0 -1
  329. package/dist/memory/store-utils.d.ts +0 -14
  330. package/dist/memory/store-utils.d.ts.map +0 -1
  331. package/dist/memory/store-utils.js +0 -44
  332. package/dist/memory/store-utils.js.map +0 -1
  333. package/dist/migrate/__tests__/frontmatter-parser.test.d.ts +0 -2
  334. package/dist/migrate/__tests__/frontmatter-parser.test.d.ts.map +0 -1
  335. package/dist/migrate/__tests__/frontmatter-parser.test.js +0 -73
  336. package/dist/migrate/__tests__/frontmatter-parser.test.js.map +0 -1
  337. package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts +0 -2
  338. package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts.map +0 -1
  339. package/dist/migrate/__tests__/md-strip-mewkit.test.js +0 -55
  340. package/dist/migrate/__tests__/md-strip-mewkit.test.js.map +0 -1
  341. package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts +0 -2
  342. package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts.map +0 -1
  343. package/dist/migrate/__tests__/migrate-scope-resolver.test.js +0 -53
  344. package/dist/migrate/__tests__/migrate-scope-resolver.test.js.map +0 -1
  345. package/dist/migrate/__tests__/process-lock.test.d.ts +0 -2
  346. package/dist/migrate/__tests__/process-lock.test.d.ts.map +0 -1
  347. package/dist/migrate/__tests__/process-lock.test.js +0 -63
  348. package/dist/migrate/__tests__/process-lock.test.js.map +0 -1
  349. package/dist/migrate/__tests__/provider-registry.test.d.ts +0 -2
  350. package/dist/migrate/__tests__/provider-registry.test.d.ts.map +0 -1
  351. package/dist/migrate/__tests__/provider-registry.test.js +0 -53
  352. package/dist/migrate/__tests__/provider-registry.test.js.map +0 -1
  353. package/dist/migrate/__tests__/reconciler.test.d.ts +0 -2
  354. package/dist/migrate/__tests__/reconciler.test.d.ts.map +0 -1
  355. package/dist/migrate/__tests__/reconciler.test.js +0 -180
  356. package/dist/migrate/__tests__/reconciler.test.js.map +0 -1
  357. package/dist/migrate/__tests__/skill-id-utils.test.d.ts +0 -2
  358. package/dist/migrate/__tests__/skill-id-utils.test.d.ts.map +0 -1
  359. package/dist/migrate/__tests__/skill-id-utils.test.js +0 -78
  360. package/dist/migrate/__tests__/skill-id-utils.test.js.map +0 -1
  361. package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.d.ts +0 -15
  362. package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.d.ts.map +0 -1
  363. package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.js +0 -165
  364. package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.js.map +0 -1
  365. package/dist/orchviz/plan/__tests__/atomic-write.test.d.ts +0 -11
  366. package/dist/orchviz/plan/__tests__/atomic-write.test.d.ts.map +0 -1
  367. package/dist/orchviz/plan/__tests__/atomic-write.test.js +0 -89
  368. package/dist/orchviz/plan/__tests__/atomic-write.test.js.map +0 -1
  369. package/dist/orchviz/plan/__tests__/end-to-end.test.d.ts +0 -10
  370. package/dist/orchviz/plan/__tests__/end-to-end.test.d.ts.map +0 -1
  371. package/dist/orchviz/plan/__tests__/end-to-end.test.js +0 -132
  372. package/dist/orchviz/plan/__tests__/end-to-end.test.js.map +0 -1
  373. package/dist/orchviz/plan/__tests__/etag.test.d.ts +0 -11
  374. package/dist/orchviz/plan/__tests__/etag.test.d.ts.map +0 -1
  375. package/dist/orchviz/plan/__tests__/etag.test.js +0 -92
  376. package/dist/orchviz/plan/__tests__/etag.test.js.map +0 -1
  377. package/dist/orchviz/plan/__tests__/list-plans.test.d.ts +0 -14
  378. package/dist/orchviz/plan/__tests__/list-plans.test.d.ts.map +0 -1
  379. package/dist/orchviz/plan/__tests__/list-plans.test.js +0 -154
  380. package/dist/orchviz/plan/__tests__/list-plans.test.js.map +0 -1
  381. package/dist/orchviz/server/__tests__/security-smoke.test.d.ts +0 -13
  382. package/dist/orchviz/server/__tests__/security-smoke.test.d.ts.map +0 -1
  383. package/dist/orchviz/server/__tests__/security-smoke.test.js +0 -207
  384. package/dist/orchviz/server/__tests__/security-smoke.test.js.map +0 -1
  385. package/dist/orchviz/server/__tests__/write-handlers.test.d.ts +0 -24
  386. package/dist/orchviz/server/__tests__/write-handlers.test.d.ts.map +0 -1
  387. package/dist/orchviz/server/__tests__/write-handlers.test.js +0 -347
  388. package/dist/orchviz/server/__tests__/write-handlers.test.js.map +0 -1
  389. package/dist/orchviz/test-server-boot.d.ts +0 -28
  390. package/dist/orchviz/test-server-boot.d.ts.map +0 -1
  391. package/dist/orchviz/test-server-boot.js +0 -64
  392. package/dist/orchviz/test-server-boot.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { createHash } from "node:crypto";
2
- import { readFileSync, writeFileSync, existsSync, readdirSync, statSync } from "node:fs";
2
+ import { readFileSync, writeFileSync, existsSync, readdirSync, lstatSync } from "node:fs";
3
3
  import { join, relative } from "node:path";
4
4
  const MANIFEST_FILENAME = "meowkit.manifest.json";
5
5
  /** Directories classified as "core" — overwritten on update if unchanged */
@@ -64,7 +64,13 @@ export function collectFiles(dir, baseDir) {
64
64
  if (SKIP.has(entry))
65
65
  continue;
66
66
  const fullPath = join(dir, entry);
67
- const stat = statSync(fullPath);
67
+ // lstat (not stat) so a symlink is inspected as a link, never followed. A
68
+ // symlinked directory or file under `.claude/` must not let the scan traverse
69
+ // or hash content outside the tree — the kit ships only regular files, so a
70
+ // symlink here is either noise or an escape attempt. Skip it either way.
71
+ const stat = lstatSync(fullPath);
72
+ if (stat.isSymbolicLink())
73
+ continue;
68
74
  if (stat.isDirectory()) {
69
75
  files.push(...collectFiles(fullPath, baseDir));
70
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compute-checksums.js","sourceRoot":"","sources":["../../src/core/compute-checksums.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compute-checksums.js","sourceRoot":"","sources":["../../src/core/compute-checksums.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /** Classification. `canonical` = the source of truth; `keep-legacy` = retained cheap read path;
2
+ * `authoring-only`/`experimental` = present but not production-critical; `deprecated` = flagged for
3
+ * eventual retirement; `undecided` = needs evidence before any classification. */
4
+ export type ConsolidationStatus = "canonical" | "keep-legacy" | "authoring-only" | "experimental" | "deprecated" | "undecided";
5
+ export interface ConsolidationCandidate {
6
+ id: string;
7
+ purpose: string;
8
+ status: ConsolidationStatus;
9
+ /** What the static evidence (code refs, generators, existing checks) shows. */
10
+ staticEvidence: string;
11
+ /** What runtime traces show. Honest "none yet" where this session has no traces/release. */
12
+ runtimeEvidence: string;
13
+ externalConsumerRisk: "low" | "medium" | "high" | "unknown";
14
+ confidence: "low" | "medium" | "high";
15
+ /** How a future transition release would behave (dual-write, generate-in-place, etc.). */
16
+ transitionBehavior: string;
17
+ /** How to roll back if the transition regresses. */
18
+ rollback: string;
19
+ /** Aspire-local + plugin-payload verification status. */
20
+ verification: string;
21
+ /** LITERAL false for every entry — Phase 7 removes nothing; the type forbids scheduling one. */
22
+ deletionThisPhase: false;
23
+ /** What must be true before ANY removal/retirement of this candidate. */
24
+ remainingGates: string[];
25
+ }
26
+ /** The consolidation candidates from the Phase 7 plan, each fully recorded. Ordered by id. */
27
+ export declare const CONSOLIDATION_LEDGER: ConsolidationCandidate[];
28
+ /** The ledger (stable order). */
29
+ export declare function getConsolidationLedger(): ConsolidationCandidate[];
30
+ //# sourceMappingURL=consolidation-ledger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consolidation-ledger.d.ts","sourceRoot":"","sources":["../../src/core/consolidation-ledger.ts"],"names":[],"mappings":"AAWA;;kFAEkF;AAClF,MAAM,MAAM,mBAAmB,GAC5B,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,YAAY,GACZ,WAAW,CAAC;AAEf,MAAM,WAAW,sBAAsB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,+EAA+E;IAC/E,cAAc,EAAE,MAAM,CAAC;IACvB,4FAA4F;IAC5F,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5D,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,0FAA0F;IAC1F,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,gGAAgG;IAChG,iBAAiB,EAAE,KAAK,CAAC;IACzB,yEAAyE;IACzE,cAAc,EAAE,MAAM,EAAE,CAAC;CACzB;AAID,8FAA8F;AAC9F,eAAO,MAAM,oBAAoB,EAAE,sBAAsB,EA+HxD,CAAC;AAEF,iCAAiC;AACjC,wBAAgB,sBAAsB,IAAI,sBAAsB,EAAE,CAEjE"}
@@ -0,0 +1,145 @@
1
+ // Consolidation & safe-deprecation ledger (Phase 7). This phase REMOVES nothing: the plan's
2
+ // mandate is "remove duplicate sources only after runtime traces, Aspire validation, plugin
3
+ // payload checks, and a transition release show which path is canonical" and "no candidate is
4
+ // deleted solely due to absent static references." This module is the durable RECORD of that
5
+ // discipline — every consolidation candidate carries its purpose, static + runtime evidence,
6
+ // external-consumer risk, confidence, transition behavior, rollback, verification, and the gates
7
+ // still outstanding before any removal. `deletionThisPhase` is the literal `false` for every entry
8
+ // (a compile-time guarantee that nothing is scheduled for deletion here). Doctor surfaces the
9
+ // status HONESTLY — an authoring-only/experimental/deprecated label is NOT a runtime-availability
10
+ // claim (a deprecated artifact may still be fully functional at runtime).
11
+ const NO_RUNTIME = "none yet — no runtime traces or transition release in this session";
12
+ /** The consolidation candidates from the Phase 7 plan, each fully recorded. Ordered by id. */
13
+ export const CONSOLIDATION_LEDGER = [
14
+ {
15
+ id: "generated-tables",
16
+ purpose: "Trigger/capability tables + contributor indexes rendered FROM the registry (the manual docs/architecture/trigger-registry.md drifts).",
17
+ status: "canonical",
18
+ staticEvidence: "generate-capability-view.ts renders the table + declares region markers for an in-place splice/drift-check; the registry (buildCapabilities) is the source of truth.",
19
+ runtimeEvidence: NO_RUNTIME,
20
+ externalConsumerRisk: "low",
21
+ confidence: "high",
22
+ transitionBehavior: "Splice the generated region into the doc between markers; CI drift-checks that region. Human rationale stays OUTSIDE the generated region.",
23
+ rollback: "Remove the spliced region; the manual doc remains readable.",
24
+ verification: "capability view unit-tested; doc splice + drift-check not yet wired.",
25
+ deletionThisPhase: false,
26
+ remainingGates: ["splice generated region into the doc", "add a CI drift-check for the region"],
27
+ },
28
+ {
29
+ id: "contributor-indexes",
30
+ purpose: "Contributor-only index files that may not belong in the shipped plugin payload.",
31
+ status: "undecided",
32
+ staticEvidence: "Indexes exist in .claude/; no static proof of a dynamic (runtime) consumer either way.",
33
+ runtimeEvidence: NO_RUNTIME,
34
+ externalConsumerRisk: "medium",
35
+ confidence: "low",
36
+ transitionBehavior: "Prune from the plugin payload only after confirming no dynamic consumer; keep in the authoring repo.",
37
+ rollback: "Re-include the index in the plugin payload build.",
38
+ verification: "plugin payload check not yet run for this candidate.",
39
+ deletionThisPhase: false,
40
+ remainingGates: ["confirm no dynamic consumer via runtime trace", "plugin payload fixture proving no regression"],
41
+ },
42
+ {
43
+ id: "legacy-manifest-writes",
44
+ purpose: "Legacy manifest WRITE path superseded by the current install-metadata writer.",
45
+ status: "deprecated",
46
+ staticEvidence: "install-metadata writer is the current path; legacy writes are still emitted for back-compat.",
47
+ runtimeEvidence: NO_RUNTIME,
48
+ externalConsumerRisk: "medium",
49
+ confidence: "medium",
50
+ transitionBehavior: "Retire legacy WRITES only after the rollback window; keep cheap legacy READS for version-skipping consumers.",
51
+ rollback: "Re-enable the legacy writer (kept behind the read path).",
52
+ verification: "upgrade/migrate suites green; rollback window not yet elapsed.",
53
+ deletionThisPhase: false,
54
+ remainingGates: ["rollback window elapses", "upgrade suite proves no version-skip consumer breaks"],
55
+ },
56
+ {
57
+ id: "json-canonical-memory",
58
+ purpose: "JSON as the canonical memory WRITE path; Markdown as generated views.",
59
+ status: "canonical",
60
+ staticEvidence: "memory-read-rules.md: JSON is canonical, .md are generated views (mewkit memory render-views); permanent .md fallback for pre-migration projects.",
61
+ runtimeEvidence: NO_RUNTIME,
62
+ externalConsumerRisk: "medium",
63
+ confidence: "medium",
64
+ transitionBehavior: "Keep generated MD views + permanent .md fallback until every CLI/skill/agent consumer is proven to read JSON.",
65
+ rollback: "Fallback to .md read path (already permanent).",
66
+ verification: "render-views exists; full consumer audit pending.",
67
+ deletionThisPhase: false,
68
+ remainingGates: ["audit every memory consumer reads JSON", "migration evidence before dropping the .md fallback"],
69
+ },
70
+ {
71
+ id: "substrate",
72
+ purpose: "Responsibility-substrate coverage view (inventory --substrate).",
73
+ status: "authoring-only",
74
+ staticEvidence: "substrate.ts renders a coverage view for authoring/audit; no production runtime path depends on it.",
75
+ runtimeEvidence: NO_RUNTIME,
76
+ externalConsumerRisk: "low",
77
+ confidence: "medium",
78
+ transitionBehavior: "Classify authoring-only; keep available, not shipped as a production capability, until a real consumer justifies production status.",
79
+ rollback: "n/a — no removal; reclassify if a consumer appears.",
80
+ verification: "substrate view unit-tested; no production consumer identified.",
81
+ deletionThisPhase: false,
82
+ remainingGates: ["a real production consumer would be needed to promote beyond authoring-only"],
83
+ },
84
+ {
85
+ id: "orchviz",
86
+ purpose: "Orchestration visualization surface.",
87
+ status: "experimental",
88
+ staticEvidence: "orchviz command exists; no evidence of a production consumer.",
89
+ runtimeEvidence: NO_RUNTIME,
90
+ externalConsumerRisk: "low",
91
+ confidence: "low",
92
+ transitionBehavior: "Mark experimental/opt-in; do not ship as production until a real consumer justifies it.",
93
+ rollback: "n/a — no removal.",
94
+ verification: "not verified against a consumer.",
95
+ deletionThisPhase: false,
96
+ remainingGates: ["a real consumer would justify production status"],
97
+ },
98
+ {
99
+ id: "trace-index",
100
+ purpose: "Opt-in derived SQLite index over the append logs (mewkit index/query).",
101
+ status: "experimental",
102
+ staticEvidence: "derived-index.ts builds a disposable index; logs stay canonical; dead-weight-audit-rules flags it a WATCH/prune candidate until a cross-run aggregate need is demonstrated.",
103
+ runtimeEvidence: NO_RUNTIME,
104
+ externalConsumerRisk: "low",
105
+ confidence: "medium",
106
+ transitionBehavior: "Keep experimental/opt-in; the index is rebuildable, so removal is always safe once disuse is shown.",
107
+ rollback: "Rebuild the index from canonical logs.",
108
+ verification: "index build unit-tested; no demonstrated cross-run aggregate consumer.",
109
+ deletionThisPhase: false,
110
+ remainingGates: ["demonstrate a real cross-run aggregate need OR confirm disuse before pruning"],
111
+ },
112
+ {
113
+ id: "command-aliases",
114
+ purpose: "Command aliases that may be pure forwarders to a canonical command.",
115
+ status: "undecided",
116
+ staticEvidence: "Aliases exist; behavior/snapshot equivalence not yet proven.",
117
+ runtimeEvidence: NO_RUNTIME,
118
+ externalConsumerRisk: "medium",
119
+ confidence: "low",
120
+ transitionBehavior: "Consolidate ONLY when behavior/snapshot equivalence proves an alias is a pure forwarder.",
121
+ rollback: "Restore the alias.",
122
+ verification: "no equivalence snapshot captured yet.",
123
+ deletionThisPhase: false,
124
+ remainingGates: ["capture behavior/snapshot equivalence proving a pure forwarder"],
125
+ },
126
+ {
127
+ id: "state-stores",
128
+ purpose: "task/checkpoint/progress state stores whose names overlap.",
129
+ status: "undecided",
130
+ staticEvidence: "Phase 4 task record + existing checkpoint/progress files coexist; name overlap is not proof of duplication.",
131
+ runtimeEvidence: NO_RUNTIME,
132
+ externalConsumerRisk: "medium",
133
+ confidence: "low",
134
+ transitionBehavior: "Reconcile ONLY where Phase-4 usage shows real duplication, not because names overlap.",
135
+ rollback: "Keep the separate stores.",
136
+ verification: "no duplication evidence from Phase-4 usage yet.",
137
+ deletionThisPhase: false,
138
+ remainingGates: ["Phase-4 usage evidence showing real duplication"],
139
+ },
140
+ ];
141
+ /** The ledger (stable order). */
142
+ export function getConsolidationLedger() {
143
+ return CONSOLIDATION_LEDGER;
144
+ }
145
+ //# sourceMappingURL=consolidation-ledger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consolidation-ledger.js","sourceRoot":"","sources":["../../src/core/consolidation-ledger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { CapabilityEntry } from "./capability.js";
2
+ /** Region markers a future in-place splice/drift-check will delimit within the doc. */
3
+ export declare const VIEW_START = "<!-- GENERATED:capabilities START -->";
4
+ export declare const VIEW_END = "<!-- GENERATED:capabilities END -->";
5
+ /** Render capabilities-with-intents as a stable markdown table (sorted by id). */
6
+ export declare function renderCapabilityView(entries: CapabilityEntry[]): string;
7
+ /**
8
+ * Extract the content strictly between the generated-region markers, trimmed. Returns null when
9
+ * either marker is absent or END precedes START (malformed / not yet spliced) — the caller treats
10
+ * that as "no generated region", NOT as drift.
11
+ */
12
+ export declare function extractGeneratedRegion(docText: string): string | null;
13
+ export type ViewDriftState = "absent-markers" | "in-sync" | "drift";
14
+ /**
15
+ * Compare a doc's spliced generated region against a freshly-rendered view. The registry
16
+ * (`entries`) is the source of truth; the doc must NOT become a second editable truth. A doc with
17
+ * no markers is `absent-markers` (the region has not been spliced yet — honest, not a failure);
18
+ * matching content is `in-sync`; differing content is `drift` (regenerate + re-splice).
19
+ */
20
+ export declare function capabilityViewDrift(docText: string, entries: CapabilityEntry[]): ViewDriftState;
21
+ //# sourceMappingURL=generate-capability-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-capability-view.d.ts","sourceRoot":"","sources":["../../src/core/generate-capability-view.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,uFAAuF;AACvF,eAAO,MAAM,UAAU,0CAA0C,CAAC;AAClE,eAAO,MAAM,QAAQ,wCAAwC,CAAC;AAM9D,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAgBvE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKrE;AAED,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEpE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,cAAc,CAI/F"}
@@ -0,0 +1,48 @@
1
+ /** Region markers a future in-place splice/drift-check will delimit within the doc. */
2
+ export const VIEW_START = "<!-- GENERATED:capabilities START -->";
3
+ export const VIEW_END = "<!-- GENERATED:capabilities END -->";
4
+ function escapeCell(s) {
5
+ return s.replace(/\|/g, "\\|").replace(/\n/g, " ");
6
+ }
7
+ /** Render capabilities-with-intents as a stable markdown table (sorted by id). */
8
+ export function renderCapabilityView(entries) {
9
+ const rows = entries
10
+ .filter((e) => e.intents.length > 0)
11
+ .slice()
12
+ .sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : 0))
13
+ .map((e) => {
14
+ const invocation = `${e.invocation.kind}:${e.invocation.id}`;
15
+ const source = e.provenance.intents === "authored" ? "authored" : "inferred";
16
+ return `| \`${escapeCell(e.id)}\` | ${e.kind} | ${invocation} | ${source} | ${escapeCell(e.intents.join("; "))} |`;
17
+ });
18
+ return [
19
+ "| Capability | Kind | Invocation | Intent source | Intents (user phrases) |",
20
+ "|---|---|---|---|---|",
21
+ ...rows,
22
+ ].join("\n");
23
+ }
24
+ /**
25
+ * Extract the content strictly between the generated-region markers, trimmed. Returns null when
26
+ * either marker is absent or END precedes START (malformed / not yet spliced) — the caller treats
27
+ * that as "no generated region", NOT as drift.
28
+ */
29
+ export function extractGeneratedRegion(docText) {
30
+ const start = docText.indexOf(VIEW_START);
31
+ const end = docText.indexOf(VIEW_END);
32
+ if (start === -1 || end === -1 || end < start)
33
+ return null;
34
+ return docText.slice(start + VIEW_START.length, end).trim();
35
+ }
36
+ /**
37
+ * Compare a doc's spliced generated region against a freshly-rendered view. The registry
38
+ * (`entries`) is the source of truth; the doc must NOT become a second editable truth. A doc with
39
+ * no markers is `absent-markers` (the region has not been spliced yet — honest, not a failure);
40
+ * matching content is `in-sync`; differing content is `drift` (regenerate + re-splice).
41
+ */
42
+ export function capabilityViewDrift(docText, entries) {
43
+ const region = extractGeneratedRegion(docText);
44
+ if (region === null)
45
+ return "absent-markers";
46
+ return region === renderCapabilityView(entries).trim() ? "in-sync" : "drift";
47
+ }
48
+ //# sourceMappingURL=generate-capability-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-capability-view.js","sourceRoot":"","sources":["../../src/core/generate-capability-view.ts"],"names":[],"mappings":"AAQA,uFAAuF;AACvF,MAAM,CAAC,MAAM,UAAU,GAAG,uCAAuC,CAAC;AAClE,MAAM,CAAC,MAAM,QAAQ,GAAG,qCAAqC,CAAC;AAE9D,SAAS,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,oBAAoB,CAAC,OAA0B;IAC9D,MAAM,IAAI,GAAG,OAAO;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;SACnC,KAAK,EAAE;SACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACxD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACV,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7E,OAAO,OAAO,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,MAAM,UAAU,MAAM,MAAM,MAAM,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IACpH,CAAC,CAAC,CAAC;IAEJ,OAAO;QACN,6EAA6E;QAC7E,uBAAuB;QACvB,GAAG,IAAI;KACP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK;QAAE,OAAO,IAAI,CAAC;IAC3D,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7D,CAAC;AAID;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,OAA0B;IAC9E,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,gBAAgB,CAAC;IAC7C,OAAO,MAAM,KAAK,oBAAoB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AAC9E,CAAC"}
@@ -11,22 +11,22 @@ export declare const InstallFileEntrySchema: z.ZodObject<{
11
11
  installedAt: z.ZodOptional<z.ZodString>;
12
12
  }, "strip", z.ZodTypeAny, {
13
13
  path: string;
14
+ owner: "meowkit" | "user" | "meowkit-modified";
15
+ layer: "skill" | "core" | "user";
14
16
  checksum: string;
15
- owner: "user" | "meowkit" | "meowkit-modified";
16
- layer: "core" | "skill" | "user";
17
17
  baseChecksum: string;
18
+ installedAt?: string | undefined;
18
19
  installedVersion?: string | undefined;
19
20
  sourceTimestamp?: string | undefined;
20
- installedAt?: string | undefined;
21
21
  }, {
22
22
  path: string;
23
+ owner: "meowkit" | "user" | "meowkit-modified";
24
+ layer: "skill" | "core" | "user";
23
25
  checksum: string;
24
- owner: "user" | "meowkit" | "meowkit-modified";
25
- layer: "core" | "skill" | "user";
26
26
  baseChecksum: string;
27
+ installedAt?: string | undefined;
27
28
  installedVersion?: string | undefined;
28
29
  sourceTimestamp?: string | undefined;
29
- installedAt?: string | undefined;
30
30
  }>;
31
31
  export type InstallFileEntry = z.infer<typeof InstallFileEntrySchema>;
32
32
  export declare const InstallMetadataSchema: z.ZodObject<{
@@ -46,22 +46,22 @@ export declare const InstallMetadataSchema: z.ZodObject<{
46
46
  installedAt: z.ZodOptional<z.ZodString>;
47
47
  }, "strip", z.ZodTypeAny, {
48
48
  path: string;
49
+ owner: "meowkit" | "user" | "meowkit-modified";
50
+ layer: "skill" | "core" | "user";
49
51
  checksum: string;
50
- owner: "user" | "meowkit" | "meowkit-modified";
51
- layer: "core" | "skill" | "user";
52
52
  baseChecksum: string;
53
+ installedAt?: string | undefined;
53
54
  installedVersion?: string | undefined;
54
55
  sourceTimestamp?: string | undefined;
55
- installedAt?: string | undefined;
56
56
  }, {
57
57
  path: string;
58
+ owner: "meowkit" | "user" | "meowkit-modified";
59
+ layer: "skill" | "core" | "user";
58
60
  checksum: string;
59
- owner: "user" | "meowkit" | "meowkit-modified";
60
- layer: "core" | "skill" | "user";
61
61
  baseChecksum: string;
62
+ installedAt?: string | undefined;
62
63
  installedVersion?: string | undefined;
63
64
  sourceTimestamp?: string | undefined;
64
- installedAt?: string | undefined;
65
65
  }>, "many">;
66
66
  settings: z.ZodOptional<z.ZodObject<{
67
67
  merged: z.ZodArray<z.ZodString, "many">;
@@ -78,47 +78,47 @@ export declare const InstallMetadataSchema: z.ZodObject<{
78
78
  */
79
79
  packs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
80
80
  }, "strip", z.ZodTypeAny, {
81
+ tool: string;
82
+ schemaVersion: "1.0";
81
83
  version: string;
84
+ installedAt: string;
82
85
  files: {
83
86
  path: string;
87
+ owner: "meowkit" | "user" | "meowkit-modified";
88
+ layer: "skill" | "core" | "user";
84
89
  checksum: string;
85
- owner: "user" | "meowkit" | "meowkit-modified";
86
- layer: "core" | "skill" | "user";
87
90
  baseChecksum: string;
91
+ installedAt?: string | undefined;
88
92
  installedVersion?: string | undefined;
89
93
  sourceTimestamp?: string | undefined;
90
- installedAt?: string | undefined;
91
94
  }[];
92
- installedAt: string;
93
- schemaVersion: "1.0";
94
- tool: string;
95
95
  scope?: string | undefined;
96
+ packs?: string[] | undefined;
97
+ profile?: string | undefined;
96
98
  settings?: {
97
99
  merged: string[];
98
100
  } | undefined;
99
- profile?: string | undefined;
100
- packs?: string[] | undefined;
101
101
  }, {
102
+ schemaVersion: "1.0";
102
103
  version: string;
104
+ installedAt: string;
103
105
  files: {
104
106
  path: string;
107
+ owner: "meowkit" | "user" | "meowkit-modified";
108
+ layer: "skill" | "core" | "user";
105
109
  checksum: string;
106
- owner: "user" | "meowkit" | "meowkit-modified";
107
- layer: "core" | "skill" | "user";
108
110
  baseChecksum: string;
111
+ installedAt?: string | undefined;
109
112
  installedVersion?: string | undefined;
110
113
  sourceTimestamp?: string | undefined;
111
- installedAt?: string | undefined;
112
114
  }[];
113
- installedAt: string;
114
- schemaVersion: "1.0";
115
115
  tool?: string | undefined;
116
116
  scope?: string | undefined;
117
+ packs?: string[] | undefined;
118
+ profile?: string | undefined;
117
119
  settings?: {
118
120
  merged: string[];
119
121
  } | undefined;
120
- profile?: string | undefined;
121
- packs?: string[] | undefined;
122
122
  }>;
123
123
  export type InstallMetadata = z.infer<typeof InstallMetadataSchema>;
124
124
  export type MetadataSource = "new" | "legacy-manifest" | "legacy-metadata" | "none";
@@ -152,6 +152,14 @@ export interface BuildInstallMetadataOptions {
152
152
  version: string;
153
153
  /** Per-path source commit timestamp (release-manifest `lastModified`). */
154
154
  sourceTimestamps?: Record<string, string>;
155
+ /**
156
+ * Incoming release payload hash per `.claude/`-relative path (release-manifest
157
+ * `checksum`). When a kit file's disk hash equals its incoming payload hash, it
158
+ * is a clean forward copy of the new release — toolkit-owned, and its as-shipped
159
+ * `baseChecksum` advances to the new payload. Absent for flows with no incoming
160
+ * release (e.g. pack rebuild), which fall back to prior-state comparison.
161
+ */
162
+ expectedChecksums?: Record<string, string>;
155
163
  /** Prior installed entries, indexed by `.claude/`-relative path. */
156
164
  priorEntriesByPath?: Record<string, InstallFileEntry>;
157
165
  /** Optional install scope marker (e.g. "local"). */
@@ -165,9 +173,18 @@ export interface BuildInstallMetadataOptions {
165
173
  }
166
174
  /**
167
175
  * Scan an installed `.claude/` and build canonical metadata. Ownership for kit
168
- * (core/skill) files is computed against the prior state: a kit file whose disk
169
- * hash differs from its prior `baseChecksum` is labeled `meowkit-modified`;
170
- * `baseChecksum` preserves the as-shipped hash across upgrades.
176
+ * (core/skill) files is computed with this precedence:
177
+ * 1. Disk hash equals the incoming release payload (`expectedChecksums`) a
178
+ * clean forward copy. Labeled `meowkit`, and `baseChecksum` ADVANCES to the
179
+ * new payload so the next upgrade compares against the current release, not
180
+ * a stale one. This is what stops a byte-identical forward copy from being
181
+ * mislabeled `meowkit-modified` when the file changed between releases.
182
+ * 2. No prior entry — a fresh file. When the incoming payload is known and disk
183
+ * differs from it, the file was edited after copy: `meowkit-modified` with
184
+ * `baseChecksum` set to the as-shipped payload. Otherwise `meowkit`.
185
+ * 3. Prior entry present — compare disk to the prior `baseChecksum`: unchanged
186
+ * is `meowkit`, otherwise `meowkit-modified`. `baseChecksum` is preserved.
187
+ * With no `expectedChecksums`, behavior is identical to the prior-state-only model.
171
188
  */
172
189
  export declare function buildInstallMetadata(claudeDir: string, opts: BuildInstallMetadataOptions): InstallMetadata;
173
190
  //# sourceMappingURL=install-metadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-metadata.d.ts","sourceRoot":"","sources":["../../src/core/install-metadata.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;EASjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAQjC,gEAAgE;;IAEhE;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEF,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,MAAM,CAAC;AACpF,MAAM,WAAW,yBAAyB;IACzC,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;CAC7B;AAED,0FAA0F;AAC1F,qBAAa,2BAA4B,SAAQ,KAAK;aACzB,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;CAI1C;AAED,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAIzF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,CAyChF;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAGpF;AA6BD,MAAM,WAAW,2BAA2B;IAC3C,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACtD,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,GAAG,eAAe,CA6C1G"}
1
+ {"version":3,"file":"install-metadata.d.ts","sourceRoot":"","sources":["../../src/core/install-metadata.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;EASjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAQjC,gEAAgE;;IAEhE;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEF,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,MAAM,CAAC;AACpF,MAAM,WAAW,yBAAyB;IACzC,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;CAC7B;AAED,0FAA0F;AAC1F,qBAAa,2BAA4B,SAAQ,KAAK;aACzB,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;CAI1C;AAED,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAIzF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,CAyChF;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAGpF;AA6BD,MAAM,WAAW,2BAA2B;IAC3C,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACtD,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,GAAG,eAAe,CA2E1G"}
@@ -135,27 +135,67 @@ function mapLegacyManifest(manifest, legacyVersion) {
135
135
  }
136
136
  /**
137
137
  * Scan an installed `.claude/` and build canonical metadata. Ownership for kit
138
- * (core/skill) files is computed against the prior state: a kit file whose disk
139
- * hash differs from its prior `baseChecksum` is labeled `meowkit-modified`;
140
- * `baseChecksum` preserves the as-shipped hash across upgrades.
138
+ * (core/skill) files is computed with this precedence:
139
+ * 1. Disk hash equals the incoming release payload (`expectedChecksums`) a
140
+ * clean forward copy. Labeled `meowkit`, and `baseChecksum` ADVANCES to the
141
+ * new payload so the next upgrade compares against the current release, not
142
+ * a stale one. This is what stops a byte-identical forward copy from being
143
+ * mislabeled `meowkit-modified` when the file changed between releases.
144
+ * 2. No prior entry — a fresh file. When the incoming payload is known and disk
145
+ * differs from it, the file was edited after copy: `meowkit-modified` with
146
+ * `baseChecksum` set to the as-shipped payload. Otherwise `meowkit`.
147
+ * 3. Prior entry present — compare disk to the prior `baseChecksum`: unchanged
148
+ * is `meowkit`, otherwise `meowkit-modified`. `baseChecksum` is preserved.
149
+ * With no `expectedChecksums`, behavior is identical to the prior-state-only model.
141
150
  */
142
151
  export function buildInstallMetadata(claudeDir, opts) {
143
152
  const installedAt = new Date().toISOString();
144
153
  const prior = opts.priorEntriesByPath ?? {};
145
154
  const timestamps = opts.sourceTimestamps ?? {};
155
+ const expected = opts.expectedChecksums ?? {};
156
+ // Release-manifest-derived maps (expected/timestamps) key on forward-slash paths
157
+ // (generate-release-manifest.cjs normalizes separators); `collectFiles` yields
158
+ // native separators on Windows. Look those maps up by a normalized key so the
159
+ // forward-copy recognition is not a silent no-op for nested paths on Windows.
160
+ // `prior` stays keyed by the raw relPath — its entries come from our own metadata,
161
+ // written with the same native separators.
162
+ const mergedSet = new Set((opts.mergedSettings ?? []).map((p) => p.replace(/\\/g, "/")));
146
163
  const files = [];
147
164
  for (const relPath of collectFiles(claudeDir, claudeDir)) {
148
165
  const diskHash = hashFile(join(claudeDir, relPath));
149
166
  const layer = classifyLayer(relPath);
150
167
  const priorEntry = prior[relPath];
151
- const baseChecksum = priorEntry ? priorEntry.baseChecksum : diskHash;
168
+ const normKey = relPath.replace(/\\/g, "/");
169
+ const expectedHash = expected[normKey];
152
170
  let owner;
153
- if (layer === "user")
171
+ let baseChecksum;
172
+ if (layer === "user") {
154
173
  owner = "user";
155
- else if (!priorEntry || diskHash === priorEntry.baseChecksum)
174
+ baseChecksum = priorEntry ? priorEntry.baseChecksum : diskHash;
175
+ }
176
+ else if (expectedHash !== undefined && diskHash === expectedHash) {
177
+ // Clean forward copy of the incoming payload — advance the as-shipped baseline.
156
178
  owner = "meowkit";
157
- else
158
- owner = "meowkit-modified";
179
+ baseChecksum = diskHash;
180
+ }
181
+ else if (!priorEntry) {
182
+ if (expectedHash !== undefined && !mergedSet.has(normKey)) {
183
+ // Incoming payload is known and disk differs — edited after copy.
184
+ owner = "meowkit-modified";
185
+ baseChecksum = expectedHash;
186
+ }
187
+ else {
188
+ // A merged file (e.g. settings.json) legitimately differs from the shipped
189
+ // payload — the merge is recorded in `meta.settings.merged`, not counted as
190
+ // a local modification. Fresh files with no incoming hash also land here.
191
+ owner = "meowkit";
192
+ baseChecksum = diskHash;
193
+ }
194
+ }
195
+ else {
196
+ baseChecksum = priorEntry.baseChecksum;
197
+ owner = diskHash === priorEntry.baseChecksum ? "meowkit" : "meowkit-modified";
198
+ }
159
199
  const entry = {
160
200
  path: relPath,
161
201
  owner,
@@ -165,7 +205,7 @@ export function buildInstallMetadata(claudeDir, opts) {
165
205
  installedVersion: opts.version,
166
206
  installedAt,
167
207
  };
168
- const sourceTimestamp = timestamps[relPath];
208
+ const sourceTimestamp = timestamps[normKey];
169
209
  if (sourceTimestamp)
170
210
  entry.sourceTimestamp = sourceTimestamp;
171
211
  files.push(entry);
@@ -1 +1 @@
1
- {"version":3,"file":"install-metadata.js","sourceRoot":"","sources":["../../src/core/install-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-metadata.js","sourceRoot":"","sources":["../../src/core/install-metadata.ts"],"names":[],"mappings":"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"}