mewkit 1.14.1 → 1.16.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 (739) hide show
  1. package/NOTICE +24 -0
  2. package/README.md +36 -70
  3. package/dist/commands/capabilities.d.ts +13 -0
  4. package/dist/commands/capabilities.d.ts.map +1 -0
  5. package/dist/commands/capabilities.js +230 -0
  6. package/dist/commands/capabilities.js.map +1 -0
  7. package/dist/commands/context.d.ts +10 -0
  8. package/dist/commands/context.d.ts.map +1 -0
  9. package/dist/commands/context.js +125 -0
  10. package/dist/commands/context.js.map +1 -0
  11. package/dist/commands/doctor.d.ts +27 -0
  12. package/dist/commands/doctor.d.ts.map +1 -1
  13. package/dist/commands/doctor.js +123 -0
  14. package/dist/commands/doctor.js.map +1 -1
  15. package/dist/commands/providers.d.ts +2 -0
  16. package/dist/commands/providers.d.ts.map +1 -1
  17. package/dist/commands/providers.js +77 -0
  18. package/dist/commands/providers.js.map +1 -1
  19. package/dist/commands/task-state.d.ts +13 -0
  20. package/dist/commands/task-state.d.ts.map +1 -0
  21. package/dist/commands/task-state.js +106 -0
  22. package/dist/commands/task-state.js.map +1 -0
  23. package/dist/commands/validate.d.ts +48 -1
  24. package/dist/commands/validate.d.ts.map +1 -1
  25. package/dist/commands/validate.js +97 -24
  26. package/dist/commands/validate.js.map +1 -1
  27. package/dist/commands/visual-plan.d.ts +23 -0
  28. package/dist/commands/visual-plan.d.ts.map +1 -0
  29. package/dist/commands/visual-plan.js +26 -0
  30. package/dist/commands/visual-plan.js.map +1 -0
  31. package/dist/core/availability.d.ts +40 -0
  32. package/dist/core/availability.d.ts.map +1 -0
  33. package/dist/core/availability.js +47 -0
  34. package/dist/core/availability.js.map +1 -0
  35. package/dist/core/bootstrap.d.ts +19 -0
  36. package/dist/core/bootstrap.d.ts.map +1 -0
  37. package/dist/core/bootstrap.js +42 -0
  38. package/dist/core/bootstrap.js.map +1 -0
  39. package/dist/core/build-capabilities.d.ts +9 -0
  40. package/dist/core/build-capabilities.d.ts.map +1 -0
  41. package/dist/core/build-capabilities.js +123 -0
  42. package/dist/core/build-capabilities.js.map +1 -0
  43. package/dist/core/build-inventory.d.ts +2 -0
  44. package/dist/core/build-inventory.d.ts.map +1 -1
  45. package/dist/core/build-inventory.js +1 -1
  46. package/dist/core/build-inventory.js.map +1 -1
  47. package/dist/core/capability-authored.d.ts +26 -0
  48. package/dist/core/capability-authored.d.ts.map +1 -0
  49. package/dist/core/capability-authored.js +117 -0
  50. package/dist/core/capability-authored.js.map +1 -0
  51. package/dist/core/capability-snapshot.d.ts +13 -0
  52. package/dist/core/capability-snapshot.d.ts.map +1 -0
  53. package/dist/core/capability-snapshot.js +53 -0
  54. package/dist/core/capability-snapshot.js.map +1 -0
  55. package/dist/core/capability.d.ts +519 -0
  56. package/dist/core/capability.d.ts.map +1 -0
  57. package/dist/core/capability.js +114 -0
  58. package/dist/core/capability.js.map +1 -0
  59. package/dist/core/compute-checksums.d.ts.map +1 -1
  60. package/dist/core/compute-checksums.js +8 -2
  61. package/dist/core/compute-checksums.js.map +1 -1
  62. package/dist/core/consolidation-ledger.d.ts +30 -0
  63. package/dist/core/consolidation-ledger.d.ts.map +1 -0
  64. package/dist/core/consolidation-ledger.js +147 -0
  65. package/dist/core/consolidation-ledger.js.map +1 -0
  66. package/dist/core/generate-capability-view.d.ts +21 -0
  67. package/dist/core/generate-capability-view.d.ts.map +1 -0
  68. package/dist/core/generate-capability-view.js +48 -0
  69. package/dist/core/generate-capability-view.js.map +1 -0
  70. package/dist/core/install-metadata.d.ts +20 -3
  71. package/dist/core/install-metadata.d.ts.map +1 -1
  72. package/dist/core/install-metadata.js +49 -9
  73. package/dist/core/install-metadata.js.map +1 -1
  74. package/dist/core/provider-adapter.d.ts +28 -0
  75. package/dist/core/provider-adapter.d.ts.map +1 -0
  76. package/dist/core/provider-adapter.js +31 -0
  77. package/dist/core/provider-adapter.js.map +1 -0
  78. package/dist/core/provider-invocation.d.ts +14 -0
  79. package/dist/core/provider-invocation.d.ts.map +1 -0
  80. package/dist/core/provider-invocation.js +56 -0
  81. package/dist/core/provider-invocation.js.map +1 -0
  82. package/dist/core/provider-lifecycle.d.ts +35 -0
  83. package/dist/core/provider-lifecycle.d.ts.map +1 -0
  84. package/dist/core/provider-lifecycle.js +101 -0
  85. package/dist/core/provider-lifecycle.js.map +1 -0
  86. package/dist/core/provider-projection.d.ts +29 -0
  87. package/dist/core/provider-projection.d.ts.map +1 -0
  88. package/dist/core/provider-projection.js +47 -0
  89. package/dist/core/provider-projection.js.map +1 -0
  90. package/dist/core/release-metadata.d.ts +7 -0
  91. package/dist/core/release-metadata.d.ts.map +1 -1
  92. package/dist/core/release-metadata.js +13 -0
  93. package/dist/core/release-metadata.js.map +1 -1
  94. package/dist/core/repo-context-adapter.d.ts +23 -0
  95. package/dist/core/repo-context-adapter.d.ts.map +1 -0
  96. package/dist/core/repo-context-adapter.js +44 -0
  97. package/dist/core/repo-context-adapter.js.map +1 -0
  98. package/dist/core/repo-context.d.ts +147 -0
  99. package/dist/core/repo-context.d.ts.map +1 -0
  100. package/dist/core/repo-context.js +204 -0
  101. package/dist/core/repo-context.js.map +1 -0
  102. package/dist/core/resolve-capabilities.d.ts +70 -0
  103. package/dist/core/resolve-capabilities.d.ts.map +1 -0
  104. package/dist/core/resolve-capabilities.js +124 -0
  105. package/dist/core/resolve-capabilities.js.map +1 -0
  106. package/dist/core/smart-update.d.ts.map +1 -1
  107. package/dist/core/smart-update.js +13 -12
  108. package/dist/core/smart-update.js.map +1 -1
  109. package/dist/core/task-record.d.ts +252 -0
  110. package/dist/core/task-record.d.ts.map +1 -0
  111. package/dist/core/task-record.js +252 -0
  112. package/dist/core/task-record.js.map +1 -0
  113. package/dist/core/validate-capabilities.d.ts +12 -0
  114. package/dist/core/validate-capabilities.d.ts.map +1 -0
  115. package/dist/core/validate-capabilities.js +138 -0
  116. package/dist/core/validate-capabilities.js.map +1 -0
  117. package/dist/index.js +99 -25
  118. package/dist/index.js.map +1 -1
  119. package/dist/local-web/atomic-write.d.ts +15 -0
  120. package/dist/local-web/atomic-write.d.ts.map +1 -0
  121. package/dist/local-web/atomic-write.js +69 -0
  122. package/dist/local-web/atomic-write.js.map +1 -0
  123. package/dist/local-web/constants.d.ts +13 -0
  124. package/dist/local-web/constants.d.ts.map +1 -0
  125. package/dist/local-web/constants.js +13 -0
  126. package/dist/local-web/constants.js.map +1 -0
  127. package/dist/local-web/etag.d.ts +19 -0
  128. package/dist/local-web/etag.d.ts.map +1 -0
  129. package/dist/local-web/etag.js +32 -0
  130. package/dist/local-web/etag.js.map +1 -0
  131. package/dist/local-web/host-guard.d.ts +12 -0
  132. package/dist/local-web/host-guard.d.ts.map +1 -0
  133. package/dist/local-web/host-guard.js +18 -0
  134. package/dist/local-web/host-guard.js.map +1 -0
  135. package/dist/local-web/index.d.ts +23 -0
  136. package/dist/local-web/index.d.ts.map +1 -0
  137. package/dist/local-web/index.js +23 -0
  138. package/dist/local-web/index.js.map +1 -0
  139. package/dist/local-web/local-server.d.ts +37 -0
  140. package/dist/local-web/local-server.d.ts.map +1 -0
  141. package/dist/local-web/local-server.js +85 -0
  142. package/dist/local-web/local-server.js.map +1 -0
  143. package/dist/local-web/open-browser.d.ts +12 -0
  144. package/dist/local-web/open-browser.d.ts.map +1 -0
  145. package/dist/{orchviz/open-url.js → local-web/open-browser.js} +9 -8
  146. package/dist/local-web/open-browser.js.map +1 -0
  147. package/dist/local-web/origin-guard.d.ts +11 -0
  148. package/dist/local-web/origin-guard.d.ts.map +1 -0
  149. package/dist/local-web/origin-guard.js +15 -0
  150. package/dist/local-web/origin-guard.js.map +1 -0
  151. package/dist/local-web/path-boundary.d.ts +20 -0
  152. package/dist/local-web/path-boundary.d.ts.map +1 -0
  153. package/dist/local-web/path-boundary.js +39 -0
  154. package/dist/local-web/path-boundary.js.map +1 -0
  155. package/dist/local-web/request-body.d.ts +24 -0
  156. package/dist/local-web/request-body.d.ts.map +1 -0
  157. package/dist/local-web/request-body.js +68 -0
  158. package/dist/local-web/request-body.js.map +1 -0
  159. package/dist/local-web/static-handler.d.ts +14 -0
  160. package/dist/local-web/static-handler.d.ts.map +1 -0
  161. package/dist/{orchviz/server → local-web}/static-handler.js +11 -6
  162. package/dist/local-web/static-handler.js.map +1 -0
  163. package/dist/migrate/capability-bootstrap-projection.d.ts +11 -0
  164. package/dist/migrate/capability-bootstrap-projection.d.ts.map +1 -0
  165. package/dist/migrate/capability-bootstrap-projection.js +48 -0
  166. package/dist/migrate/capability-bootstrap-projection.js.map +1 -0
  167. package/dist/migrate/migrate-orchestrator.d.ts.map +1 -1
  168. package/dist/migrate/migrate-orchestrator.js +22 -0
  169. package/dist/migrate/migrate-orchestrator.js.map +1 -1
  170. package/dist/migrate/reconcile/portable-manifest.d.ts +12 -12
  171. package/dist/migrate/reconcile/portable-registry.d.ts +30 -30
  172. package/dist/migrate/types.d.ts +10 -10
  173. package/dist/{orchviz/token-estimator.d.ts → token-estimator/index.d.ts} +6 -1
  174. package/dist/token-estimator/index.d.ts.map +1 -0
  175. package/dist/{orchviz/token-estimator.js → token-estimator/index.js} +11 -2
  176. package/dist/token-estimator/index.js.map +1 -0
  177. package/dist/visual-plan/__fixtures__/valid-plan.d.ts +15 -0
  178. package/dist/visual-plan/__fixtures__/valid-plan.d.ts.map +1 -0
  179. package/dist/visual-plan/__fixtures__/valid-plan.js +79 -0
  180. package/dist/visual-plan/__fixtures__/valid-plan.js.map +1 -0
  181. package/dist/visual-plan/application/apply-feedback.d.ts +31 -0
  182. package/dist/visual-plan/application/apply-feedback.d.ts.map +1 -0
  183. package/dist/visual-plan/application/apply-feedback.js +85 -0
  184. package/dist/visual-plan/application/apply-feedback.js.map +1 -0
  185. package/dist/visual-plan/application/apply-patch-op.d.ts +13 -0
  186. package/dist/visual-plan/application/apply-patch-op.d.ts.map +1 -0
  187. package/dist/visual-plan/application/apply-patch-op.js +72 -0
  188. package/dist/visual-plan/application/apply-patch-op.js.map +1 -0
  189. package/dist/visual-plan/application/approve.d.ts +24 -0
  190. package/dist/visual-plan/application/approve.d.ts.map +1 -0
  191. package/dist/visual-plan/application/approve.js +53 -0
  192. package/dist/visual-plan/application/approve.js.map +1 -0
  193. package/dist/visual-plan/application/clock.d.ts +8 -0
  194. package/dist/visual-plan/application/clock.d.ts.map +1 -0
  195. package/dist/visual-plan/application/clock.js +10 -0
  196. package/dist/visual-plan/application/clock.js.map +1 -0
  197. package/dist/visual-plan/application/export-plan.d.ts +19 -0
  198. package/dist/visual-plan/application/export-plan.d.ts.map +1 -0
  199. package/dist/visual-plan/application/export-plan.js +59 -0
  200. package/dist/visual-plan/application/export-plan.js.map +1 -0
  201. package/dist/visual-plan/application/patch-plan.d.ts +26 -0
  202. package/dist/visual-plan/application/patch-plan.d.ts.map +1 -0
  203. package/dist/visual-plan/application/patch-plan.js +48 -0
  204. package/dist/visual-plan/application/patch-plan.js.map +1 -0
  205. package/dist/visual-plan/application/prepare-feedback.d.ts +24 -0
  206. package/dist/visual-plan/application/prepare-feedback.d.ts.map +1 -0
  207. package/dist/visual-plan/application/prepare-feedback.js +70 -0
  208. package/dist/visual-plan/application/prepare-feedback.js.map +1 -0
  209. package/dist/visual-plan/application/rehash.d.ts +19 -0
  210. package/dist/visual-plan/application/rehash.d.ts.map +1 -0
  211. package/dist/visual-plan/application/rehash.js +43 -0
  212. package/dist/visual-plan/application/rehash.js.map +1 -0
  213. package/dist/visual-plan/application/status.d.ts +20 -0
  214. package/dist/visual-plan/application/status.d.ts.map +1 -0
  215. package/dist/visual-plan/application/status.js +27 -0
  216. package/dist/visual-plan/application/status.js.map +1 -0
  217. package/dist/visual-plan/application/validate-plan.d.ts +30 -0
  218. package/dist/visual-plan/application/validate-plan.d.ts.map +1 -0
  219. package/dist/visual-plan/application/validate-plan.js +59 -0
  220. package/dist/visual-plan/application/validate-plan.js.map +1 -0
  221. package/dist/visual-plan/domain/coverage.d.ts +35 -0
  222. package/dist/visual-plan/domain/coverage.d.ts.map +1 -0
  223. package/dist/visual-plan/domain/coverage.js +99 -0
  224. package/dist/visual-plan/domain/coverage.js.map +1 -0
  225. package/dist/visual-plan/domain/cross-refs.d.ts +20 -0
  226. package/dist/visual-plan/domain/cross-refs.d.ts.map +1 -0
  227. package/dist/visual-plan/domain/cross-refs.js +92 -0
  228. package/dist/visual-plan/domain/cross-refs.js.map +1 -0
  229. package/dist/visual-plan/domain/errors.d.ts +43 -0
  230. package/dist/visual-plan/domain/errors.d.ts.map +1 -0
  231. package/dist/visual-plan/domain/errors.js +33 -0
  232. package/dist/visual-plan/domain/errors.js.map +1 -0
  233. package/dist/visual-plan/domain/feedback-schemas.d.ts +160 -0
  234. package/dist/visual-plan/domain/feedback-schemas.d.ts.map +1 -0
  235. package/dist/visual-plan/domain/feedback-schemas.js +71 -0
  236. package/dist/visual-plan/domain/feedback-schemas.js.map +1 -0
  237. package/dist/visual-plan/domain/ids.d.ts +21 -0
  238. package/dist/visual-plan/domain/ids.d.ts.map +1 -0
  239. package/dist/visual-plan/domain/ids.js +25 -0
  240. package/dist/visual-plan/domain/ids.js.map +1 -0
  241. package/dist/visual-plan/domain/patches.d.ts +176 -0
  242. package/dist/visual-plan/domain/patches.d.ts.map +1 -0
  243. package/dist/visual-plan/domain/patches.js +41 -0
  244. package/dist/visual-plan/domain/patches.js.map +1 -0
  245. package/dist/visual-plan/domain/sanitizer-config.d.ts +61 -0
  246. package/dist/visual-plan/domain/sanitizer-config.d.ts.map +1 -0
  247. package/dist/visual-plan/domain/sanitizer-config.js +70 -0
  248. package/dist/visual-plan/domain/sanitizer-config.js.map +1 -0
  249. package/dist/visual-plan/domain/schemas.d.ts +1492 -0
  250. package/dist/visual-plan/domain/schemas.d.ts.map +1 -0
  251. package/dist/visual-plan/domain/schemas.js +166 -0
  252. package/dist/visual-plan/domain/schemas.js.map +1 -0
  253. package/dist/visual-plan/infrastructure/atomic-write.d.ts +11 -0
  254. package/dist/visual-plan/infrastructure/atomic-write.d.ts.map +1 -0
  255. package/dist/visual-plan/infrastructure/atomic-write.js +44 -0
  256. package/dist/visual-plan/infrastructure/atomic-write.js.map +1 -0
  257. package/dist/visual-plan/infrastructure/feedback-repository.d.ts +18 -0
  258. package/dist/visual-plan/infrastructure/feedback-repository.d.ts.map +1 -0
  259. package/dist/visual-plan/infrastructure/feedback-repository.js +59 -0
  260. package/dist/visual-plan/infrastructure/feedback-repository.js.map +1 -0
  261. package/dist/visual-plan/infrastructure/hashing.d.ts +37 -0
  262. package/dist/visual-plan/infrastructure/hashing.d.ts.map +1 -0
  263. package/dist/visual-plan/infrastructure/hashing.js +81 -0
  264. package/dist/visual-plan/infrastructure/hashing.js.map +1 -0
  265. package/dist/visual-plan/infrastructure/plan-state.d.ts +32 -0
  266. package/dist/visual-plan/infrastructure/plan-state.d.ts.map +1 -0
  267. package/dist/visual-plan/infrastructure/plan-state.js +58 -0
  268. package/dist/visual-plan/infrastructure/plan-state.js.map +1 -0
  269. package/dist/visual-plan/infrastructure/receipt-repository.d.ts +17 -0
  270. package/dist/visual-plan/infrastructure/receipt-repository.d.ts.map +1 -0
  271. package/dist/visual-plan/infrastructure/receipt-repository.js +59 -0
  272. package/dist/visual-plan/infrastructure/receipt-repository.js.map +1 -0
  273. package/dist/visual-plan/infrastructure/visual-plan-repository.d.ts +38 -0
  274. package/dist/visual-plan/infrastructure/visual-plan-repository.d.ts.map +1 -0
  275. package/dist/visual-plan/infrastructure/visual-plan-repository.js +97 -0
  276. package/dist/visual-plan/infrastructure/visual-plan-repository.js.map +1 -0
  277. package/dist/visual-plan/infrastructure/wireframe-sanitizer.d.ts +41 -0
  278. package/dist/visual-plan/infrastructure/wireframe-sanitizer.d.ts.map +1 -0
  279. package/dist/visual-plan/infrastructure/wireframe-sanitizer.js +72 -0
  280. package/dist/visual-plan/infrastructure/wireframe-sanitizer.js.map +1 -0
  281. package/dist/visual-plan/interface/cli.d.ts +29 -0
  282. package/dist/visual-plan/interface/cli.d.ts.map +1 -0
  283. package/dist/visual-plan/interface/cli.js +280 -0
  284. package/dist/visual-plan/interface/cli.js.map +1 -0
  285. package/dist/visual-plan/interface/studio.d.ts +20 -0
  286. package/dist/visual-plan/interface/studio.d.ts.map +1 -0
  287. package/dist/visual-plan/interface/studio.js +74 -0
  288. package/dist/visual-plan/interface/studio.js.map +1 -0
  289. package/dist/visual-plan/server/csp.d.ts +13 -0
  290. package/dist/visual-plan/server/csp.d.ts.map +1 -0
  291. package/dist/visual-plan/server/csp.js +17 -0
  292. package/dist/visual-plan/server/csp.js.map +1 -0
  293. package/dist/visual-plan/server/edit-lock.d.ts +28 -0
  294. package/dist/visual-plan/server/edit-lock.d.ts.map +1 -0
  295. package/dist/visual-plan/server/edit-lock.js +71 -0
  296. package/dist/visual-plan/server/edit-lock.js.map +1 -0
  297. package/dist/visual-plan/server/routes/feedback.d.ts +12 -0
  298. package/dist/visual-plan/server/routes/feedback.d.ts.map +1 -0
  299. package/dist/visual-plan/server/routes/feedback.js +63 -0
  300. package/dist/visual-plan/server/routes/feedback.js.map +1 -0
  301. package/dist/visual-plan/server/routes/get-plan.d.ts +14 -0
  302. package/dist/visual-plan/server/routes/get-plan.d.ts.map +1 -0
  303. package/dist/visual-plan/server/routes/get-plan.js +38 -0
  304. package/dist/visual-plan/server/routes/get-plan.js.map +1 -0
  305. package/dist/visual-plan/server/routes/patch.d.ts +10 -0
  306. package/dist/visual-plan/server/routes/patch.d.ts.map +1 -0
  307. package/dist/visual-plan/server/routes/patch.js +66 -0
  308. package/dist/visual-plan/server/routes/patch.js.map +1 -0
  309. package/dist/visual-plan/server/visual-plan-server.d.ts +30 -0
  310. package/dist/visual-plan/server/visual-plan-server.d.ts.map +1 -0
  311. package/dist/visual-plan/server/visual-plan-server.js +79 -0
  312. package/dist/visual-plan/server/visual-plan-server.js.map +1 -0
  313. package/dist/visual-plan-web/architects-daughter-latin-400-normal.woff +0 -0
  314. package/dist/visual-plan-web/architects-daughter-latin-400-normal.woff2 +0 -0
  315. package/dist/visual-plan-web/architects-daughter-latin-ext-400-normal.woff +0 -0
  316. package/dist/visual-plan-web/architects-daughter-latin-ext-400-normal.woff2 +0 -0
  317. package/dist/visual-plan-web/index.css +1 -0
  318. package/dist/visual-plan-web/index.html +17 -0
  319. package/dist/visual-plan-web/index.js +51 -0
  320. package/package.json +14 -17
  321. package/dist/commands/evolve.d.ts +0 -11
  322. package/dist/commands/evolve.d.ts.map +0 -1
  323. package/dist/commands/evolve.js +0 -63
  324. package/dist/commands/evolve.js.map +0 -1
  325. package/dist/commands/health.d.ts +0 -14
  326. package/dist/commands/health.d.ts.map +0 -1
  327. package/dist/commands/health.js +0 -193
  328. package/dist/commands/health.js.map +0 -1
  329. package/dist/commands/orchviz.d.ts +0 -12
  330. package/dist/commands/orchviz.d.ts.map +0 -1
  331. package/dist/commands/orchviz.js +0 -157
  332. package/dist/commands/orchviz.js.map +0 -1
  333. package/dist/commands/policy.d.ts +0 -8
  334. package/dist/commands/policy.d.ts.map +0 -1
  335. package/dist/commands/policy.js +0 -65
  336. package/dist/commands/policy.js.map +0 -1
  337. package/dist/commands/portability.d.ts +0 -7
  338. package/dist/commands/portability.d.ts.map +0 -1
  339. package/dist/commands/portability.js +0 -50
  340. package/dist/commands/portability.js.map +0 -1
  341. package/dist/commands/reflect.d.ts +0 -14
  342. package/dist/commands/reflect.d.ts.map +0 -1
  343. package/dist/commands/reflect.js +0 -135
  344. package/dist/commands/reflect.js.map +0 -1
  345. package/dist/commands/simulate.d.ts +0 -14
  346. package/dist/commands/simulate.d.ts.map +0 -1
  347. package/dist/commands/simulate.js +0 -86
  348. package/dist/commands/simulate.js.map +0 -1
  349. package/dist/core/event-log.d.ts +0 -44
  350. package/dist/core/event-log.d.ts.map +0 -1
  351. package/dist/core/event-log.js +0 -169
  352. package/dist/core/event-log.js.map +0 -1
  353. package/dist/core/evolution/event-clusters.d.ts +0 -4
  354. package/dist/core/evolution/event-clusters.d.ts.map +0 -1
  355. package/dist/core/evolution/event-clusters.js +0 -82
  356. package/dist/core/evolution/event-clusters.js.map +0 -1
  357. package/dist/core/evolution/recommendation-renderer.d.ts +0 -3
  358. package/dist/core/evolution/recommendation-renderer.d.ts.map +0 -1
  359. package/dist/core/evolution/recommendation-renderer.js +0 -24
  360. package/dist/core/evolution/recommendation-renderer.js.map +0 -1
  361. package/dist/core/evolution/review-failure-clusters.d.ts +0 -10
  362. package/dist/core/evolution/review-failure-clusters.d.ts.map +0 -1
  363. package/dist/core/evolution/review-failure-clusters.js +0 -30
  364. package/dist/core/evolution/review-failure-clusters.js.map +0 -1
  365. package/dist/core/evolution/suggestions.d.ts +0 -24
  366. package/dist/core/evolution/suggestions.d.ts.map +0 -1
  367. package/dist/core/evolution/suggestions.js +0 -11
  368. package/dist/core/evolution/suggestions.js.map +0 -1
  369. package/dist/core/gate-policy.d.ts +0 -20
  370. package/dist/core/gate-policy.d.ts.map +0 -1
  371. package/dist/core/gate-policy.js +0 -64
  372. package/dist/core/gate-policy.js.map +0 -1
  373. package/dist/core/portability-matrix.d.ts +0 -17
  374. package/dist/core/portability-matrix.d.ts.map +0 -1
  375. package/dist/core/portability-matrix.js +0 -31
  376. package/dist/core/portability-matrix.js.map +0 -1
  377. package/dist/core/simulation-runner.d.ts +0 -93
  378. package/dist/core/simulation-runner.d.ts.map +0 -1
  379. package/dist/core/simulation-runner.js +0 -161
  380. package/dist/core/simulation-runner.js.map +0 -1
  381. package/dist/core/usage/usage-analyzer.d.ts +0 -18
  382. package/dist/core/usage/usage-analyzer.d.ts.map +0 -1
  383. package/dist/core/usage/usage-analyzer.js +0 -41
  384. package/dist/core/usage/usage-analyzer.js.map +0 -1
  385. package/dist/memory/archive.d.ts +0 -9
  386. package/dist/memory/archive.d.ts.map +0 -1
  387. package/dist/memory/archive.js +0 -42
  388. package/dist/memory/archive.js.map +0 -1
  389. package/dist/memory/compact.d.ts +0 -9
  390. package/dist/memory/compact.d.ts.map +0 -1
  391. package/dist/memory/compact.js +0 -33
  392. package/dist/memory/compact.js.map +0 -1
  393. package/dist/memory/conflicts.d.ts +0 -8
  394. package/dist/memory/conflicts.d.ts.map +0 -1
  395. package/dist/memory/conflicts.js +0 -28
  396. package/dist/memory/conflicts.js.map +0 -1
  397. package/dist/memory/promote.d.ts +0 -8
  398. package/dist/memory/promote.d.ts.map +0 -1
  399. package/dist/memory/promote.js +0 -10
  400. package/dist/memory/promote.js.map +0 -1
  401. package/dist/memory/store-utils.d.ts +0 -14
  402. package/dist/memory/store-utils.d.ts.map +0 -1
  403. package/dist/memory/store-utils.js +0 -44
  404. package/dist/memory/store-utils.js.map +0 -1
  405. package/dist/migrate/__tests__/frontmatter-parser.test.d.ts +0 -2
  406. package/dist/migrate/__tests__/frontmatter-parser.test.d.ts.map +0 -1
  407. package/dist/migrate/__tests__/frontmatter-parser.test.js +0 -73
  408. package/dist/migrate/__tests__/frontmatter-parser.test.js.map +0 -1
  409. package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts +0 -2
  410. package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts.map +0 -1
  411. package/dist/migrate/__tests__/md-strip-mewkit.test.js +0 -55
  412. package/dist/migrate/__tests__/md-strip-mewkit.test.js.map +0 -1
  413. package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts +0 -2
  414. package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts.map +0 -1
  415. package/dist/migrate/__tests__/migrate-scope-resolver.test.js +0 -53
  416. package/dist/migrate/__tests__/migrate-scope-resolver.test.js.map +0 -1
  417. package/dist/migrate/__tests__/process-lock.test.d.ts +0 -2
  418. package/dist/migrate/__tests__/process-lock.test.d.ts.map +0 -1
  419. package/dist/migrate/__tests__/process-lock.test.js +0 -63
  420. package/dist/migrate/__tests__/process-lock.test.js.map +0 -1
  421. package/dist/migrate/__tests__/provider-registry.test.d.ts +0 -2
  422. package/dist/migrate/__tests__/provider-registry.test.d.ts.map +0 -1
  423. package/dist/migrate/__tests__/provider-registry.test.js +0 -53
  424. package/dist/migrate/__tests__/provider-registry.test.js.map +0 -1
  425. package/dist/migrate/__tests__/reconciler.test.d.ts +0 -2
  426. package/dist/migrate/__tests__/reconciler.test.d.ts.map +0 -1
  427. package/dist/migrate/__tests__/reconciler.test.js +0 -180
  428. package/dist/migrate/__tests__/reconciler.test.js.map +0 -1
  429. package/dist/migrate/__tests__/skill-id-utils.test.d.ts +0 -2
  430. package/dist/migrate/__tests__/skill-id-utils.test.d.ts.map +0 -1
  431. package/dist/migrate/__tests__/skill-id-utils.test.js +0 -78
  432. package/dist/migrate/__tests__/skill-id-utils.test.js.map +0 -1
  433. package/dist/migrate/converters/md-to-codex-rules.d.ts +0 -10
  434. package/dist/migrate/converters/md-to-codex-rules.d.ts.map +0 -1
  435. package/dist/migrate/converters/md-to-codex-rules.js +0 -133
  436. package/dist/migrate/converters/md-to-codex-rules.js.map +0 -1
  437. package/dist/orchviz/constants.d.ts +0 -72
  438. package/dist/orchviz/constants.d.ts.map +0 -1
  439. package/dist/orchviz/constants.js +0 -105
  440. package/dist/orchviz/constants.js.map +0 -1
  441. package/dist/orchviz/fs-utils.d.ts +0 -24
  442. package/dist/orchviz/fs-utils.d.ts.map +0 -1
  443. package/dist/orchviz/fs-utils.js +0 -49
  444. package/dist/orchviz/fs-utils.js.map +0 -1
  445. package/dist/orchviz/index.d.ts +0 -29
  446. package/dist/orchviz/index.d.ts.map +0 -1
  447. package/dist/orchviz/index.js +0 -28
  448. package/dist/orchviz/index.js.map +0 -1
  449. package/dist/orchviz/log-persister.d.ts +0 -22
  450. package/dist/orchviz/log-persister.d.ts.map +0 -1
  451. package/dist/orchviz/log-persister.js +0 -96
  452. package/dist/orchviz/log-persister.js.map +0 -1
  453. package/dist/orchviz/logger.d.ts +0 -13
  454. package/dist/orchviz/logger.d.ts.map +0 -1
  455. package/dist/orchviz/logger.js +0 -47
  456. package/dist/orchviz/logger.js.map +0 -1
  457. package/dist/orchviz/open-url.d.ts +0 -11
  458. package/dist/orchviz/open-url.d.ts.map +0 -1
  459. package/dist/orchviz/open-url.js.map +0 -1
  460. package/dist/orchviz/overlay/collector.d.ts +0 -29
  461. package/dist/orchviz/overlay/collector.d.ts.map +0 -1
  462. package/dist/orchviz/overlay/collector.js +0 -38
  463. package/dist/orchviz/overlay/collector.js.map +0 -1
  464. package/dist/orchviz/overlay/gate-readers.d.ts +0 -18
  465. package/dist/orchviz/overlay/gate-readers.d.ts.map +0 -1
  466. package/dist/orchviz/overlay/gate-readers.js +0 -111
  467. package/dist/orchviz/overlay/gate-readers.js.map +0 -1
  468. package/dist/orchviz/overlay/session-state-readers.d.ts +0 -18
  469. package/dist/orchviz/overlay/session-state-readers.d.ts.map +0 -1
  470. package/dist/orchviz/overlay/session-state-readers.js +0 -78
  471. package/dist/orchviz/overlay/session-state-readers.js.map +0 -1
  472. package/dist/orchviz/parser/handle-progress.d.ts +0 -9
  473. package/dist/orchviz/parser/handle-progress.d.ts.map +0 -1
  474. package/dist/orchviz/parser/handle-progress.js +0 -38
  475. package/dist/orchviz/parser/handle-progress.js.map +0 -1
  476. package/dist/orchviz/parser/handle-system.d.ts +0 -22
  477. package/dist/orchviz/parser/handle-system.d.ts.map +0 -1
  478. package/dist/orchviz/parser/handle-system.js +0 -99
  479. package/dist/orchviz/parser/handle-system.js.map +0 -1
  480. package/dist/orchviz/parser/handle-text.d.ts +0 -10
  481. package/dist/orchviz/parser/handle-text.d.ts.map +0 -1
  482. package/dist/orchviz/parser/handle-text.js +0 -83
  483. package/dist/orchviz/parser/handle-text.js.map +0 -1
  484. package/dist/orchviz/parser/handle-thinking.d.ts +0 -10
  485. package/dist/orchviz/parser/handle-thinking.d.ts.map +0 -1
  486. package/dist/orchviz/parser/handle-thinking.js +0 -35
  487. package/dist/orchviz/parser/handle-thinking.js.map +0 -1
  488. package/dist/orchviz/parser/handle-tool-result.d.ts +0 -10
  489. package/dist/orchviz/parser/handle-tool-result.d.ts.map +0 -1
  490. package/dist/orchviz/parser/handle-tool-result.js +0 -130
  491. package/dist/orchviz/parser/handle-tool-result.js.map +0 -1
  492. package/dist/orchviz/parser/handle-tool-use.d.ts +0 -11
  493. package/dist/orchviz/parser/handle-tool-use.d.ts.map +0 -1
  494. package/dist/orchviz/parser/handle-tool-use.js +0 -120
  495. package/dist/orchviz/parser/handle-tool-use.js.map +0 -1
  496. package/dist/orchviz/parser/index.d.ts +0 -38
  497. package/dist/orchviz/parser/index.d.ts.map +0 -1
  498. package/dist/orchviz/parser/index.js +0 -144
  499. package/dist/orchviz/parser/index.js.map +0 -1
  500. package/dist/orchviz/parser/label-helpers.d.ts +0 -9
  501. package/dist/orchviz/parser/label-helpers.d.ts.map +0 -1
  502. package/dist/orchviz/parser/label-helpers.js +0 -44
  503. package/dist/orchviz/parser/label-helpers.js.map +0 -1
  504. package/dist/orchviz/parser/strip-ansi.d.ts +0 -6
  505. package/dist/orchviz/parser/strip-ansi.d.ts.map +0 -1
  506. package/dist/orchviz/parser/strip-ansi.js +0 -14
  507. package/dist/orchviz/parser/strip-ansi.js.map +0 -1
  508. package/dist/orchviz/parser/utils.d.ts +0 -20
  509. package/dist/orchviz/parser/utils.d.ts.map +0 -1
  510. package/dist/orchviz/parser/utils.js +0 -54
  511. package/dist/orchviz/parser/utils.js.map +0 -1
  512. package/dist/orchviz/permission-detection.d.ts +0 -32
  513. package/dist/orchviz/permission-detection.d.ts.map +0 -1
  514. package/dist/orchviz/permission-detection.js +0 -104
  515. package/dist/orchviz/permission-detection.js.map +0 -1
  516. package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.d.ts +0 -15
  517. package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.d.ts.map +0 -1
  518. package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.js +0 -165
  519. package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.js.map +0 -1
  520. package/dist/orchviz/plan/__tests__/atomic-write.test.d.ts +0 -11
  521. package/dist/orchviz/plan/__tests__/atomic-write.test.d.ts.map +0 -1
  522. package/dist/orchviz/plan/__tests__/atomic-write.test.js +0 -89
  523. package/dist/orchviz/plan/__tests__/atomic-write.test.js.map +0 -1
  524. package/dist/orchviz/plan/__tests__/end-to-end.test.d.ts +0 -10
  525. package/dist/orchviz/plan/__tests__/end-to-end.test.d.ts.map +0 -1
  526. package/dist/orchviz/plan/__tests__/end-to-end.test.js +0 -132
  527. package/dist/orchviz/plan/__tests__/end-to-end.test.js.map +0 -1
  528. package/dist/orchviz/plan/__tests__/etag.test.d.ts +0 -11
  529. package/dist/orchviz/plan/__tests__/etag.test.d.ts.map +0 -1
  530. package/dist/orchviz/plan/__tests__/etag.test.js +0 -92
  531. package/dist/orchviz/plan/__tests__/etag.test.js.map +0 -1
  532. package/dist/orchviz/plan/__tests__/list-plans.test.d.ts +0 -14
  533. package/dist/orchviz/plan/__tests__/list-plans.test.d.ts.map +0 -1
  534. package/dist/orchviz/plan/__tests__/list-plans.test.js +0 -154
  535. package/dist/orchviz/plan/__tests__/list-plans.test.js.map +0 -1
  536. package/dist/orchviz/plan/apply-todo-toggle.d.ts +0 -29
  537. package/dist/orchviz/plan/apply-todo-toggle.d.ts.map +0 -1
  538. package/dist/orchviz/plan/apply-todo-toggle.js +0 -129
  539. package/dist/orchviz/plan/apply-todo-toggle.js.map +0 -1
  540. package/dist/orchviz/plan/atomic-write.d.ts +0 -25
  541. package/dist/orchviz/plan/atomic-write.d.ts.map +0 -1
  542. package/dist/orchviz/plan/atomic-write.js +0 -85
  543. package/dist/orchviz/plan/atomic-write.js.map +0 -1
  544. package/dist/orchviz/plan/collector.d.ts +0 -49
  545. package/dist/orchviz/plan/collector.d.ts.map +0 -1
  546. package/dist/orchviz/plan/collector.js +0 -169
  547. package/dist/orchviz/plan/collector.js.map +0 -1
  548. package/dist/orchviz/plan/etag.d.ts +0 -24
  549. package/dist/orchviz/plan/etag.d.ts.map +0 -1
  550. package/dist/orchviz/plan/etag.js +0 -58
  551. package/dist/orchviz/plan/etag.js.map +0 -1
  552. package/dist/orchviz/plan/find-active-plan.d.ts +0 -9
  553. package/dist/orchviz/plan/find-active-plan.d.ts.map +0 -1
  554. package/dist/orchviz/plan/find-active-plan.js +0 -90
  555. package/dist/orchviz/plan/find-active-plan.js.map +0 -1
  556. package/dist/orchviz/plan/index.d.ts +0 -23
  557. package/dist/orchviz/plan/index.d.ts.map +0 -1
  558. package/dist/orchviz/plan/index.js +0 -91
  559. package/dist/orchviz/plan/index.js.map +0 -1
  560. package/dist/orchviz/plan/list-plans.d.ts +0 -19
  561. package/dist/orchviz/plan/list-plans.d.ts.map +0 -1
  562. package/dist/orchviz/plan/list-plans.js +0 -143
  563. package/dist/orchviz/plan/list-plans.js.map +0 -1
  564. package/dist/orchviz/plan/parse-phase-file.d.ts +0 -13
  565. package/dist/orchviz/plan/parse-phase-file.d.ts.map +0 -1
  566. package/dist/orchviz/plan/parse-phase-file.js +0 -134
  567. package/dist/orchviz/plan/parse-phase-file.js.map +0 -1
  568. package/dist/orchviz/plan/parse-plan-file.d.ts +0 -19
  569. package/dist/orchviz/plan/parse-plan-file.d.ts.map +0 -1
  570. package/dist/orchviz/plan/parse-plan-file.js +0 -62
  571. package/dist/orchviz/plan/parse-plan-file.js.map +0 -1
  572. package/dist/orchviz/plan/plan-constants.d.ts +0 -17
  573. package/dist/orchviz/plan/plan-constants.d.ts.map +0 -1
  574. package/dist/orchviz/plan/plan-constants.js +0 -19
  575. package/dist/orchviz/plan/plan-constants.js.map +0 -1
  576. package/dist/orchviz/plan/plan-lifecycle.d.ts +0 -17
  577. package/dist/orchviz/plan/plan-lifecycle.d.ts.map +0 -1
  578. package/dist/orchviz/plan/plan-lifecycle.js +0 -97
  579. package/dist/orchviz/plan/plan-lifecycle.js.map +0 -1
  580. package/dist/orchviz/plan/types.d.ts +0 -46
  581. package/dist/orchviz/plan/types.d.ts.map +0 -1
  582. package/dist/orchviz/plan/types.js +0 -6
  583. package/dist/orchviz/plan/types.js.map +0 -1
  584. package/dist/orchviz/protocol.d.ts +0 -171
  585. package/dist/orchviz/protocol.d.ts.map +0 -1
  586. package/dist/orchviz/protocol.js +0 -23
  587. package/dist/orchviz/protocol.js.map +0 -1
  588. package/dist/orchviz/redact.d.ts +0 -10
  589. package/dist/orchviz/redact.d.ts.map +0 -1
  590. package/dist/orchviz/redact.js +0 -38
  591. package/dist/orchviz/redact.js.map +0 -1
  592. package/dist/orchviz/sanitize.d.ts +0 -11
  593. package/dist/orchviz/sanitize.d.ts.map +0 -1
  594. package/dist/orchviz/sanitize.js +0 -38
  595. package/dist/orchviz/sanitize.js.map +0 -1
  596. package/dist/orchviz/server/__tests__/security-smoke.test.d.ts +0 -13
  597. package/dist/orchviz/server/__tests__/security-smoke.test.d.ts.map +0 -1
  598. package/dist/orchviz/server/__tests__/security-smoke.test.js +0 -207
  599. package/dist/orchviz/server/__tests__/security-smoke.test.js.map +0 -1
  600. package/dist/orchviz/server/__tests__/write-handlers.test.d.ts +0 -24
  601. package/dist/orchviz/server/__tests__/write-handlers.test.d.ts.map +0 -1
  602. package/dist/orchviz/server/__tests__/write-handlers.test.js +0 -347
  603. package/dist/orchviz/server/__tests__/write-handlers.test.js.map +0 -1
  604. package/dist/orchviz/server/api-handlers.d.ts +0 -55
  605. package/dist/orchviz/server/api-handlers.d.ts.map +0 -1
  606. package/dist/orchviz/server/api-handlers.js +0 -112
  607. package/dist/orchviz/server/api-handlers.js.map +0 -1
  608. package/dist/orchviz/server/index.d.ts +0 -36
  609. package/dist/orchviz/server/index.d.ts.map +0 -1
  610. package/dist/orchviz/server/index.js +0 -144
  611. package/dist/orchviz/server/index.js.map +0 -1
  612. package/dist/orchviz/server/sse-handler.d.ts +0 -28
  613. package/dist/orchviz/server/sse-handler.d.ts.map +0 -1
  614. package/dist/orchviz/server/sse-handler.js +0 -217
  615. package/dist/orchviz/server/sse-handler.js.map +0 -1
  616. package/dist/orchviz/server/static-handler.d.ts +0 -9
  617. package/dist/orchviz/server/static-handler.d.ts.map +0 -1
  618. package/dist/orchviz/server/static-handler.js.map +0 -1
  619. package/dist/orchviz/server/write-handlers.d.ts +0 -20
  620. package/dist/orchviz/server/write-handlers.d.ts.map +0 -1
  621. package/dist/orchviz/server/write-handlers.js +0 -184
  622. package/dist/orchviz/server/write-handlers.js.map +0 -1
  623. package/dist/orchviz/server/write-utils.d.ts +0 -59
  624. package/dist/orchviz/server/write-utils.d.ts.map +0 -1
  625. package/dist/orchviz/server/write-utils.js +0 -161
  626. package/dist/orchviz/server/write-utils.js.map +0 -1
  627. package/dist/orchviz/session-discovery.d.ts +0 -19
  628. package/dist/orchviz/session-discovery.d.ts.map +0 -1
  629. package/dist/orchviz/session-discovery.js +0 -104
  630. package/dist/orchviz/session-discovery.js.map +0 -1
  631. package/dist/orchviz/session-manager.d.ts +0 -17
  632. package/dist/orchviz/session-manager.d.ts.map +0 -1
  633. package/dist/orchviz/session-manager.js +0 -63
  634. package/dist/orchviz/session-manager.js.map +0 -1
  635. package/dist/orchviz/session-runtime.d.ts +0 -21
  636. package/dist/orchviz/session-runtime.d.ts.map +0 -1
  637. package/dist/orchviz/session-runtime.js +0 -135
  638. package/dist/orchviz/session-runtime.js.map +0 -1
  639. package/dist/orchviz/session-watcher.d.ts +0 -33
  640. package/dist/orchviz/session-watcher.d.ts.map +0 -1
  641. package/dist/orchviz/session-watcher.js +0 -135
  642. package/dist/orchviz/session-watcher.js.map +0 -1
  643. package/dist/orchviz/subagent-meta.d.ts +0 -12
  644. package/dist/orchviz/subagent-meta.d.ts.map +0 -1
  645. package/dist/orchviz/subagent-meta.js +0 -34
  646. package/dist/orchviz/subagent-meta.js.map +0 -1
  647. package/dist/orchviz/subagent-scanner.d.ts +0 -15
  648. package/dist/orchviz/subagent-scanner.d.ts.map +0 -1
  649. package/dist/orchviz/subagent-scanner.js +0 -27
  650. package/dist/orchviz/subagent-scanner.js.map +0 -1
  651. package/dist/orchviz/subagent-watcher.d.ts +0 -20
  652. package/dist/orchviz/subagent-watcher.d.ts.map +0 -1
  653. package/dist/orchviz/subagent-watcher.js +0 -160
  654. package/dist/orchviz/subagent-watcher.js.map +0 -1
  655. package/dist/orchviz/test-server-boot.d.ts +0 -28
  656. package/dist/orchviz/test-server-boot.d.ts.map +0 -1
  657. package/dist/orchviz/test-server-boot.js +0 -64
  658. package/dist/orchviz/test-server-boot.js.map +0 -1
  659. package/dist/orchviz/token-estimator.d.ts.map +0 -1
  660. package/dist/orchviz/token-estimator.js.map +0 -1
  661. package/dist/orchviz/tool-input-data.d.ts +0 -11
  662. package/dist/orchviz/tool-input-data.d.ts.map +0 -1
  663. package/dist/orchviz/tool-input-data.js +0 -74
  664. package/dist/orchviz/tool-input-data.js.map +0 -1
  665. package/dist/orchviz/tool-summarizer.d.ts +0 -16
  666. package/dist/orchviz/tool-summarizer.d.ts.map +0 -1
  667. package/dist/orchviz/tool-summarizer.js +0 -129
  668. package/dist/orchviz/tool-summarizer.js.map +0 -1
  669. package/dist/orchviz-web/fira-code-cyrillic-400-normal.woff +0 -0
  670. package/dist/orchviz-web/fira-code-cyrillic-400-normal.woff2 +0 -0
  671. package/dist/orchviz-web/fira-code-cyrillic-500-normal.woff +0 -0
  672. package/dist/orchviz-web/fira-code-cyrillic-500-normal.woff2 +0 -0
  673. package/dist/orchviz-web/fira-code-cyrillic-ext-400-normal.woff +0 -0
  674. package/dist/orchviz-web/fira-code-cyrillic-ext-400-normal.woff2 +0 -0
  675. package/dist/orchviz-web/fira-code-cyrillic-ext-500-normal.woff +0 -0
  676. package/dist/orchviz-web/fira-code-cyrillic-ext-500-normal.woff2 +0 -0
  677. package/dist/orchviz-web/fira-code-greek-400-normal.woff +0 -0
  678. package/dist/orchviz-web/fira-code-greek-400-normal.woff2 +0 -0
  679. package/dist/orchviz-web/fira-code-greek-500-normal.woff +0 -0
  680. package/dist/orchviz-web/fira-code-greek-500-normal.woff2 +0 -0
  681. package/dist/orchviz-web/fira-code-greek-ext-400-normal.woff +0 -0
  682. package/dist/orchviz-web/fira-code-greek-ext-400-normal.woff2 +0 -0
  683. package/dist/orchviz-web/fira-code-greek-ext-500-normal.woff +0 -0
  684. package/dist/orchviz-web/fira-code-greek-ext-500-normal.woff2 +0 -0
  685. package/dist/orchviz-web/fira-code-latin-400-normal.woff +0 -0
  686. package/dist/orchviz-web/fira-code-latin-400-normal.woff2 +0 -0
  687. package/dist/orchviz-web/fira-code-latin-500-normal.woff +0 -0
  688. package/dist/orchviz-web/fira-code-latin-500-normal.woff2 +0 -0
  689. package/dist/orchviz-web/fira-code-latin-ext-400-normal.woff +0 -0
  690. package/dist/orchviz-web/fira-code-latin-ext-400-normal.woff2 +0 -0
  691. package/dist/orchviz-web/fira-code-latin-ext-500-normal.woff +0 -0
  692. package/dist/orchviz-web/fira-code-latin-ext-500-normal.woff2 +0 -0
  693. package/dist/orchviz-web/fira-code-symbols2-400-normal.woff +0 -0
  694. package/dist/orchviz-web/fira-code-symbols2-500-normal.woff +0 -0
  695. package/dist/orchviz-web/index.css +0 -1
  696. package/dist/orchviz-web/index.html +0 -18
  697. package/dist/orchviz-web/index.js +0 -53
  698. package/dist/orchviz-web/inter-cyrillic-400-normal.woff +0 -0
  699. package/dist/orchviz-web/inter-cyrillic-400-normal.woff2 +0 -0
  700. package/dist/orchviz-web/inter-cyrillic-500-normal.woff +0 -0
  701. package/dist/orchviz-web/inter-cyrillic-500-normal.woff2 +0 -0
  702. package/dist/orchviz-web/inter-cyrillic-600-normal.woff +0 -0
  703. package/dist/orchviz-web/inter-cyrillic-600-normal.woff2 +0 -0
  704. package/dist/orchviz-web/inter-cyrillic-ext-400-normal.woff +0 -0
  705. package/dist/orchviz-web/inter-cyrillic-ext-400-normal.woff2 +0 -0
  706. package/dist/orchviz-web/inter-cyrillic-ext-500-normal.woff +0 -0
  707. package/dist/orchviz-web/inter-cyrillic-ext-500-normal.woff2 +0 -0
  708. package/dist/orchviz-web/inter-cyrillic-ext-600-normal.woff +0 -0
  709. package/dist/orchviz-web/inter-cyrillic-ext-600-normal.woff2 +0 -0
  710. package/dist/orchviz-web/inter-greek-400-normal.woff +0 -0
  711. package/dist/orchviz-web/inter-greek-400-normal.woff2 +0 -0
  712. package/dist/orchviz-web/inter-greek-500-normal.woff +0 -0
  713. package/dist/orchviz-web/inter-greek-500-normal.woff2 +0 -0
  714. package/dist/orchviz-web/inter-greek-600-normal.woff +0 -0
  715. package/dist/orchviz-web/inter-greek-600-normal.woff2 +0 -0
  716. package/dist/orchviz-web/inter-greek-ext-400-normal.woff +0 -0
  717. package/dist/orchviz-web/inter-greek-ext-400-normal.woff2 +0 -0
  718. package/dist/orchviz-web/inter-greek-ext-500-normal.woff +0 -0
  719. package/dist/orchviz-web/inter-greek-ext-500-normal.woff2 +0 -0
  720. package/dist/orchviz-web/inter-greek-ext-600-normal.woff +0 -0
  721. package/dist/orchviz-web/inter-greek-ext-600-normal.woff2 +0 -0
  722. package/dist/orchviz-web/inter-latin-400-normal.woff +0 -0
  723. package/dist/orchviz-web/inter-latin-400-normal.woff2 +0 -0
  724. package/dist/orchviz-web/inter-latin-500-normal.woff +0 -0
  725. package/dist/orchviz-web/inter-latin-500-normal.woff2 +0 -0
  726. package/dist/orchviz-web/inter-latin-600-normal.woff +0 -0
  727. package/dist/orchviz-web/inter-latin-600-normal.woff2 +0 -0
  728. package/dist/orchviz-web/inter-latin-ext-400-normal.woff +0 -0
  729. package/dist/orchviz-web/inter-latin-ext-400-normal.woff2 +0 -0
  730. package/dist/orchviz-web/inter-latin-ext-500-normal.woff +0 -0
  731. package/dist/orchviz-web/inter-latin-ext-500-normal.woff2 +0 -0
  732. package/dist/orchviz-web/inter-latin-ext-600-normal.woff +0 -0
  733. package/dist/orchviz-web/inter-latin-ext-600-normal.woff2 +0 -0
  734. package/dist/orchviz-web/inter-vietnamese-400-normal.woff +0 -0
  735. package/dist/orchviz-web/inter-vietnamese-400-normal.woff2 +0 -0
  736. package/dist/orchviz-web/inter-vietnamese-500-normal.woff +0 -0
  737. package/dist/orchviz-web/inter-vietnamese-500-normal.woff2 +0 -0
  738. package/dist/orchviz-web/inter-vietnamese-600-normal.woff +0 -0
  739. package/dist/orchviz-web/inter-vietnamese-600-normal.woff2 +0 -0
