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,135 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import pc from "picocolors";
4
- import { readEvents } from "../core/event-log.js";
5
- function bump(tally, key) {
6
- tally.set(key, (tally.get(key) ?? 0) + 1);
7
- }
8
- function tallyToSorted(tally) {
9
- return [...tally.entries()].sort((a, b) => b[1] - a[1]).map(([label, count]) => ({ label, count }));
10
- }
11
- function str(value, fallback = "?") {
12
- return typeof value === "string" && value.length > 0 ? value : fallback;
13
- }
14
- function aggregate(events, malformed, window) {
15
- const gateBlocks = new Map();
16
- const privacyBlocks = new Map();
17
- const hookFailures = new Map();
18
- const reviewOutcomes = new Map();
19
- const reviewFailBySlug = new Map();
20
- let injectionBlocks = 0;
21
- for (const e of events) {
22
- switch (e.event) {
23
- case "gate.blocked":
24
- bump(gateBlocks, `${str(e.data.gate)} — ${str(e.data.reason, "")}`);
25
- break;
26
- case "privacy.blocked":
27
- bump(privacyBlocks, str(e.data.kind));
28
- break;
29
- case "injection.blocked":
30
- injectionBlocks++;
31
- break;
32
- case "hook.failed":
33
- bump(hookFailures, `${str(e.data.hook)} (${str(e.data.shell)}) exit ${str(String(e.data.exit_code), "?")}`);
34
- break;
35
- case "verdict_written": {
36
- const overall = str(e.data.overall).toUpperCase();
37
- bump(reviewOutcomes, overall);
38
- if (overall === "FAIL")
39
- bump(reviewFailBySlug, str(e.data.slug));
40
- break;
41
- }
42
- default:
43
- break;
44
- }
45
- }
46
- const repeatedReviewFailures = tallyToSorted(reviewFailBySlug).filter((r) => r.count > 1);
47
- return {
48
- window,
49
- totalEvents: events.length,
50
- malformed,
51
- gateBlocks: tallyToSorted(gateBlocks),
52
- privacyBlocks: tallyToSorted(privacyBlocks),
53
- injectionBlocks,
54
- hookFailures: tallyToSorted(hookFailures),
55
- reviewOutcomes: tallyToSorted(reviewOutcomes),
56
- repeatedReviewFailures,
57
- // Reserved — no emitter today (trace-schema.md). Never list/zero as if real.
58
- skillsInvoked: null,
59
- memoryWrites: null,
60
- selfHealingAttempts: null,
61
- timings: null,
62
- };
63
- }
64
- function findClaudeDir() {
65
- const candidate = path.join(process.cwd(), ".claude");
66
- return fs.existsSync(candidate) && fs.statSync(candidate).isDirectory() ? candidate : null;
67
- }
68
- const NA = pc.dim("N/A — usage events not emitted");
69
- function renderList(title, rows) {
70
- console.log(pc.bold(title));
71
- if (rows.length === 0) {
72
- console.log(` ${pc.dim("none in window")}`);
73
- return;
74
- }
75
- for (const { label, count } of rows) {
76
- console.log(` ${pc.cyan(String(count).padStart(4))} ${label}`);
77
- }
78
- }
79
- function renderText(report) {
80
- console.log(pc.bold(pc.cyan("MeowKit reflect — harness retrospective")));
81
- console.log(pc.dim(`Window: ${report.window} · ${report.totalEvents} events${report.malformed > 0 ? ` · ${report.malformed} malformed (skipped)` : ""}`));
82
- if (report.window.includes("task ")) {
83
- // Honest caveat: gate/privacy/injection/hook events carry no data.task today,
84
- // so a task filter shows only workflow events — not gate/hook blocks.
85
- console.log(pc.dim("Note: --task matches workflow events only; gate/privacy/hook events are not task-tagged."));
86
- }
87
- console.log();
88
- if (report.totalEvents === 0) {
89
- console.log(pc.yellow("No events in window — nothing to reflect on yet."));
90
- console.log(pc.dim("The event log fills as the safety hooks block and the harness runs."));
91
- return;
92
- }
93
- renderList("Gate blocks (by gate · reason)", report.gateBlocks);
94
- console.log();
95
- renderList("Privacy blocks (by kind)", report.privacyBlocks);
96
- console.log();
97
- console.log(pc.bold("Injection blocks"));
98
- console.log(` ${pc.cyan(String(report.injectionBlocks).padStart(4))} prompt-injection (advisory)`);
99
- console.log();
100
- renderList("Hook failures (by hook · shell · exit)", report.hookFailures);
101
- console.log();
102
- renderList("Review outcomes (verdict_written)", report.reviewOutcomes);
103
- console.log();
104
- console.log(pc.bold("Repeated review failures"));
105
- if (report.repeatedReviewFailures.length === 0) {
106
- console.log(` ${pc.dim("none repeated in window")}`);
107
- }
108
- else {
109
- for (const { label, count } of report.repeatedReviewFailures) {
110
- console.log(` ${pc.yellow(`×${count}`)} ${label}`);
111
- }
112
- }
113
- console.log();
114
- // Honest N/A panels — reserved/underivable metrics.
115
- console.log(pc.bold("Skills invoked") + ` ${NA}`);
116
- console.log(pc.bold("Memory writes") + ` ${NA}`);
117
- console.log(pc.bold("Self-healing attempts") + ` ${pc.dim("N/A — recovery events not emitted")}`);
118
- console.log(pc.bold("Lifecycle timings") + ` ${pc.dim("N/A — phase-transition events not emitted")}`);
119
- }
120
- export function reflect(opts = {}) {
121
- const claudeDir = findClaudeDir();
122
- if (!claudeDir) {
123
- console.error(pc.red("Could not find .claude/ directory in the current directory."));
124
- process.exit(1);
125
- }
126
- const { events, malformed } = readEvents(claudeDir, { since: opts.last, task: opts.task });
127
- const window = opts.last ? `last ${opts.last}${opts.task ? ` · task ${opts.task}` : ""}` : opts.task ? `task ${opts.task}` : "all";
128
- const report = aggregate(events, malformed, window);
129
- if (opts.json) {
130
- console.log(JSON.stringify(report, null, 2));
131
- return;
132
- }
133
- renderText(report);
134
- }
135
- //# sourceMappingURL=reflect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reflect.js","sourceRoot":"","sources":["../../src/commands/reflect.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * `mewkit simulate` — run declarative given→when→expect scenarios against a scaffolded
3
- * temp harness via the real configured hooks. Generalizes the `doctor --hard-gates`
4
- * probes into data-driven `.claude/simulations/*.yaml`.
5
- */
6
- export interface SimulateOptions {
7
- scenario?: string;
8
- all?: boolean;
9
- json?: boolean;
10
- /** Downgrade SKIP from a failure to a pass (off by default — a SKIP means not exercised). */
11
- allowSkip?: boolean;
12
- }
13
- export declare function simulate(opts?: SimulateOptions): Promise<void>;
14
- //# sourceMappingURL=simulate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simulate.d.ts","sourceRoot":"","sources":["../../src/commands/simulate.ts"],"names":[],"mappings":"AAYA;;;;GAIG;AAEH,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6FAA6F;IAC7F,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAoBD,wBAAsB,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DxE"}
@@ -1,86 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import pc from "picocolors";
4
- import { runScenario, loadScenarioByName, listScenarios, hasHarness, } from "../core/simulation-runner.js";
5
- function findClaudeDir() {
6
- const candidate = path.join(process.cwd(), ".claude");
7
- return fs.existsSync(candidate) && fs.statSync(candidate).isDirectory() ? candidate : null;
8
- }
9
- function chip(status) {
10
- if (status === "PASS")
11
- return pc.green("PASS");
12
- if (status === "FAIL")
13
- return pc.red("FAIL");
14
- return pc.yellow("SKIP");
15
- }
16
- function renderResult(result) {
17
- console.log(` [${chip(result.status)}] ${pc.bold(result.name)}`);
18
- for (const step of result.steps) {
19
- console.log(` ${chip(step.status)} ${pc.dim(`${step.detail} — expected: ${step.expected}; actual: ${step.actual}`)}`);
20
- }
21
- }
22
- export async function simulate(opts = {}) {
23
- const claudeDir = findClaudeDir();
24
- if (!claudeDir) {
25
- console.error(pc.red("Could not find .claude/ directory in the current directory."));
26
- process.exit(1);
27
- }
28
- const srcRoot = path.dirname(claudeDir);
29
- if (process.platform === "win32") {
30
- console.error(pc.yellow("simulate is skipped on Windows — POSIX shell hooks cannot be probed here."));
31
- return;
32
- }
33
- if (!hasHarness(srcRoot)) {
34
- console.error(pc.red("No .claude/settings.json + hooks/ found; nothing to simulate."));
35
- process.exit(1);
36
- }
37
- let names;
38
- if (opts.all) {
39
- names = listScenarios(srcRoot);
40
- if (names.length === 0) {
41
- console.error(pc.red("No scenarios found in .claude/simulations/."));
42
- process.exit(1);
43
- }
44
- }
45
- else if (opts.scenario) {
46
- names = [opts.scenario];
47
- }
48
- else {
49
- console.error(pc.red("Specify --scenario <name> or --all."));
50
- console.log(pc.dim(`Available: ${listScenarios(srcRoot).join(", ") || "(none)"}`));
51
- process.exit(1);
52
- }
53
- const results = [];
54
- for (const name of names) {
55
- try {
56
- results.push(runScenario(loadScenarioByName(srcRoot, name), srcRoot));
57
- }
58
- catch (error) {
59
- const message = error instanceof Error ? error.message : String(error);
60
- results.push({
61
- name,
62
- status: "FAIL",
63
- steps: [{ status: "FAIL", detail: `Scenario load/run error: ${message}`, expected: "loadable scenario", actual: "error" }],
64
- });
65
- }
66
- }
67
- const counts = { PASS: 0, FAIL: 0, SKIP: 0 };
68
- for (const r of results)
69
- counts[r.status]++;
70
- if (opts.json) {
71
- console.log(JSON.stringify({ results, summary: counts }, null, 2));
72
- }
73
- else {
74
- console.log(pc.bold(pc.cyan("MeowKit simulate — scenario results")));
75
- console.log();
76
- for (const r of results)
77
- renderResult(r);
78
- console.log();
79
- console.log(`${pc.green(`${counts.PASS} PASS`)} / ${pc.red(`${counts.FAIL} FAIL`)} / ${pc.yellow(`${counts.SKIP} SKIP`)}`);
80
- }
81
- const skipIsFailure = !opts.allowSkip;
82
- const failed = counts.FAIL > 0 || (skipIsFailure && counts.SKIP > 0);
83
- if (failed)
84
- process.exit(1);
85
- }
86
- //# sourceMappingURL=simulate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simulate.js","sourceRoot":"","sources":["../../src/commands/simulate.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Reader for the canonical event log at `.claude/memory/trace-log.jsonl`, the
3
- * append-only JSONL stream written by `append-trace.sh`. Consumed by `reflect`
4
- * and `health`. Tolerant by contract: it NEVER throws — malformed and oversized
5
- * lines are skipped and tallied, unreadable files are ignored.
6
- *
7
- * Schema: see `.claude/skills/trace-analyze/references/trace-schema.md`.
8
- */
9
- /** Event types with a live emitter, plus the reserved (no-emitter-yet) ones. */
10
- export declare const KNOWN_EVENT_TYPES: readonly ["file_edited", "harness_run_start", "contract_signed", "verdict_written", "cost_sample", "session_end", "dead_weight_audit_needed", "benchmark_result", "gate.blocked", "privacy.blocked", "injection.blocked", "hook.failed", "skill.invoked", "memory.write"];
11
- export type KnownEventType = (typeof KNOWN_EVENT_TYPES)[number];
12
- /** Reserved types have no emitter yet; consumers render `N/A`, never a metric. */
13
- export declare const RESERVED_EVENT_TYPES: Set<string>;
14
- export interface EventRecord {
15
- schema_version: string;
16
- ts: string;
17
- event: string;
18
- run_id?: string;
19
- harness_version?: string;
20
- model?: string;
21
- density?: string;
22
- data: Record<string, unknown>;
23
- }
24
- export interface ReadEventsOptions {
25
- /** Time window: `Nd` (days), `Nh` (hours), or an ISO-8601 instant. */
26
- since?: string;
27
- /** Keep only events whose `data.task` equals this id. */
28
- task?: string;
29
- /** Keep only these event types. */
30
- types?: string[];
31
- }
32
- export interface ReadEventsResult {
33
- events: EventRecord[];
34
- /** Count of lines skipped: failed JSON.parse OR exceeded the 64 KiB guard. */
35
- malformed: number;
36
- }
37
- /** Resolve a `since` spec to an epoch-ms lower bound, or null if absent/invalid. */
38
- export declare function parseSince(since: string | undefined): number | null;
39
- /**
40
- * Read events from `<claudeDir>/memory/trace-log.jsonl` (+ in-window rotated `.gz`
41
- * archives), filtered by `since` / `task` / `types`. Never throws.
42
- */
43
- export declare function readEvents(claudeDir: string, opts?: ReadEventsOptions): ReadEventsResult;
44
- //# sourceMappingURL=event-log.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-log.d.ts","sourceRoot":"","sources":["../../src/core/event-log.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,eAAO,MAAM,iBAAiB,2QAkBpB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,aAAqD,CAAC;AAEvF,MAAM,WAAW,WAAW;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IACjC,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;CAClB;AAKD,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAUnE;AAoFD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,iBAAsB,GAAG,gBAAgB,CA2B5F"}
@@ -1,169 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import zlib from "node:zlib";
4
- /**
5
- * Reader for the canonical event log at `.claude/memory/trace-log.jsonl`, the
6
- * append-only JSONL stream written by `append-trace.sh`. Consumed by `reflect`
7
- * and `health`. Tolerant by contract: it NEVER throws — malformed and oversized
8
- * lines are skipped and tallied, unreadable files are ignored.
9
- *
10
- * Schema: see `.claude/skills/trace-analyze/references/trace-schema.md`.
11
- */
12
- /** Event types with a live emitter, plus the reserved (no-emitter-yet) ones. */
13
- export const KNOWN_EVENT_TYPES = [
14
- // existing
15
- "file_edited",
16
- "harness_run_start",
17
- "contract_signed",
18
- "verdict_written",
19
- "cost_sample",
20
- "session_end",
21
- "dead_weight_audit_needed",
22
- "benchmark_result",
23
- // Phase 4 — gate/hook taxonomy
24
- "gate.blocked",
25
- "privacy.blocked",
26
- "injection.blocked",
27
- "hook.failed",
28
- // reserved — no emitter today (consumers must render N/A, never zero/list)
29
- "skill.invoked",
30
- "memory.write",
31
- ];
32
- /** Reserved types have no emitter yet; consumers render `N/A`, never a metric. */
33
- export const RESERVED_EVENT_TYPES = new Set(["skill.invoked", "memory.write"]);
34
- /** Reject any single line larger than this (defends against a torn/huge line). */
35
- const MAX_LINE_BYTES = 64 * 1024;
36
- /** Resolve a `since` spec to an epoch-ms lower bound, or null if absent/invalid. */
37
- export function parseSince(since) {
38
- if (!since)
39
- return null;
40
- const rel = since.match(/^(\d+)([dh])$/);
41
- if (rel) {
42
- const n = Number(rel[1]);
43
- const unitMs = rel[2] === "d" ? 86_400_000 : 3_600_000;
44
- return Date.now() - n * unitMs;
45
- }
46
- const parsed = Date.parse(since);
47
- return Number.isNaN(parsed) ? null : parsed;
48
- }
49
- function isRecord(value) {
50
- return typeof value === "object" && value !== null && !Array.isArray(value);
51
- }
52
- /** Normalize a parsed JSON line into an EventRecord, or null if it isn't one. */
53
- function toEventRecord(parsed) {
54
- if (!isRecord(parsed))
55
- return null;
56
- if (typeof parsed.event !== "string" || typeof parsed.ts !== "string")
57
- return null;
58
- const data = isRecord(parsed.data) ? parsed.data : {};
59
- return {
60
- schema_version: typeof parsed.schema_version === "string" ? parsed.schema_version : "",
61
- ts: parsed.ts,
62
- event: parsed.event,
63
- run_id: typeof parsed.run_id === "string" ? parsed.run_id : undefined,
64
- harness_version: typeof parsed.harness_version === "string" ? parsed.harness_version : undefined,
65
- model: typeof parsed.model === "string" ? parsed.model : undefined,
66
- density: typeof parsed.density === "string" ? parsed.density : undefined,
67
- data,
68
- };
69
- }
70
- /** Parse one log file's text into records, mutating the accumulator + malformed tally. */
71
- function parseLines(text, out, state) {
72
- for (const line of text.split("\n")) {
73
- if (line.trim() === "")
74
- continue;
75
- if (Buffer.byteLength(line, "utf8") > MAX_LINE_BYTES) {
76
- state.malformed++;
77
- continue;
78
- }
79
- let parsed;
80
- try {
81
- parsed = JSON.parse(line);
82
- }
83
- catch {
84
- state.malformed++;
85
- continue;
86
- }
87
- const record = toEventRecord(parsed);
88
- if (record)
89
- out.push(record);
90
- else
91
- state.malformed++;
92
- }
93
- }
94
- /** Discover the active log + any rotated archives whose mtime is in the window. */
95
- function discoverLogFiles(memoryDir, sinceMs) {
96
- const active = path.join(memoryDir, "trace-log.jsonl");
97
- const files = [];
98
- let entries = [];
99
- try {
100
- entries = fs.readdirSync(memoryDir);
101
- }
102
- catch {
103
- return fs.existsSync(active) ? [active] : [];
104
- }
105
- if (entries.includes("trace-log.jsonl"))
106
- files.push(active);
107
- // Rotated archives: trace-log.<stamp>.jsonl(.gz). Fold one in unconditionally
108
- // unless its mtime predates the window (its events are all older than `since`).
109
- const rotated = /^trace-log\.[^/]+\.jsonl(\.gz)?$/;
110
- for (const name of entries) {
111
- if (name === "trace-log.jsonl" || !rotated.test(name))
112
- continue;
113
- const full = path.join(memoryDir, name);
114
- if (sinceMs !== null) {
115
- try {
116
- if (fs.statSync(full).mtimeMs < sinceMs)
117
- continue;
118
- }
119
- catch {
120
- continue;
121
- }
122
- }
123
- files.push(full);
124
- }
125
- return files;
126
- }
127
- function readFileText(file) {
128
- try {
129
- if (file.endsWith(".gz")) {
130
- return zlib.gunzipSync(fs.readFileSync(file)).toString("utf8");
131
- }
132
- return fs.readFileSync(file, "utf8");
133
- }
134
- catch {
135
- return null;
136
- }
137
- }
138
- /**
139
- * Read events from `<claudeDir>/memory/trace-log.jsonl` (+ in-window rotated `.gz`
140
- * archives), filtered by `since` / `task` / `types`. Never throws.
141
- */
142
- export function readEvents(claudeDir, opts = {}) {
143
- const memoryDir = path.join(claudeDir, "memory");
144
- const sinceMs = parseSince(opts.since);
145
- const typeSet = opts.types && opts.types.length > 0 ? new Set(opts.types) : null;
146
- const collected = [];
147
- const state = { malformed: 0 };
148
- for (const file of discoverLogFiles(memoryDir, sinceMs)) {
149
- const text = readFileText(file);
150
- if (text !== null)
151
- parseLines(text, collected, state);
152
- }
153
- const events = collected.filter((e) => {
154
- if (typeSet && !typeSet.has(e.event))
155
- return false;
156
- if (opts.task !== undefined && e.data.task !== opts.task)
157
- return false;
158
- if (sinceMs !== null) {
159
- const eventMs = Date.parse(e.ts);
160
- if (Number.isNaN(eventMs) || eventMs < sinceMs)
161
- return false;
162
- }
163
- return true;
164
- });
165
- // Chronological order regardless of file-read order.
166
- events.sort((a, b) => Date.parse(a.ts) - Date.parse(b.ts));
167
- return { events, malformed: state.malformed };
168
- }
169
- //# sourceMappingURL=event-log.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-log.js","sourceRoot":"","sources":["../../src/core/event-log.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import type { EventRecord } from "../event-log.js";
2
- import { type EvolutionSuggestion } from "./suggestions.js";
3
- export declare function suggestionsFromEvents(events: EventRecord[], malformed: number): EvolutionSuggestion[];
4
- //# sourceMappingURL=event-clusters.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-clusters.d.ts","sourceRoot":"","sources":["../../../src/core/evolution/event-clusters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAc5E,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,mBAAmB,EAAE,CA2ErG"}
@@ -1,82 +0,0 @@
1
- import { clusterReviewFailures } from "./review-failure-clusters.js";
2
- import { makeSuggestion } from "./suggestions.js";
3
- function str(value, fallback = "unknown") {
4
- return typeof value === "string" && value.trim().length > 0 ? value.trim() : fallback;
5
- }
6
- function bump(map, key) {
7
- map.set(key, (map.get(key) ?? 0) + 1);
8
- }
9
- function repeated(map, min = 2) {
10
- return [...map.entries()].filter(([, count]) => count >= min).sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]));
11
- }
12
- export function suggestionsFromEvents(events, malformed) {
13
- const suggestions = [];
14
- const hookFailures = new Map();
15
- const gateBlocks = new Map();
16
- for (const event of events) {
17
- if (event.event === "hook.failed") {
18
- bump(hookFailures, `${str(event.data.hook)} exit ${str(event.data.exit_code, "?")}`);
19
- }
20
- if (event.event === "gate.blocked") {
21
- bump(gateBlocks, `${str(event.data.gate)}: ${str(event.data.reason, "")}`);
22
- }
23
- if (event.event === "dead_weight_audit_needed") {
24
- suggestions.push(makeSuggestion({
25
- kind: "pack-pruning",
26
- title: "Run a dead-weight audit",
27
- evidence: [{ source: "event-log", detail: "dead_weight_audit_needed event observed", count: 1 }],
28
- confidence: 0.72,
29
- impact: "medium",
30
- risk: "low",
31
- proposedAction: "Run `mewkit evolve report` and review pack/skill pruning candidates.",
32
- }));
33
- }
34
- }
35
- for (const [label, count] of repeated(hookFailures)) {
36
- suggestions.push(makeSuggestion({
37
- kind: "hook-test",
38
- title: `Add regression coverage for ${label}`,
39
- evidence: [{ source: "event-log", detail: label, count }],
40
- confidence: Math.min(0.95, 0.55 + count * 0.1),
41
- impact: "high",
42
- risk: "low",
43
- proposedAction: "Add or extend a `mewkit simulate` scenario and a configured-hook regression test.",
44
- }));
45
- }
46
- for (const [label, count] of repeated(gateBlocks, 3)) {
47
- suggestions.push(makeSuggestion({
48
- kind: "policy",
49
- title: `Review gate policy for repeated ${label}`,
50
- evidence: [{ source: "event-log", detail: label, count }],
51
- confidence: Math.min(0.9, 0.45 + count * 0.08),
52
- impact: "medium",
53
- risk: "medium",
54
- proposedAction: "Run `mewkit policy explain`; consider a clearer policy profile or docs clarification.",
55
- }));
56
- }
57
- for (const cluster of clusterReviewFailures(events)) {
58
- const diversity = cluster.tasks.length > 1 ? " across multiple tasks" : "";
59
- suggestions.push(makeSuggestion({
60
- kind: "review-promotion",
61
- title: `Promote repeated review failure: ${cluster.key}`,
62
- evidence: [{ source: "verdict_written", detail: `${cluster.count} failure(s)${diversity}`, count: cluster.count }],
63
- confidence: Math.min(0.92, 0.5 + cluster.count * 0.12 + (cluster.tasks.length > 1 ? 0.1 : 0)),
64
- impact: "high",
65
- risk: "medium",
66
- proposedAction: "Generate a candidate checklist/rule via `mewkit memory promote --review-failures`.",
67
- }));
68
- }
69
- if (malformed > 0) {
70
- suggestions.push(makeSuggestion({
71
- kind: "trace-hardening",
72
- title: "Harden trace writer or reader against malformed rows",
73
- evidence: [{ source: "event-log", detail: "malformed or oversized rows skipped", count: malformed }],
74
- confidence: Math.min(0.9, 0.5 + malformed * 0.05),
75
- impact: "medium",
76
- risk: "low",
77
- proposedAction: "Add an emitter-output JSON validity test and inspect trace append paths.",
78
- }));
79
- }
80
- return suggestions;
81
- }
82
- //# sourceMappingURL=event-clusters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-clusters.js","sourceRoot":"","sources":["../../../src/core/evolution/event-clusters.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { EvolutionSuggestion } from "./suggestions.js";
2
- export declare function renderSuggestions(suggestions: EvolutionSuggestion[]): void;
3
- //# sourceMappingURL=recommendation-renderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recommendation-renderer.d.ts","sourceRoot":"","sources":["../../../src/core/evolution/recommendation-renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAM5D,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAkB1E"}
@@ -1,24 +0,0 @@
1
- import pc from "picocolors";
2
- function pct(n) {
3
- return `${Math.round(n * 100)}%`;
4
- }
5
- export function renderSuggestions(suggestions) {
6
- console.log(pc.bold(pc.cyan("MeowKit evolve — proposal-only suggestions")));
7
- console.log(pc.dim("No rules, skills, hooks, packs, or policies were changed."));
8
- console.log();
9
- if (suggestions.length === 0) {
10
- console.log(pc.yellow("No suggestions met the evidence threshold."));
11
- return;
12
- }
13
- for (const [i, suggestion] of suggestions.entries()) {
14
- console.log(`${pc.bold(`${i + 1}. ${suggestion.title}`)} ${pc.dim(`[${suggestion.kind}]`)}`);
15
- console.log(` confidence ${pc.cyan(pct(suggestion.confidence))} · impact ${suggestion.impact} · risk ${suggestion.risk}`);
16
- for (const evidence of suggestion.evidence) {
17
- const count = evidence.count === undefined ? "" : ` (${evidence.count})`;
18
- console.log(` - ${evidence.source}: ${evidence.detail}${count}`);
19
- }
20
- console.log(` proposed: ${suggestion.proposedAction}`);
21
- console.log();
22
- }
23
- }
24
- //# sourceMappingURL=recommendation-renderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recommendation-renderer.js","sourceRoot":"","sources":["../../../src/core/evolution/recommendation-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,SAAS,GAAG,CAAC,CAAS;IACrB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,WAAkC;IACnE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACrE,OAAO;IACR,CAAC;IACD,KAAK,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,aAAa,UAAU,CAAC,MAAM,WAAW,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5H,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,KAAK,GAAG,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;AACF,CAAC"}
@@ -1,10 +0,0 @@
1
- import type { EventRecord } from "../event-log.js";
2
- export interface ReviewFailureCluster {
3
- key: string;
4
- count: number;
5
- tasks: string[];
6
- slug: string;
7
- dimension?: string;
8
- }
9
- export declare function clusterReviewFailures(events: EventRecord[], minCount?: number): ReviewFailureCluster[];
10
- //# sourceMappingURL=review-failure-clusters.d.ts.map