mewkit 1.15.0 → 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 (490) hide show
  1. package/NOTICE +24 -0
  2. package/README.md +29 -70
  3. package/dist/commands/visual-plan.d.ts +23 -0
  4. package/dist/commands/visual-plan.d.ts.map +1 -0
  5. package/dist/commands/visual-plan.js +26 -0
  6. package/dist/commands/visual-plan.js.map +1 -0
  7. package/dist/core/capability.d.ts +81 -81
  8. package/dist/core/consolidation-ledger.d.ts.map +1 -1
  9. package/dist/core/consolidation-ledger.js +13 -11
  10. package/dist/core/consolidation-ledger.js.map +1 -1
  11. package/dist/core/install-metadata.d.ts +27 -27
  12. package/dist/core/plugin-manifest.d.ts +16 -16
  13. package/dist/core/release-metadata.d.ts +2 -2
  14. package/dist/core/task-record.d.ts +8 -8
  15. package/dist/index.js +33 -21
  16. package/dist/index.js.map +1 -1
  17. package/dist/local-web/atomic-write.d.ts +15 -0
  18. package/dist/local-web/atomic-write.d.ts.map +1 -0
  19. package/dist/local-web/atomic-write.js +69 -0
  20. package/dist/local-web/atomic-write.js.map +1 -0
  21. package/dist/local-web/constants.d.ts +13 -0
  22. package/dist/local-web/constants.d.ts.map +1 -0
  23. package/dist/local-web/constants.js +13 -0
  24. package/dist/local-web/constants.js.map +1 -0
  25. package/dist/local-web/etag.d.ts +19 -0
  26. package/dist/local-web/etag.d.ts.map +1 -0
  27. package/dist/local-web/etag.js +32 -0
  28. package/dist/local-web/etag.js.map +1 -0
  29. package/dist/local-web/host-guard.d.ts +12 -0
  30. package/dist/local-web/host-guard.d.ts.map +1 -0
  31. package/dist/local-web/host-guard.js +18 -0
  32. package/dist/local-web/host-guard.js.map +1 -0
  33. package/dist/local-web/index.d.ts +23 -0
  34. package/dist/local-web/index.d.ts.map +1 -0
  35. package/dist/local-web/index.js +23 -0
  36. package/dist/local-web/index.js.map +1 -0
  37. package/dist/local-web/local-server.d.ts +37 -0
  38. package/dist/local-web/local-server.d.ts.map +1 -0
  39. package/dist/local-web/local-server.js +85 -0
  40. package/dist/local-web/local-server.js.map +1 -0
  41. package/dist/local-web/open-browser.d.ts +12 -0
  42. package/dist/local-web/open-browser.d.ts.map +1 -0
  43. package/dist/{orchviz/open-url.js → local-web/open-browser.js} +9 -8
  44. package/dist/local-web/open-browser.js.map +1 -0
  45. package/dist/local-web/origin-guard.d.ts +11 -0
  46. package/dist/local-web/origin-guard.d.ts.map +1 -0
  47. package/dist/local-web/origin-guard.js +15 -0
  48. package/dist/local-web/origin-guard.js.map +1 -0
  49. package/dist/local-web/path-boundary.d.ts +20 -0
  50. package/dist/local-web/path-boundary.d.ts.map +1 -0
  51. package/dist/local-web/path-boundary.js +39 -0
  52. package/dist/local-web/path-boundary.js.map +1 -0
  53. package/dist/local-web/request-body.d.ts +24 -0
  54. package/dist/local-web/request-body.d.ts.map +1 -0
  55. package/dist/local-web/request-body.js +68 -0
  56. package/dist/local-web/request-body.js.map +1 -0
  57. package/dist/local-web/static-handler.d.ts +14 -0
  58. package/dist/local-web/static-handler.d.ts.map +1 -0
  59. package/dist/{orchviz/server → local-web}/static-handler.js +11 -6
  60. package/dist/local-web/static-handler.js.map +1 -0
  61. package/dist/migrate/reconcile/portable-manifest.d.ts +12 -12
  62. package/dist/migrate/reconcile/portable-registry.d.ts +24 -24
  63. package/dist/migrate/types.d.ts +10 -10
  64. package/dist/{orchviz/token-estimator.d.ts → token-estimator/index.d.ts} +6 -1
  65. package/dist/token-estimator/index.d.ts.map +1 -0
  66. package/dist/{orchviz/token-estimator.js → token-estimator/index.js} +11 -2
  67. package/dist/token-estimator/index.js.map +1 -0
  68. package/dist/visual-plan/__fixtures__/valid-plan.d.ts +15 -0
  69. package/dist/visual-plan/__fixtures__/valid-plan.d.ts.map +1 -0
  70. package/dist/visual-plan/__fixtures__/valid-plan.js +79 -0
  71. package/dist/visual-plan/__fixtures__/valid-plan.js.map +1 -0
  72. package/dist/visual-plan/application/apply-feedback.d.ts +31 -0
  73. package/dist/visual-plan/application/apply-feedback.d.ts.map +1 -0
  74. package/dist/visual-plan/application/apply-feedback.js +85 -0
  75. package/dist/visual-plan/application/apply-feedback.js.map +1 -0
  76. package/dist/visual-plan/application/apply-patch-op.d.ts +13 -0
  77. package/dist/visual-plan/application/apply-patch-op.d.ts.map +1 -0
  78. package/dist/visual-plan/application/apply-patch-op.js +72 -0
  79. package/dist/visual-plan/application/apply-patch-op.js.map +1 -0
  80. package/dist/visual-plan/application/approve.d.ts +24 -0
  81. package/dist/visual-plan/application/approve.d.ts.map +1 -0
  82. package/dist/visual-plan/application/approve.js +53 -0
  83. package/dist/visual-plan/application/approve.js.map +1 -0
  84. package/dist/visual-plan/application/clock.d.ts +8 -0
  85. package/dist/visual-plan/application/clock.d.ts.map +1 -0
  86. package/dist/visual-plan/application/clock.js +10 -0
  87. package/dist/visual-plan/application/clock.js.map +1 -0
  88. package/dist/visual-plan/application/export-plan.d.ts +19 -0
  89. package/dist/visual-plan/application/export-plan.d.ts.map +1 -0
  90. package/dist/visual-plan/application/export-plan.js +59 -0
  91. package/dist/visual-plan/application/export-plan.js.map +1 -0
  92. package/dist/visual-plan/application/patch-plan.d.ts +26 -0
  93. package/dist/visual-plan/application/patch-plan.d.ts.map +1 -0
  94. package/dist/visual-plan/application/patch-plan.js +48 -0
  95. package/dist/visual-plan/application/patch-plan.js.map +1 -0
  96. package/dist/visual-plan/application/prepare-feedback.d.ts +24 -0
  97. package/dist/visual-plan/application/prepare-feedback.d.ts.map +1 -0
  98. package/dist/visual-plan/application/prepare-feedback.js +70 -0
  99. package/dist/visual-plan/application/prepare-feedback.js.map +1 -0
  100. package/dist/visual-plan/application/rehash.d.ts +19 -0
  101. package/dist/visual-plan/application/rehash.d.ts.map +1 -0
  102. package/dist/visual-plan/application/rehash.js +43 -0
  103. package/dist/visual-plan/application/rehash.js.map +1 -0
  104. package/dist/visual-plan/application/status.d.ts +20 -0
  105. package/dist/visual-plan/application/status.d.ts.map +1 -0
  106. package/dist/visual-plan/application/status.js +27 -0
  107. package/dist/visual-plan/application/status.js.map +1 -0
  108. package/dist/visual-plan/application/validate-plan.d.ts +30 -0
  109. package/dist/visual-plan/application/validate-plan.d.ts.map +1 -0
  110. package/dist/visual-plan/application/validate-plan.js +59 -0
  111. package/dist/visual-plan/application/validate-plan.js.map +1 -0
  112. package/dist/visual-plan/domain/coverage.d.ts +35 -0
  113. package/dist/visual-plan/domain/coverage.d.ts.map +1 -0
  114. package/dist/visual-plan/domain/coverage.js +99 -0
  115. package/dist/visual-plan/domain/coverage.js.map +1 -0
  116. package/dist/visual-plan/domain/cross-refs.d.ts +20 -0
  117. package/dist/visual-plan/domain/cross-refs.d.ts.map +1 -0
  118. package/dist/visual-plan/domain/cross-refs.js +92 -0
  119. package/dist/visual-plan/domain/cross-refs.js.map +1 -0
  120. package/dist/visual-plan/domain/errors.d.ts +43 -0
  121. package/dist/visual-plan/domain/errors.d.ts.map +1 -0
  122. package/dist/visual-plan/domain/errors.js +33 -0
  123. package/dist/visual-plan/domain/errors.js.map +1 -0
  124. package/dist/visual-plan/domain/feedback-schemas.d.ts +160 -0
  125. package/dist/visual-plan/domain/feedback-schemas.d.ts.map +1 -0
  126. package/dist/visual-plan/domain/feedback-schemas.js +71 -0
  127. package/dist/visual-plan/domain/feedback-schemas.js.map +1 -0
  128. package/dist/visual-plan/domain/ids.d.ts +21 -0
  129. package/dist/visual-plan/domain/ids.d.ts.map +1 -0
  130. package/dist/visual-plan/domain/ids.js +25 -0
  131. package/dist/visual-plan/domain/ids.js.map +1 -0
  132. package/dist/visual-plan/domain/patches.d.ts +176 -0
  133. package/dist/visual-plan/domain/patches.d.ts.map +1 -0
  134. package/dist/visual-plan/domain/patches.js +41 -0
  135. package/dist/visual-plan/domain/patches.js.map +1 -0
  136. package/dist/visual-plan/domain/sanitizer-config.d.ts +61 -0
  137. package/dist/visual-plan/domain/sanitizer-config.d.ts.map +1 -0
  138. package/dist/visual-plan/domain/sanitizer-config.js +70 -0
  139. package/dist/visual-plan/domain/sanitizer-config.js.map +1 -0
  140. package/dist/visual-plan/domain/schemas.d.ts +1492 -0
  141. package/dist/visual-plan/domain/schemas.d.ts.map +1 -0
  142. package/dist/visual-plan/domain/schemas.js +166 -0
  143. package/dist/visual-plan/domain/schemas.js.map +1 -0
  144. package/dist/visual-plan/infrastructure/atomic-write.d.ts +11 -0
  145. package/dist/visual-plan/infrastructure/atomic-write.d.ts.map +1 -0
  146. package/dist/visual-plan/infrastructure/atomic-write.js +44 -0
  147. package/dist/visual-plan/infrastructure/atomic-write.js.map +1 -0
  148. package/dist/visual-plan/infrastructure/feedback-repository.d.ts +18 -0
  149. package/dist/visual-plan/infrastructure/feedback-repository.d.ts.map +1 -0
  150. package/dist/visual-plan/infrastructure/feedback-repository.js +59 -0
  151. package/dist/visual-plan/infrastructure/feedback-repository.js.map +1 -0
  152. package/dist/visual-plan/infrastructure/hashing.d.ts +37 -0
  153. package/dist/visual-plan/infrastructure/hashing.d.ts.map +1 -0
  154. package/dist/visual-plan/infrastructure/hashing.js +81 -0
  155. package/dist/visual-plan/infrastructure/hashing.js.map +1 -0
  156. package/dist/visual-plan/infrastructure/plan-state.d.ts +32 -0
  157. package/dist/visual-plan/infrastructure/plan-state.d.ts.map +1 -0
  158. package/dist/visual-plan/infrastructure/plan-state.js +58 -0
  159. package/dist/visual-plan/infrastructure/plan-state.js.map +1 -0
  160. package/dist/visual-plan/infrastructure/receipt-repository.d.ts +17 -0
  161. package/dist/visual-plan/infrastructure/receipt-repository.d.ts.map +1 -0
  162. package/dist/visual-plan/infrastructure/receipt-repository.js +59 -0
  163. package/dist/visual-plan/infrastructure/receipt-repository.js.map +1 -0
  164. package/dist/visual-plan/infrastructure/visual-plan-repository.d.ts +38 -0
  165. package/dist/visual-plan/infrastructure/visual-plan-repository.d.ts.map +1 -0
  166. package/dist/visual-plan/infrastructure/visual-plan-repository.js +97 -0
  167. package/dist/visual-plan/infrastructure/visual-plan-repository.js.map +1 -0
  168. package/dist/visual-plan/infrastructure/wireframe-sanitizer.d.ts +41 -0
  169. package/dist/visual-plan/infrastructure/wireframe-sanitizer.d.ts.map +1 -0
  170. package/dist/visual-plan/infrastructure/wireframe-sanitizer.js +72 -0
  171. package/dist/visual-plan/infrastructure/wireframe-sanitizer.js.map +1 -0
  172. package/dist/visual-plan/interface/cli.d.ts +29 -0
  173. package/dist/visual-plan/interface/cli.d.ts.map +1 -0
  174. package/dist/visual-plan/interface/cli.js +280 -0
  175. package/dist/visual-plan/interface/cli.js.map +1 -0
  176. package/dist/visual-plan/interface/studio.d.ts +20 -0
  177. package/dist/visual-plan/interface/studio.d.ts.map +1 -0
  178. package/dist/visual-plan/interface/studio.js +74 -0
  179. package/dist/visual-plan/interface/studio.js.map +1 -0
  180. package/dist/visual-plan/server/csp.d.ts +13 -0
  181. package/dist/visual-plan/server/csp.d.ts.map +1 -0
  182. package/dist/visual-plan/server/csp.js +17 -0
  183. package/dist/visual-plan/server/csp.js.map +1 -0
  184. package/dist/visual-plan/server/edit-lock.d.ts +28 -0
  185. package/dist/visual-plan/server/edit-lock.d.ts.map +1 -0
  186. package/dist/visual-plan/server/edit-lock.js +71 -0
  187. package/dist/visual-plan/server/edit-lock.js.map +1 -0
  188. package/dist/visual-plan/server/routes/feedback.d.ts +12 -0
  189. package/dist/visual-plan/server/routes/feedback.d.ts.map +1 -0
  190. package/dist/visual-plan/server/routes/feedback.js +63 -0
  191. package/dist/visual-plan/server/routes/feedback.js.map +1 -0
  192. package/dist/visual-plan/server/routes/get-plan.d.ts +14 -0
  193. package/dist/visual-plan/server/routes/get-plan.d.ts.map +1 -0
  194. package/dist/visual-plan/server/routes/get-plan.js +38 -0
  195. package/dist/visual-plan/server/routes/get-plan.js.map +1 -0
  196. package/dist/visual-plan/server/routes/patch.d.ts +10 -0
  197. package/dist/visual-plan/server/routes/patch.d.ts.map +1 -0
  198. package/dist/visual-plan/server/routes/patch.js +66 -0
  199. package/dist/visual-plan/server/routes/patch.js.map +1 -0
  200. package/dist/visual-plan/server/visual-plan-server.d.ts +30 -0
  201. package/dist/visual-plan/server/visual-plan-server.d.ts.map +1 -0
  202. package/dist/visual-plan/server/visual-plan-server.js +79 -0
  203. package/dist/visual-plan/server/visual-plan-server.js.map +1 -0
  204. package/dist/visual-plan-web/architects-daughter-latin-400-normal.woff +0 -0
  205. package/dist/visual-plan-web/architects-daughter-latin-400-normal.woff2 +0 -0
  206. package/dist/visual-plan-web/architects-daughter-latin-ext-400-normal.woff +0 -0
  207. package/dist/visual-plan-web/architects-daughter-latin-ext-400-normal.woff2 +0 -0
  208. package/dist/visual-plan-web/index.css +1 -0
  209. package/dist/visual-plan-web/index.html +17 -0
  210. package/dist/visual-plan-web/index.js +51 -0
  211. package/package.json +14 -17
  212. package/dist/commands/orchviz.d.ts +0 -12
  213. package/dist/commands/orchviz.d.ts.map +0 -1
  214. package/dist/commands/orchviz.js +0 -157
  215. package/dist/commands/orchviz.js.map +0 -1
  216. package/dist/migrate/converters/md-to-codex-rules.d.ts +0 -10
  217. package/dist/migrate/converters/md-to-codex-rules.d.ts.map +0 -1
  218. package/dist/migrate/converters/md-to-codex-rules.js +0 -133
  219. package/dist/migrate/converters/md-to-codex-rules.js.map +0 -1
  220. package/dist/orchviz/constants.d.ts +0 -72
  221. package/dist/orchviz/constants.d.ts.map +0 -1
  222. package/dist/orchviz/constants.js +0 -105
  223. package/dist/orchviz/constants.js.map +0 -1
  224. package/dist/orchviz/fs-utils.d.ts +0 -24
  225. package/dist/orchviz/fs-utils.d.ts.map +0 -1
  226. package/dist/orchviz/fs-utils.js +0 -49
  227. package/dist/orchviz/fs-utils.js.map +0 -1
  228. package/dist/orchviz/index.d.ts +0 -29
  229. package/dist/orchviz/index.d.ts.map +0 -1
  230. package/dist/orchviz/index.js +0 -28
  231. package/dist/orchviz/index.js.map +0 -1
  232. package/dist/orchviz/log-persister.d.ts +0 -22
  233. package/dist/orchviz/log-persister.d.ts.map +0 -1
  234. package/dist/orchviz/log-persister.js +0 -96
  235. package/dist/orchviz/log-persister.js.map +0 -1
  236. package/dist/orchviz/logger.d.ts +0 -13
  237. package/dist/orchviz/logger.d.ts.map +0 -1
  238. package/dist/orchviz/logger.js +0 -47
  239. package/dist/orchviz/logger.js.map +0 -1
  240. package/dist/orchviz/open-url.d.ts +0 -11
  241. package/dist/orchviz/open-url.d.ts.map +0 -1
  242. package/dist/orchviz/open-url.js.map +0 -1
  243. package/dist/orchviz/overlay/collector.d.ts +0 -29
  244. package/dist/orchviz/overlay/collector.d.ts.map +0 -1
  245. package/dist/orchviz/overlay/collector.js +0 -38
  246. package/dist/orchviz/overlay/collector.js.map +0 -1
  247. package/dist/orchviz/overlay/gate-readers.d.ts +0 -18
  248. package/dist/orchviz/overlay/gate-readers.d.ts.map +0 -1
  249. package/dist/orchviz/overlay/gate-readers.js +0 -111
  250. package/dist/orchviz/overlay/gate-readers.js.map +0 -1
  251. package/dist/orchviz/overlay/session-state-readers.d.ts +0 -18
  252. package/dist/orchviz/overlay/session-state-readers.d.ts.map +0 -1
  253. package/dist/orchviz/overlay/session-state-readers.js +0 -78
  254. package/dist/orchviz/overlay/session-state-readers.js.map +0 -1
  255. package/dist/orchviz/parser/handle-progress.d.ts +0 -9
  256. package/dist/orchviz/parser/handle-progress.d.ts.map +0 -1
  257. package/dist/orchviz/parser/handle-progress.js +0 -38
  258. package/dist/orchviz/parser/handle-progress.js.map +0 -1
  259. package/dist/orchviz/parser/handle-system.d.ts +0 -22
  260. package/dist/orchviz/parser/handle-system.d.ts.map +0 -1
  261. package/dist/orchviz/parser/handle-system.js +0 -99
  262. package/dist/orchviz/parser/handle-system.js.map +0 -1
  263. package/dist/orchviz/parser/handle-text.d.ts +0 -10
  264. package/dist/orchviz/parser/handle-text.d.ts.map +0 -1
  265. package/dist/orchviz/parser/handle-text.js +0 -83
  266. package/dist/orchviz/parser/handle-text.js.map +0 -1
  267. package/dist/orchviz/parser/handle-thinking.d.ts +0 -10
  268. package/dist/orchviz/parser/handle-thinking.d.ts.map +0 -1
  269. package/dist/orchviz/parser/handle-thinking.js +0 -35
  270. package/dist/orchviz/parser/handle-thinking.js.map +0 -1
  271. package/dist/orchviz/parser/handle-tool-result.d.ts +0 -10
  272. package/dist/orchviz/parser/handle-tool-result.d.ts.map +0 -1
  273. package/dist/orchviz/parser/handle-tool-result.js +0 -130
  274. package/dist/orchviz/parser/handle-tool-result.js.map +0 -1
  275. package/dist/orchviz/parser/handle-tool-use.d.ts +0 -11
  276. package/dist/orchviz/parser/handle-tool-use.d.ts.map +0 -1
  277. package/dist/orchviz/parser/handle-tool-use.js +0 -120
  278. package/dist/orchviz/parser/handle-tool-use.js.map +0 -1
  279. package/dist/orchviz/parser/index.d.ts +0 -38
  280. package/dist/orchviz/parser/index.d.ts.map +0 -1
  281. package/dist/orchviz/parser/index.js +0 -144
  282. package/dist/orchviz/parser/index.js.map +0 -1
  283. package/dist/orchviz/parser/label-helpers.d.ts +0 -9
  284. package/dist/orchviz/parser/label-helpers.d.ts.map +0 -1
  285. package/dist/orchviz/parser/label-helpers.js +0 -44
  286. package/dist/orchviz/parser/label-helpers.js.map +0 -1
  287. package/dist/orchviz/parser/strip-ansi.d.ts +0 -6
  288. package/dist/orchviz/parser/strip-ansi.d.ts.map +0 -1
  289. package/dist/orchviz/parser/strip-ansi.js +0 -14
  290. package/dist/orchviz/parser/strip-ansi.js.map +0 -1
  291. package/dist/orchviz/parser/utils.d.ts +0 -20
  292. package/dist/orchviz/parser/utils.d.ts.map +0 -1
  293. package/dist/orchviz/parser/utils.js +0 -54
  294. package/dist/orchviz/parser/utils.js.map +0 -1
  295. package/dist/orchviz/permission-detection.d.ts +0 -32
  296. package/dist/orchviz/permission-detection.d.ts.map +0 -1
  297. package/dist/orchviz/permission-detection.js +0 -104
  298. package/dist/orchviz/permission-detection.js.map +0 -1
  299. package/dist/orchviz/plan/apply-todo-toggle.d.ts +0 -29
  300. package/dist/orchviz/plan/apply-todo-toggle.d.ts.map +0 -1
  301. package/dist/orchviz/plan/apply-todo-toggle.js +0 -129
  302. package/dist/orchviz/plan/apply-todo-toggle.js.map +0 -1
  303. package/dist/orchviz/plan/atomic-write.d.ts +0 -25
  304. package/dist/orchviz/plan/atomic-write.d.ts.map +0 -1
  305. package/dist/orchviz/plan/atomic-write.js +0 -85
  306. package/dist/orchviz/plan/atomic-write.js.map +0 -1
  307. package/dist/orchviz/plan/collector.d.ts +0 -49
  308. package/dist/orchviz/plan/collector.d.ts.map +0 -1
  309. package/dist/orchviz/plan/collector.js +0 -169
  310. package/dist/orchviz/plan/collector.js.map +0 -1
  311. package/dist/orchviz/plan/etag.d.ts +0 -24
  312. package/dist/orchviz/plan/etag.d.ts.map +0 -1
  313. package/dist/orchviz/plan/etag.js +0 -58
  314. package/dist/orchviz/plan/etag.js.map +0 -1
  315. package/dist/orchviz/plan/find-active-plan.d.ts +0 -9
  316. package/dist/orchviz/plan/find-active-plan.d.ts.map +0 -1
  317. package/dist/orchviz/plan/find-active-plan.js +0 -90
  318. package/dist/orchviz/plan/find-active-plan.js.map +0 -1
  319. package/dist/orchviz/plan/index.d.ts +0 -23
  320. package/dist/orchviz/plan/index.d.ts.map +0 -1
  321. package/dist/orchviz/plan/index.js +0 -91
  322. package/dist/orchviz/plan/index.js.map +0 -1
  323. package/dist/orchviz/plan/list-plans.d.ts +0 -19
  324. package/dist/orchviz/plan/list-plans.d.ts.map +0 -1
  325. package/dist/orchviz/plan/list-plans.js +0 -143
  326. package/dist/orchviz/plan/list-plans.js.map +0 -1
  327. package/dist/orchviz/plan/parse-phase-file.d.ts +0 -13
  328. package/dist/orchviz/plan/parse-phase-file.d.ts.map +0 -1
  329. package/dist/orchviz/plan/parse-phase-file.js +0 -134
  330. package/dist/orchviz/plan/parse-phase-file.js.map +0 -1
  331. package/dist/orchviz/plan/parse-plan-file.d.ts +0 -19
  332. package/dist/orchviz/plan/parse-plan-file.d.ts.map +0 -1
  333. package/dist/orchviz/plan/parse-plan-file.js +0 -62
  334. package/dist/orchviz/plan/parse-plan-file.js.map +0 -1
  335. package/dist/orchviz/plan/plan-constants.d.ts +0 -17
  336. package/dist/orchviz/plan/plan-constants.d.ts.map +0 -1
  337. package/dist/orchviz/plan/plan-constants.js +0 -19
  338. package/dist/orchviz/plan/plan-constants.js.map +0 -1
  339. package/dist/orchviz/plan/plan-lifecycle.d.ts +0 -17
  340. package/dist/orchviz/plan/plan-lifecycle.d.ts.map +0 -1
  341. package/dist/orchviz/plan/plan-lifecycle.js +0 -97
  342. package/dist/orchviz/plan/plan-lifecycle.js.map +0 -1
  343. package/dist/orchviz/plan/types.d.ts +0 -46
  344. package/dist/orchviz/plan/types.d.ts.map +0 -1
  345. package/dist/orchviz/plan/types.js +0 -6
  346. package/dist/orchviz/plan/types.js.map +0 -1
  347. package/dist/orchviz/protocol.d.ts +0 -171
  348. package/dist/orchviz/protocol.d.ts.map +0 -1
  349. package/dist/orchviz/protocol.js +0 -23
  350. package/dist/orchviz/protocol.js.map +0 -1
  351. package/dist/orchviz/redact.d.ts +0 -10
  352. package/dist/orchviz/redact.d.ts.map +0 -1
  353. package/dist/orchviz/redact.js +0 -38
  354. package/dist/orchviz/redact.js.map +0 -1
  355. package/dist/orchviz/sanitize.d.ts +0 -11
  356. package/dist/orchviz/sanitize.d.ts.map +0 -1
  357. package/dist/orchviz/sanitize.js +0 -38
  358. package/dist/orchviz/sanitize.js.map +0 -1
  359. package/dist/orchviz/server/api-handlers.d.ts +0 -55
  360. package/dist/orchviz/server/api-handlers.d.ts.map +0 -1
  361. package/dist/orchviz/server/api-handlers.js +0 -112
  362. package/dist/orchviz/server/api-handlers.js.map +0 -1
  363. package/dist/orchviz/server/index.d.ts +0 -36
  364. package/dist/orchviz/server/index.d.ts.map +0 -1
  365. package/dist/orchviz/server/index.js +0 -144
  366. package/dist/orchviz/server/index.js.map +0 -1
  367. package/dist/orchviz/server/sse-handler.d.ts +0 -28
  368. package/dist/orchviz/server/sse-handler.d.ts.map +0 -1
  369. package/dist/orchviz/server/sse-handler.js +0 -217
  370. package/dist/orchviz/server/sse-handler.js.map +0 -1
  371. package/dist/orchviz/server/static-handler.d.ts +0 -9
  372. package/dist/orchviz/server/static-handler.d.ts.map +0 -1
  373. package/dist/orchviz/server/static-handler.js.map +0 -1
  374. package/dist/orchviz/server/write-handlers.d.ts +0 -20
  375. package/dist/orchviz/server/write-handlers.d.ts.map +0 -1
  376. package/dist/orchviz/server/write-handlers.js +0 -184
  377. package/dist/orchviz/server/write-handlers.js.map +0 -1
  378. package/dist/orchviz/server/write-utils.d.ts +0 -59
  379. package/dist/orchviz/server/write-utils.d.ts.map +0 -1
  380. package/dist/orchviz/server/write-utils.js +0 -161
  381. package/dist/orchviz/server/write-utils.js.map +0 -1
  382. package/dist/orchviz/session-discovery.d.ts +0 -19
  383. package/dist/orchviz/session-discovery.d.ts.map +0 -1
  384. package/dist/orchviz/session-discovery.js +0 -104
  385. package/dist/orchviz/session-discovery.js.map +0 -1
  386. package/dist/orchviz/session-manager.d.ts +0 -17
  387. package/dist/orchviz/session-manager.d.ts.map +0 -1
  388. package/dist/orchviz/session-manager.js +0 -63
  389. package/dist/orchviz/session-manager.js.map +0 -1
  390. package/dist/orchviz/session-runtime.d.ts +0 -21
  391. package/dist/orchviz/session-runtime.d.ts.map +0 -1
  392. package/dist/orchviz/session-runtime.js +0 -135
  393. package/dist/orchviz/session-runtime.js.map +0 -1
  394. package/dist/orchviz/session-watcher.d.ts +0 -33
  395. package/dist/orchviz/session-watcher.d.ts.map +0 -1
  396. package/dist/orchviz/session-watcher.js +0 -135
  397. package/dist/orchviz/session-watcher.js.map +0 -1
  398. package/dist/orchviz/subagent-meta.d.ts +0 -12
  399. package/dist/orchviz/subagent-meta.d.ts.map +0 -1
  400. package/dist/orchviz/subagent-meta.js +0 -34
  401. package/dist/orchviz/subagent-meta.js.map +0 -1
  402. package/dist/orchviz/subagent-scanner.d.ts +0 -15
  403. package/dist/orchviz/subagent-scanner.d.ts.map +0 -1
  404. package/dist/orchviz/subagent-scanner.js +0 -27
  405. package/dist/orchviz/subagent-scanner.js.map +0 -1
  406. package/dist/orchviz/subagent-watcher.d.ts +0 -20
  407. package/dist/orchviz/subagent-watcher.d.ts.map +0 -1
  408. package/dist/orchviz/subagent-watcher.js +0 -160
  409. package/dist/orchviz/subagent-watcher.js.map +0 -1
  410. package/dist/orchviz/token-estimator.d.ts.map +0 -1
  411. package/dist/orchviz/token-estimator.js.map +0 -1
  412. package/dist/orchviz/tool-input-data.d.ts +0 -11
  413. package/dist/orchviz/tool-input-data.d.ts.map +0 -1
  414. package/dist/orchviz/tool-input-data.js +0 -74
  415. package/dist/orchviz/tool-input-data.js.map +0 -1
  416. package/dist/orchviz/tool-summarizer.d.ts +0 -16
  417. package/dist/orchviz/tool-summarizer.d.ts.map +0 -1
  418. package/dist/orchviz/tool-summarizer.js +0 -129
  419. package/dist/orchviz/tool-summarizer.js.map +0 -1
  420. package/dist/orchviz-web/fira-code-cyrillic-400-normal.woff +0 -0
  421. package/dist/orchviz-web/fira-code-cyrillic-400-normal.woff2 +0 -0
  422. package/dist/orchviz-web/fira-code-cyrillic-500-normal.woff +0 -0
  423. package/dist/orchviz-web/fira-code-cyrillic-500-normal.woff2 +0 -0
  424. package/dist/orchviz-web/fira-code-cyrillic-ext-400-normal.woff +0 -0
  425. package/dist/orchviz-web/fira-code-cyrillic-ext-400-normal.woff2 +0 -0
  426. package/dist/orchviz-web/fira-code-cyrillic-ext-500-normal.woff +0 -0
  427. package/dist/orchviz-web/fira-code-cyrillic-ext-500-normal.woff2 +0 -0
  428. package/dist/orchviz-web/fira-code-greek-400-normal.woff +0 -0
  429. package/dist/orchviz-web/fira-code-greek-400-normal.woff2 +0 -0
  430. package/dist/orchviz-web/fira-code-greek-500-normal.woff +0 -0
  431. package/dist/orchviz-web/fira-code-greek-500-normal.woff2 +0 -0
  432. package/dist/orchviz-web/fira-code-greek-ext-400-normal.woff +0 -0
  433. package/dist/orchviz-web/fira-code-greek-ext-400-normal.woff2 +0 -0
  434. package/dist/orchviz-web/fira-code-greek-ext-500-normal.woff +0 -0
  435. package/dist/orchviz-web/fira-code-greek-ext-500-normal.woff2 +0 -0
  436. package/dist/orchviz-web/fira-code-latin-400-normal.woff +0 -0
  437. package/dist/orchviz-web/fira-code-latin-400-normal.woff2 +0 -0
  438. package/dist/orchviz-web/fira-code-latin-500-normal.woff +0 -0
  439. package/dist/orchviz-web/fira-code-latin-500-normal.woff2 +0 -0
  440. package/dist/orchviz-web/fira-code-latin-ext-400-normal.woff +0 -0
  441. package/dist/orchviz-web/fira-code-latin-ext-400-normal.woff2 +0 -0
  442. package/dist/orchviz-web/fira-code-latin-ext-500-normal.woff +0 -0
  443. package/dist/orchviz-web/fira-code-latin-ext-500-normal.woff2 +0 -0
  444. package/dist/orchviz-web/fira-code-symbols2-400-normal.woff +0 -0
  445. package/dist/orchviz-web/fira-code-symbols2-500-normal.woff +0 -0
  446. package/dist/orchviz-web/index.css +0 -1
  447. package/dist/orchviz-web/index.html +0 -18
  448. package/dist/orchviz-web/index.js +0 -53
  449. package/dist/orchviz-web/inter-cyrillic-400-normal.woff +0 -0
  450. package/dist/orchviz-web/inter-cyrillic-400-normal.woff2 +0 -0
  451. package/dist/orchviz-web/inter-cyrillic-500-normal.woff +0 -0
  452. package/dist/orchviz-web/inter-cyrillic-500-normal.woff2 +0 -0
  453. package/dist/orchviz-web/inter-cyrillic-600-normal.woff +0 -0
  454. package/dist/orchviz-web/inter-cyrillic-600-normal.woff2 +0 -0
  455. package/dist/orchviz-web/inter-cyrillic-ext-400-normal.woff +0 -0
  456. package/dist/orchviz-web/inter-cyrillic-ext-400-normal.woff2 +0 -0
  457. package/dist/orchviz-web/inter-cyrillic-ext-500-normal.woff +0 -0
  458. package/dist/orchviz-web/inter-cyrillic-ext-500-normal.woff2 +0 -0
  459. package/dist/orchviz-web/inter-cyrillic-ext-600-normal.woff +0 -0
  460. package/dist/orchviz-web/inter-cyrillic-ext-600-normal.woff2 +0 -0
  461. package/dist/orchviz-web/inter-greek-400-normal.woff +0 -0
  462. package/dist/orchviz-web/inter-greek-400-normal.woff2 +0 -0
  463. package/dist/orchviz-web/inter-greek-500-normal.woff +0 -0
  464. package/dist/orchviz-web/inter-greek-500-normal.woff2 +0 -0
  465. package/dist/orchviz-web/inter-greek-600-normal.woff +0 -0
  466. package/dist/orchviz-web/inter-greek-600-normal.woff2 +0 -0
  467. package/dist/orchviz-web/inter-greek-ext-400-normal.woff +0 -0
  468. package/dist/orchviz-web/inter-greek-ext-400-normal.woff2 +0 -0
  469. package/dist/orchviz-web/inter-greek-ext-500-normal.woff +0 -0
  470. package/dist/orchviz-web/inter-greek-ext-500-normal.woff2 +0 -0
  471. package/dist/orchviz-web/inter-greek-ext-600-normal.woff +0 -0
  472. package/dist/orchviz-web/inter-greek-ext-600-normal.woff2 +0 -0
  473. package/dist/orchviz-web/inter-latin-400-normal.woff +0 -0
  474. package/dist/orchviz-web/inter-latin-400-normal.woff2 +0 -0
  475. package/dist/orchviz-web/inter-latin-500-normal.woff +0 -0
  476. package/dist/orchviz-web/inter-latin-500-normal.woff2 +0 -0
  477. package/dist/orchviz-web/inter-latin-600-normal.woff +0 -0
  478. package/dist/orchviz-web/inter-latin-600-normal.woff2 +0 -0
  479. package/dist/orchviz-web/inter-latin-ext-400-normal.woff +0 -0
  480. package/dist/orchviz-web/inter-latin-ext-400-normal.woff2 +0 -0
  481. package/dist/orchviz-web/inter-latin-ext-500-normal.woff +0 -0
  482. package/dist/orchviz-web/inter-latin-ext-500-normal.woff2 +0 -0
  483. package/dist/orchviz-web/inter-latin-ext-600-normal.woff +0 -0
  484. package/dist/orchviz-web/inter-latin-ext-600-normal.woff2 +0 -0
  485. package/dist/orchviz-web/inter-vietnamese-400-normal.woff +0 -0
  486. package/dist/orchviz-web/inter-vietnamese-400-normal.woff2 +0 -0
  487. package/dist/orchviz-web/inter-vietnamese-500-normal.woff +0 -0
  488. package/dist/orchviz-web/inter-vietnamese-500-normal.woff2 +0 -0
  489. package/dist/orchviz-web/inter-vietnamese-600-normal.woff +0 -0
  490. package/dist/orchviz-web/inter-vietnamese-600-normal.woff2 +0 -0
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Bounded request-body reader with a socket timeout.
3
+ *
4
+ * Behavior extracted verbatim from the loopback write pipeline: collect the body
5
+ * up to `capBytes`, destroying the socket and rejecting with `BodyError(413)` on
6
+ * overflow or `BodyError(408)` on timeout. The cap + timeout are the DoS guard
7
+ * for any POST/PATCH route; the consumer supplies both (the write pipeline uses
8
+ * a 4096-byte cap).
9
+ */
10
+ /** Carries the HTTP status + a short tag for a body-read failure. */
11
+ export class BodyError extends Error {
12
+ status;
13
+ tag;
14
+ constructor(status, tag) {
15
+ super(tag);
16
+ this.status = status;
17
+ this.tag = tag;
18
+ this.name = "BodyError";
19
+ }
20
+ }
21
+ /**
22
+ * Collect the full request body up to `capBytes`. Destroys the socket if the
23
+ * body exceeds the cap OR if `timeoutMs` elapses first. Rejects with
24
+ * `BodyError(413,"body-too-large")` on overflow, `BodyError(408,"request-timeout")`
25
+ * on timeout.
26
+ */
27
+ export function bufferBody(req, capBytes, timeoutMs) {
28
+ return new Promise((resolve, reject) => {
29
+ const chunks = [];
30
+ let total = 0;
31
+ let settled = false;
32
+ const timer = setTimeout(() => {
33
+ if (settled)
34
+ return;
35
+ settled = true;
36
+ req.socket?.destroy();
37
+ reject(new BodyError(408, "request-timeout"));
38
+ }, timeoutMs);
39
+ req.on("data", (chunk) => {
40
+ total += chunk.length;
41
+ if (total > capBytes) {
42
+ if (settled)
43
+ return;
44
+ settled = true;
45
+ clearTimeout(timer);
46
+ req.socket?.destroy();
47
+ reject(new BodyError(413, "body-too-large"));
48
+ return;
49
+ }
50
+ chunks.push(chunk);
51
+ });
52
+ req.on("end", () => {
53
+ if (settled)
54
+ return;
55
+ settled = true;
56
+ clearTimeout(timer);
57
+ resolve(Buffer.concat(chunks));
58
+ });
59
+ req.on("error", (err) => {
60
+ if (settled)
61
+ return;
62
+ settled = true;
63
+ clearTimeout(timer);
64
+ reject(err);
65
+ });
66
+ });
67
+ }
68
+ //# sourceMappingURL=request-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-body.js","sourceRoot":"","sources":["../../src/local-web/request-body.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,qEAAqE;AACrE,MAAM,OAAO,SAAU,SAAQ,KAAK;IAElB;IACA;IAFjB,YACiB,MAAc,EACd,GAAW;QAE3B,KAAK,CAAC,GAAG,CAAC,CAAC;QAHK,WAAM,GAAN,MAAM,CAAQ;QACd,QAAG,GAAH,GAAG,CAAQ;QAG3B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IACzB,CAAC;CACD;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,GAAoB,EAAE,QAAgB,EAAE,SAAiB;IACnF,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAC/C,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAChC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;YACtB,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACtB,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBAC7C,OAAO;YACR,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YAClB,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Static file serving with a path-traversal guard.
3
+ *
4
+ * Ported from patoles/agent-flow @ 59ccf4e (app/src/static.ts).
5
+ * License Apache-2.0 — see the repository NOTICE file.
6
+ *
7
+ * Two-layer traversal defense: reject any raw URL containing "..", then resolve
8
+ * the candidate and require it to sit at or inside the base directory. Serves
9
+ * GET/HEAD only; long-cache for /assets/, no-cache otherwise.
10
+ */
11
+ import type { IncomingMessage, ServerResponse } from "node:http";
12
+ /** Serve a file from `staticDir` for GET/HEAD, guarding against path traversal. */
13
+ export declare function serveStatic(req: IncomingMessage, res: ServerResponse, staticDir: string): void;
14
+ //# sourceMappingURL=static-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-handler.d.ts","sourceRoot":"","sources":["../../src/local-web/static-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAsBjE,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAgD9F"}
@@ -1,11 +1,16 @@
1
1
  /**
2
- * Static file serving with path-traversal guard.
2
+ * Static file serving with a path-traversal guard.
3
3
  *
4
4
  * Ported from patoles/agent-flow @ 59ccf4e (app/src/static.ts).
5
- * License Apache-2.0 (see ../../NOTICE).
5
+ * License Apache-2.0 see the repository NOTICE file.
6
+ *
7
+ * Two-layer traversal defense: reject any raw URL containing "..", then resolve
8
+ * the candidate and require it to sit at or inside the base directory. Serves
9
+ * GET/HEAD only; long-cache for /assets/, no-cache otherwise.
6
10
  */