@@ -0,0 +1,24 @@
1
+ /**
2
+ * `prepare-feedback` — freeze the accumulated semantic operations into an
3
+ * immutable `visual-feedback/v1` batch and return the Copy Command.
4
+ *
5
+ * The SERVER is authoritative for the base: `baseRevision` + `baseHash` are
6
+ * stamped from the CURRENT artifact at persist time (not trusted from the
7
+ * client), so a batch always pins the exact reviewed state. The batch is
8
+ * write-once; the Copy Command is a repo-relative `/mk:visual-plan apply-feedback`
9
+ * a fresh agent session can run. Timestamps use the wall clock (this is a normal
10
+ * CLI/server runtime, not a workflow script).
11
+ */
12
+ export interface PrepareResult {
13
+ ok: boolean;
14
+ batchId?: string;
15
+ copyCommand?: string;
16
+ error?: string;
17
+ }
18
+ /**
19
+ * Build + persist an immutable feedback batch from `operations`. Returns the
20
+ * batch id + Copy Command, or an error (empty/invalid operations, missing
21
+ * artifact, id collision).
22
+ */
23
+ export declare function prepareFeedback(planDir: string, operations: unknown[]): PrepareResult;
24
+ //# sourceMappingURL=prepare-feedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-feedback.d.ts","sourceRoot":"","sources":["../../../src/visual-plan/application/prepare-feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AASD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,aAAa,CAsCrF"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * `prepare-feedback` — freeze the accumulated semantic operations into an
3
+ * immutable `visual-feedback/v1` batch and return the Copy Command.
4
+ *
5
+ * The SERVER is authoritative for the base: `baseRevision` + `baseHash` are
6
+ * stamped from the CURRENT artifact at persist time (not trusted from the
7
+ * client), so a batch always pins the exact reviewed state. The batch is
8
+ * write-once; the Copy Command is a repo-relative `/mk:visual-plan apply-feedback`
9
+ * a fresh agent session can run. Timestamps use the wall clock (this is a normal
10
+ * CLI/server runtime, not a workflow script).
11
+ */
12
+ import * as crypto from "node:crypto";
13
+ import * as path from "node:path";
14
+ import { readArtifactRaw, writeArtifact, serializeArtifact } from "../infrastructure/visual-plan-repository.js";
15
+ import { computeEtag } from "../../local-web/etag.js";
16
+ import { VisualPlanSchema } from "../domain/schemas.js";
17
+ import { FeedbackBatchSchema } from "../domain/feedback-schemas.js";
18
+ import { writeBatch } from "../infrastructure/feedback-repository.js";
19
+ import { buildVisualBlock, writeVisualBlock } from "../infrastructure/plan-state.js";
20
+ /** Compact `YYYYMMDDHHMMSS` timestamp (≥8 digits, satisfies the batch-id pattern). */
21
+ function stamp() {
22
+ const d = new Date();
23
+ const p = (n, w = 2) => String(n).padStart(w, "0");
24
+ return `${d.getFullYear()}${p(d.getMonth() + 1)}${p(d.getDate())}${p(d.getHours())}${p(d.getMinutes())}${p(d.getSeconds())}`;
25
+ }
26
+ /**
27
+ * Build + persist an immutable feedback batch from `operations`. Returns the
28
+ * batch id + Copy Command, or an error (empty/invalid operations, missing
29
+ * artifact, id collision).
30
+ */
31
+ export function prepareFeedback(planDir, operations) {
32
+ const read = readArtifactRaw(planDir);
33
+ if (read.error)
34
+ return { ok: false, error: "no visual artifact to attach feedback to" };
35
+ const parsed = VisualPlanSchema.safeParse(read.raw);
36
+ if (!parsed.success)
37
+ return { ok: false, error: "artifact must be schema-valid before preparing feedback" };
38
+ const plan = parsed.data;
39
+ // Validate the operations BEFORE mutating the artifact (build a throwaway batch
40
+ // with a placeholder hash just to run the op schema).
41
+ const id = `feedback-${stamp()}-${crypto.randomBytes(4).toString("hex")}`;
42
+ const opCheck = FeedbackBatchSchema.safeParse({
43
+ schemaVersion: "visual-feedback/v1", id, planId: plan.id, baseRevision: plan.revision,
44
+ baseHash: "0".repeat(64), createdAt: new Date().toISOString(), operations, status: "open",
45
+ });
46
+ if (!opCheck.success)
47
+ return { ok: false, error: `invalid feedback operations: ${opCheck.error.issues[0]?.message ?? "schema"}` };
48
+ // Transition review → feedback-pending: outstanding feedback makes the current
49
+ // approval stale and BLOCKS approve (the "no pending feedback batch" gate).
50
+ // NOTE: this is effectively single-active-batch — baseHash covers the whole
51
+ // artifact incl. the pending list, so preparing/resolving another batch marks
52
+ // earlier open batches stale (fails safe: checkBatchFresh → STOP, never corrupt).
53
+ plan.review.pendingFeedbackBatchIds = [...new Set([...plan.review.pendingFeedbackBatchIds, id])];
54
+ plan.review.status = "feedback-pending";
55
+ plan.review.approvedRevision = null;
56
+ plan.review.approvedAt = null;
57
+ // Write the batch BEFORE mutating the artifact, using the EXACT bytes the
58
+ // artifact write will persist (byte-identical serialization). A crash between
59
+ // the two writes then leaves at worst an inert STALE batch (recoverable), never
60
+ // a stranded pending id with no batch (which would permanently block approve).
61
+ const bytes = serializeArtifact(plan);
62
+ const batch = FeedbackBatchSchema.safeParse({ ...opCheck.data, baseHash: computeEtag(bytes) });
63
+ if (!batch.success || !writeBatch(planDir, batch.data))
64
+ return { ok: false, error: `could not persist batch ${id}` };
65
+ writeArtifact(planDir, plan);
66
+ writeVisualBlock(planDir, buildVisualBlock(plan, planDir));
67
+ const rel = path.relative(process.cwd(), planDir) || ".";
68
+ return { ok: true, batchId: id, copyCommand: `/mk:visual-plan apply-feedback ${rel} --batch ${id}` };
69
+ }
70
+ //# sourceMappingURL=prepare-feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-feedback.js","sourceRoot":"","sources":["../../../src/visual-plan/application/prepare-feedback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * `rehash` — the ONLY sanctioned way to refresh pinned source hashes after an
3
+ * intentional Markdown edit (red-team M1).
4
+ *
5
+ * When a human deliberately edits `plan.md`/`phase-*.md`, the artifact's pinned
6
+ * hashes go stale and validation blocks. `rehash` recomputes them from disk and
7
+ * — critically — CLEARS any prior approval (an approval was tied to the old
8
+ * source bytes; refreshing the hash silently would let stale-reviewed content
9
+ * pass Gate 1). It changes nothing else. Re-review + re-`approve` must follow.
10
+ */
11
+ import { type ValidationError } from "../domain/errors.js";
12
+ export interface RehashResult {
13
+ ok: boolean;
14
+ errors: ValidationError[];
15
+ clearedApproval: boolean;
16
+ }
17
+ /** Recompute `source.planHash`/`phaseHashes` from disk and clear any approval. */
18
+ export declare function rehashPlan(planDir: string): RehashResult;
19
+ //# sourceMappingURL=rehash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rehash.d.ts","sourceRoot":"","sources":["../../../src/visual-plan/application/rehash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAM3E,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;CACzB;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CA4BxD"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * `rehash` — the ONLY sanctioned way to refresh pinned source hashes after an
3
+ * intentional Markdown edit (red-team M1).
4
+ *
5
+ * When a human deliberately edits `plan.md`/`phase-*.md`, the artifact's pinned
6
+ * hashes go stale and validation blocks. `rehash` recomputes them from disk and
7
+ * — critically — CLEARS any prior approval (an approval was tied to the old
8
+ * source bytes; refreshing the hash silently would let stale-reviewed content
9
+ * pass Gate 1). It changes nothing else. Re-review + re-`approve` must follow.
10
+ */
11
+ import { err, ErrorCode } from "../domain/errors.js";
12
+ import { VisualPlanSchema } from "../domain/schemas.js";
13
+ import { computeSourceHashes } from "../infrastructure/hashing.js";
14
+ import { readArtifactRaw, writeArtifact } from "../infrastructure/visual-plan-repository.js";
15
+ import { buildVisualBlock, writeVisualBlock } from "../infrastructure/plan-state.js";
16
+ /** Recompute `source.planHash`/`phaseHashes` from disk and clear any approval. */
17
+ export function rehashPlan(planDir) {
18
+ const read = readArtifactRaw(planDir);
19
+ if (read.error)
20
+ return { ok: false, errors: [read.error], clearedApproval: false };
21
+ const parsed = VisualPlanSchema.safeParse(read.raw);
22
+ if (!parsed.success) {
23
+ return {
24
+ ok: false,
25
+ errors: [err("<root>", ErrorCode.SCHEMA, "artifact must be schema-valid before rehash")],
26
+ clearedApproval: false,
27
+ };
28
+ }
29
+ const plan = parsed.data;
30
+ const fresh = computeSourceHashes(planDir, plan.source.planPath);
31
+ plan.source.planHash = fresh.planHash;
32
+ plan.source.phaseHashes = fresh.phaseHashes;
33
+ const clearedApproval = plan.review.status === "approved" || plan.review.approvedRevision !== null;
34
+ if (plan.review.status === "approved" || plan.review.status === "stale") {
35
+ plan.review.status = "draft";
36
+ }
37
+ plan.review.approvedRevision = null;
38
+ plan.review.approvedAt = null;
39
+ writeArtifact(planDir, plan);
40
+ writeVisualBlock(planDir, buildVisualBlock(plan, planDir));
41
+ return { ok: true, errors: [], clearedApproval };
42
+ }
43
+ //# sourceMappingURL=rehash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rehash.js","sourceRoot":"","sources":["../../../src/visual-plan/application/rehash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,GAAG,EAAE,SAAS,EAAwB,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAQrF,kFAAkF;AAClF,MAAM,UAAU,UAAU,CAAC,OAAe;IACzC,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IAEnF,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO;YACN,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,6CAA6C,CAAC,CAAC;YACxF,eAAe,EAAE,KAAK;SACtB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAEzB,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IAE5C,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,KAAK,IAAI,CAAC;IACnG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;IAE9B,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7B,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC;AAClD,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * `status` — a read-only summary of the visual artifact's health.
3
+ *
4
+ * Reuses the validation pass so the reported coverage counts and validity are
5
+ * exactly what Gate 1 would see. Never mutates. Absent artifact is reported as
6
+ * `exists:false` (not an error) so `status` is safe to run on any plan dir.
7
+ */
8
+ import type { CoverageSummary } from "../domain/coverage.js";
9
+ export interface PlanStatus {
10
+ exists: boolean;
11
+ valid: boolean;
12
+ revision: number | null;
13
+ reviewStatus: string | null;
14
+ coverage: CoverageSummary | null;
15
+ pendingFeedback: string[];
16
+ errorCount: number;
17
+ }
18
+ /** Summarize the artifact at `planDir` without mutating anything. */
19
+ export declare function planStatus(planDir: string): PlanStatus;
20
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/visual-plan/application/status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,WAAW,UAAU;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAetD"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * `status` — a read-only summary of the visual artifact's health.
3
+ *
4
+ * Reuses the validation pass so the reported coverage counts and validity are
5
+ * exactly what Gate 1 would see. Never mutates. Absent artifact is reported as
6
+ * `exists:false` (not an error) so `status` is safe to run on any plan dir.
7
+ */
8
+ import { validatePlan } from "./validate-plan.js";
9
+ import { ErrorCode } from "../domain/errors.js";
10
+ /** Summarize the artifact at `planDir` without mutating anything. */
11
+ export function planStatus(planDir) {
12
+ const result = validatePlan(planDir);
13
+ const missing = result.errors.some((e) => e.code === ErrorCode.ARTIFACT_MISSING);
14
+ if (missing) {
15
+ return { exists: false, valid: false, revision: null, reviewStatus: null, coverage: null, pendingFeedback: [], errorCount: 0 };
16
+ }
17
+ return {
18
+ exists: true,
19
+ valid: result.ok,
20
+ revision: result.plan?.revision ?? null,
21
+ reviewStatus: result.plan?.review.status ?? null,
22
+ coverage: result.coverage ?? null,
23
+ pendingFeedback: result.plan?.review.pendingFeedbackBatchIds ?? [],
24
+ errorCount: result.errors.length,
25
+ };
26
+ }
27
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/visual-plan/application/status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAahD,qEAAqE;AACrE,MAAM,UAAU,UAAU,CAAC,OAAe;IACzC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACjF,IAAI,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAChI,CAAC;IACD,OAAO;QACN,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,MAAM,CAAC,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI;QACvC,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;QAChD,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;QACjC,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,uBAAuB,IAAI,EAAE;QAClE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;KAChC,CAAC;AACH,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Validation orchestration — the single deterministic pass Gate 1 depends on.
3
+ *
4
+ * Order: read → schema → cross-refs → coverage → HTML safety → source freshness.
5
+ * Schema failure short-circuits (cross-checks need a well-typed object); every
6
+ * later pass is additive so one artifact can surface many findings at once,
7
+ * each with an exact JSON path and a stable code for agent self-repair.
8
+ */
9
+ import { type ValidationError } from "../domain/errors.js";
10
+ import { type VisualPlan } from "../domain/schemas.js";
11
+ import { type CoverageSummary } from "../domain/coverage.js";
12
+ export interface ValidatePlanResult {
13
+ ok: boolean;
14
+ errors: ValidationError[];
15
+ plan?: VisualPlan;
16
+ coverage?: CoverageSummary;
17
+ }
18
+ /**
19
+ * Run the deterministic passes on an ALREADY-PARSED plan (cross-refs, coverage,
20
+ * HTML safety, source freshness). Used by `validatePlan` and by the patch
21
+ * pipeline (Phase 5) to re-validate a mutated plan in memory before writing —
22
+ * so a patch can never persist a structurally-invalid or unsafe artifact.
23
+ */
24
+ export declare function validateParsed(plan: VisualPlan, planDir: string): {
25
+ errors: ValidationError[];
26
+ coverage: CoverageSummary;
27
+ };
28
+ /** Run every deterministic pass against the artifact in `planDir`. */
29
+ export declare function validatePlan(planDir: string): ValidatePlanResult;
30
+ //# sourceMappingURL=validate-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-plan.d.ts","sourceRoot":"","sources":["../../../src/visual-plan/application/validate-plan.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEzE,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK9E,MAAM,WAAW,kBAAkB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC3B;AAeD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAA;CAAE,CAa1H;AAED,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAUhE"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Validation orchestration — the single deterministic pass Gate 1 depends on.
3
+ *
4
+ * Order: read → schema → cross-refs → coverage → HTML safety → source freshness.
5
+ * Schema failure short-circuits (cross-checks need a well-typed object); every
6
+ * later pass is additive so one artifact can surface many findings at once,
7
+ * each with an exact JSON path and a stable code for agent self-repair.
8
+ */
9
+ import { err, ErrorCode } from "../domain/errors.js";
10
+ import { VisualPlanSchema } from "../domain/schemas.js";
11
+ import { checkCrossReferences } from "../domain/cross-refs.js";
12
+ import { computeCoverage } from "../domain/coverage.js";
13
+ import { checkWireframeHtml } from "../infrastructure/wireframe-sanitizer.js";
14
+ import { checkSourceFreshness } from "../infrastructure/hashing.js";
15
+ import { readArtifactRaw } from "../infrastructure/visual-plan-repository.js";
16
+ /** Render a Zod issue path (`["canvas","frames",0,"id"]`) as `canvas.frames[0].id`. */
17
+ function jsonPath(segments) {
18
+ return segments
19
+ .map((s) => (typeof s === "number" ? `[${s}]` : s))
20
+ .join(".")
21
+ .replace(/\.\[/g, "[");
22
+ }
23
+ /** Map a Zod error into deterministic `SCHEMA` findings. */
24
+ function fromZod(error) {
25
+ return error.issues.map((i) => err(jsonPath(i.path) || "<root>", ErrorCode.SCHEMA, i.message));
26
+ }
27
+ /**
28
+ * Run the deterministic passes on an ALREADY-PARSED plan (cross-refs, coverage,
29
+ * HTML safety, source freshness). Used by `validatePlan` and by the patch
30
+ * pipeline (Phase 5) to re-validate a mutated plan in memory before writing —
31
+ * so a patch can never persist a structurally-invalid or unsafe artifact.
32
+ */
33
+ export function validateParsed(plan, planDir) {
34
+ const errors = [];
35
+ errors.push(...checkCrossReferences(plan));
36
+ const coverage = computeCoverage(plan);
37
+ errors.push(...coverage.errors);
38
+ plan.canvas.frames.forEach((frame, i) => {
39
+ const check = checkWireframeHtml(frame.wireframe.html);
40
+ if (!check.safe) {
41
+ errors.push(err(`canvas.frames[${i}].wireframe.html`, ErrorCode.UNSAFE_HTML, check.reason ?? "unsafe HTML"));
42
+ }
43
+ });
44
+ errors.push(...checkSourceFreshness(plan, planDir));
45
+ return { errors, coverage: coverage.summary };
46
+ }
47
+ /** Run every deterministic pass against the artifact in `planDir`. */
48
+ export function validatePlan(planDir) {
49
+ const read = readArtifactRaw(planDir);
50
+ if (read.error)
51
+ return { ok: false, errors: [read.error] };
52
+ const parsed = VisualPlanSchema.safeParse(read.raw);
53
+ if (!parsed.success)
54
+ return { ok: false, errors: fromZod(parsed.error) };
55
+ const plan = parsed.data;
56
+ const { errors, coverage } = validateParsed(plan, planDir);
57
+ return { ok: errors.length === 0, errors, plan, coverage };
58
+ }
59
+ //# sourceMappingURL=validate-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-plan.js","sourceRoot":"","sources":["../../../src/visual-plan/application/validate-plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Deterministic coverage-closure algorithm.
3
+ *
4
+ * Every `uiCoverage.surfaces[*].states[*]` MUST close via exactly one mode:
5
+ * - framed — non-empty `frameIds`
6
+ * - omitted — a typed `omitted` block (equivalent-layout needs a valid
7
+ * `representedBy`; accepted-risk needs a `riskId`)
8
+ * Zero modes OR both modes ⇒ unresolved (a hard gate: `unresolved > 0` blocks
9
+ * Gate 1). Framed states are further split into `resolved` (backed by ≥1 code
10
+ * source ref — existing UI proven in code) and `planned` (framed net-new UI
11
+ * with no code evidence yet).
12
+ *
13
+ * The summary is COMPUTED here and never trusted from the author (red-team M6:
14
+ * the validator guarantees "no structurally-unaccounted state"; whether a
15
+ * `planned`/`omitted` tag is HONEST is the Step-5 red-team's job, not this).
16
+ *
17
+ * `representedBy` forms an equivalence graph; cycles and self-reference are
18
+ * rejected (the chain must terminate, it cannot close by pointing in a loop).
19
+ */
20
+ import { type ValidationError } from "./errors.js";
21
+ import type { VisualPlan } from "./schemas.js";
22
+ export interface CoverageSummary {
23
+ total: number;
24
+ resolved: number;
25
+ planned: number;
26
+ omitted: number;
27
+ unresolved: number;
28
+ }
29
+ export interface CoverageResult {
30
+ summary: CoverageSummary;
31
+ errors: ValidationError[];
32
+ }
33
+ /** Compute the coverage summary and every closure error for the whole artifact. */
34
+ export declare function computeCoverage(plan: VisualPlan): CoverageResult;
35
+ //# sourceMappingURL=coverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../../src/visual-plan/domain/coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAiB,UAAU,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC1B;AAwDD,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CA+BhE"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Deterministic coverage-closure algorithm.
3
+ *
4
+ * Every `uiCoverage.surfaces[*].states[*]` MUST close via exactly one mode:
5
+ * - framed — non-empty `frameIds`
6
+ * - omitted — a typed `omitted` block (equivalent-layout needs a valid
7
+ * `representedBy`; accepted-risk needs a `riskId`)
8
+ * Zero modes OR both modes ⇒ unresolved (a hard gate: `unresolved > 0` blocks
9
+ * Gate 1). Framed states are further split into `resolved` (backed by ≥1 code
10
+ * source ref — existing UI proven in code) and `planned` (framed net-new UI
11
+ * with no code evidence yet).
12
+ *
13
+ * The summary is COMPUTED here and never trusted from the author (red-team M6:
14
+ * the validator guarantees "no structurally-unaccounted state"; whether a
15
+ * `planned`/`omitted` tag is HONEST is the Step-5 red-team's job, not this).
16
+ *
17
+ * `representedBy` forms an equivalence graph; cycles and self-reference are
18
+ * rejected (the chain must terminate, it cannot close by pointing in a loop).
19
+ */
20
+ import { err, ErrorCode } from "./errors.js";
21
+ /** Which closure mode a state uses, or `unresolved` for zero/both. */
22
+ function closureMode(state) {
23
+ const framed = state.frameIds.length > 0;
24
+ const omitted = state.omitted !== undefined;
25
+ if (framed === omitted)
26
+ return "unresolved"; // neither or both
27
+ return framed ? "framed" : "omitted";
28
+ }
29
+ /** A framed state is `resolved` if any of its source refs is code-backed, else `planned`. */
30
+ function framedBucket(state, codeRefIds) {
31
+ return state.sourceRefIds.some((id) => codeRefIds.has(id)) ? "resolved" : "planned";
32
+ }
33
+ /**
34
+ * Walk the `representedBy` chain from an equivalent-layout omission. The chain
35
+ * MUST resolve, be acyclic/non-self-referential, AND terminate at a framed
36
+ * state — a state is only "covered by equivalence" if the layout it claims to
37
+ * equal is actually rendered somewhere. Terminating at a frameless state (an
38
+ * omission of any kind) defeats the closure guarantee and is rejected. Emits at
39
+ * most one error per starting state.
40
+ */
41
+ function checkEquivalence(stateId, byId, path, errors) {
42
+ const visited = new Set([stateId]);
43
+ let current = byId.get(stateId);
44
+ while (current?.omitted?.reason === "equivalent-layout") {
45
+ const target = current.omitted.representedBy;
46
+ if (target === undefined) {
47
+ errors.push(err(`${path}.omitted`, ErrorCode.COVERAGE_MISSING_REPRESENTED_BY, "equivalent-layout omission requires representedBy"));
48
+ return;
49
+ }
50
+ if (!byId.has(target)) {
51
+ errors.push(err(`${path}.omitted.representedBy`, ErrorCode.DANGLING_REPRESENTED_BY, `references unknown coverage state "${target}"`));
52
+ return;
53
+ }
54
+ if (visited.has(target)) {
55
+ errors.push(err(`${path}.omitted.representedBy`, ErrorCode.COVERAGE_EQUIVALENCE_CYCLE, `equivalence cycle through "${target}"`));
56
+ return;
57
+ }
58
+ visited.add(target);
59
+ current = byId.get(target);
60
+ }
61
+ // Terminal reached (a non-equivalent-layout state). It must render a frame.
62
+ if (current === undefined || current.frameIds.length === 0) {
63
+ errors.push(err(`${path}.omitted.representedBy`, ErrorCode.COVERAGE_EQUIVALENCE_UNBACKED, "equivalent-layout chain must terminate at a framed state (it resolves to no rendered layout)"));
64
+ }
65
+ }
66
+ /** Compute the coverage summary and every closure error for the whole artifact. */
67
+ export function computeCoverage(plan) {
68
+ const errors = [];
69
+ const summary = { total: 0, resolved: 0, planned: 0, omitted: 0, unresolved: 0 };
70
+ const codeRefIds = new Set(plan.sourceRefs.filter((r) => r.kind === "code").map((r) => r.id));
71
+ const byId = new Map();
72
+ for (const s of plan.uiCoverage.surfaces)
73
+ for (const st of s.states)
74
+ byId.set(st.id, st);
75
+ plan.uiCoverage.surfaces.forEach((surface, si) => surface.states.forEach((state, ti) => {
76
+ summary.total += 1;
77
+ const path = `uiCoverage.surfaces[${si}].states[${ti}]`;
78
+ const mode = closureMode(state);
79
+ if (mode === "unresolved") {
80
+ summary.unresolved += 1;
81
+ errors.push(err(path, ErrorCode.COVERAGE_UNRESOLVED, "state closes via zero or multiple modes (need exactly one of frameIds / omitted)"));
82
+ return;
83
+ }
84
+ if (mode === "framed") {
85
+ summary[framedBucket(state, codeRefIds)] += 1;
86
+ return;
87
+ }
88
+ // omitted
89
+ summary.omitted += 1;
90
+ const o = state.omitted;
91
+ if (o.reason === "accepted-risk" && (o.riskId === undefined || o.riskId.length === 0)) {
92
+ errors.push(err(`${path}.omitted`, ErrorCode.COVERAGE_MISSING_RISK_ID, "accepted-risk omission requires a riskId"));
93
+ }
94
+ if (o.reason === "equivalent-layout")
95
+ checkEquivalence(state.id, byId, path, errors);
96
+ }));
97
+ return { summary, errors };
98
+ }
99
+ //# sourceMappingURL=coverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../../src/visual-plan/domain/coverage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Cross-reference integrity for a schema-valid `visual-plan/v1` artifact.
3
+ *
4
+ * Agent-native only checks id uniqueness + `frame.blockId`, and its renderer
5
+ * silently SKIPS dangling connector endpoints, annotation targets, and section
6
+ * artboard ids (verified gap). MeowKit rejects every dangling reference with an
7
+ * exact JSON path so nothing renders-by-omission.
8
+ *
9
+ * Two passes: (1) every id is unique across ALL entity kinds; (2) every
10
+ * reference resolves to a declared id. Equivalence-cycle detection lives in
11
+ * `coverage.ts` (it needs the closure walk).
12
+ */
13
+ import { type ValidationError } from "./errors.js";
14
+ import type { VisualPlan } from "./schemas.js";
15
+ /**
16
+ * Validate uniqueness + reference resolution. Returns every finding; an empty
17
+ * array means the artifact is referentially sound.
18
+ */
19
+ export declare function checkCrossReferences(plan: VisualPlan): ValidationError[];
20
+ //# sourceMappingURL=cross-refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-refs.d.ts","sourceRoot":"","sources":["../../../src/visual-plan/domain/cross-refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA0C/C;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,EAAE,CA0CxE"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Cross-reference integrity for a schema-valid `visual-plan/v1` artifact.
3
+ *
4
+ * Agent-native only checks id uniqueness + `frame.blockId`, and its renderer
5
+ * silently SKIPS dangling connector endpoints, annotation targets, and section
6
+ * artboard ids (verified gap). MeowKit rejects every dangling reference with an
7
+ * exact JSON path so nothing renders-by-omission.
8
+ *
9
+ * Two passes: (1) every id is unique across ALL entity kinds; (2) every
10
+ * reference resolves to a declared id. Equivalence-cycle detection lives in
11
+ * `coverage.ts` (it needs the closure walk).
12
+ */
13
+ import { err, ErrorCode } from "./errors.js";
14
+ /** Collect every declared id with the JSON path where it was declared. */
15
+ function collectIds(plan) {
16
+ const seen = new Map();
17
+ const errors = [];
18
+ const add = (id, path) => {
19
+ const prior = seen.get(id);
20
+ if (prior !== undefined) {
21
+ errors.push(err(path, ErrorCode.DUPLICATE_ID, `id "${id}" already declared at ${prior}`));
22
+ return;
23
+ }
24
+ seen.set(id, path);
25
+ };
26
+ plan.canvas.lanes.forEach((l, i) => add(l.id, `canvas.lanes[${i}].id`));
27
+ plan.canvas.frames.forEach((f, i) => add(f.id, `canvas.frames[${i}].id`));
28
+ plan.canvas.connectors.forEach((c, i) => add(c.id, `canvas.connectors[${i}].id`));
29
+ plan.canvas.annotations.forEach((a, i) => add(a.id, `canvas.annotations[${i}].id`));
30
+ plan.documentBlocks.forEach((b, i) => add(b.id, `documentBlocks[${i}].id`));
31
+ plan.sourceRefs.forEach((s, i) => add(s.id, `sourceRefs[${i}].id`));
32
+ plan.uiCoverage.surfaces.forEach((s, si) => {
33
+ add(s.id, `uiCoverage.surfaces[${si}].id`);
34
+ s.states.forEach((st, ti) => add(st.id, `uiCoverage.surfaces[${si}].states[${ti}].id`));
35
+ });
36
+ return { seen, errors };
37
+ }
38
+ /** Build the typed id sets used to resolve references. */
39
+ function idSets(plan) {
40
+ return {
41
+ frames: new Set(plan.canvas.frames.map((f) => f.id)),
42
+ lanes: new Set(plan.canvas.lanes.map((l) => l.id)),
43
+ sourceRefs: new Set(plan.sourceRefs.map((s) => s.id)),
44
+ states: new Set(plan.uiCoverage.surfaces.flatMap((s) => s.states.map((st) => st.id))),
45
+ };
46
+ }
47
+ /**
48
+ * Validate uniqueness + reference resolution. Returns every finding; an empty
49
+ * array means the artifact is referentially sound.
50
+ */
51
+ export function checkCrossReferences(plan) {
52
+ const { errors } = collectIds(plan);
53
+ const ids = idSets(plan);
54
+ const need = (id, set, path, code, kind) => {
55
+ if (!set.has(id))
56
+ errors.push(err(path, code, `references unknown ${kind} "${id}"`));
57
+ };
58
+ plan.canvas.connectors.forEach((c, i) => {
59
+ need(c.from, ids.frames, `canvas.connectors[${i}].from`, ErrorCode.DANGLING_CONNECTOR_ENDPOINT, "frame");
60
+ need(c.to, ids.frames, `canvas.connectors[${i}].to`, ErrorCode.DANGLING_CONNECTOR_ENDPOINT, "frame");
61
+ });
62
+ plan.canvas.frames.forEach((f, i) => {
63
+ need(f.laneId, ids.lanes, `canvas.frames[${i}].laneId`, ErrorCode.DANGLING_LANE, "lane");
64
+ f.coverageStateIds.forEach((sid, j) => need(sid, ids.states, `canvas.frames[${i}].coverageStateIds[${j}]`, ErrorCode.DANGLING_COVERAGE_FRAME, "coverage state"));
65
+ f.sourceRefIds.forEach((sid, j) => need(sid, ids.sourceRefs, `canvas.frames[${i}].sourceRefIds[${j}]`, ErrorCode.DANGLING_SOURCE_REF, "source ref"));
66
+ });
67
+ plan.uiCoverage.surfaces.forEach((s, si) => s.states.forEach((st, ti) => {
68
+ const base = `uiCoverage.surfaces[${si}].states[${ti}]`;
69
+ st.frameIds.forEach((fid, j) => need(fid, ids.frames, `${base}.frameIds[${j}]`, ErrorCode.DANGLING_COVERAGE_FRAME, "frame"));
70
+ st.sourceRefIds.forEach((sid, j) => need(sid, ids.sourceRefs, `${base}.sourceRefIds[${j}]`, ErrorCode.DANGLING_SOURCE_REF, "source ref"));
71
+ }));
72
+ checkAnnotations(plan, ids.frames, errors);
73
+ return errors;
74
+ }
75
+ /** Annotation shape + target resolution: `note` is anchored, `markup` is free. */
76
+ function checkAnnotations(plan, frames, errors) {
77
+ plan.canvas.annotations.forEach((a, i) => {
78
+ const base = `canvas.annotations[${i}]`;
79
+ if (a.kind === "note") {
80
+ if (a.targetId === undefined || a.placement === undefined) {
81
+ errors.push(err(`${base}`, ErrorCode.DANGLING_ANNOTATION_TARGET, "note annotation requires targetId + placement"));
82
+ }
83
+ else if (!frames.has(a.targetId)) {
84
+ errors.push(err(`${base}.targetId`, ErrorCode.DANGLING_ANNOTATION_TARGET, `references unknown frame "${a.targetId}"`));
85
+ }
86
+ }
87
+ else if (a.points === undefined || a.points.length === 0) {
88
+ errors.push(err(`${base}.points`, ErrorCode.DANGLING_ANNOTATION_TARGET, "markup annotation requires at least one point"));
89
+ }
90
+ });
91
+ }
92
+ //# sourceMappingURL=cross-refs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-refs.js","sourceRoot":"","sources":["../../../src/visual-plan/domain/cross-refs.ts"],"names":[],"mappings":"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"}