7
11
  import * as fs from "node:fs";
8
12
  import * as path from "node:path";
13
+ import { LOOPBACK_HOST } from "./constants.js";
9
14
  const MIME = {
10
15
  ".html": "text/html; charset=utf-8",
11
16
  ".js": "application/javascript; charset=utf-8",
@@ -22,6 +27,7 @@ function send404(res) {
22
27
  res.writeHead(404, { "Content-Type": "text/plain" });
23
28
  res.end("Not Found");
24
29
  }
30
+ /** Serve a file from `staticDir` for GET/HEAD, guarding against path traversal. */
25
31
  export function serveStatic(req, res, staticDir) {
26
32
  if (req.method !== "GET" && req.method !== "HEAD") {
27
33
  res.writeHead(405, { Allow: "GET, HEAD", "Content-Type": "text/plain" });
@@ -34,7 +40,7 @@ export function serveStatic(req, res, staticDir) {
34
40
  send404(res);
35
41
  return;
36
42
  }
37
- const url = new URL(reqUrl, "http://127.0.0.1");
43
+ const url = new URL(reqUrl, `http://${LOOPBACK_HOST}`);
38
44
  let pathname = url.pathname;
39
45
  if (pathname === "/")
40
46
  pathname = "/index.html";
@@ -57,12 +63,11 @@ export function serveStatic(req, res, staticDir) {
57
63
  return;
58
64
  }
59
65
  const isAsset = pathname.startsWith("/assets/");
60
- const headers = {
66
+ res.writeHead(200, {
61
67
  "Content-Type": mimeFor(candidate),
62
68
  "Content-Length": String(stat.size),
63
69
  "Cache-Control": isAsset ? "public, max-age=31536000, immutable" : "no-cache",
64
- };
65
- res.writeHead(200, headers);
70
+ });
66
71
  if (req.method === "HEAD") {
67
72
  res.end();
68
73
  return;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-handler.js","sourceRoot":"","sources":["../../src/local-web/static-handler.ts"],"names":[],"mappings":"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"}
@@ -9,12 +9,12 @@ declare const PortableEvolutionManifestSchema: z.ZodObject<{
9
9
  type: z.ZodEnum<["agent", "command", "skill", "config", "rules", "hooks"]>;
10
10
  since: z.ZodString;
11
11
  }, "strict", z.ZodTypeAny, {
12
- type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
12
+ type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
13
13
  from: string;
14
14
  to: string;
15
15
  since: string;
16
16
  }, {
17
- type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
17
+ type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
18
18
  from: string;
19
19
  to: string;
20
20
  since: string;
@@ -26,13 +26,13 @@ declare const PortableEvolutionManifestSchema: z.ZodObject<{
26
26
  to: z.ZodType<string, z.ZodTypeDef, string>;
27
27
  since: z.ZodString;
28
28
  }, "strict", z.ZodTypeAny, {
29
- type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
29
+ type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
30
30
  provider: string;
31
31
  from: string;
32
32
  to: string;
33
33
  since: string;
34
34
  }, {
35
- type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
35
+ type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
36
36
  provider: string;
37
37
  from: string;
38
38
  to: string;
@@ -44,12 +44,12 @@ declare const PortableEvolutionManifestSchema: z.ZodObject<{
44
44
  to: z.ZodString;
45
45
  since: z.ZodString;
46
46
  }, "strict", z.ZodTypeAny, {
47
- type: "agent" | "config" | "rules";
47
+ type: "rules" | "agent" | "config";
48
48
  from: string;
49
49
  to: string;
50
50
  since: string;
51
51
  }, {
52
- type: "agent" | "config" | "rules";
52
+ type: "rules" | "agent" | "config";
53
53
  from: string;
54
54
  to: string;
55
55
  since: string;
@@ -58,20 +58,20 @@ declare const PortableEvolutionManifestSchema: z.ZodObject<{
58
58
  version: "1.0";
59
59
  mewkitVersion: string;
60
60
  renames: {
61
- type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
61
+ type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
62
62
  from: string;
63
63
  to: string;
64
64
  since: string;
65
65
  }[];
66
66
  providerPathMigrations: {
67
- type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
67
+ type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
68
68
  provider: string;
69
69
  from: string;
70
70
  to: string;
71
71
  since: string;
72
72
  }[];
73
73
  sectionRenames: {
74
- type: "agent" | "config" | "rules";
74
+ type: "rules" | "agent" | "config";
75
75
  from: string;
76
76
  to: string;
77
77
  since: string;
@@ -80,20 +80,20 @@ declare const PortableEvolutionManifestSchema: z.ZodObject<{
80
80
  version: "1.0";
81
81
  mewkitVersion: string;
82
82
  renames: {
83
- type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
83
+ type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
84
84
  from: string;
85
85
  to: string;
86
86
  since: string;
87
87
  }[];
88
88
  providerPathMigrations: {
89
- type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
89
+ type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
90
90
  provider: string;
91
91
  from: string;
92
92
  to: string;
93
93
  since: string;
94
94
  }[];
95
95
  sectionRenames: {
96
- type: "agent" | "config" | "rules";
96
+ type: "rules" | "agent" | "config";
97
97
  from: string;
98
98
  to: string;
99
99
  since: string;
@@ -18,30 +18,30 @@ declare const PortableInstallationSchemaV3: z.ZodObject<{
18
18
  installedChecksum: z.ZodOptional<z.ZodString>;
19
19
  }, "strip", z.ZodTypeAny, {
20
20
  path: string;
21
- type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
21
+ type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
22
22
  installedAt: string;
23
- item: string;
24
- provider: string;
25
23
  global: boolean;
26
24
  sourcePath: string;
25
+ item: string;
26
+ provider: string;
27
27
  sourceChecksum: string;
28
28
  targetChecksum: string;
29
- installSource: "kit" | "manual";
29
+ installSource: "manual" | "kit";
30
30
  installedVersion?: string | undefined;
31
31
  cliVersion?: string | undefined;
32
32
  ownedSections?: string[] | undefined;
33
33
  installedChecksum?: string | undefined;
34
34
  }, {
35
35
  path: string;
36
- type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
36
+ type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
37
37
  installedAt: string;
38
- item: string;
39
- provider: string;
40
38
  global: boolean;
41
39
  sourcePath: string;
40
+ item: string;
41
+ provider: string;
42
42
  sourceChecksum: string;
43
43
  targetChecksum: string;
44
- installSource: "kit" | "manual";
44
+ installSource: "manual" | "kit";
45
45
  installedVersion?: string | undefined;
46
46
  cliVersion?: string | undefined;
47
47
  ownedSections?: string[] | undefined;
@@ -67,30 +67,30 @@ declare const PortableRegistrySchemaV3: z.ZodObject<{
67
67
  installedChecksum: z.ZodOptional<z.ZodString>;
68
68
  }, "strip", z.ZodTypeAny, {
69
69
  path: string;
70
- type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
70
+ type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
71
71
  installedAt: string;
72
- item: string;
73
- provider: string;
74
72
  global: boolean;
75
73
  sourcePath: string;
74
+ item: string;
75
+ provider: string;
76
76
  sourceChecksum: string;
77
77
  targetChecksum: string;
78
- installSource: "kit" | "manual";
78
+ installSource: "manual" | "kit";
79
79
  installedVersion?: string | undefined;
80
80
  cliVersion?: string | undefined;
81
81
  ownedSections?: string[] | undefined;
82
82
  installedChecksum?: string | undefined;
83
83
  }, {
84
84
  path: string;
85
- type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
85
+ type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
86
86
  installedAt: string;
87
- item: string;
88
- provider: string;
89
87
  global: boolean;
90
88
  sourcePath: string;
89
+ item: string;
90
+ provider: string;
91
91
  sourceChecksum: string;
92
92
  targetChecksum: string;
93
- installSource: "kit" | "manual";
93
+ installSource: "manual" | "kit";
94
94
  installedVersion?: string | undefined;
95
95
  cliVersion?: string | undefined;
96
96
  ownedSections?: string[] | undefined;
@@ -102,15 +102,15 @@ declare const PortableRegistrySchemaV3: z.ZodObject<{
102
102
  version: "3.0";
103
103
  installations: {
104
104
  path: string;
105
- type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
105
+ type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
106
106
  installedAt: string;
107
- item: string;
108
- provider: string;
109
107
  global: boolean;
110
108
  sourcePath: string;
109
+ item: string;
110
+ provider: string;
111
111
  sourceChecksum: string;
112
112
  targetChecksum: string;
113
- installSource: "kit" | "manual";
113
+ installSource: "manual" | "kit";
114
114
  installedVersion?: string | undefined;
115
115
  cliVersion?: string | undefined;
116
116
  ownedSections?: string[] | undefined;
@@ -122,15 +122,15 @@ declare const PortableRegistrySchemaV3: z.ZodObject<{
122
122
  version: "3.0";
123
123
  installations: {
124
124
  path: string;
125
- type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
125
+ type: "skill" | "hooks" | "rules" | "agent" | "command" | "config";
126
126
  installedAt: string;
127
- item: string;
128
- provider: string;
129
127
  global: boolean;
130
128
  sourcePath: string;
129
+ item: string;
130
+ provider: string;
131
131
  sourceChecksum: string;
132
132
  targetChecksum: string;
133
- installSource: "kit" | "manual";
133
+ installSource: "manual" | "kit";
134
134
  installedVersion?: string | undefined;
135
135
  cliVersion?: string | undefined;
136
136
  ownedSections?: string[] | undefined;
@@ -118,45 +118,45 @@ export declare const MigrateOptionsSchema: z.ZodObject<{
118
118
  /** Opt-in: convert .mcp.json server definitions into the provider MCP config */
119
119
  includeMcp: z.ZodOptional<z.ZodBoolean>;
120
120
  }, "strip", z.ZodTypeAny, {
121
- providers?: boolean | undefined;
122
- source?: string | undefined;
121
+ force?: boolean | undefined;
123
122
  tool?: string | undefined;
124
- global?: boolean | undefined;
123
+ install?: boolean | undefined;
125
124
  tools?: string[] | undefined;
126
125
  all?: boolean | undefined;
126
+ global?: boolean | undefined;
127
127
  yes?: boolean | undefined;
128
128
  dryRun?: boolean | undefined;
129
- force?: boolean | undefined;
129
+ source?: string | undefined;
130
130
  only?: string | undefined;
131
131
  skipConfig?: boolean | undefined;
132
132
  skipRules?: boolean | undefined;
133
133
  skipHooks?: boolean | undefined;
134
- install?: boolean | undefined;
135
134
  reconcile?: boolean | undefined;
136
135
  reinstallEmptyDirs?: boolean | undefined;
137
136
  respectDeletions?: boolean | undefined;
138
137
  sourceVersion?: string | undefined;
138
+ providers?: boolean | undefined;
139
139
  allRules?: boolean | undefined;
140
140
  includeMcp?: boolean | undefined;
141
141
  }, {
142
- providers?: boolean | undefined;
143
- source?: string | undefined;
142
+ force?: boolean | undefined;
144
143
  tool?: string | undefined;
145
- global?: boolean | undefined;
144
+ install?: boolean | undefined;
146
145
  tools?: string[] | undefined;
147
146
  all?: boolean | undefined;
147
+ global?: boolean | undefined;
148
148
  yes?: boolean | undefined;
149
149
  dryRun?: boolean | undefined;
150
- force?: boolean | undefined;
150
+ source?: string | undefined;
151
151
  only?: string | undefined;
152
152
  skipConfig?: boolean | undefined;
153
153
  skipRules?: boolean | undefined;
154
154
  skipHooks?: boolean | undefined;
155
- install?: boolean | undefined;
156
155
  reconcile?: boolean | undefined;
157
156
  reinstallEmptyDirs?: boolean | undefined;
158
157
  respectDeletions?: boolean | undefined;
159
158
  sourceVersion?: string | undefined;
159
+ providers?: boolean | undefined;
160
160
  allRules?: boolean | undefined;
161
161
  includeMcp?: boolean | undefined;
162
162
  }>;
@@ -4,8 +4,13 @@
4
4
  * Ported verbatim from patoles/agent-flow @ 59ccf4e
5
5
  * Original: extension/src/token-estimator.ts
6
6
  * License: Apache-2.0 (see ../../NOTICE)
7
+ *
8
+ * Lives in this neutral module (not under any command subtree) so it has no
9
+ * dependency on removed code. It is the canonical heuristic the `context-audit`
10
+ * skill cites (that skill re-implements the same chars/4 rule in bash; it does
11
+ * not import this module). The five tuning constants are inlined and standalone.
7
12
  */
8
13
  export declare function estimateTokensFromContent(content: unknown): number;
9
14
  export declare function estimateTokensFromText(text: string): number;
10
15
  export declare function estimateTokenCost(toolName: string, result: string): number;
11
- //# sourceMappingURL=token-estimator.d.ts.map
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/token-estimator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAelE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAO1E"}
@@ -4,8 +4,17 @@
4
4
  * Ported verbatim from patoles/agent-flow @ 59ccf4e
5
5
  * Original: extension/src/token-estimator.ts
6
6
  * License: Apache-2.0 (see ../../NOTICE)
7
+ *
8
+ * Lives in this neutral module (not under any command subtree) so it has no
9
+ * dependency on removed code. It is the canonical heuristic the `context-audit`
10
+ * skill cites (that skill re-implements the same chars/4 rule in bash; it does
11
+ * not import this module). The five tuning constants are inlined and standalone.
7
12
  */
8
- import { CHARS_PER_TOKEN, MIN_TOKEN_ESTIMATE, FALLBACK_TOKEN_ESTIMATE, GREP_TOKEN_MULTIPLIER, DEFAULT_TOKEN_MULTIPLIER, } from "./constants.js";
13
+ const CHARS_PER_TOKEN = 4;
14
+ const MIN_TOKEN_ESTIMATE = 10;
15
+ const FALLBACK_TOKEN_ESTIMATE = 200;
16
+ const GREP_TOKEN_MULTIPLIER = 0.5;
17
+ const DEFAULT_TOKEN_MULTIPLIER = 0.3;
9
18
  export function estimateTokensFromContent(content) {
10
19
  if (typeof content === "string") {
11
20
  return Math.max(Math.ceil(content.length / CHARS_PER_TOKEN), MIN_TOKEN_ESTIMATE);
@@ -35,4 +44,4 @@ export function estimateTokenCost(toolName, result) {
35
44
  }
36
45
  return Math.ceil(baseTokens * DEFAULT_TOKEN_MULTIPLIER);
37
46
  }
38
- //# sourceMappingURL=token-estimator.js.map
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/token-estimator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACzD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;iBAC9C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC7D,KAAK,IAAI,MAAM,CAAE,IAA2B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACjE,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,uBAAuB,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY;IAClD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,MAAc;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;IAC9D,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,UAAU,CAAC;IAC3C,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,wBAAwB,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Canonical valid `visual-plan/v1` fixture (as a builder returning a fresh deep
3
+ * copy each call, so a test can mutate one failure class without touching
4
+ * others). Source hashes are left empty here — the test helper stamps them from
5
+ * the on-disk plan.md/phase files so the "valid" case passes freshness.
6
+ *
7
+ * The wireframe HTML uses only the allowed `.wf-*` structural vocabulary and no
8
+ * form controls, so it survives the reject-mode sanitizer unchanged.
9
+ */
10
+ /** A structurally + referentially valid artifact. Deep-copied on every call. */
11
+ export declare function makeValidPlan(): Record<string, unknown>;
12
+ /** Markdown the fixture's source hashes are computed against. */
13
+ export declare const FIXTURE_PLAN_MD = "# Sample Plan\n\nAuth flow.\n";
14
+ export declare const FIXTURE_PHASE_MD = "---\nphase: 1\n---\n\n# Phase 1\n\nLogin screen.\n";
15
+ //# sourceMappingURL=valid-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valid-plan.d.ts","sourceRoot":"","sources":["../../../src/visual-plan/__fixtures__/valid-plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,gFAAgF;AAChF,wBAAgB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvD;AAED,iEAAiE;AACjE,eAAO,MAAM,eAAe,kCAAkC,CAAC;AAC/D,eAAO,MAAM,gBAAgB,uDAAuD,CAAC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Canonical valid `visual-plan/v1` fixture (as a builder returning a fresh deep
3
+ * copy each call, so a test can mutate one failure class without touching
4
+ * others). Source hashes are left empty here — the test helper stamps them from
5
+ * the on-disk plan.md/phase files so the "valid" case passes freshness.
6
+ *
7
+ * The wireframe HTML uses only the allowed `.wf-*` structural vocabulary and no
8
+ * form controls, so it survives the reject-mode sanitizer unchanged.
9
+ */
10
+ const SAFE_LOGIN_HTML = '<section class="wf-screen"><header class="wf-topbar"><h1>Sign in</h1></header>' +
11
+ '<div class="wf-form"><label>Email</label><div class="wf-input"></div>' +
12
+ '<label>Password</label><div class="wf-input"></div>' +
13
+ '<a href="#submit" class="wf-button">Continue</a></div></section>';
14
+ const SAFE_ERROR_HTML = '<section class="wf-screen"><header class="wf-topbar"><h1>Sign in</h1></header>' +
15
+ '<p class="wf-error">Incorrect email or password.</p>' +
16
+ '<div class="wf-form"><label>Email</label><div class="wf-input"></div></div></section>';
17
+ /** A structurally + referentially valid artifact. Deep-copied on every call. */
18
+ export function makeValidPlan() {
19
+ return JSON.parse(JSON.stringify(BASE));
20
+ }
21
+ /** Markdown the fixture's source hashes are computed against. */
22
+ export const FIXTURE_PLAN_MD = "# Sample Plan\n\nAuth flow.\n";
23
+ export const FIXTURE_PHASE_MD = "---\nphase: 1\n---\n\n# Phase 1\n\nLogin screen.\n";
24
+ const BASE = {
25
+ schemaVersion: "visual-plan/v1",
26
+ id: "sample-plan",
27
+ revision: 0,
28
+ source: { planPath: "plan.md", planHash: "", phaseHashes: {} },
29
+ uiCoverage: {
30
+ surfaces: [
31
+ {
32
+ id: "s-auth",
33
+ label: "Authentication",
34
+ states: [
35
+ { id: "st-login-default", label: "Login (default)", frameIds: ["fr-login"], sourceRefIds: ["ref-login-code"] },
36
+ { id: "st-login-error", label: "Login (error)", frameIds: ["fr-login-error"], sourceRefIds: [] },
37
+ { id: "st-forgot", label: "Forgot password", frameIds: [], sourceRefIds: [], omitted: { reason: "out-of-scope" } },
38
+ { id: "st-2fa", label: "2FA", frameIds: [], sourceRefIds: [], omitted: { reason: "equivalent-layout", representedBy: "st-login-default" } },
39
+ ],
40
+ },
41
+ ],
42
+ },
43
+ canvas: {
44
+ lanes: [{ id: "lane-primary", label: "Primary flow" }],
45
+ frames: [
46
+ {
47
+ id: "fr-login",
48
+ label: "Login",
49
+ surface: "browser",
50
+ laneId: "lane-primary",
51
+ order: 0,
52
+ changeMode: "current",
53
+ coverageStateIds: ["st-login-default"],
54
+ sourceRefIds: ["ref-login-code"],
55
+ wireframe: { format: "semantic-html", html: SAFE_LOGIN_HTML },
56
+ },
57
+ {
58
+ id: "fr-login-error",
59
+ label: "Login error",
60
+ surface: "browser",
61
+ laneId: "lane-primary",
62
+ order: 1,
63
+ changeMode: "target",
64
+ coverageStateIds: ["st-login-error"],
65
+ sourceRefIds: [],
66
+ wireframe: { format: "semantic-html", html: SAFE_ERROR_HTML },
67
+ },
68
+ ],
69
+ connectors: [{ id: "c-login-error", from: "fr-login", to: "fr-login-error", label: "invalid credentials" }],
70
+ annotations: [{ id: "an-note-1", kind: "note", text: "Primary CTA", targetId: "fr-login", placement: "top" }],
71
+ },
72
+ documentBlocks: [{ id: "db-mechanics", title: "Mechanics", body: "Session cookie set on success." }],
73
+ sourceRefs: [
74
+ { id: "ref-login-code", kind: "code", ref: "src/features/auth/login.tsx" },
75
+ { id: "ref-new-2fa", kind: "plan-requirement", ref: "phase-01#2fa" },
76
+ ],
77
+ review: { status: "draft", approvedRevision: null, approvedAt: null, pendingFeedbackBatchIds: [] },
78
+ };
79
+ //# sourceMappingURL=valid-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valid-plan.js","sourceRoot":"","sources":["../../../src/visual-plan/__fixtures__/valid-plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Apply-feedback CLI mechanics (deterministic half of the Phase-6 loop).
3
+ *
4
+ * The AGENT (the mk:visual-plan skill) classifies + applies each operation
5
+ * (visual-only → CLI patch; plan-semantic → Markdown edit; implementation →
6
+ * deferred; ambiguous → ask). This module owns only the deterministic guards:
7
+ * - `checkBatchFresh` — STOP before ANY mutation if the batch's baseRevision/
8
+ * baseHash no longer match the artifact (no auto-merge onto drifted state).
9
+ * - `recordResolution` — write the per-op receipt write-once (refuse a second
10
+ * apply of the same batch). Receipt existence is the "resolved" marker.
11
+ */
12
+ export interface FreshnessResult {
13
+ ok: boolean;
14
+ stale?: boolean;
15
+ reason?: string;
16
+ }
17
+ /** Verify the batch still applies to the CURRENT artifact (pre-apply gate). */
18
+ export declare function checkBatchFresh(planDir: string, batchId: string): FreshnessResult;
19
+ export interface RecordResult {
20
+ ok: boolean;
21
+ receiptPath?: string;
22
+ reopenCommand?: string;
23
+ error?: string;
24
+ }
25
+ /**
26
+ * Write the resolution receipt (agent supplies per-op outcomes). Refuses a
27
+ * double-apply. `resolvedAtRevision` is the artifact's CURRENT revision (after
28
+ * the agent applied ops). Returns the reopen command for re-review.
29
+ */
30
+ export declare function recordResolution(planDir: string, batchId: string, entries: unknown): RecordResult;
31
+ //# sourceMappingURL=apply-feedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-feedback.d.ts","sourceRoot":"","sources":["../../../src/visual-plan/application/apply-feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,CAcjF;AAED,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CAiCjG"}