@pi-harness/pi-harness 0.1.14 → 0.1.16

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 (1513) hide show
  1. package/README.md +8 -4
  2. package/apps/web/dist/assets/{index-C98SJjJd.js → index-DXznRinu.js} +1 -1
  3. package/apps/web/dist/index.html +1 -1
  4. package/apps/web/package.json +6 -6
  5. package/apps/web/server-dist/bin.js +7 -1
  6. package/apps/web/server-dist/bin.js.map +1 -1
  7. package/apps/web/src/server/bin.ts +9 -1
  8. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/agent-teams.json +1 -1
  9. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/anchored-standard.json +1 -1
  10. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/annotation.json +1 -1
  11. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/archify.json +1 -1
  12. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/at-file.json +1 -1
  13. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/auto-mode.json +1 -1
  14. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/better-sidebar.json +1 -1
  15. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/browser-fetch.json +1 -1
  16. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/browser-session.json +1 -1
  17. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/canvas-draw.json +1 -1
  18. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/change-verifier.json +1 -1
  19. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cleaner.json +1 -1
  20. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cli-notifier.json +1 -1
  21. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/code2skill.json +1 -1
  22. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/colleague-skill.json +1 -1
  23. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/context-doctor.json +1 -1
  24. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/context.json +1 -1
  25. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cost-meter.json +1 -1
  26. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/dependency-checker.json +1 -1
  27. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +1 -1
  28. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/fail-logger.json +1 -1
  29. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/genui.json +1 -1
  30. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +1 -1
  31. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/graph-memory.json +1 -1
  32. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/history-compressor.json +1 -1
  33. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/hol-guard.json +1 -1
  34. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/i18n-pair.json +1 -1
  35. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/image-compressor.json +1 -1
  36. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/llm-verifier.json +1 -1
  37. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mcp-client.json +1 -1
  38. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mcp-panel.json +1 -1
  39. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/memory.json +1 -1
  40. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mirage-bridge.json +1 -1
  41. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mock-server.json +1 -1
  42. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/modlens.json +1 -1
  43. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/module-search.json +1 -1
  44. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +1 -1
  45. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/openpets.json +1 -1
  46. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plan-execute.json +1 -1
  47. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-check.json +1 -1
  48. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-dev.json +1 -1
  49. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-finder.json +1 -1
  50. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-radar.json +1 -1
  51. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-stars.json +1 -1
  52. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-guard.json +1 -1
  53. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-library.json +1 -1
  54. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/readme-gen.json +1 -1
  55. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/recall-unread.json +1 -1
  56. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/reverse-skill.json +1 -1
  57. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/reviewer-bot.json +1 -1
  58. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/runtime-doctor.json +1 -1
  59. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/secure-audit.json +1 -1
  60. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-bookmarks.json +1 -1
  61. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-bridge.json +1 -1
  62. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-compare.json +1 -1
  63. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-export.json +1 -1
  64. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-insights.json +1 -1
  65. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-search.json +1 -1
  66. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/skill-catalog.json +1 -1
  67. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/skill-guard.json +1 -1
  68. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/sql-lens.json +1 -1
  69. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/synapse.json +1 -1
  70. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/tab-manager.json +1 -1
  71. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/taskboard.json +1 -1
  72. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +1 -1
  73. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/test-harness.json +1 -1
  74. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/theme-studio.json +1 -1
  75. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/token-guard.json +1 -1
  76. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/turn-rewind.json +1 -1
  77. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/undo-savepoint.json +1 -1
  78. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/vision-toolkit.json +1 -1
  79. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/web-research.json +1 -1
  80. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/workspace-navigator.json +1 -1
  81. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/workspace-search.json +1 -1
  82. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/yaml-validator.json +1 -1
  83. package/node_modules/@pi-harness/api-gateway/package.json +1 -1
  84. package/node_modules/@pi-harness/cli/dist/bin.js +2 -0
  85. package/node_modules/@pi-harness/cli/dist/bin.js.map +1 -1
  86. package/node_modules/@pi-harness/cli/dist/main.d.ts +1 -0
  87. package/node_modules/@pi-harness/cli/dist/main.d.ts.map +1 -1
  88. package/node_modules/@pi-harness/cli/dist/main.js +9 -0
  89. package/node_modules/@pi-harness/cli/dist/main.js.map +1 -1
  90. package/node_modules/@pi-harness/cli/package.json +1 -1
  91. package/node_modules/@pi-harness/host-webserver/package.json +1 -1
  92. package/node_modules/@pi-harness/web-app/package.json +1 -1
  93. package/package.json +10 -8
  94. package/packages/api-gateway/dist/marketplace-entries/official/agent-teams.json +1 -1
  95. package/packages/api-gateway/dist/marketplace-entries/official/anchored-standard.json +1 -1
  96. package/packages/api-gateway/dist/marketplace-entries/official/annotation.json +1 -1
  97. package/packages/api-gateway/dist/marketplace-entries/official/archify.json +1 -1
  98. package/packages/api-gateway/dist/marketplace-entries/official/at-file.json +1 -1
  99. package/packages/api-gateway/dist/marketplace-entries/official/auto-mode.json +1 -1
  100. package/packages/api-gateway/dist/marketplace-entries/official/better-sidebar.json +1 -1
  101. package/packages/api-gateway/dist/marketplace-entries/official/browser-fetch.json +1 -1
  102. package/packages/api-gateway/dist/marketplace-entries/official/browser-session.json +1 -1
  103. package/packages/api-gateway/dist/marketplace-entries/official/canvas-draw.json +1 -1
  104. package/packages/api-gateway/dist/marketplace-entries/official/change-verifier.json +1 -1
  105. package/packages/api-gateway/dist/marketplace-entries/official/cleaner.json +1 -1
  106. package/packages/api-gateway/dist/marketplace-entries/official/cli-notifier.json +1 -1
  107. package/packages/api-gateway/dist/marketplace-entries/official/code2skill.json +1 -1
  108. package/packages/api-gateway/dist/marketplace-entries/official/colleague-skill.json +1 -1
  109. package/packages/api-gateway/dist/marketplace-entries/official/context-doctor.json +1 -1
  110. package/packages/api-gateway/dist/marketplace-entries/official/context.json +1 -1
  111. package/packages/api-gateway/dist/marketplace-entries/official/cost-meter.json +1 -1
  112. package/packages/api-gateway/dist/marketplace-entries/official/dependency-checker.json +1 -1
  113. package/packages/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +1 -1
  114. package/packages/api-gateway/dist/marketplace-entries/official/fail-logger.json +1 -1
  115. package/packages/api-gateway/dist/marketplace-entries/official/genui.json +1 -1
  116. package/packages/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +1 -1
  117. package/packages/api-gateway/dist/marketplace-entries/official/graph-memory.json +1 -1
  118. package/packages/api-gateway/dist/marketplace-entries/official/history-compressor.json +1 -1
  119. package/packages/api-gateway/dist/marketplace-entries/official/hol-guard.json +1 -1
  120. package/packages/api-gateway/dist/marketplace-entries/official/i18n-pair.json +1 -1
  121. package/packages/api-gateway/dist/marketplace-entries/official/image-compressor.json +1 -1
  122. package/packages/api-gateway/dist/marketplace-entries/official/llm-verifier.json +1 -1
  123. package/packages/api-gateway/dist/marketplace-entries/official/mcp-client.json +1 -1
  124. package/packages/api-gateway/dist/marketplace-entries/official/mcp-panel.json +1 -1
  125. package/packages/api-gateway/dist/marketplace-entries/official/memory.json +1 -1
  126. package/packages/api-gateway/dist/marketplace-entries/official/mirage-bridge.json +1 -1
  127. package/packages/api-gateway/dist/marketplace-entries/official/mock-server.json +1 -1
  128. package/packages/api-gateway/dist/marketplace-entries/official/modlens.json +1 -1
  129. package/packages/api-gateway/dist/marketplace-entries/official/module-search.json +1 -1
  130. package/packages/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +1 -1
  131. package/packages/api-gateway/dist/marketplace-entries/official/openpets.json +1 -1
  132. package/packages/api-gateway/dist/marketplace-entries/official/plan-execute.json +1 -1
  133. package/packages/api-gateway/dist/marketplace-entries/official/plugin-check.json +1 -1
  134. package/packages/api-gateway/dist/marketplace-entries/official/plugin-dev.json +1 -1
  135. package/packages/api-gateway/dist/marketplace-entries/official/plugin-finder.json +1 -1
  136. package/packages/api-gateway/dist/marketplace-entries/official/plugin-radar.json +1 -1
  137. package/packages/api-gateway/dist/marketplace-entries/official/plugin-stars.json +1 -1
  138. package/packages/api-gateway/dist/marketplace-entries/official/prompt-guard.json +1 -1
  139. package/packages/api-gateway/dist/marketplace-entries/official/prompt-library.json +1 -1
  140. package/packages/api-gateway/dist/marketplace-entries/official/readme-gen.json +1 -1
  141. package/packages/api-gateway/dist/marketplace-entries/official/recall-unread.json +1 -1
  142. package/packages/api-gateway/dist/marketplace-entries/official/reverse-skill.json +1 -1
  143. package/packages/api-gateway/dist/marketplace-entries/official/reviewer-bot.json +1 -1
  144. package/packages/api-gateway/dist/marketplace-entries/official/runtime-doctor.json +1 -1
  145. package/packages/api-gateway/dist/marketplace-entries/official/secure-audit.json +1 -1
  146. package/packages/api-gateway/dist/marketplace-entries/official/session-bookmarks.json +1 -1
  147. package/packages/api-gateway/dist/marketplace-entries/official/session-bridge.json +1 -1
  148. package/packages/api-gateway/dist/marketplace-entries/official/session-compare.json +1 -1
  149. package/packages/api-gateway/dist/marketplace-entries/official/session-export.json +1 -1
  150. package/packages/api-gateway/dist/marketplace-entries/official/session-insights.json +1 -1
  151. package/packages/api-gateway/dist/marketplace-entries/official/session-search.json +1 -1
  152. package/packages/api-gateway/dist/marketplace-entries/official/skill-catalog.json +1 -1
  153. package/packages/api-gateway/dist/marketplace-entries/official/skill-guard.json +1 -1
  154. package/packages/api-gateway/dist/marketplace-entries/official/sql-lens.json +1 -1
  155. package/packages/api-gateway/dist/marketplace-entries/official/synapse.json +1 -1
  156. package/packages/api-gateway/dist/marketplace-entries/official/tab-manager.json +1 -1
  157. package/packages/api-gateway/dist/marketplace-entries/official/taskboard.json +1 -1
  158. package/packages/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +1 -1
  159. package/packages/api-gateway/dist/marketplace-entries/official/test-harness.json +1 -1
  160. package/packages/api-gateway/dist/marketplace-entries/official/theme-studio.json +1 -1
  161. package/packages/api-gateway/dist/marketplace-entries/official/token-guard.json +1 -1
  162. package/packages/api-gateway/dist/marketplace-entries/official/turn-rewind.json +1 -1
  163. package/packages/api-gateway/dist/marketplace-entries/official/undo-savepoint.json +1 -1
  164. package/packages/api-gateway/dist/marketplace-entries/official/vision-toolkit.json +1 -1
  165. package/packages/api-gateway/dist/marketplace-entries/official/web-research.json +1 -1
  166. package/packages/api-gateway/dist/marketplace-entries/official/workspace-navigator.json +1 -1
  167. package/packages/api-gateway/dist/marketplace-entries/official/workspace-search.json +1 -1
  168. package/packages/api-gateway/dist/marketplace-entries/official/yaml-validator.json +1 -1
  169. package/packages/api-gateway/package.json +1 -1
  170. package/packages/api-gateway/src/marketplace-entries/official/agent-teams.json +1 -1
  171. package/packages/api-gateway/src/marketplace-entries/official/anchored-standard.json +1 -1
  172. package/packages/api-gateway/src/marketplace-entries/official/annotation.json +1 -1
  173. package/packages/api-gateway/src/marketplace-entries/official/archify.json +1 -1
  174. package/packages/api-gateway/src/marketplace-entries/official/at-file.json +1 -1
  175. package/packages/api-gateway/src/marketplace-entries/official/auto-mode.json +1 -1
  176. package/packages/api-gateway/src/marketplace-entries/official/better-sidebar.json +1 -1
  177. package/packages/api-gateway/src/marketplace-entries/official/browser-fetch.json +1 -1
  178. package/packages/api-gateway/src/marketplace-entries/official/browser-session.json +1 -1
  179. package/packages/api-gateway/src/marketplace-entries/official/canvas-draw.json +1 -1
  180. package/packages/api-gateway/src/marketplace-entries/official/change-verifier.json +1 -1
  181. package/packages/api-gateway/src/marketplace-entries/official/cleaner.json +1 -1
  182. package/packages/api-gateway/src/marketplace-entries/official/cli-notifier.json +1 -1
  183. package/packages/api-gateway/src/marketplace-entries/official/code2skill.json +1 -1
  184. package/packages/api-gateway/src/marketplace-entries/official/colleague-skill.json +1 -1
  185. package/packages/api-gateway/src/marketplace-entries/official/context-doctor.json +1 -1
  186. package/packages/api-gateway/src/marketplace-entries/official/context.json +1 -1
  187. package/packages/api-gateway/src/marketplace-entries/official/cost-meter.json +1 -1
  188. package/packages/api-gateway/src/marketplace-entries/official/dependency-checker.json +1 -1
  189. package/packages/api-gateway/src/marketplace-entries/official/docker-sandbox.json +1 -1
  190. package/packages/api-gateway/src/marketplace-entries/official/fail-logger.json +1 -1
  191. package/packages/api-gateway/src/marketplace-entries/official/genui.json +1 -1
  192. package/packages/api-gateway/src/marketplace-entries/official/git-time-capsule.json +1 -1
  193. package/packages/api-gateway/src/marketplace-entries/official/graph-memory.json +1 -1
  194. package/packages/api-gateway/src/marketplace-entries/official/history-compressor.json +1 -1
  195. package/packages/api-gateway/src/marketplace-entries/official/hol-guard.json +1 -1
  196. package/packages/api-gateway/src/marketplace-entries/official/i18n-pair.json +1 -1
  197. package/packages/api-gateway/src/marketplace-entries/official/image-compressor.json +1 -1
  198. package/packages/api-gateway/src/marketplace-entries/official/llm-verifier.json +1 -1
  199. package/packages/api-gateway/src/marketplace-entries/official/mcp-client.json +1 -1
  200. package/packages/api-gateway/src/marketplace-entries/official/mcp-panel.json +1 -1
  201. package/packages/api-gateway/src/marketplace-entries/official/memory.json +1 -1
  202. package/packages/api-gateway/src/marketplace-entries/official/mirage-bridge.json +1 -1
  203. package/packages/api-gateway/src/marketplace-entries/official/mock-server.json +1 -1
  204. package/packages/api-gateway/src/marketplace-entries/official/modlens.json +1 -1
  205. package/packages/api-gateway/src/marketplace-entries/official/module-search.json +1 -1
  206. package/packages/api-gateway/src/marketplace-entries/official/obsidian-sync.json +1 -1
  207. package/packages/api-gateway/src/marketplace-entries/official/openpets.json +1 -1
  208. package/packages/api-gateway/src/marketplace-entries/official/plan-execute.json +1 -1
  209. package/packages/api-gateway/src/marketplace-entries/official/plugin-check.json +1 -1
  210. package/packages/api-gateway/src/marketplace-entries/official/plugin-dev.json +1 -1
  211. package/packages/api-gateway/src/marketplace-entries/official/plugin-finder.json +1 -1
  212. package/packages/api-gateway/src/marketplace-entries/official/plugin-radar.json +1 -1
  213. package/packages/api-gateway/src/marketplace-entries/official/plugin-stars.json +1 -1
  214. package/packages/api-gateway/src/marketplace-entries/official/prompt-guard.json +1 -1
  215. package/packages/api-gateway/src/marketplace-entries/official/prompt-library.json +1 -1
  216. package/packages/api-gateway/src/marketplace-entries/official/readme-gen.json +1 -1
  217. package/packages/api-gateway/src/marketplace-entries/official/recall-unread.json +1 -1
  218. package/packages/api-gateway/src/marketplace-entries/official/reverse-skill.json +1 -1
  219. package/packages/api-gateway/src/marketplace-entries/official/reviewer-bot.json +1 -1
  220. package/packages/api-gateway/src/marketplace-entries/official/runtime-doctor.json +1 -1
  221. package/packages/api-gateway/src/marketplace-entries/official/secure-audit.json +1 -1
  222. package/packages/api-gateway/src/marketplace-entries/official/session-bookmarks.json +1 -1
  223. package/packages/api-gateway/src/marketplace-entries/official/session-bridge.json +1 -1
  224. package/packages/api-gateway/src/marketplace-entries/official/session-compare.json +1 -1
  225. package/packages/api-gateway/src/marketplace-entries/official/session-export.json +1 -1
  226. package/packages/api-gateway/src/marketplace-entries/official/session-insights.json +1 -1
  227. package/packages/api-gateway/src/marketplace-entries/official/session-search.json +1 -1
  228. package/packages/api-gateway/src/marketplace-entries/official/skill-catalog.json +1 -1
  229. package/packages/api-gateway/src/marketplace-entries/official/skill-guard.json +1 -1
  230. package/packages/api-gateway/src/marketplace-entries/official/sql-lens.json +1 -1
  231. package/packages/api-gateway/src/marketplace-entries/official/synapse.json +1 -1
  232. package/packages/api-gateway/src/marketplace-entries/official/tab-manager.json +1 -1
  233. package/packages/api-gateway/src/marketplace-entries/official/taskboard.json +1 -1
  234. package/packages/api-gateway/src/marketplace-entries/official/telemetry-blocker.json +1 -1
  235. package/packages/api-gateway/src/marketplace-entries/official/test-harness.json +1 -1
  236. package/packages/api-gateway/src/marketplace-entries/official/theme-studio.json +1 -1
  237. package/packages/api-gateway/src/marketplace-entries/official/token-guard.json +1 -1
  238. package/packages/api-gateway/src/marketplace-entries/official/turn-rewind.json +1 -1
  239. package/packages/api-gateway/src/marketplace-entries/official/undo-savepoint.json +1 -1
  240. package/packages/api-gateway/src/marketplace-entries/official/vision-toolkit.json +1 -1
  241. package/packages/api-gateway/src/marketplace-entries/official/web-research.json +1 -1
  242. package/packages/api-gateway/src/marketplace-entries/official/workspace-navigator.json +1 -1
  243. package/packages/api-gateway/src/marketplace-entries/official/workspace-search.json +1 -1
  244. package/packages/api-gateway/src/marketplace-entries/official/yaml-validator.json +1 -1
  245. package/packages/api-gateway/test/release-package.test.ts +5 -11
  246. package/packages/api-gateway/test/release-version.test.ts +2 -2
  247. package/packages/bundle-web-app/package.json +1 -1
  248. package/packages/cli/dist/bin.js +2 -0
  249. package/packages/cli/dist/bin.js.map +1 -1
  250. package/packages/cli/dist/main.d.ts +1 -0
  251. package/packages/cli/dist/main.d.ts.map +1 -1
  252. package/packages/cli/dist/main.js +9 -0
  253. package/packages/cli/dist/main.js.map +1 -1
  254. package/packages/cli/package.json +1 -1
  255. package/packages/cli/src/bin.ts +2 -0
  256. package/packages/cli/src/main.ts +9 -0
  257. package/packages/cli/test/cli.test.ts +10 -0
  258. package/packages/host-webserver/package.json +1 -1
  259. package/node_modules/@pi-harness/core/LICENSE +0 -9
  260. package/node_modules/@pi-harness/core/dist/atomic-write.d.ts +0 -8
  261. package/node_modules/@pi-harness/core/dist/atomic-write.d.ts.map +0 -1
  262. package/node_modules/@pi-harness/core/dist/atomic-write.js +0 -40
  263. package/node_modules/@pi-harness/core/dist/atomic-write.js.map +0 -1
  264. package/node_modules/@pi-harness/core/dist/boot.d.ts +0 -13
  265. package/node_modules/@pi-harness/core/dist/boot.d.ts.map +0 -1
  266. package/node_modules/@pi-harness/core/dist/boot.js +0 -257
  267. package/node_modules/@pi-harness/core/dist/boot.js.map +0 -1
  268. package/node_modules/@pi-harness/core/dist/bounded-file.d.ts +0 -7
  269. package/node_modules/@pi-harness/core/dist/bounded-file.d.ts.map +0 -1
  270. package/node_modules/@pi-harness/core/dist/bounded-file.js +0 -50
  271. package/node_modules/@pi-harness/core/dist/bounded-file.js.map +0 -1
  272. package/node_modules/@pi-harness/core/dist/config.d.ts +0 -4
  273. package/node_modules/@pi-harness/core/dist/config.d.ts.map +0 -1
  274. package/node_modules/@pi-harness/core/dist/config.js +0 -29
  275. package/node_modules/@pi-harness/core/dist/config.js.map +0 -1
  276. package/node_modules/@pi-harness/core/dist/context.d.ts +0 -3
  277. package/node_modules/@pi-harness/core/dist/context.d.ts.map +0 -1
  278. package/node_modules/@pi-harness/core/dist/context.js +0 -2
  279. package/node_modules/@pi-harness/core/dist/context.js.map +0 -1
  280. package/node_modules/@pi-harness/core/dist/cordis-timer.d.ts +0 -15
  281. package/node_modules/@pi-harness/core/dist/cordis-timer.d.ts.map +0 -1
  282. package/node_modules/@pi-harness/core/dist/cordis-timer.js +0 -99
  283. package/node_modules/@pi-harness/core/dist/cordis-timer.js.map +0 -1
  284. package/node_modules/@pi-harness/core/dist/http.d.ts +0 -8
  285. package/node_modules/@pi-harness/core/dist/http.d.ts.map +0 -1
  286. package/node_modules/@pi-harness/core/dist/http.js +0 -27
  287. package/node_modules/@pi-harness/core/dist/http.js.map +0 -1
  288. package/node_modules/@pi-harness/core/dist/index.d.ts +0 -9
  289. package/node_modules/@pi-harness/core/dist/index.d.ts.map +0 -1
  290. package/node_modules/@pi-harness/core/dist/index.js +0 -8
  291. package/node_modules/@pi-harness/core/dist/index.js.map +0 -1
  292. package/node_modules/@pi-harness/core/dist/plugins/agent-teams.d.ts +0 -21
  293. package/node_modules/@pi-harness/core/dist/plugins/agent-teams.d.ts.map +0 -1
  294. package/node_modules/@pi-harness/core/dist/plugins/agent-teams.js +0 -1179
  295. package/node_modules/@pi-harness/core/dist/plugins/agent-teams.js.map +0 -1
  296. package/node_modules/@pi-harness/core/dist/plugins/anchored-standard.d.ts +0 -15
  297. package/node_modules/@pi-harness/core/dist/plugins/anchored-standard.d.ts.map +0 -1
  298. package/node_modules/@pi-harness/core/dist/plugins/anchored-standard.js +0 -112
  299. package/node_modules/@pi-harness/core/dist/plugins/anchored-standard.js.map +0 -1
  300. package/node_modules/@pi-harness/core/dist/plugins/annotation.d.ts +0 -19
  301. package/node_modules/@pi-harness/core/dist/plugins/annotation.d.ts.map +0 -1
  302. package/node_modules/@pi-harness/core/dist/plugins/annotation.js +0 -112
  303. package/node_modules/@pi-harness/core/dist/plugins/annotation.js.map +0 -1
  304. package/node_modules/@pi-harness/core/dist/plugins/archify.d.ts +0 -24
  305. package/node_modules/@pi-harness/core/dist/plugins/archify.d.ts.map +0 -1
  306. package/node_modules/@pi-harness/core/dist/plugins/archify.js +0 -145
  307. package/node_modules/@pi-harness/core/dist/plugins/archify.js.map +0 -1
  308. package/node_modules/@pi-harness/core/dist/plugins/at-file.d.ts +0 -12
  309. package/node_modules/@pi-harness/core/dist/plugins/at-file.d.ts.map +0 -1
  310. package/node_modules/@pi-harness/core/dist/plugins/at-file.js +0 -143
  311. package/node_modules/@pi-harness/core/dist/plugins/at-file.js.map +0 -1
  312. package/node_modules/@pi-harness/core/dist/plugins/auto-mode.d.ts +0 -15
  313. package/node_modules/@pi-harness/core/dist/plugins/auto-mode.d.ts.map +0 -1
  314. package/node_modules/@pi-harness/core/dist/plugins/auto-mode.js +0 -183
  315. package/node_modules/@pi-harness/core/dist/plugins/auto-mode.js.map +0 -1
  316. package/node_modules/@pi-harness/core/dist/plugins/better-sidebar.d.ts +0 -38
  317. package/node_modules/@pi-harness/core/dist/plugins/better-sidebar.d.ts.map +0 -1
  318. package/node_modules/@pi-harness/core/dist/plugins/better-sidebar.js +0 -99
  319. package/node_modules/@pi-harness/core/dist/plugins/better-sidebar.js.map +0 -1
  320. package/node_modules/@pi-harness/core/dist/plugins/browser-fetch.d.ts +0 -15
  321. package/node_modules/@pi-harness/core/dist/plugins/browser-fetch.d.ts.map +0 -1
  322. package/node_modules/@pi-harness/core/dist/plugins/browser-fetch.js +0 -359
  323. package/node_modules/@pi-harness/core/dist/plugins/browser-fetch.js.map +0 -1
  324. package/node_modules/@pi-harness/core/dist/plugins/browser-session.d.ts +0 -14
  325. package/node_modules/@pi-harness/core/dist/plugins/browser-session.d.ts.map +0 -1
  326. package/node_modules/@pi-harness/core/dist/plugins/browser-session.js +0 -604
  327. package/node_modules/@pi-harness/core/dist/plugins/browser-session.js.map +0 -1
  328. package/node_modules/@pi-harness/core/dist/plugins/canvas-draw.d.ts +0 -9
  329. package/node_modules/@pi-harness/core/dist/plugins/canvas-draw.d.ts.map +0 -1
  330. package/node_modules/@pi-harness/core/dist/plugins/canvas-draw.js +0 -140
  331. package/node_modules/@pi-harness/core/dist/plugins/canvas-draw.js.map +0 -1
  332. package/node_modules/@pi-harness/core/dist/plugins/change-verifier.d.ts +0 -9
  333. package/node_modules/@pi-harness/core/dist/plugins/change-verifier.d.ts.map +0 -1
  334. package/node_modules/@pi-harness/core/dist/plugins/change-verifier.js +0 -88
  335. package/node_modules/@pi-harness/core/dist/plugins/change-verifier.js.map +0 -1
  336. package/node_modules/@pi-harness/core/dist/plugins/cleaner.d.ts +0 -12
  337. package/node_modules/@pi-harness/core/dist/plugins/cleaner.d.ts.map +0 -1
  338. package/node_modules/@pi-harness/core/dist/plugins/cleaner.js +0 -353
  339. package/node_modules/@pi-harness/core/dist/plugins/cleaner.js.map +0 -1
  340. package/node_modules/@pi-harness/core/dist/plugins/cli-notifier.d.ts +0 -16
  341. package/node_modules/@pi-harness/core/dist/plugins/cli-notifier.d.ts.map +0 -1
  342. package/node_modules/@pi-harness/core/dist/plugins/cli-notifier.js +0 -167
  343. package/node_modules/@pi-harness/core/dist/plugins/cli-notifier.js.map +0 -1
  344. package/node_modules/@pi-harness/core/dist/plugins/code2skill.d.ts +0 -9
  345. package/node_modules/@pi-harness/core/dist/plugins/code2skill.d.ts.map +0 -1
  346. package/node_modules/@pi-harness/core/dist/plugins/code2skill.js +0 -235
  347. package/node_modules/@pi-harness/core/dist/plugins/code2skill.js.map +0 -1
  348. package/node_modules/@pi-harness/core/dist/plugins/colleague-skill.d.ts +0 -28
  349. package/node_modules/@pi-harness/core/dist/plugins/colleague-skill.d.ts.map +0 -1
  350. package/node_modules/@pi-harness/core/dist/plugins/colleague-skill.js +0 -129
  351. package/node_modules/@pi-harness/core/dist/plugins/colleague-skill.js.map +0 -1
  352. package/node_modules/@pi-harness/core/dist/plugins/context-doctor.d.ts +0 -35
  353. package/node_modules/@pi-harness/core/dist/plugins/context-doctor.d.ts.map +0 -1
  354. package/node_modules/@pi-harness/core/dist/plugins/context-doctor.js +0 -459
  355. package/node_modules/@pi-harness/core/dist/plugins/context-doctor.js.map +0 -1
  356. package/node_modules/@pi-harness/core/dist/plugins/context.d.ts +0 -9
  357. package/node_modules/@pi-harness/core/dist/plugins/context.d.ts.map +0 -1
  358. package/node_modules/@pi-harness/core/dist/plugins/context.js +0 -214
  359. package/node_modules/@pi-harness/core/dist/plugins/context.js.map +0 -1
  360. package/node_modules/@pi-harness/core/dist/plugins/cost-meter.d.ts +0 -36
  361. package/node_modules/@pi-harness/core/dist/plugins/cost-meter.d.ts.map +0 -1
  362. package/node_modules/@pi-harness/core/dist/plugins/cost-meter.js +0 -430
  363. package/node_modules/@pi-harness/core/dist/plugins/cost-meter.js.map +0 -1
  364. package/node_modules/@pi-harness/core/dist/plugins/dependency-checker.d.ts +0 -36
  365. package/node_modules/@pi-harness/core/dist/plugins/dependency-checker.d.ts.map +0 -1
  366. package/node_modules/@pi-harness/core/dist/plugins/dependency-checker.js +0 -570
  367. package/node_modules/@pi-harness/core/dist/plugins/dependency-checker.js.map +0 -1
  368. package/node_modules/@pi-harness/core/dist/plugins/docker-sandbox.d.ts +0 -9
  369. package/node_modules/@pi-harness/core/dist/plugins/docker-sandbox.d.ts.map +0 -1
  370. package/node_modules/@pi-harness/core/dist/plugins/docker-sandbox.js +0 -344
  371. package/node_modules/@pi-harness/core/dist/plugins/docker-sandbox.js.map +0 -1
  372. package/node_modules/@pi-harness/core/dist/plugins/fail-logger.d.ts +0 -9
  373. package/node_modules/@pi-harness/core/dist/plugins/fail-logger.d.ts.map +0 -1
  374. package/node_modules/@pi-harness/core/dist/plugins/fail-logger.js +0 -218
  375. package/node_modules/@pi-harness/core/dist/plugins/fail-logger.js.map +0 -1
  376. package/node_modules/@pi-harness/core/dist/plugins/genui.d.ts +0 -9
  377. package/node_modules/@pi-harness/core/dist/plugins/genui.d.ts.map +0 -1
  378. package/node_modules/@pi-harness/core/dist/plugins/genui.js +0 -144
  379. package/node_modules/@pi-harness/core/dist/plugins/genui.js.map +0 -1
  380. package/node_modules/@pi-harness/core/dist/plugins/git-time-capsule.d.ts +0 -15
  381. package/node_modules/@pi-harness/core/dist/plugins/git-time-capsule.d.ts.map +0 -1
  382. package/node_modules/@pi-harness/core/dist/plugins/git-time-capsule.js +0 -436
  383. package/node_modules/@pi-harness/core/dist/plugins/git-time-capsule.js.map +0 -1
  384. package/node_modules/@pi-harness/core/dist/plugins/graph-memory.d.ts +0 -16
  385. package/node_modules/@pi-harness/core/dist/plugins/graph-memory.d.ts.map +0 -1
  386. package/node_modules/@pi-harness/core/dist/plugins/graph-memory.js +0 -669
  387. package/node_modules/@pi-harness/core/dist/plugins/graph-memory.js.map +0 -1
  388. package/node_modules/@pi-harness/core/dist/plugins/history-compressor.d.ts +0 -15
  389. package/node_modules/@pi-harness/core/dist/plugins/history-compressor.d.ts.map +0 -1
  390. package/node_modules/@pi-harness/core/dist/plugins/history-compressor.js +0 -99
  391. package/node_modules/@pi-harness/core/dist/plugins/history-compressor.js.map +0 -1
  392. package/node_modules/@pi-harness/core/dist/plugins/hol-guard.d.ts +0 -29
  393. package/node_modules/@pi-harness/core/dist/plugins/hol-guard.d.ts.map +0 -1
  394. package/node_modules/@pi-harness/core/dist/plugins/hol-guard.js +0 -159
  395. package/node_modules/@pi-harness/core/dist/plugins/hol-guard.js.map +0 -1
  396. package/node_modules/@pi-harness/core/dist/plugins/i18n-pair.d.ts +0 -12
  397. package/node_modules/@pi-harness/core/dist/plugins/i18n-pair.d.ts.map +0 -1
  398. package/node_modules/@pi-harness/core/dist/plugins/i18n-pair.js +0 -332
  399. package/node_modules/@pi-harness/core/dist/plugins/i18n-pair.js.map +0 -1
  400. package/node_modules/@pi-harness/core/dist/plugins/image-compressor.d.ts +0 -15
  401. package/node_modules/@pi-harness/core/dist/plugins/image-compressor.d.ts.map +0 -1
  402. package/node_modules/@pi-harness/core/dist/plugins/image-compressor.js +0 -223
  403. package/node_modules/@pi-harness/core/dist/plugins/image-compressor.js.map +0 -1
  404. package/node_modules/@pi-harness/core/dist/plugins/llm-verifier.d.ts +0 -42
  405. package/node_modules/@pi-harness/core/dist/plugins/llm-verifier.d.ts.map +0 -1
  406. package/node_modules/@pi-harness/core/dist/plugins/llm-verifier.js +0 -138
  407. package/node_modules/@pi-harness/core/dist/plugins/llm-verifier.js.map +0 -1
  408. package/node_modules/@pi-harness/core/dist/plugins/mcp-client.d.ts +0 -19
  409. package/node_modules/@pi-harness/core/dist/plugins/mcp-client.d.ts.map +0 -1
  410. package/node_modules/@pi-harness/core/dist/plugins/mcp-client.js +0 -1288
  411. package/node_modules/@pi-harness/core/dist/plugins/mcp-client.js.map +0 -1
  412. package/node_modules/@pi-harness/core/dist/plugins/mcp-panel.d.ts +0 -14
  413. package/node_modules/@pi-harness/core/dist/plugins/mcp-panel.d.ts.map +0 -1
  414. package/node_modules/@pi-harness/core/dist/plugins/mcp-panel.js +0 -194
  415. package/node_modules/@pi-harness/core/dist/plugins/mcp-panel.js.map +0 -1
  416. package/node_modules/@pi-harness/core/dist/plugins/memory.d.ts +0 -15
  417. package/node_modules/@pi-harness/core/dist/plugins/memory.d.ts.map +0 -1
  418. package/node_modules/@pi-harness/core/dist/plugins/memory.js +0 -394
  419. package/node_modules/@pi-harness/core/dist/plugins/memory.js.map +0 -1
  420. package/node_modules/@pi-harness/core/dist/plugins/mirage-bridge.d.ts +0 -23
  421. package/node_modules/@pi-harness/core/dist/plugins/mirage-bridge.d.ts.map +0 -1
  422. package/node_modules/@pi-harness/core/dist/plugins/mirage-bridge.js +0 -159
  423. package/node_modules/@pi-harness/core/dist/plugins/mirage-bridge.js.map +0 -1
  424. package/node_modules/@pi-harness/core/dist/plugins/mock-server.d.ts +0 -22
  425. package/node_modules/@pi-harness/core/dist/plugins/mock-server.d.ts.map +0 -1
  426. package/node_modules/@pi-harness/core/dist/plugins/mock-server.js +0 -180
  427. package/node_modules/@pi-harness/core/dist/plugins/mock-server.js.map +0 -1
  428. package/node_modules/@pi-harness/core/dist/plugins/model.d.ts +0 -11
  429. package/node_modules/@pi-harness/core/dist/plugins/model.d.ts.map +0 -1
  430. package/node_modules/@pi-harness/core/dist/plugins/model.js +0 -17
  431. package/node_modules/@pi-harness/core/dist/plugins/model.js.map +0 -1
  432. package/node_modules/@pi-harness/core/dist/plugins/models.d.ts +0 -16
  433. package/node_modules/@pi-harness/core/dist/plugins/models.d.ts.map +0 -1
  434. package/node_modules/@pi-harness/core/dist/plugins/models.js +0 -35
  435. package/node_modules/@pi-harness/core/dist/plugins/models.js.map +0 -1
  436. package/node_modules/@pi-harness/core/dist/plugins/modlens.d.ts +0 -15
  437. package/node_modules/@pi-harness/core/dist/plugins/modlens.d.ts.map +0 -1
  438. package/node_modules/@pi-harness/core/dist/plugins/modlens.js +0 -470
  439. package/node_modules/@pi-harness/core/dist/plugins/modlens.js.map +0 -1
  440. package/node_modules/@pi-harness/core/dist/plugins/module-search.d.ts +0 -28
  441. package/node_modules/@pi-harness/core/dist/plugins/module-search.d.ts.map +0 -1
  442. package/node_modules/@pi-harness/core/dist/plugins/module-search.js +0 -193
  443. package/node_modules/@pi-harness/core/dist/plugins/module-search.js.map +0 -1
  444. package/node_modules/@pi-harness/core/dist/plugins/obsidian-sync.d.ts +0 -14
  445. package/node_modules/@pi-harness/core/dist/plugins/obsidian-sync.d.ts.map +0 -1
  446. package/node_modules/@pi-harness/core/dist/plugins/obsidian-sync.js +0 -88
  447. package/node_modules/@pi-harness/core/dist/plugins/obsidian-sync.js.map +0 -1
  448. package/node_modules/@pi-harness/core/dist/plugins/openpets.d.ts +0 -14
  449. package/node_modules/@pi-harness/core/dist/plugins/openpets.d.ts.map +0 -1
  450. package/node_modules/@pi-harness/core/dist/plugins/openpets.js +0 -258
  451. package/node_modules/@pi-harness/core/dist/plugins/openpets.js.map +0 -1
  452. package/node_modules/@pi-harness/core/dist/plugins/plan-execute.d.ts +0 -11
  453. package/node_modules/@pi-harness/core/dist/plugins/plan-execute.d.ts.map +0 -1
  454. package/node_modules/@pi-harness/core/dist/plugins/plan-execute.js +0 -91
  455. package/node_modules/@pi-harness/core/dist/plugins/plan-execute.js.map +0 -1
  456. package/node_modules/@pi-harness/core/dist/plugins/plugin-check.d.ts +0 -47
  457. package/node_modules/@pi-harness/core/dist/plugins/plugin-check.d.ts.map +0 -1
  458. package/node_modules/@pi-harness/core/dist/plugins/plugin-check.js +0 -298
  459. package/node_modules/@pi-harness/core/dist/plugins/plugin-check.js.map +0 -1
  460. package/node_modules/@pi-harness/core/dist/plugins/plugin-dev.d.ts +0 -9
  461. package/node_modules/@pi-harness/core/dist/plugins/plugin-dev.d.ts.map +0 -1
  462. package/node_modules/@pi-harness/core/dist/plugins/plugin-dev.js +0 -177
  463. package/node_modules/@pi-harness/core/dist/plugins/plugin-dev.js.map +0 -1
  464. package/node_modules/@pi-harness/core/dist/plugins/plugin-finder.d.ts +0 -17
  465. package/node_modules/@pi-harness/core/dist/plugins/plugin-finder.d.ts.map +0 -1
  466. package/node_modules/@pi-harness/core/dist/plugins/plugin-finder.js +0 -216
  467. package/node_modules/@pi-harness/core/dist/plugins/plugin-finder.js.map +0 -1
  468. package/node_modules/@pi-harness/core/dist/plugins/plugin-radar.d.ts +0 -33
  469. package/node_modules/@pi-harness/core/dist/plugins/plugin-radar.d.ts.map +0 -1
  470. package/node_modules/@pi-harness/core/dist/plugins/plugin-radar.js +0 -247
  471. package/node_modules/@pi-harness/core/dist/plugins/plugin-radar.js.map +0 -1
  472. package/node_modules/@pi-harness/core/dist/plugins/plugin-stars.d.ts +0 -45
  473. package/node_modules/@pi-harness/core/dist/plugins/plugin-stars.d.ts.map +0 -1
  474. package/node_modules/@pi-harness/core/dist/plugins/plugin-stars.js +0 -366
  475. package/node_modules/@pi-harness/core/dist/plugins/plugin-stars.js.map +0 -1
  476. package/node_modules/@pi-harness/core/dist/plugins/prompt-guard.d.ts +0 -9
  477. package/node_modules/@pi-harness/core/dist/plugins/prompt-guard.d.ts.map +0 -1
  478. package/node_modules/@pi-harness/core/dist/plugins/prompt-guard.js +0 -165
  479. package/node_modules/@pi-harness/core/dist/plugins/prompt-guard.js.map +0 -1
  480. package/node_modules/@pi-harness/core/dist/plugins/prompt-library.d.ts +0 -26
  481. package/node_modules/@pi-harness/core/dist/plugins/prompt-library.d.ts.map +0 -1
  482. package/node_modules/@pi-harness/core/dist/plugins/prompt-library.js +0 -145
  483. package/node_modules/@pi-harness/core/dist/plugins/prompt-library.js.map +0 -1
  484. package/node_modules/@pi-harness/core/dist/plugins/readme-gen.d.ts +0 -29
  485. package/node_modules/@pi-harness/core/dist/plugins/readme-gen.d.ts.map +0 -1
  486. package/node_modules/@pi-harness/core/dist/plugins/readme-gen.js +0 -580
  487. package/node_modules/@pi-harness/core/dist/plugins/readme-gen.js.map +0 -1
  488. package/node_modules/@pi-harness/core/dist/plugins/recall-unread.d.ts +0 -24
  489. package/node_modules/@pi-harness/core/dist/plugins/recall-unread.d.ts.map +0 -1
  490. package/node_modules/@pi-harness/core/dist/plugins/recall-unread.js +0 -467
  491. package/node_modules/@pi-harness/core/dist/plugins/recall-unread.js.map +0 -1
  492. package/node_modules/@pi-harness/core/dist/plugins/resources.d.ts +0 -19
  493. package/node_modules/@pi-harness/core/dist/plugins/resources.d.ts.map +0 -1
  494. package/node_modules/@pi-harness/core/dist/plugins/resources.js +0 -126
  495. package/node_modules/@pi-harness/core/dist/plugins/resources.js.map +0 -1
  496. package/node_modules/@pi-harness/core/dist/plugins/reverse-skill.d.ts +0 -23
  497. package/node_modules/@pi-harness/core/dist/plugins/reverse-skill.d.ts.map +0 -1
  498. package/node_modules/@pi-harness/core/dist/plugins/reverse-skill.js +0 -61
  499. package/node_modules/@pi-harness/core/dist/plugins/reverse-skill.js.map +0 -1
  500. package/node_modules/@pi-harness/core/dist/plugins/reviewer-bot.d.ts +0 -15
  501. package/node_modules/@pi-harness/core/dist/plugins/reviewer-bot.d.ts.map +0 -1
  502. package/node_modules/@pi-harness/core/dist/plugins/reviewer-bot.js +0 -152
  503. package/node_modules/@pi-harness/core/dist/plugins/reviewer-bot.js.map +0 -1
  504. package/node_modules/@pi-harness/core/dist/plugins/runtime-doctor.d.ts +0 -34
  505. package/node_modules/@pi-harness/core/dist/plugins/runtime-doctor.d.ts.map +0 -1
  506. package/node_modules/@pi-harness/core/dist/plugins/runtime-doctor.js +0 -117
  507. package/node_modules/@pi-harness/core/dist/plugins/runtime-doctor.js.map +0 -1
  508. package/node_modules/@pi-harness/core/dist/plugins/runtime.d.ts +0 -14
  509. package/node_modules/@pi-harness/core/dist/plugins/runtime.d.ts.map +0 -1
  510. package/node_modules/@pi-harness/core/dist/plugins/runtime.js +0 -159
  511. package/node_modules/@pi-harness/core/dist/plugins/runtime.js.map +0 -1
  512. package/node_modules/@pi-harness/core/dist/plugins/secure-audit.d.ts +0 -32
  513. package/node_modules/@pi-harness/core/dist/plugins/secure-audit.d.ts.map +0 -1
  514. package/node_modules/@pi-harness/core/dist/plugins/secure-audit.js +0 -139
  515. package/node_modules/@pi-harness/core/dist/plugins/secure-audit.js.map +0 -1
  516. package/node_modules/@pi-harness/core/dist/plugins/session-bookmarks.d.ts +0 -16
  517. package/node_modules/@pi-harness/core/dist/plugins/session-bookmarks.d.ts.map +0 -1
  518. package/node_modules/@pi-harness/core/dist/plugins/session-bookmarks.js +0 -90
  519. package/node_modules/@pi-harness/core/dist/plugins/session-bookmarks.js.map +0 -1
  520. package/node_modules/@pi-harness/core/dist/plugins/session-bridge.d.ts +0 -45
  521. package/node_modules/@pi-harness/core/dist/plugins/session-bridge.d.ts.map +0 -1
  522. package/node_modules/@pi-harness/core/dist/plugins/session-bridge.js +0 -578
  523. package/node_modules/@pi-harness/core/dist/plugins/session-bridge.js.map +0 -1
  524. package/node_modules/@pi-harness/core/dist/plugins/session-compare.d.ts +0 -34
  525. package/node_modules/@pi-harness/core/dist/plugins/session-compare.d.ts.map +0 -1
  526. package/node_modules/@pi-harness/core/dist/plugins/session-compare.js +0 -153
  527. package/node_modules/@pi-harness/core/dist/plugins/session-compare.js.map +0 -1
  528. package/node_modules/@pi-harness/core/dist/plugins/session-export.d.ts +0 -10
  529. package/node_modules/@pi-harness/core/dist/plugins/session-export.d.ts.map +0 -1
  530. package/node_modules/@pi-harness/core/dist/plugins/session-export.js +0 -93
  531. package/node_modules/@pi-harness/core/dist/plugins/session-export.js.map +0 -1
  532. package/node_modules/@pi-harness/core/dist/plugins/session-insights.d.ts +0 -44
  533. package/node_modules/@pi-harness/core/dist/plugins/session-insights.d.ts.map +0 -1
  534. package/node_modules/@pi-harness/core/dist/plugins/session-insights.js +0 -432
  535. package/node_modules/@pi-harness/core/dist/plugins/session-insights.js.map +0 -1
  536. package/node_modules/@pi-harness/core/dist/plugins/session-search.d.ts +0 -21
  537. package/node_modules/@pi-harness/core/dist/plugins/session-search.d.ts.map +0 -1
  538. package/node_modules/@pi-harness/core/dist/plugins/session-search.js +0 -125
  539. package/node_modules/@pi-harness/core/dist/plugins/session-search.js.map +0 -1
  540. package/node_modules/@pi-harness/core/dist/plugins/session.d.ts +0 -15
  541. package/node_modules/@pi-harness/core/dist/plugins/session.d.ts.map +0 -1
  542. package/node_modules/@pi-harness/core/dist/plugins/session.js +0 -29
  543. package/node_modules/@pi-harness/core/dist/plugins/session.js.map +0 -1
  544. package/node_modules/@pi-harness/core/dist/plugins/skill-catalog.d.ts +0 -27
  545. package/node_modules/@pi-harness/core/dist/plugins/skill-catalog.d.ts.map +0 -1
  546. package/node_modules/@pi-harness/core/dist/plugins/skill-catalog.js +0 -98
  547. package/node_modules/@pi-harness/core/dist/plugins/skill-catalog.js.map +0 -1
  548. package/node_modules/@pi-harness/core/dist/plugins/skill-guard.d.ts +0 -27
  549. package/node_modules/@pi-harness/core/dist/plugins/skill-guard.d.ts.map +0 -1
  550. package/node_modules/@pi-harness/core/dist/plugins/skill-guard.js +0 -319
  551. package/node_modules/@pi-harness/core/dist/plugins/skill-guard.js.map +0 -1
  552. package/node_modules/@pi-harness/core/dist/plugins/sql-lens-worker.d.ts +0 -2
  553. package/node_modules/@pi-harness/core/dist/plugins/sql-lens-worker.d.ts.map +0 -1
  554. package/node_modules/@pi-harness/core/dist/plugins/sql-lens-worker.js +0 -206
  555. package/node_modules/@pi-harness/core/dist/plugins/sql-lens-worker.js.map +0 -1
  556. package/node_modules/@pi-harness/core/dist/plugins/sql-lens.d.ts +0 -14
  557. package/node_modules/@pi-harness/core/dist/plugins/sql-lens.d.ts.map +0 -1
  558. package/node_modules/@pi-harness/core/dist/plugins/sql-lens.js +0 -318
  559. package/node_modules/@pi-harness/core/dist/plugins/sql-lens.js.map +0 -1
  560. package/node_modules/@pi-harness/core/dist/plugins/stdio.d.ts +0 -11
  561. package/node_modules/@pi-harness/core/dist/plugins/stdio.d.ts.map +0 -1
  562. package/node_modules/@pi-harness/core/dist/plugins/stdio.js +0 -80
  563. package/node_modules/@pi-harness/core/dist/plugins/stdio.js.map +0 -1
  564. package/node_modules/@pi-harness/core/dist/plugins/synapse.d.ts +0 -38
  565. package/node_modules/@pi-harness/core/dist/plugins/synapse.d.ts.map +0 -1
  566. package/node_modules/@pi-harness/core/dist/plugins/synapse.js +0 -101
  567. package/node_modules/@pi-harness/core/dist/plugins/synapse.js.map +0 -1
  568. package/node_modules/@pi-harness/core/dist/plugins/tab-manager.d.ts +0 -9
  569. package/node_modules/@pi-harness/core/dist/plugins/tab-manager.d.ts.map +0 -1
  570. package/node_modules/@pi-harness/core/dist/plugins/tab-manager.js +0 -240
  571. package/node_modules/@pi-harness/core/dist/plugins/tab-manager.js.map +0 -1
  572. package/node_modules/@pi-harness/core/dist/plugins/taskboard.d.ts +0 -15
  573. package/node_modules/@pi-harness/core/dist/plugins/taskboard.d.ts.map +0 -1
  574. package/node_modules/@pi-harness/core/dist/plugins/taskboard.js +0 -375
  575. package/node_modules/@pi-harness/core/dist/plugins/taskboard.js.map +0 -1
  576. package/node_modules/@pi-harness/core/dist/plugins/telemetry-blocker.d.ts +0 -11
  577. package/node_modules/@pi-harness/core/dist/plugins/telemetry-blocker.d.ts.map +0 -1
  578. package/node_modules/@pi-harness/core/dist/plugins/telemetry-blocker.js +0 -76
  579. package/node_modules/@pi-harness/core/dist/plugins/telemetry-blocker.js.map +0 -1
  580. package/node_modules/@pi-harness/core/dist/plugins/test-harness.d.ts +0 -14
  581. package/node_modules/@pi-harness/core/dist/plugins/test-harness.d.ts.map +0 -1
  582. package/node_modules/@pi-harness/core/dist/plugins/test-harness.js +0 -276
  583. package/node_modules/@pi-harness/core/dist/plugins/test-harness.js.map +0 -1
  584. package/node_modules/@pi-harness/core/dist/plugins/theme-studio.d.ts +0 -29
  585. package/node_modules/@pi-harness/core/dist/plugins/theme-studio.d.ts.map +0 -1
  586. package/node_modules/@pi-harness/core/dist/plugins/theme-studio.js +0 -143
  587. package/node_modules/@pi-harness/core/dist/plugins/theme-studio.js.map +0 -1
  588. package/node_modules/@pi-harness/core/dist/plugins/token-guard.d.ts +0 -15
  589. package/node_modules/@pi-harness/core/dist/plugins/token-guard.d.ts.map +0 -1
  590. package/node_modules/@pi-harness/core/dist/plugins/token-guard.js +0 -210
  591. package/node_modules/@pi-harness/core/dist/plugins/token-guard.js.map +0 -1
  592. package/node_modules/@pi-harness/core/dist/plugins/tools.d.ts +0 -13
  593. package/node_modules/@pi-harness/core/dist/plugins/tools.d.ts.map +0 -1
  594. package/node_modules/@pi-harness/core/dist/plugins/tools.js +0 -23
  595. package/node_modules/@pi-harness/core/dist/plugins/tools.js.map +0 -1
  596. package/node_modules/@pi-harness/core/dist/plugins/turn-rewind.d.ts +0 -36
  597. package/node_modules/@pi-harness/core/dist/plugins/turn-rewind.d.ts.map +0 -1
  598. package/node_modules/@pi-harness/core/dist/plugins/turn-rewind.js +0 -378
  599. package/node_modules/@pi-harness/core/dist/plugins/turn-rewind.js.map +0 -1
  600. package/node_modules/@pi-harness/core/dist/plugins/undo-savepoint.d.ts +0 -17
  601. package/node_modules/@pi-harness/core/dist/plugins/undo-savepoint.d.ts.map +0 -1
  602. package/node_modules/@pi-harness/core/dist/plugins/undo-savepoint.js +0 -353
  603. package/node_modules/@pi-harness/core/dist/plugins/undo-savepoint.js.map +0 -1
  604. package/node_modules/@pi-harness/core/dist/plugins/vision-toolkit.d.ts +0 -36
  605. package/node_modules/@pi-harness/core/dist/plugins/vision-toolkit.d.ts.map +0 -1
  606. package/node_modules/@pi-harness/core/dist/plugins/vision-toolkit.js +0 -468
  607. package/node_modules/@pi-harness/core/dist/plugins/vision-toolkit.js.map +0 -1
  608. package/node_modules/@pi-harness/core/dist/plugins/web-research.d.ts +0 -17
  609. package/node_modules/@pi-harness/core/dist/plugins/web-research.d.ts.map +0 -1
  610. package/node_modules/@pi-harness/core/dist/plugins/web-research.js +0 -284
  611. package/node_modules/@pi-harness/core/dist/plugins/web-research.js.map +0 -1
  612. package/node_modules/@pi-harness/core/dist/plugins/workspace-navigator.d.ts +0 -42
  613. package/node_modules/@pi-harness/core/dist/plugins/workspace-navigator.d.ts.map +0 -1
  614. package/node_modules/@pi-harness/core/dist/plugins/workspace-navigator.js +0 -168
  615. package/node_modules/@pi-harness/core/dist/plugins/workspace-navigator.js.map +0 -1
  616. package/node_modules/@pi-harness/core/dist/plugins/workspace-search.d.ts +0 -15
  617. package/node_modules/@pi-harness/core/dist/plugins/workspace-search.d.ts.map +0 -1
  618. package/node_modules/@pi-harness/core/dist/plugins/workspace-search.js +0 -167
  619. package/node_modules/@pi-harness/core/dist/plugins/workspace-search.js.map +0 -1
  620. package/node_modules/@pi-harness/core/dist/plugins/yaml-validator.d.ts +0 -9
  621. package/node_modules/@pi-harness/core/dist/plugins/yaml-validator.d.ts.map +0 -1
  622. package/node_modules/@pi-harness/core/dist/plugins/yaml-validator.js +0 -203
  623. package/node_modules/@pi-harness/core/dist/plugins/yaml-validator.js.map +0 -1
  624. package/node_modules/@pi-harness/core/dist/profile.d.ts +0 -9
  625. package/node_modules/@pi-harness/core/dist/profile.d.ts.map +0 -1
  626. package/node_modules/@pi-harness/core/dist/profile.js +0 -33
  627. package/node_modules/@pi-harness/core/dist/profile.js.map +0 -1
  628. package/node_modules/@pi-harness/core/dist/runtime.d.ts +0 -16
  629. package/node_modules/@pi-harness/core/dist/runtime.d.ts.map +0 -1
  630. package/node_modules/@pi-harness/core/dist/runtime.js +0 -47
  631. package/node_modules/@pi-harness/core/dist/runtime.js.map +0 -1
  632. package/node_modules/@pi-harness/core/dist/services.d.ts +0 -118
  633. package/node_modules/@pi-harness/core/dist/services.d.ts.map +0 -1
  634. package/node_modules/@pi-harness/core/dist/services.js +0 -115
  635. package/node_modules/@pi-harness/core/dist/services.js.map +0 -1
  636. package/node_modules/@pi-harness/core/dist/stdio.d.ts +0 -37
  637. package/node_modules/@pi-harness/core/dist/stdio.d.ts.map +0 -1
  638. package/node_modules/@pi-harness/core/dist/stdio.js +0 -356
  639. package/node_modules/@pi-harness/core/dist/stdio.js.map +0 -1
  640. package/node_modules/@pi-harness/core/dist/workspace-path.d.ts +0 -13
  641. package/node_modules/@pi-harness/core/dist/workspace-path.d.ts.map +0 -1
  642. package/node_modules/@pi-harness/core/dist/workspace-path.js +0 -71
  643. package/node_modules/@pi-harness/core/dist/workspace-path.js.map +0 -1
  644. package/node_modules/@pi-harness/core/package.json +0 -42
  645. package/node_modules/@pi-harness/core/profiles/default/cordis.yml +0 -122
  646. package/node_modules/@pi-harness/core/profiles/development/cordis.yml +0 -47
  647. package/packages/client-web/LICENSE +0 -9
  648. package/packages/client-web/dist/agent-teams-view.d.ts +0 -70
  649. package/packages/client-web/dist/agent-teams-view.d.ts.map +0 -1
  650. package/packages/client-web/dist/agent-teams-view.js +0 -159
  651. package/packages/client-web/dist/agent-teams-view.js.map +0 -1
  652. package/packages/client-web/dist/annotation-ui.d.ts +0 -11
  653. package/packages/client-web/dist/annotation-ui.d.ts.map +0 -1
  654. package/packages/client-web/dist/annotation-ui.js +0 -24
  655. package/packages/client-web/dist/annotation-ui.js.map +0 -1
  656. package/packages/client-web/dist/at-file-view.d.ts +0 -10
  657. package/packages/client-web/dist/at-file-view.d.ts.map +0 -1
  658. package/packages/client-web/dist/at-file-view.js +0 -65
  659. package/packages/client-web/dist/at-file-view.js.map +0 -1
  660. package/packages/client-web/dist/browser-fetch-view.d.ts +0 -22
  661. package/packages/client-web/dist/browser-fetch-view.d.ts.map +0 -1
  662. package/packages/client-web/dist/browser-fetch-view.js +0 -101
  663. package/packages/client-web/dist/browser-fetch-view.js.map +0 -1
  664. package/packages/client-web/dist/browser-session-view.d.ts +0 -39
  665. package/packages/client-web/dist/browser-session-view.d.ts.map +0 -1
  666. package/packages/client-web/dist/browser-session-view.js +0 -211
  667. package/packages/client-web/dist/browser-session-view.js.map +0 -1
  668. package/packages/client-web/dist/cleaner-view.d.ts +0 -29
  669. package/packages/client-web/dist/cleaner-view.d.ts.map +0 -1
  670. package/packages/client-web/dist/cleaner-view.js +0 -191
  671. package/packages/client-web/dist/cleaner-view.js.map +0 -1
  672. package/packages/client-web/dist/context-doctor-view.d.ts +0 -35
  673. package/packages/client-web/dist/context-doctor-view.d.ts.map +0 -1
  674. package/packages/client-web/dist/context-doctor-view.js +0 -129
  675. package/packages/client-web/dist/context-doctor-view.js.map +0 -1
  676. package/packages/client-web/dist/context-insights-view.d.ts +0 -31
  677. package/packages/client-web/dist/context-insights-view.d.ts.map +0 -1
  678. package/packages/client-web/dist/context-insights-view.js +0 -90
  679. package/packages/client-web/dist/context-insights-view.js.map +0 -1
  680. package/packages/client-web/dist/control-room.d.ts +0 -270
  681. package/packages/client-web/dist/control-room.d.ts.map +0 -1
  682. package/packages/client-web/dist/control-room.js +0 -157
  683. package/packages/client-web/dist/control-room.js.map +0 -1
  684. package/packages/client-web/dist/cost-meter-view.d.ts +0 -16
  685. package/packages/client-web/dist/cost-meter-view.d.ts.map +0 -1
  686. package/packages/client-web/dist/cost-meter-view.js +0 -43
  687. package/packages/client-web/dist/cost-meter-view.js.map +0 -1
  688. package/packages/client-web/dist/dependency-checker-view.d.ts +0 -24
  689. package/packages/client-web/dist/dependency-checker-view.d.ts.map +0 -1
  690. package/packages/client-web/dist/dependency-checker-view.js +0 -195
  691. package/packages/client-web/dist/dependency-checker-view.js.map +0 -1
  692. package/packages/client-web/dist/design-contract.d.ts +0 -85
  693. package/packages/client-web/dist/design-contract.d.ts.map +0 -1
  694. package/packages/client-web/dist/design-contract.js +0 -258
  695. package/packages/client-web/dist/design-contract.js.map +0 -1
  696. package/packages/client-web/dist/docker-sandbox-view.d.ts +0 -28
  697. package/packages/client-web/dist/docker-sandbox-view.d.ts.map +0 -1
  698. package/packages/client-web/dist/docker-sandbox-view.js +0 -152
  699. package/packages/client-web/dist/docker-sandbox-view.js.map +0 -1
  700. package/packages/client-web/dist/fail-logger-view.d.ts +0 -16
  701. package/packages/client-web/dist/fail-logger-view.d.ts.map +0 -1
  702. package/packages/client-web/dist/fail-logger-view.js +0 -97
  703. package/packages/client-web/dist/fail-logger-view.js.map +0 -1
  704. package/packages/client-web/dist/genui-view.d.ts +0 -28
  705. package/packages/client-web/dist/genui-view.d.ts.map +0 -1
  706. package/packages/client-web/dist/genui-view.js +0 -62
  707. package/packages/client-web/dist/genui-view.js.map +0 -1
  708. package/packages/client-web/dist/git-time-capsule-view.d.ts +0 -31
  709. package/packages/client-web/dist/git-time-capsule-view.d.ts.map +0 -1
  710. package/packages/client-web/dist/git-time-capsule-view.js +0 -203
  711. package/packages/client-web/dist/git-time-capsule-view.js.map +0 -1
  712. package/packages/client-web/dist/graph-memory-view.d.ts +0 -39
  713. package/packages/client-web/dist/graph-memory-view.d.ts.map +0 -1
  714. package/packages/client-web/dist/graph-memory-view.js +0 -82
  715. package/packages/client-web/dist/graph-memory-view.js.map +0 -1
  716. package/packages/client-web/dist/i18n-pair-view.d.ts +0 -32
  717. package/packages/client-web/dist/i18n-pair-view.d.ts.map +0 -1
  718. package/packages/client-web/dist/i18n-pair-view.js +0 -182
  719. package/packages/client-web/dist/i18n-pair-view.js.map +0 -1
  720. package/packages/client-web/dist/index.d.ts +0 -20
  721. package/packages/client-web/dist/index.d.ts.map +0 -1
  722. package/packages/client-web/dist/index.js +0 -27
  723. package/packages/client-web/dist/index.js.map +0 -1
  724. package/packages/client-web/dist/markdown.d.ts +0 -5
  725. package/packages/client-web/dist/markdown.d.ts.map +0 -1
  726. package/packages/client-web/dist/markdown.js +0 -20
  727. package/packages/client-web/dist/markdown.js.map +0 -1
  728. package/packages/client-web/dist/marketplace-catalog.d.ts +0 -3
  729. package/packages/client-web/dist/marketplace-catalog.d.ts.map +0 -1
  730. package/packages/client-web/dist/marketplace-catalog.js +0 -10
  731. package/packages/client-web/dist/marketplace-catalog.js.map +0 -1
  732. package/packages/client-web/dist/marketplace-navigation.d.ts +0 -19
  733. package/packages/client-web/dist/marketplace-navigation.d.ts.map +0 -1
  734. package/packages/client-web/dist/marketplace-navigation.js +0 -31
  735. package/packages/client-web/dist/marketplace-navigation.js.map +0 -1
  736. package/packages/client-web/dist/mcp-client-view.d.ts +0 -58
  737. package/packages/client-web/dist/mcp-client-view.d.ts.map +0 -1
  738. package/packages/client-web/dist/mcp-client-view.js +0 -121
  739. package/packages/client-web/dist/mcp-client-view.js.map +0 -1
  740. package/packages/client-web/dist/message-content.d.ts +0 -9
  741. package/packages/client-web/dist/message-content.d.ts.map +0 -1
  742. package/packages/client-web/dist/message-content.js +0 -54
  743. package/packages/client-web/dist/message-content.js.map +0 -1
  744. package/packages/client-web/dist/modlens-view.d.ts +0 -43
  745. package/packages/client-web/dist/modlens-view.d.ts.map +0 -1
  746. package/packages/client-web/dist/modlens-view.js +0 -176
  747. package/packages/client-web/dist/modlens-view.js.map +0 -1
  748. package/packages/client-web/dist/openpets-view.d.ts +0 -26
  749. package/packages/client-web/dist/openpets-view.d.ts.map +0 -1
  750. package/packages/client-web/dist/openpets-view.js +0 -62
  751. package/packages/client-web/dist/openpets-view.js.map +0 -1
  752. package/packages/client-web/dist/panel-safe.d.ts +0 -5
  753. package/packages/client-web/dist/panel-safe.d.ts.map +0 -1
  754. package/packages/client-web/dist/panel-safe.js +0 -58
  755. package/packages/client-web/dist/panel-safe.js.map +0 -1
  756. package/packages/client-web/dist/plugin-card.d.ts +0 -8
  757. package/packages/client-web/dist/plugin-card.d.ts.map +0 -1
  758. package/packages/client-web/dist/plugin-card.js +0 -15
  759. package/packages/client-web/dist/plugin-card.js.map +0 -1
  760. package/packages/client-web/dist/plugin-dev-view.d.ts +0 -15
  761. package/packages/client-web/dist/plugin-dev-view.d.ts.map +0 -1
  762. package/packages/client-web/dist/plugin-dev-view.js +0 -33
  763. package/packages/client-web/dist/plugin-dev-view.js.map +0 -1
  764. package/packages/client-web/dist/plugin-navigation.d.ts +0 -3
  765. package/packages/client-web/dist/plugin-navigation.d.ts.map +0 -1
  766. package/packages/client-web/dist/plugin-navigation.js +0 -10
  767. package/packages/client-web/dist/plugin-navigation.js.map +0 -1
  768. package/packages/client-web/dist/plugin-search.d.ts +0 -2
  769. package/packages/client-web/dist/plugin-search.d.ts.map +0 -1
  770. package/packages/client-web/dist/plugin-search.js +0 -7
  771. package/packages/client-web/dist/plugin-search.js.map +0 -1
  772. package/packages/client-web/dist/plugin-stars-view.d.ts +0 -40
  773. package/packages/client-web/dist/plugin-stars-view.d.ts.map +0 -1
  774. package/packages/client-web/dist/plugin-stars-view.js +0 -216
  775. package/packages/client-web/dist/plugin-stars-view.js.map +0 -1
  776. package/packages/client-web/dist/prompt-completion.d.ts +0 -13
  777. package/packages/client-web/dist/prompt-completion.d.ts.map +0 -1
  778. package/packages/client-web/dist/prompt-completion.js +0 -17
  779. package/packages/client-web/dist/prompt-completion.js.map +0 -1
  780. package/packages/client-web/dist/react-room.d.ts +0 -11
  781. package/packages/client-web/dist/react-room.d.ts.map +0 -1
  782. package/packages/client-web/dist/react-room.js +0 -2844
  783. package/packages/client-web/dist/react-room.js.map +0 -1
  784. package/packages/client-web/dist/readme-gen-view.d.ts +0 -30
  785. package/packages/client-web/dist/readme-gen-view.d.ts.map +0 -1
  786. package/packages/client-web/dist/readme-gen-view.js +0 -134
  787. package/packages/client-web/dist/readme-gen-view.js.map +0 -1
  788. package/packages/client-web/dist/recall-unread-view.d.ts +0 -46
  789. package/packages/client-web/dist/recall-unread-view.d.ts.map +0 -1
  790. package/packages/client-web/dist/recall-unread-view.js +0 -104
  791. package/packages/client-web/dist/recall-unread-view.js.map +0 -1
  792. package/packages/client-web/dist/runtime-events.d.ts +0 -4
  793. package/packages/client-web/dist/runtime-events.d.ts.map +0 -1
  794. package/packages/client-web/dist/runtime-events.js +0 -29
  795. package/packages/client-web/dist/runtime-events.js.map +0 -1
  796. package/packages/client-web/dist/session-bridge-view.d.ts +0 -50
  797. package/packages/client-web/dist/session-bridge-view.d.ts.map +0 -1
  798. package/packages/client-web/dist/session-bridge-view.js +0 -113
  799. package/packages/client-web/dist/session-bridge-view.js.map +0 -1
  800. package/packages/client-web/dist/session-insights-view.d.ts +0 -40
  801. package/packages/client-web/dist/session-insights-view.d.ts.map +0 -1
  802. package/packages/client-web/dist/session-insights-view.js +0 -157
  803. package/packages/client-web/dist/session-insights-view.js.map +0 -1
  804. package/packages/client-web/dist/skill-guard-view.d.ts +0 -47
  805. package/packages/client-web/dist/skill-guard-view.d.ts.map +0 -1
  806. package/packages/client-web/dist/skill-guard-view.js +0 -93
  807. package/packages/client-web/dist/skill-guard-view.js.map +0 -1
  808. package/packages/client-web/dist/sql-lens-view.d.ts +0 -37
  809. package/packages/client-web/dist/sql-lens-view.d.ts.map +0 -1
  810. package/packages/client-web/dist/sql-lens-view.js +0 -235
  811. package/packages/client-web/dist/sql-lens-view.js.map +0 -1
  812. package/packages/client-web/dist/test-harness-view.d.ts +0 -24
  813. package/packages/client-web/dist/test-harness-view.d.ts.map +0 -1
  814. package/packages/client-web/dist/test-harness-view.js +0 -149
  815. package/packages/client-web/dist/test-harness-view.js.map +0 -1
  816. package/packages/client-web/dist/token-guard-view.d.ts +0 -19
  817. package/packages/client-web/dist/token-guard-view.d.ts.map +0 -1
  818. package/packages/client-web/dist/token-guard-view.js +0 -56
  819. package/packages/client-web/dist/token-guard-view.js.map +0 -1
  820. package/packages/client-web/dist/turn-rewind-view.d.ts +0 -41
  821. package/packages/client-web/dist/turn-rewind-view.d.ts.map +0 -1
  822. package/packages/client-web/dist/turn-rewind-view.js +0 -117
  823. package/packages/client-web/dist/turn-rewind-view.js.map +0 -1
  824. package/packages/client-web/dist/vision-toolkit-view.d.ts +0 -66
  825. package/packages/client-web/dist/vision-toolkit-view.d.ts.map +0 -1
  826. package/packages/client-web/dist/vision-toolkit-view.js +0 -238
  827. package/packages/client-web/dist/vision-toolkit-view.js.map +0 -1
  828. package/packages/client-web/dist/yaml-validator-view.d.ts +0 -52
  829. package/packages/client-web/dist/yaml-validator-view.d.ts.map +0 -1
  830. package/packages/client-web/dist/yaml-validator-view.js +0 -96
  831. package/packages/client-web/dist/yaml-validator-view.js.map +0 -1
  832. package/packages/client-web/package.json +0 -42
  833. package/packages/client-web/src/agent-teams-view.ts +0 -189
  834. package/packages/client-web/src/annotation-ui.ts +0 -29
  835. package/packages/client-web/src/at-file-view.ts +0 -69
  836. package/packages/client-web/src/browser-fetch-view.ts +0 -114
  837. package/packages/client-web/src/browser-session-view.ts +0 -232
  838. package/packages/client-web/src/cleaner-view.ts +0 -207
  839. package/packages/client-web/src/context-doctor-view.ts +0 -140
  840. package/packages/client-web/src/context-insights-view.ts +0 -125
  841. package/packages/client-web/src/control-room.ts +0 -359
  842. package/packages/client-web/src/cost-meter-view.ts +0 -63
  843. package/packages/client-web/src/dependency-checker-view.ts +0 -215
  844. package/packages/client-web/src/design-contract.ts +0 -334
  845. package/packages/client-web/src/docker-sandbox-view.ts +0 -177
  846. package/packages/client-web/src/fail-logger-view.ts +0 -112
  847. package/packages/client-web/src/genui-view.ts +0 -88
  848. package/packages/client-web/src/git-time-capsule-view.ts +0 -215
  849. package/packages/client-web/src/graph-memory-view.ts +0 -91
  850. package/packages/client-web/src/i18n-pair-view.ts +0 -194
  851. package/packages/client-web/src/index.ts +0 -34
  852. package/packages/client-web/src/markdown.tsx +0 -22
  853. package/packages/client-web/src/marketplace-catalog.ts +0 -10
  854. package/packages/client-web/src/marketplace-navigation.ts +0 -46
  855. package/packages/client-web/src/mcp-client-view.ts +0 -122
  856. package/packages/client-web/src/message-content.ts +0 -51
  857. package/packages/client-web/src/modlens-view.ts +0 -210
  858. package/packages/client-web/src/openpets-view.ts +0 -67
  859. package/packages/client-web/src/panel-safe.ts +0 -47
  860. package/packages/client-web/src/plugin-card.ts +0 -22
  861. package/packages/client-web/src/plugin-dev-view.ts +0 -39
  862. package/packages/client-web/src/plugin-navigation.ts +0 -9
  863. package/packages/client-web/src/plugin-search.ts +0 -5
  864. package/packages/client-web/src/plugin-stars-view.ts +0 -257
  865. package/packages/client-web/src/prompt-completion.ts +0 -24
  866. package/packages/client-web/src/react-room.tsx +0 -8581
  867. package/packages/client-web/src/readme-gen-view.ts +0 -145
  868. package/packages/client-web/src/recall-unread-view.ts +0 -105
  869. package/packages/client-web/src/runtime-events.ts +0 -29
  870. package/packages/client-web/src/session-bridge-view.ts +0 -118
  871. package/packages/client-web/src/session-insights-view.ts +0 -205
  872. package/packages/client-web/src/skill-guard-view.ts +0 -94
  873. package/packages/client-web/src/sql-lens-view.ts +0 -247
  874. package/packages/client-web/src/test-harness-view.ts +0 -170
  875. package/packages/client-web/src/token-guard-view.ts +0 -75
  876. package/packages/client-web/src/turn-rewind-view.ts +0 -120
  877. package/packages/client-web/src/vision-toolkit-view.ts +0 -280
  878. package/packages/client-web/src/yaml-validator-view.ts +0 -102
  879. package/packages/client-web/test/agent-teams-view.test.ts +0 -198
  880. package/packages/client-web/test/annotation-ui.test.ts +0 -21
  881. package/packages/client-web/test/at-file-panel.test.ts +0 -76
  882. package/packages/client-web/test/browser-fetch-panel.test.ts +0 -44
  883. package/packages/client-web/test/browser-fetch-view.test.ts +0 -89
  884. package/packages/client-web/test/browser-session-panel.test.ts +0 -55
  885. package/packages/client-web/test/browser-session-view.test.ts +0 -115
  886. package/packages/client-web/test/cleaner-panel.test.ts +0 -66
  887. package/packages/client-web/test/cleaner-view.test.ts +0 -143
  888. package/packages/client-web/test/context-doctor-view.test.ts +0 -169
  889. package/packages/client-web/test/context-insights-view.test.ts +0 -120
  890. package/packages/client-web/test/cost-meter-view.test.ts +0 -53
  891. package/packages/client-web/test/dependency-checker-panel.test.ts +0 -51
  892. package/packages/client-web/test/dependency-checker-view.test.ts +0 -266
  893. package/packages/client-web/test/design-contract.test.ts +0 -69
  894. package/packages/client-web/test/docker-sandbox-panel.test.ts +0 -44
  895. package/packages/client-web/test/docker-sandbox-view.test.ts +0 -127
  896. package/packages/client-web/test/fail-logger-view.test.ts +0 -155
  897. package/packages/client-web/test/genui-view.test.ts +0 -55
  898. package/packages/client-web/test/git-time-capsule-view.test.ts +0 -252
  899. package/packages/client-web/test/graph-memory-view.test.ts +0 -67
  900. package/packages/client-web/test/i18n-pair-panel.test.ts +0 -72
  901. package/packages/client-web/test/i18n-pair-view.test.ts +0 -164
  902. package/packages/client-web/test/marketplace-catalog.test.ts +0 -52
  903. package/packages/client-web/test/mcp-client-view.test.ts +0 -106
  904. package/packages/client-web/test/message-content.test.ts +0 -43
  905. package/packages/client-web/test/modlens-view.test.ts +0 -198
  906. package/packages/client-web/test/openpets-view.test.ts +0 -57
  907. package/packages/client-web/test/plugin-card.test.ts +0 -46
  908. package/packages/client-web/test/plugin-dev-view.test.ts +0 -63
  909. package/packages/client-web/test/plugin-navigation.test.ts +0 -14
  910. package/packages/client-web/test/plugin-search.test.ts +0 -22
  911. package/packages/client-web/test/plugin-stars-panel.test.ts +0 -44
  912. package/packages/client-web/test/plugin-stars-view.test.ts +0 -107
  913. package/packages/client-web/test/prompt-completion.test.ts +0 -21
  914. package/packages/client-web/test/readme-gen-panel.test.ts +0 -81
  915. package/packages/client-web/test/readme-gen-view.test.ts +0 -91
  916. package/packages/client-web/test/recall-unread-view.test.ts +0 -153
  917. package/packages/client-web/test/runtime-events.test.ts +0 -28
  918. package/packages/client-web/test/session-bridge-view.test.ts +0 -102
  919. package/packages/client-web/test/session-insights-panel.test.ts +0 -85
  920. package/packages/client-web/test/session-insights-view.test.ts +0 -152
  921. package/packages/client-web/test/skill-guard-view.test.ts +0 -138
  922. package/packages/client-web/test/sql-lens-panel.test.ts +0 -52
  923. package/packages/client-web/test/sql-lens-view.test.ts +0 -134
  924. package/packages/client-web/test/test-harness-panel.test.ts +0 -228
  925. package/packages/client-web/test/token-guard-view.test.ts +0 -93
  926. package/packages/client-web/test/turn-rewind-view.test.ts +0 -159
  927. package/packages/client-web/test/vision-toolkit-view.test.ts +0 -152
  928. package/packages/client-web/test/yaml-validator-view.test.ts +0 -100
  929. package/packages/client-web/tsconfig.build.json +0 -13
  930. package/packages/client-web/tsconfig.json +0 -11
  931. package/packages/core/LICENSE +0 -9
  932. package/packages/core/dist/atomic-write.d.ts +0 -8
  933. package/packages/core/dist/atomic-write.d.ts.map +0 -1
  934. package/packages/core/dist/atomic-write.js +0 -40
  935. package/packages/core/dist/atomic-write.js.map +0 -1
  936. package/packages/core/dist/boot.d.ts +0 -13
  937. package/packages/core/dist/boot.d.ts.map +0 -1
  938. package/packages/core/dist/boot.js +0 -257
  939. package/packages/core/dist/boot.js.map +0 -1
  940. package/packages/core/dist/bounded-file.d.ts +0 -7
  941. package/packages/core/dist/bounded-file.d.ts.map +0 -1
  942. package/packages/core/dist/bounded-file.js +0 -50
  943. package/packages/core/dist/bounded-file.js.map +0 -1
  944. package/packages/core/dist/config.d.ts +0 -4
  945. package/packages/core/dist/config.d.ts.map +0 -1
  946. package/packages/core/dist/config.js +0 -29
  947. package/packages/core/dist/config.js.map +0 -1
  948. package/packages/core/dist/context.d.ts +0 -3
  949. package/packages/core/dist/context.d.ts.map +0 -1
  950. package/packages/core/dist/context.js +0 -2
  951. package/packages/core/dist/context.js.map +0 -1
  952. package/packages/core/dist/cordis-timer.d.ts +0 -15
  953. package/packages/core/dist/cordis-timer.d.ts.map +0 -1
  954. package/packages/core/dist/cordis-timer.js +0 -99
  955. package/packages/core/dist/cordis-timer.js.map +0 -1
  956. package/packages/core/dist/http.d.ts +0 -8
  957. package/packages/core/dist/http.d.ts.map +0 -1
  958. package/packages/core/dist/http.js +0 -27
  959. package/packages/core/dist/http.js.map +0 -1
  960. package/packages/core/dist/index.d.ts +0 -9
  961. package/packages/core/dist/index.d.ts.map +0 -1
  962. package/packages/core/dist/index.js +0 -8
  963. package/packages/core/dist/index.js.map +0 -1
  964. package/packages/core/dist/plugins/agent-teams.d.ts +0 -21
  965. package/packages/core/dist/plugins/agent-teams.d.ts.map +0 -1
  966. package/packages/core/dist/plugins/agent-teams.js +0 -1179
  967. package/packages/core/dist/plugins/agent-teams.js.map +0 -1
  968. package/packages/core/dist/plugins/anchored-standard.d.ts +0 -15
  969. package/packages/core/dist/plugins/anchored-standard.d.ts.map +0 -1
  970. package/packages/core/dist/plugins/anchored-standard.js +0 -112
  971. package/packages/core/dist/plugins/anchored-standard.js.map +0 -1
  972. package/packages/core/dist/plugins/annotation.d.ts +0 -19
  973. package/packages/core/dist/plugins/annotation.d.ts.map +0 -1
  974. package/packages/core/dist/plugins/annotation.js +0 -112
  975. package/packages/core/dist/plugins/annotation.js.map +0 -1
  976. package/packages/core/dist/plugins/archify.d.ts +0 -24
  977. package/packages/core/dist/plugins/archify.d.ts.map +0 -1
  978. package/packages/core/dist/plugins/archify.js +0 -145
  979. package/packages/core/dist/plugins/archify.js.map +0 -1
  980. package/packages/core/dist/plugins/at-file.d.ts +0 -12
  981. package/packages/core/dist/plugins/at-file.d.ts.map +0 -1
  982. package/packages/core/dist/plugins/at-file.js +0 -143
  983. package/packages/core/dist/plugins/at-file.js.map +0 -1
  984. package/packages/core/dist/plugins/auto-mode.d.ts +0 -15
  985. package/packages/core/dist/plugins/auto-mode.d.ts.map +0 -1
  986. package/packages/core/dist/plugins/auto-mode.js +0 -183
  987. package/packages/core/dist/plugins/auto-mode.js.map +0 -1
  988. package/packages/core/dist/plugins/better-sidebar.d.ts +0 -38
  989. package/packages/core/dist/plugins/better-sidebar.d.ts.map +0 -1
  990. package/packages/core/dist/plugins/better-sidebar.js +0 -99
  991. package/packages/core/dist/plugins/better-sidebar.js.map +0 -1
  992. package/packages/core/dist/plugins/browser-fetch.d.ts +0 -15
  993. package/packages/core/dist/plugins/browser-fetch.d.ts.map +0 -1
  994. package/packages/core/dist/plugins/browser-fetch.js +0 -359
  995. package/packages/core/dist/plugins/browser-fetch.js.map +0 -1
  996. package/packages/core/dist/plugins/browser-session.d.ts +0 -14
  997. package/packages/core/dist/plugins/browser-session.d.ts.map +0 -1
  998. package/packages/core/dist/plugins/browser-session.js +0 -604
  999. package/packages/core/dist/plugins/browser-session.js.map +0 -1
  1000. package/packages/core/dist/plugins/canvas-draw.d.ts +0 -9
  1001. package/packages/core/dist/plugins/canvas-draw.d.ts.map +0 -1
  1002. package/packages/core/dist/plugins/canvas-draw.js +0 -140
  1003. package/packages/core/dist/plugins/canvas-draw.js.map +0 -1
  1004. package/packages/core/dist/plugins/change-verifier.d.ts +0 -9
  1005. package/packages/core/dist/plugins/change-verifier.d.ts.map +0 -1
  1006. package/packages/core/dist/plugins/change-verifier.js +0 -88
  1007. package/packages/core/dist/plugins/change-verifier.js.map +0 -1
  1008. package/packages/core/dist/plugins/cleaner.d.ts +0 -12
  1009. package/packages/core/dist/plugins/cleaner.d.ts.map +0 -1
  1010. package/packages/core/dist/plugins/cleaner.js +0 -353
  1011. package/packages/core/dist/plugins/cleaner.js.map +0 -1
  1012. package/packages/core/dist/plugins/cli-notifier.d.ts +0 -16
  1013. package/packages/core/dist/plugins/cli-notifier.d.ts.map +0 -1
  1014. package/packages/core/dist/plugins/cli-notifier.js +0 -167
  1015. package/packages/core/dist/plugins/cli-notifier.js.map +0 -1
  1016. package/packages/core/dist/plugins/code2skill.d.ts +0 -9
  1017. package/packages/core/dist/plugins/code2skill.d.ts.map +0 -1
  1018. package/packages/core/dist/plugins/code2skill.js +0 -235
  1019. package/packages/core/dist/plugins/code2skill.js.map +0 -1
  1020. package/packages/core/dist/plugins/colleague-skill.d.ts +0 -28
  1021. package/packages/core/dist/plugins/colleague-skill.d.ts.map +0 -1
  1022. package/packages/core/dist/plugins/colleague-skill.js +0 -129
  1023. package/packages/core/dist/plugins/colleague-skill.js.map +0 -1
  1024. package/packages/core/dist/plugins/context-doctor.d.ts +0 -35
  1025. package/packages/core/dist/plugins/context-doctor.d.ts.map +0 -1
  1026. package/packages/core/dist/plugins/context-doctor.js +0 -459
  1027. package/packages/core/dist/plugins/context-doctor.js.map +0 -1
  1028. package/packages/core/dist/plugins/context.d.ts +0 -9
  1029. package/packages/core/dist/plugins/context.d.ts.map +0 -1
  1030. package/packages/core/dist/plugins/context.js +0 -214
  1031. package/packages/core/dist/plugins/context.js.map +0 -1
  1032. package/packages/core/dist/plugins/cost-meter.d.ts +0 -36
  1033. package/packages/core/dist/plugins/cost-meter.d.ts.map +0 -1
  1034. package/packages/core/dist/plugins/cost-meter.js +0 -430
  1035. package/packages/core/dist/plugins/cost-meter.js.map +0 -1
  1036. package/packages/core/dist/plugins/dependency-checker.d.ts +0 -36
  1037. package/packages/core/dist/plugins/dependency-checker.d.ts.map +0 -1
  1038. package/packages/core/dist/plugins/dependency-checker.js +0 -570
  1039. package/packages/core/dist/plugins/dependency-checker.js.map +0 -1
  1040. package/packages/core/dist/plugins/docker-sandbox.d.ts +0 -9
  1041. package/packages/core/dist/plugins/docker-sandbox.d.ts.map +0 -1
  1042. package/packages/core/dist/plugins/docker-sandbox.js +0 -344
  1043. package/packages/core/dist/plugins/docker-sandbox.js.map +0 -1
  1044. package/packages/core/dist/plugins/fail-logger.d.ts +0 -9
  1045. package/packages/core/dist/plugins/fail-logger.d.ts.map +0 -1
  1046. package/packages/core/dist/plugins/fail-logger.js +0 -218
  1047. package/packages/core/dist/plugins/fail-logger.js.map +0 -1
  1048. package/packages/core/dist/plugins/genui.d.ts +0 -9
  1049. package/packages/core/dist/plugins/genui.d.ts.map +0 -1
  1050. package/packages/core/dist/plugins/genui.js +0 -144
  1051. package/packages/core/dist/plugins/genui.js.map +0 -1
  1052. package/packages/core/dist/plugins/git-time-capsule.d.ts +0 -15
  1053. package/packages/core/dist/plugins/git-time-capsule.d.ts.map +0 -1
  1054. package/packages/core/dist/plugins/git-time-capsule.js +0 -436
  1055. package/packages/core/dist/plugins/git-time-capsule.js.map +0 -1
  1056. package/packages/core/dist/plugins/graph-memory.d.ts +0 -16
  1057. package/packages/core/dist/plugins/graph-memory.d.ts.map +0 -1
  1058. package/packages/core/dist/plugins/graph-memory.js +0 -669
  1059. package/packages/core/dist/plugins/graph-memory.js.map +0 -1
  1060. package/packages/core/dist/plugins/history-compressor.d.ts +0 -15
  1061. package/packages/core/dist/plugins/history-compressor.d.ts.map +0 -1
  1062. package/packages/core/dist/plugins/history-compressor.js +0 -99
  1063. package/packages/core/dist/plugins/history-compressor.js.map +0 -1
  1064. package/packages/core/dist/plugins/hol-guard.d.ts +0 -29
  1065. package/packages/core/dist/plugins/hol-guard.d.ts.map +0 -1
  1066. package/packages/core/dist/plugins/hol-guard.js +0 -159
  1067. package/packages/core/dist/plugins/hol-guard.js.map +0 -1
  1068. package/packages/core/dist/plugins/i18n-pair.d.ts +0 -12
  1069. package/packages/core/dist/plugins/i18n-pair.d.ts.map +0 -1
  1070. package/packages/core/dist/plugins/i18n-pair.js +0 -332
  1071. package/packages/core/dist/plugins/i18n-pair.js.map +0 -1
  1072. package/packages/core/dist/plugins/image-compressor.d.ts +0 -15
  1073. package/packages/core/dist/plugins/image-compressor.d.ts.map +0 -1
  1074. package/packages/core/dist/plugins/image-compressor.js +0 -223
  1075. package/packages/core/dist/plugins/image-compressor.js.map +0 -1
  1076. package/packages/core/dist/plugins/llm-verifier.d.ts +0 -42
  1077. package/packages/core/dist/plugins/llm-verifier.d.ts.map +0 -1
  1078. package/packages/core/dist/plugins/llm-verifier.js +0 -138
  1079. package/packages/core/dist/plugins/llm-verifier.js.map +0 -1
  1080. package/packages/core/dist/plugins/mcp-client.d.ts +0 -19
  1081. package/packages/core/dist/plugins/mcp-client.d.ts.map +0 -1
  1082. package/packages/core/dist/plugins/mcp-client.js +0 -1288
  1083. package/packages/core/dist/plugins/mcp-client.js.map +0 -1
  1084. package/packages/core/dist/plugins/mcp-panel.d.ts +0 -14
  1085. package/packages/core/dist/plugins/mcp-panel.d.ts.map +0 -1
  1086. package/packages/core/dist/plugins/mcp-panel.js +0 -194
  1087. package/packages/core/dist/plugins/mcp-panel.js.map +0 -1
  1088. package/packages/core/dist/plugins/memory.d.ts +0 -15
  1089. package/packages/core/dist/plugins/memory.d.ts.map +0 -1
  1090. package/packages/core/dist/plugins/memory.js +0 -394
  1091. package/packages/core/dist/plugins/memory.js.map +0 -1
  1092. package/packages/core/dist/plugins/mirage-bridge.d.ts +0 -23
  1093. package/packages/core/dist/plugins/mirage-bridge.d.ts.map +0 -1
  1094. package/packages/core/dist/plugins/mirage-bridge.js +0 -159
  1095. package/packages/core/dist/plugins/mirage-bridge.js.map +0 -1
  1096. package/packages/core/dist/plugins/mock-server.d.ts +0 -22
  1097. package/packages/core/dist/plugins/mock-server.d.ts.map +0 -1
  1098. package/packages/core/dist/plugins/mock-server.js +0 -180
  1099. package/packages/core/dist/plugins/mock-server.js.map +0 -1
  1100. package/packages/core/dist/plugins/model.d.ts +0 -11
  1101. package/packages/core/dist/plugins/model.d.ts.map +0 -1
  1102. package/packages/core/dist/plugins/model.js +0 -17
  1103. package/packages/core/dist/plugins/model.js.map +0 -1
  1104. package/packages/core/dist/plugins/models.d.ts +0 -16
  1105. package/packages/core/dist/plugins/models.d.ts.map +0 -1
  1106. package/packages/core/dist/plugins/models.js +0 -35
  1107. package/packages/core/dist/plugins/models.js.map +0 -1
  1108. package/packages/core/dist/plugins/modlens.d.ts +0 -15
  1109. package/packages/core/dist/plugins/modlens.d.ts.map +0 -1
  1110. package/packages/core/dist/plugins/modlens.js +0 -470
  1111. package/packages/core/dist/plugins/modlens.js.map +0 -1
  1112. package/packages/core/dist/plugins/module-search.d.ts +0 -28
  1113. package/packages/core/dist/plugins/module-search.d.ts.map +0 -1
  1114. package/packages/core/dist/plugins/module-search.js +0 -193
  1115. package/packages/core/dist/plugins/module-search.js.map +0 -1
  1116. package/packages/core/dist/plugins/obsidian-sync.d.ts +0 -14
  1117. package/packages/core/dist/plugins/obsidian-sync.d.ts.map +0 -1
  1118. package/packages/core/dist/plugins/obsidian-sync.js +0 -88
  1119. package/packages/core/dist/plugins/obsidian-sync.js.map +0 -1
  1120. package/packages/core/dist/plugins/openpets.d.ts +0 -14
  1121. package/packages/core/dist/plugins/openpets.d.ts.map +0 -1
  1122. package/packages/core/dist/plugins/openpets.js +0 -258
  1123. package/packages/core/dist/plugins/openpets.js.map +0 -1
  1124. package/packages/core/dist/plugins/plan-execute.d.ts +0 -11
  1125. package/packages/core/dist/plugins/plan-execute.d.ts.map +0 -1
  1126. package/packages/core/dist/plugins/plan-execute.js +0 -91
  1127. package/packages/core/dist/plugins/plan-execute.js.map +0 -1
  1128. package/packages/core/dist/plugins/plugin-check.d.ts +0 -47
  1129. package/packages/core/dist/plugins/plugin-check.d.ts.map +0 -1
  1130. package/packages/core/dist/plugins/plugin-check.js +0 -298
  1131. package/packages/core/dist/plugins/plugin-check.js.map +0 -1
  1132. package/packages/core/dist/plugins/plugin-dev.d.ts +0 -9
  1133. package/packages/core/dist/plugins/plugin-dev.d.ts.map +0 -1
  1134. package/packages/core/dist/plugins/plugin-dev.js +0 -177
  1135. package/packages/core/dist/plugins/plugin-dev.js.map +0 -1
  1136. package/packages/core/dist/plugins/plugin-finder.d.ts +0 -17
  1137. package/packages/core/dist/plugins/plugin-finder.d.ts.map +0 -1
  1138. package/packages/core/dist/plugins/plugin-finder.js +0 -216
  1139. package/packages/core/dist/plugins/plugin-finder.js.map +0 -1
  1140. package/packages/core/dist/plugins/plugin-radar.d.ts +0 -33
  1141. package/packages/core/dist/plugins/plugin-radar.d.ts.map +0 -1
  1142. package/packages/core/dist/plugins/plugin-radar.js +0 -247
  1143. package/packages/core/dist/plugins/plugin-radar.js.map +0 -1
  1144. package/packages/core/dist/plugins/plugin-stars.d.ts +0 -45
  1145. package/packages/core/dist/plugins/plugin-stars.d.ts.map +0 -1
  1146. package/packages/core/dist/plugins/plugin-stars.js +0 -366
  1147. package/packages/core/dist/plugins/plugin-stars.js.map +0 -1
  1148. package/packages/core/dist/plugins/prompt-guard.d.ts +0 -9
  1149. package/packages/core/dist/plugins/prompt-guard.d.ts.map +0 -1
  1150. package/packages/core/dist/plugins/prompt-guard.js +0 -165
  1151. package/packages/core/dist/plugins/prompt-guard.js.map +0 -1
  1152. package/packages/core/dist/plugins/prompt-library.d.ts +0 -26
  1153. package/packages/core/dist/plugins/prompt-library.d.ts.map +0 -1
  1154. package/packages/core/dist/plugins/prompt-library.js +0 -145
  1155. package/packages/core/dist/plugins/prompt-library.js.map +0 -1
  1156. package/packages/core/dist/plugins/readme-gen.d.ts +0 -29
  1157. package/packages/core/dist/plugins/readme-gen.d.ts.map +0 -1
  1158. package/packages/core/dist/plugins/readme-gen.js +0 -580
  1159. package/packages/core/dist/plugins/readme-gen.js.map +0 -1
  1160. package/packages/core/dist/plugins/recall-unread.d.ts +0 -24
  1161. package/packages/core/dist/plugins/recall-unread.d.ts.map +0 -1
  1162. package/packages/core/dist/plugins/recall-unread.js +0 -467
  1163. package/packages/core/dist/plugins/recall-unread.js.map +0 -1
  1164. package/packages/core/dist/plugins/resources.d.ts +0 -19
  1165. package/packages/core/dist/plugins/resources.d.ts.map +0 -1
  1166. package/packages/core/dist/plugins/resources.js +0 -126
  1167. package/packages/core/dist/plugins/resources.js.map +0 -1
  1168. package/packages/core/dist/plugins/reverse-skill.d.ts +0 -23
  1169. package/packages/core/dist/plugins/reverse-skill.d.ts.map +0 -1
  1170. package/packages/core/dist/plugins/reverse-skill.js +0 -61
  1171. package/packages/core/dist/plugins/reverse-skill.js.map +0 -1
  1172. package/packages/core/dist/plugins/reviewer-bot.d.ts +0 -15
  1173. package/packages/core/dist/plugins/reviewer-bot.d.ts.map +0 -1
  1174. package/packages/core/dist/plugins/reviewer-bot.js +0 -152
  1175. package/packages/core/dist/plugins/reviewer-bot.js.map +0 -1
  1176. package/packages/core/dist/plugins/runtime-doctor.d.ts +0 -34
  1177. package/packages/core/dist/plugins/runtime-doctor.d.ts.map +0 -1
  1178. package/packages/core/dist/plugins/runtime-doctor.js +0 -117
  1179. package/packages/core/dist/plugins/runtime-doctor.js.map +0 -1
  1180. package/packages/core/dist/plugins/runtime.d.ts +0 -14
  1181. package/packages/core/dist/plugins/runtime.d.ts.map +0 -1
  1182. package/packages/core/dist/plugins/runtime.js +0 -159
  1183. package/packages/core/dist/plugins/runtime.js.map +0 -1
  1184. package/packages/core/dist/plugins/secure-audit.d.ts +0 -32
  1185. package/packages/core/dist/plugins/secure-audit.d.ts.map +0 -1
  1186. package/packages/core/dist/plugins/secure-audit.js +0 -139
  1187. package/packages/core/dist/plugins/secure-audit.js.map +0 -1
  1188. package/packages/core/dist/plugins/session-bookmarks.d.ts +0 -16
  1189. package/packages/core/dist/plugins/session-bookmarks.d.ts.map +0 -1
  1190. package/packages/core/dist/plugins/session-bookmarks.js +0 -90
  1191. package/packages/core/dist/plugins/session-bookmarks.js.map +0 -1
  1192. package/packages/core/dist/plugins/session-bridge.d.ts +0 -45
  1193. package/packages/core/dist/plugins/session-bridge.d.ts.map +0 -1
  1194. package/packages/core/dist/plugins/session-bridge.js +0 -578
  1195. package/packages/core/dist/plugins/session-bridge.js.map +0 -1
  1196. package/packages/core/dist/plugins/session-compare.d.ts +0 -34
  1197. package/packages/core/dist/plugins/session-compare.d.ts.map +0 -1
  1198. package/packages/core/dist/plugins/session-compare.js +0 -153
  1199. package/packages/core/dist/plugins/session-compare.js.map +0 -1
  1200. package/packages/core/dist/plugins/session-export.d.ts +0 -10
  1201. package/packages/core/dist/plugins/session-export.d.ts.map +0 -1
  1202. package/packages/core/dist/plugins/session-export.js +0 -93
  1203. package/packages/core/dist/plugins/session-export.js.map +0 -1
  1204. package/packages/core/dist/plugins/session-insights.d.ts +0 -44
  1205. package/packages/core/dist/plugins/session-insights.d.ts.map +0 -1
  1206. package/packages/core/dist/plugins/session-insights.js +0 -432
  1207. package/packages/core/dist/plugins/session-insights.js.map +0 -1
  1208. package/packages/core/dist/plugins/session-search.d.ts +0 -21
  1209. package/packages/core/dist/plugins/session-search.d.ts.map +0 -1
  1210. package/packages/core/dist/plugins/session-search.js +0 -125
  1211. package/packages/core/dist/plugins/session-search.js.map +0 -1
  1212. package/packages/core/dist/plugins/session.d.ts +0 -15
  1213. package/packages/core/dist/plugins/session.d.ts.map +0 -1
  1214. package/packages/core/dist/plugins/session.js +0 -29
  1215. package/packages/core/dist/plugins/session.js.map +0 -1
  1216. package/packages/core/dist/plugins/skill-catalog.d.ts +0 -27
  1217. package/packages/core/dist/plugins/skill-catalog.d.ts.map +0 -1
  1218. package/packages/core/dist/plugins/skill-catalog.js +0 -98
  1219. package/packages/core/dist/plugins/skill-catalog.js.map +0 -1
  1220. package/packages/core/dist/plugins/skill-guard.d.ts +0 -27
  1221. package/packages/core/dist/plugins/skill-guard.d.ts.map +0 -1
  1222. package/packages/core/dist/plugins/skill-guard.js +0 -319
  1223. package/packages/core/dist/plugins/skill-guard.js.map +0 -1
  1224. package/packages/core/dist/plugins/sql-lens-worker.d.ts +0 -2
  1225. package/packages/core/dist/plugins/sql-lens-worker.d.ts.map +0 -1
  1226. package/packages/core/dist/plugins/sql-lens-worker.js +0 -206
  1227. package/packages/core/dist/plugins/sql-lens-worker.js.map +0 -1
  1228. package/packages/core/dist/plugins/sql-lens.d.ts +0 -14
  1229. package/packages/core/dist/plugins/sql-lens.d.ts.map +0 -1
  1230. package/packages/core/dist/plugins/sql-lens.js +0 -318
  1231. package/packages/core/dist/plugins/sql-lens.js.map +0 -1
  1232. package/packages/core/dist/plugins/stdio.d.ts +0 -11
  1233. package/packages/core/dist/plugins/stdio.d.ts.map +0 -1
  1234. package/packages/core/dist/plugins/stdio.js +0 -80
  1235. package/packages/core/dist/plugins/stdio.js.map +0 -1
  1236. package/packages/core/dist/plugins/synapse.d.ts +0 -38
  1237. package/packages/core/dist/plugins/synapse.d.ts.map +0 -1
  1238. package/packages/core/dist/plugins/synapse.js +0 -101
  1239. package/packages/core/dist/plugins/synapse.js.map +0 -1
  1240. package/packages/core/dist/plugins/tab-manager.d.ts +0 -9
  1241. package/packages/core/dist/plugins/tab-manager.d.ts.map +0 -1
  1242. package/packages/core/dist/plugins/tab-manager.js +0 -240
  1243. package/packages/core/dist/plugins/tab-manager.js.map +0 -1
  1244. package/packages/core/dist/plugins/taskboard.d.ts +0 -15
  1245. package/packages/core/dist/plugins/taskboard.d.ts.map +0 -1
  1246. package/packages/core/dist/plugins/taskboard.js +0 -375
  1247. package/packages/core/dist/plugins/taskboard.js.map +0 -1
  1248. package/packages/core/dist/plugins/telemetry-blocker.d.ts +0 -11
  1249. package/packages/core/dist/plugins/telemetry-blocker.d.ts.map +0 -1
  1250. package/packages/core/dist/plugins/telemetry-blocker.js +0 -76
  1251. package/packages/core/dist/plugins/telemetry-blocker.js.map +0 -1
  1252. package/packages/core/dist/plugins/test-harness.d.ts +0 -14
  1253. package/packages/core/dist/plugins/test-harness.d.ts.map +0 -1
  1254. package/packages/core/dist/plugins/test-harness.js +0 -276
  1255. package/packages/core/dist/plugins/test-harness.js.map +0 -1
  1256. package/packages/core/dist/plugins/theme-studio.d.ts +0 -29
  1257. package/packages/core/dist/plugins/theme-studio.d.ts.map +0 -1
  1258. package/packages/core/dist/plugins/theme-studio.js +0 -143
  1259. package/packages/core/dist/plugins/theme-studio.js.map +0 -1
  1260. package/packages/core/dist/plugins/token-guard.d.ts +0 -15
  1261. package/packages/core/dist/plugins/token-guard.d.ts.map +0 -1
  1262. package/packages/core/dist/plugins/token-guard.js +0 -210
  1263. package/packages/core/dist/plugins/token-guard.js.map +0 -1
  1264. package/packages/core/dist/plugins/tools.d.ts +0 -13
  1265. package/packages/core/dist/plugins/tools.d.ts.map +0 -1
  1266. package/packages/core/dist/plugins/tools.js +0 -23
  1267. package/packages/core/dist/plugins/tools.js.map +0 -1
  1268. package/packages/core/dist/plugins/turn-rewind.d.ts +0 -36
  1269. package/packages/core/dist/plugins/turn-rewind.d.ts.map +0 -1
  1270. package/packages/core/dist/plugins/turn-rewind.js +0 -378
  1271. package/packages/core/dist/plugins/turn-rewind.js.map +0 -1
  1272. package/packages/core/dist/plugins/undo-savepoint.d.ts +0 -17
  1273. package/packages/core/dist/plugins/undo-savepoint.d.ts.map +0 -1
  1274. package/packages/core/dist/plugins/undo-savepoint.js +0 -353
  1275. package/packages/core/dist/plugins/undo-savepoint.js.map +0 -1
  1276. package/packages/core/dist/plugins/vision-toolkit.d.ts +0 -36
  1277. package/packages/core/dist/plugins/vision-toolkit.d.ts.map +0 -1
  1278. package/packages/core/dist/plugins/vision-toolkit.js +0 -468
  1279. package/packages/core/dist/plugins/vision-toolkit.js.map +0 -1
  1280. package/packages/core/dist/plugins/web-research.d.ts +0 -17
  1281. package/packages/core/dist/plugins/web-research.d.ts.map +0 -1
  1282. package/packages/core/dist/plugins/web-research.js +0 -284
  1283. package/packages/core/dist/plugins/web-research.js.map +0 -1
  1284. package/packages/core/dist/plugins/workspace-navigator.d.ts +0 -42
  1285. package/packages/core/dist/plugins/workspace-navigator.d.ts.map +0 -1
  1286. package/packages/core/dist/plugins/workspace-navigator.js +0 -168
  1287. package/packages/core/dist/plugins/workspace-navigator.js.map +0 -1
  1288. package/packages/core/dist/plugins/workspace-search.d.ts +0 -15
  1289. package/packages/core/dist/plugins/workspace-search.d.ts.map +0 -1
  1290. package/packages/core/dist/plugins/workspace-search.js +0 -167
  1291. package/packages/core/dist/plugins/workspace-search.js.map +0 -1
  1292. package/packages/core/dist/plugins/yaml-validator.d.ts +0 -9
  1293. package/packages/core/dist/plugins/yaml-validator.d.ts.map +0 -1
  1294. package/packages/core/dist/plugins/yaml-validator.js +0 -203
  1295. package/packages/core/dist/plugins/yaml-validator.js.map +0 -1
  1296. package/packages/core/dist/profile.d.ts +0 -9
  1297. package/packages/core/dist/profile.d.ts.map +0 -1
  1298. package/packages/core/dist/profile.js +0 -33
  1299. package/packages/core/dist/profile.js.map +0 -1
  1300. package/packages/core/dist/runtime.d.ts +0 -16
  1301. package/packages/core/dist/runtime.d.ts.map +0 -1
  1302. package/packages/core/dist/runtime.js +0 -47
  1303. package/packages/core/dist/runtime.js.map +0 -1
  1304. package/packages/core/dist/services.d.ts +0 -118
  1305. package/packages/core/dist/services.d.ts.map +0 -1
  1306. package/packages/core/dist/services.js +0 -115
  1307. package/packages/core/dist/services.js.map +0 -1
  1308. package/packages/core/dist/stdio.d.ts +0 -37
  1309. package/packages/core/dist/stdio.d.ts.map +0 -1
  1310. package/packages/core/dist/stdio.js +0 -356
  1311. package/packages/core/dist/stdio.js.map +0 -1
  1312. package/packages/core/dist/workspace-path.d.ts +0 -13
  1313. package/packages/core/dist/workspace-path.d.ts.map +0 -1
  1314. package/packages/core/dist/workspace-path.js +0 -71
  1315. package/packages/core/dist/workspace-path.js.map +0 -1
  1316. package/packages/core/package.json +0 -42
  1317. package/packages/core/profiles/default/cordis.yml +0 -122
  1318. package/packages/core/profiles/development/cordis.yml +0 -47
  1319. package/packages/core/src/atomic-write.ts +0 -45
  1320. package/packages/core/src/boot.ts +0 -255
  1321. package/packages/core/src/bounded-file.ts +0 -41
  1322. package/packages/core/src/config.ts +0 -24
  1323. package/packages/core/src/context.ts +0 -3
  1324. package/packages/core/src/cordis-timer.ts +0 -107
  1325. package/packages/core/src/http.ts +0 -32
  1326. package/packages/core/src/index.ts +0 -8
  1327. package/packages/core/src/plugins/agent-teams.ts +0 -1191
  1328. package/packages/core/src/plugins/anchored-standard.ts +0 -115
  1329. package/packages/core/src/plugins/annotation.ts +0 -123
  1330. package/packages/core/src/plugins/archify.ts +0 -171
  1331. package/packages/core/src/plugins/at-file.ts +0 -138
  1332. package/packages/core/src/plugins/auto-mode.ts +0 -190
  1333. package/packages/core/src/plugins/better-sidebar.ts +0 -128
  1334. package/packages/core/src/plugins/browser-fetch.ts +0 -362
  1335. package/packages/core/src/plugins/browser-session.ts +0 -606
  1336. package/packages/core/src/plugins/canvas-draw.ts +0 -143
  1337. package/packages/core/src/plugins/change-verifier.ts +0 -103
  1338. package/packages/core/src/plugins/cleaner.ts +0 -363
  1339. package/packages/core/src/plugins/cli-notifier.ts +0 -194
  1340. package/packages/core/src/plugins/code2skill.ts +0 -237
  1341. package/packages/core/src/plugins/colleague-skill.ts +0 -147
  1342. package/packages/core/src/plugins/context-doctor.ts +0 -487
  1343. package/packages/core/src/plugins/context.ts +0 -227
  1344. package/packages/core/src/plugins/cost-meter.ts +0 -478
  1345. package/packages/core/src/plugins/dependency-checker.ts +0 -578
  1346. package/packages/core/src/plugins/docker-sandbox.ts +0 -336
  1347. package/packages/core/src/plugins/fail-logger.ts +0 -202
  1348. package/packages/core/src/plugins/genui.ts +0 -150
  1349. package/packages/core/src/plugins/git-time-capsule.ts +0 -466
  1350. package/packages/core/src/plugins/graph-memory.ts +0 -667
  1351. package/packages/core/src/plugins/history-compressor.ts +0 -98
  1352. package/packages/core/src/plugins/hol-guard.ts +0 -171
  1353. package/packages/core/src/plugins/i18n-pair.ts +0 -326
  1354. package/packages/core/src/plugins/image-compressor.ts +0 -217
  1355. package/packages/core/src/plugins/llm-verifier.ts +0 -182
  1356. package/packages/core/src/plugins/mcp-client.ts +0 -1379
  1357. package/packages/core/src/plugins/mcp-panel.ts +0 -206
  1358. package/packages/core/src/plugins/memory.ts +0 -381
  1359. package/packages/core/src/plugins/mirage-bridge.ts +0 -191
  1360. package/packages/core/src/plugins/mock-server.ts +0 -189
  1361. package/packages/core/src/plugins/model.ts +0 -18
  1362. package/packages/core/src/plugins/models.ts +0 -43
  1363. package/packages/core/src/plugins/modlens.ts +0 -497
  1364. package/packages/core/src/plugins/module-search.ts +0 -222
  1365. package/packages/core/src/plugins/obsidian-sync.ts +0 -94
  1366. package/packages/core/src/plugins/openpets.ts +0 -260
  1367. package/packages/core/src/plugins/plan-execute.ts +0 -104
  1368. package/packages/core/src/plugins/plugin-check.ts +0 -316
  1369. package/packages/core/src/plugins/plugin-dev.ts +0 -191
  1370. package/packages/core/src/plugins/plugin-finder.ts +0 -215
  1371. package/packages/core/src/plugins/plugin-radar.ts +0 -270
  1372. package/packages/core/src/plugins/plugin-stars.ts +0 -377
  1373. package/packages/core/src/plugins/prompt-guard.ts +0 -161
  1374. package/packages/core/src/plugins/prompt-library.ts +0 -171
  1375. package/packages/core/src/plugins/readme-gen.ts +0 -544
  1376. package/packages/core/src/plugins/recall-unread.ts +0 -486
  1377. package/packages/core/src/plugins/resources.ts +0 -146
  1378. package/packages/core/src/plugins/reverse-skill.ts +0 -83
  1379. package/packages/core/src/plugins/reviewer-bot.ts +0 -164
  1380. package/packages/core/src/plugins/runtime-doctor.ts +0 -140
  1381. package/packages/core/src/plugins/runtime.ts +0 -171
  1382. package/packages/core/src/plugins/secure-audit.ts +0 -167
  1383. package/packages/core/src/plugins/session-bookmarks.ts +0 -95
  1384. package/packages/core/src/plugins/session-bridge.ts +0 -614
  1385. package/packages/core/src/plugins/session-compare.ts +0 -186
  1386. package/packages/core/src/plugins/session-export.ts +0 -102
  1387. package/packages/core/src/plugins/session-insights.ts +0 -470
  1388. package/packages/core/src/plugins/session-search.ts +0 -129
  1389. package/packages/core/src/plugins/session.ts +0 -40
  1390. package/packages/core/src/plugins/skill-catalog.ts +0 -122
  1391. package/packages/core/src/plugins/skill-guard.ts +0 -345
  1392. package/packages/core/src/plugins/sql-lens-worker.ts +0 -202
  1393. package/packages/core/src/plugins/sql-lens.ts +0 -344
  1394. package/packages/core/src/plugins/stdio.ts +0 -77
  1395. package/packages/core/src/plugins/synapse.ts +0 -137
  1396. package/packages/core/src/plugins/tab-manager.ts +0 -233
  1397. package/packages/core/src/plugins/taskboard.ts +0 -446
  1398. package/packages/core/src/plugins/telemetry-blocker.ts +0 -78
  1399. package/packages/core/src/plugins/test-harness.ts +0 -300
  1400. package/packages/core/src/plugins/theme-studio.ts +0 -170
  1401. package/packages/core/src/plugins/token-guard.ts +0 -224
  1402. package/packages/core/src/plugins/tools.ts +0 -29
  1403. package/packages/core/src/plugins/turn-rewind.ts +0 -400
  1404. package/packages/core/src/plugins/undo-savepoint.ts +0 -385
  1405. package/packages/core/src/plugins/vision-toolkit.ts +0 -510
  1406. package/packages/core/src/plugins/web-research.ts +0 -301
  1407. package/packages/core/src/plugins/workspace-navigator.ts +0 -189
  1408. package/packages/core/src/plugins/workspace-search.ts +0 -177
  1409. package/packages/core/src/plugins/yaml-validator.ts +0 -216
  1410. package/packages/core/src/profile.ts +0 -37
  1411. package/packages/core/src/runtime.ts +0 -52
  1412. package/packages/core/src/services.ts +0 -232
  1413. package/packages/core/src/stdio.ts +0 -355
  1414. package/packages/core/src/workspace-path.ts +0 -79
  1415. package/packages/core/test/agent-teams.test.ts +0 -517
  1416. package/packages/core/test/anchored-standard.test.ts +0 -60
  1417. package/packages/core/test/annotation.test.ts +0 -69
  1418. package/packages/core/test/archify.test.ts +0 -244
  1419. package/packages/core/test/at-file.test.ts +0 -666
  1420. package/packages/core/test/atomic-write.test.ts +0 -52
  1421. package/packages/core/test/auto-mode.test.ts +0 -629
  1422. package/packages/core/test/better-sidebar.test.ts +0 -232
  1423. package/packages/core/test/boot.test.ts +0 -265
  1424. package/packages/core/test/bounded-file.test.ts +0 -55
  1425. package/packages/core/test/browser-fetch-rebinding.test.ts +0 -93
  1426. package/packages/core/test/browser-fetch.test.ts +0 -844
  1427. package/packages/core/test/browser-session.test.ts +0 -1236
  1428. package/packages/core/test/canvas-draw.test.ts +0 -164
  1429. package/packages/core/test/change-verifier.test.ts +0 -200
  1430. package/packages/core/test/cleaner.test.ts +0 -316
  1431. package/packages/core/test/cli-notifier.test.ts +0 -235
  1432. package/packages/core/test/code2skill.test.ts +0 -264
  1433. package/packages/core/test/colleague-skill.test.ts +0 -241
  1434. package/packages/core/test/config.test.ts +0 -147
  1435. package/packages/core/test/context-doctor.test.ts +0 -627
  1436. package/packages/core/test/context-insights.test.ts +0 -396
  1437. package/packages/core/test/cordis-timer.test.ts +0 -147
  1438. package/packages/core/test/cost-meter.test.ts +0 -362
  1439. package/packages/core/test/dependency-checker.test.ts +0 -633
  1440. package/packages/core/test/docker-sandbox.test.ts +0 -170
  1441. package/packages/core/test/fail-logger.test.ts +0 -363
  1442. package/packages/core/test/genui.test.ts +0 -162
  1443. package/packages/core/test/git-time-capsule.test.ts +0 -1476
  1444. package/packages/core/test/graph-memory.test.ts +0 -508
  1445. package/packages/core/test/history-compressor.test.ts +0 -47
  1446. package/packages/core/test/hol-guard.test.ts +0 -61
  1447. package/packages/core/test/http.test.ts +0 -36
  1448. package/packages/core/test/i18n-pair.test.ts +0 -367
  1449. package/packages/core/test/image-compressor.test.ts +0 -59
  1450. package/packages/core/test/llm-verifier.test.ts +0 -76
  1451. package/packages/core/test/mcp-client.test.ts +0 -1037
  1452. package/packages/core/test/mcp-panel.test.ts +0 -91
  1453. package/packages/core/test/memory.test.ts +0 -125
  1454. package/packages/core/test/mirage-bridge.test.ts +0 -58
  1455. package/packages/core/test/mock-server.test.ts +0 -63
  1456. package/packages/core/test/model.test.ts +0 -62
  1457. package/packages/core/test/models.test.ts +0 -85
  1458. package/packages/core/test/modlens.test.ts +0 -615
  1459. package/packages/core/test/module-search.test.ts +0 -98
  1460. package/packages/core/test/obsidian-sync.test.ts +0 -57
  1461. package/packages/core/test/openpets.test.ts +0 -273
  1462. package/packages/core/test/plan-execute.test.ts +0 -86
  1463. package/packages/core/test/plugin-check.test.ts +0 -16
  1464. package/packages/core/test/plugin-dev.test.ts +0 -246
  1465. package/packages/core/test/plugin-finder.test.ts +0 -105
  1466. package/packages/core/test/plugin-radar.test.ts +0 -87
  1467. package/packages/core/test/plugin-stars.test.ts +0 -480
  1468. package/packages/core/test/profile.test.ts +0 -39
  1469. package/packages/core/test/profiles.integration.test.ts +0 -576
  1470. package/packages/core/test/prompt-guard.test.ts +0 -78
  1471. package/packages/core/test/prompt-library.test.ts +0 -56
  1472. package/packages/core/test/readme-gen.test.ts +0 -445
  1473. package/packages/core/test/recall-unread.test.ts +0 -592
  1474. package/packages/core/test/registry.test.ts +0 -64
  1475. package/packages/core/test/resources.test.ts +0 -310
  1476. package/packages/core/test/reverse-skill.test.ts +0 -40
  1477. package/packages/core/test/reviewer-bot.test.ts +0 -55
  1478. package/packages/core/test/runtime-doctor.test.ts +0 -55
  1479. package/packages/core/test/runtime-fixture.ts +0 -55
  1480. package/packages/core/test/runtime.test.ts +0 -313
  1481. package/packages/core/test/secure-audit.test.ts +0 -29
  1482. package/packages/core/test/services.test.ts +0 -4805
  1483. package/packages/core/test/session-bookmarks.test.ts +0 -62
  1484. package/packages/core/test/session-bridge.test.ts +0 -411
  1485. package/packages/core/test/session-compare.test.ts +0 -94
  1486. package/packages/core/test/session-export.test.ts +0 -54
  1487. package/packages/core/test/session-insights.test.ts +0 -486
  1488. package/packages/core/test/session-search.test.ts +0 -30
  1489. package/packages/core/test/session.test.ts +0 -153
  1490. package/packages/core/test/skill-catalog.test.ts +0 -18
  1491. package/packages/core/test/skill-guard.test.ts +0 -280
  1492. package/packages/core/test/sql-lens.test.ts +0 -244
  1493. package/packages/core/test/stdio-args.test.ts +0 -661
  1494. package/packages/core/test/stdio.test.ts +0 -246
  1495. package/packages/core/test/synapse.test.ts +0 -67
  1496. package/packages/core/test/tab-manager.test.ts +0 -58
  1497. package/packages/core/test/taskboard.test.ts +0 -73
  1498. package/packages/core/test/telemetry-blocker.test.ts +0 -61
  1499. package/packages/core/test/test-harness.test.ts +0 -297
  1500. package/packages/core/test/theme-studio.test.ts +0 -39
  1501. package/packages/core/test/token-guard.test.ts +0 -395
  1502. package/packages/core/test/tools.test.ts +0 -118
  1503. package/packages/core/test/turn-rewind.test.ts +0 -549
  1504. package/packages/core/test/undo-savepoint.test.ts +0 -222
  1505. package/packages/core/test/vision-toolkit.test.ts +0 -511
  1506. package/packages/core/test/web-research.test.ts +0 -63
  1507. package/packages/core/test/workspace-git-status.test.ts +0 -54
  1508. package/packages/core/test/workspace-navigator.test.ts +0 -43
  1509. package/packages/core/test/workspace-path.test.ts +0 -34
  1510. package/packages/core/test/workspace-search.test.ts +0 -88
  1511. package/packages/core/test/yaml-validator.test.ts +0 -195
  1512. package/packages/core/tsconfig.build.json +0 -8
  1513. package/packages/core/tsconfig.json +0 -7
@@ -1,1037 +0,0 @@
1
- import { existsSync } from "node:fs";
2
- import { mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
3
- import { tmpdir } from "node:os";
4
- import { join } from "node:path";
5
- import { Context } from "@deepseek-ai/cordis";
6
- import { afterEach, describe, expect, test, vi } from "vitest";
7
- import mcpClientPlugin from "../src/plugins/mcp-client.js";
8
- import { PiPluginUiRegistry, PiToolRegistry } from "../src/services.js";
9
-
10
- const temporaryDirectories: string[] = [];
11
-
12
- afterEach(async () => {
13
- await Promise.all(temporaryDirectories.splice(0).map((directory) => rm(directory, { recursive: true, force: true })));
14
- });
15
-
16
- async function createFixture(options?: { servers?: Array<{ id: string; command: string[]; autoStart?: boolean }>; launchCwd?: string; loadPlugin?: boolean }) {
17
- const cwd = await mkdtemp(join(tmpdir(), "pi-harness-mcp-client-workspace-"));
18
- const agentDir = await mkdtemp(join(tmpdir(), "pi-harness-mcp-client-agent-"));
19
- temporaryDirectories.push(cwd, agentDir);
20
- const context = new Context();
21
- const tools = new PiToolRegistry();
22
- const panels = new PiPluginUiRegistry();
23
- context.provide("piHarnessLaunch", { cwd: options?.launchCwd ?? cwd, agentDir, args: [], requestExit() {} });
24
- context.provide("piTools", tools);
25
- context.provide("piPluginUi", panels);
26
- if (options?.loadPlugin !== false) await context.plugin(mcpClientPlugin, options?.servers === undefined ? {} : { servers: options.servers });
27
- return { context, cwd, tools, panels };
28
- }
29
-
30
- function tool(tools: PiToolRegistry, name: string) {
31
- const result = tools.snapshot().customTools.find((candidate) => candidate.name === name);
32
- if (result === undefined) throw new Error(`${name} was not registered`);
33
- return result;
34
- }
35
-
36
- async function writeServer(cwd: string, body: string): Promise<string> {
37
- const path = join(cwd, `server-${Math.random().toString(16).slice(2)}.mjs`);
38
- await writeFile(path, body, "utf8");
39
- return path;
40
- }
41
-
42
- describe("MCP client production boundaries", () => {
43
- test("rejects unknown configuration before registering any surface", async () => {
44
- const fixture = await createFixture({ loadPlugin: false });
45
- try {
46
- await expect(fixture.context.plugin(mcpClientPlugin, { unexpected: true } as never)).rejects.toThrow(/unknown.*unexpected/iu);
47
- expect(fixture.tools.snapshot().customTools).toEqual([]);
48
- await expect(fixture.panels.snapshot()).resolves.toEqual([]);
49
- } finally {
50
- await fixture.context.fiber.dispose();
51
- }
52
- });
53
-
54
- test("declares strict sequential schemas for every stateful tool", async () => {
55
- const fixture = await createFixture();
56
- try {
57
- for (const name of [
58
- "mcp_list_tools",
59
- "mcp_call",
60
- "mcp_server_start",
61
- "mcp_server_status",
62
- "mcp_server_stop",
63
- "mcp_list_resources",
64
- "mcp_read_resource",
65
- "mcp_list_prompts",
66
- "mcp_get_prompt",
67
- ]) {
68
- const candidate = tool(fixture.tools, name);
69
- expect(candidate.executionMode, name).toBe("sequential");
70
- expect(candidate.parameters, name).toMatchObject({ additionalProperties: false });
71
- }
72
- } finally {
73
- await fixture.context.fiber.dispose();
74
- }
75
- });
76
-
77
- test("rejects class instances as raw MCP parameter objects", async () => {
78
- const fixture = await createFixture();
79
- class Parameters {
80
- readonly command = [process.execPath, "server.mjs"];
81
- }
82
- try {
83
- await expect(tool(fixture.tools, "mcp_list_tools").execute("instance", new Parameters(), undefined, undefined, {} as never)).rejects.toThrow(
84
- /parameters.*plain object/iu,
85
- );
86
- } finally {
87
- await fixture.context.fiber.dispose();
88
- }
89
- });
90
-
91
- test("rolls back every registered tool when panel registration fails", async () => {
92
- const fixture = await createFixture({ loadPlugin: false });
93
- fixture.panels.register({ id: "mcp-client-panel", pluginId: "fixture", title: "Fixture", read: () => ({}) });
94
- try {
95
- await expect(fixture.context.plugin(mcpClientPlugin, {})).rejects.toThrow(/panel is already registered: mcp-client-panel/iu);
96
- expect(fixture.tools.snapshot().customTools).toEqual([]);
97
- } finally {
98
- await fixture.context.fiber.dispose();
99
- }
100
- });
101
-
102
- test("rolls back registered surfaces when an auto-start server fails", async () => {
103
- const fixture = await createFixture({ loadPlugin: false, servers: [{ id: "broken", command: ["/definitely/missing-mcp-server"], autoStart: true }] });
104
- try {
105
- await expect(
106
- fixture.context.plugin(mcpClientPlugin, { servers: [{ id: "broken", command: ["/definitely/missing-mcp-server"], autoStart: true }] }),
107
- ).rejects.toThrow();
108
- expect(fixture.tools.snapshot().customTools).toEqual([]);
109
- await expect(fixture.panels.snapshot()).resolves.toEqual([]);
110
- } finally {
111
- await fixture.context.fiber.dispose();
112
- }
113
- });
114
-
115
- test("strictly validates raw parameters without invoking accessors", async () => {
116
- const fixture = await createFixture();
117
- let accessed = false;
118
- const params = {} as { command?: string[] };
119
- Object.defineProperty(params, "command", {
120
- enumerable: true,
121
- get() {
122
- accessed = true;
123
- throw new Error("MCP accessor executed");
124
- },
125
- });
126
- try {
127
- await expect(tool(fixture.tools, "mcp_list_tools").execute("accessor", params, undefined, undefined, {} as never)).rejects.toThrow(
128
- /parameters.*data properties/iu,
129
- );
130
- expect(accessed).toBe(false);
131
- await expect(tool(fixture.tools, "mcp_server_status").execute("unknown", { unexpected: true }, undefined, undefined, {} as never)).rejects.toThrow(
132
- /unknown property/iu,
133
- );
134
- } finally {
135
- await fixture.context.fiber.dispose();
136
- }
137
- });
138
-
139
- test("rejects portable shell wrapper names", async () => {
140
- const fixture = await createFixture();
141
- try {
142
- for (const command of ["C:\\tools\\sh.exe", "C:\\tools\\bash.cmd", "C:\\tools\\powershell.bat", "C:\\tools\\cmd.com"]) {
143
- await expect(
144
- tool(fixture.tools, "mcp_list_tools").execute("shell", { command: [command, "server.js"] }, undefined, undefined, {} as never),
145
- ).rejects.toThrow(/shell wrapper/iu);
146
- }
147
- } finally {
148
- await fixture.context.fiber.dispose();
149
- }
150
- });
151
-
152
- test("cancels and reaps a one-shot server when the plugin is disposed", async () => {
153
- const fixture = await createFixture();
154
- const requested = join(fixture.cwd, "requested");
155
- const server = await writeServer(
156
- fixture.cwd,
157
- `import { writeFileSync } from "node:fs";
158
- console.error("server diagnostic");
159
- let buffer = "";
160
- const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n");
161
- process.stdin.setEncoding("utf8");
162
- process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "hang", version: "1" } } }); else if (message.method === "tools/list") writeFileSync(${JSON.stringify(requested)}, "yes"); } });`,
163
- );
164
- const controller = new AbortController();
165
- const rejected = join(fixture.cwd, "rejected");
166
- const pending = tool(fixture.tools, "mcp_list_tools").execute(
167
- "dispose",
168
- { command: [process.execPath, server] },
169
- controller.signal,
170
- undefined,
171
- {} as never,
172
- );
173
- let rejection: unknown;
174
- void pending.catch(async (error: unknown) => {
175
- rejection = error;
176
- await writeFile(rejected, "yes", "utf8");
177
- });
178
- try {
179
- await vi.waitFor(() => expect(existsSync(requested)).toBe(true));
180
- await fixture.context.fiber.dispose();
181
- await vi.waitFor(() => expect(existsSync(rejected)).toBe(true), { timeout: 500 });
182
- expect(rejection).toMatchObject({ message: "MCP client plugin disposed" });
183
- } finally {
184
- controller.abort(new Error("test cleanup"));
185
- await pending.catch(() => undefined);
186
- }
187
- });
188
-
189
- test("detaches and bounds remote inventories before publishing the panel", async () => {
190
- const fixture = await createFixture();
191
- const server = await writeServer(
192
- fixture.cwd,
193
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "inventory", version: "1" } } }); else if (message.method === "tools/list") send({ jsonrpc: "2.0", id: message.id, result: { tools: Array.from({ length: 40 }, (_, index) => ({ name: "tool-" + index, description: "d".repeat(1000), inputSchema: { type: "object" } })) } }); } });`,
194
- );
195
- try {
196
- const result = await tool(fixture.tools, "mcp_list_tools").execute("list", { command: [process.execPath, server] }, undefined, undefined, {} as never);
197
- (result.details as { tools: Array<{ name: string }> }).tools[0]!.name = "mutated-through-tool";
198
- const first = await fixture.panels.snapshot();
199
- expect(first).toMatchObject([
200
- {
201
- id: "mcp-client-panel",
202
- data: {
203
- inventory: { tools: { total: 40, shown: 20, truncated: true }, resources: { total: 0 }, prompts: { total: 0 } },
204
- limits: { responseBytes: 1_048_576, commandArgs: 32, argumentBytes: 4_096, requestTimeoutMs: 30_000, panelItems: 20 },
205
- },
206
- },
207
- ]);
208
- const data = first[0]?.data as { tools: Array<{ name: string }> };
209
- expect(data.tools).toHaveLength(20);
210
- expect(data.tools[0]?.name).toBe("tool-0");
211
- data.tools[0]!.name = "mutated-through-panel";
212
- const second = await fixture.panels.snapshot();
213
- expect((second[0]?.data as { tools: Array<{ name: string }> }).tools[0]?.name).toBe("tool-0");
214
- } finally {
215
- await fixture.context.fiber.dispose();
216
- }
217
- });
218
-
219
- test("follows bounded pagination for one-shot and managed MCP inventories", async () => {
220
- const fixture = await createFixture();
221
- const server = await writeServer(
222
- fixture.cwd,
223
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); const cursor = message.params?.cursor; if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "pagination", version: "1" } } }); else if (message.method === "tools/list") send({ jsonrpc: "2.0", id: message.id, result: cursor === "tools-next" ? { tools: [{ name: "tool-2", inputSchema: { type: "object" } }] } : { tools: [{ name: "tool-1", inputSchema: { type: "object" } }], nextCursor: "tools-next" } }); else if (message.method === "resources/list") send({ jsonrpc: "2.0", id: message.id, result: cursor === "resources-next" ? { resources: [{ uri: "fixture://resource-2", name: "Resource 2" }] } : { resources: [{ uri: "fixture://resource-1", name: "Resource 1" }], nextCursor: "resources-next" } }); else if (message.method === "prompts/list") send({ jsonrpc: "2.0", id: message.id, result: cursor === "prompts-next" ? { prompts: [{ name: "prompt-2" }] } : { prompts: [{ name: "prompt-1" }], nextCursor: "prompts-next" } }); } });`,
224
- );
225
- try {
226
- await expect(
227
- tool(fixture.tools, "mcp_list_tools").execute("one-shot-pages", { command: [process.execPath, server] }, undefined, undefined, {} as never),
228
- ).resolves.toMatchObject({ details: { tools: [{ name: "tool-1" }, { name: "tool-2" }] } });
229
- await tool(fixture.tools, "mcp_server_start").execute(
230
- "managed-pages-start",
231
- { command: [process.execPath, server], serverId: "pages" },
232
- undefined,
233
- undefined,
234
- {} as never,
235
- );
236
- await expect(
237
- tool(fixture.tools, "mcp_list_resources").execute("resource-pages", { serverId: "pages" }, undefined, undefined, {} as never),
238
- ).resolves.toMatchObject({ details: { resources: [{ uri: "fixture://resource-1" }, { uri: "fixture://resource-2" }] } });
239
- await expect(
240
- tool(fixture.tools, "mcp_list_prompts").execute("prompt-pages", { serverId: "pages" }, undefined, undefined, {} as never),
241
- ).resolves.toMatchObject({ details: { prompts: [{ name: "prompt-1" }, { name: "prompt-2" }] } });
242
- } finally {
243
- await fixture.context.fiber.dispose();
244
- }
245
- });
246
-
247
- test("rejects repeated MCP pagination cursors", async () => {
248
- const fixture = await createFixture();
249
- const server = await writeServer(
250
- fixture.cwd,
251
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "cursor-loop", version: "1" } } }); else if (message.method === "tools/list") send({ jsonrpc: "2.0", id: message.id, result: { tools: [], nextCursor: "same" } }); } });`,
252
- );
253
- try {
254
- await expect(
255
- tool(fixture.tools, "mcp_list_tools").execute("cursor-loop", { command: [process.execPath, server] }, undefined, undefined, {} as never),
256
- ).rejects.toThrow(/repeated.*pagination cursor/iu);
257
- } finally {
258
- await fixture.context.fiber.dispose();
259
- }
260
- });
261
-
262
- test("copies nested tool arguments without invoking accessors", async () => {
263
- const fixture = await createFixture();
264
- const server = await writeServer(
265
- fixture.cwd,
266
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "arguments", version: "1" } } }); else if (message.method === "tools/call") send({ jsonrpc: "2.0", id: message.id, result: { content: [{ type: "text", text: "called" }] } }); } });`,
267
- );
268
- let accessed = false;
269
- const argumentsValue = {} as Record<string, unknown>;
270
- Object.defineProperty(argumentsValue, "secret", {
271
- enumerable: true,
272
- get() {
273
- accessed = true;
274
- throw new Error("nested MCP accessor executed");
275
- },
276
- });
277
- try {
278
- await expect(
279
- tool(fixture.tools, "mcp_call").execute(
280
- "arguments-accessor",
281
- { command: [process.execPath, server], name: "echo", arguments: argumentsValue },
282
- undefined,
283
- undefined,
284
- {} as never,
285
- ),
286
- ).rejects.toThrow(/arguments.*data properties/iu);
287
- expect(accessed).toBe(false);
288
- } finally {
289
- await fixture.context.fiber.dispose();
290
- }
291
- });
292
-
293
- test("rejects oversized tool arguments before starting a server", async () => {
294
- const fixture = await createFixture();
295
- try {
296
- await expect(
297
- tool(fixture.tools, "mcp_call").execute(
298
- "oversized-arguments",
299
- { command: ["/definitely/missing-mcp-server"], name: "echo", arguments: { payload: "x".repeat(70 * 1024) } },
300
- undefined,
301
- undefined,
302
- {} as never,
303
- ),
304
- ).rejects.toThrow(/arguments.*64 KiB/iu);
305
- } finally {
306
- await fixture.context.fiber.dispose();
307
- }
308
- });
309
-
310
- test("rejects excessively deep tool arguments", async () => {
311
- const fixture = await createFixture();
312
- let argumentsValue: Record<string, unknown> = {};
313
- for (let depth = 0; depth < 40; depth += 1) argumentsValue = { nested: argumentsValue };
314
- try {
315
- await expect(
316
- tool(fixture.tools, "mcp_call").execute(
317
- "deep-arguments",
318
- { command: ["/definitely/missing-mcp-server"], name: "echo", arguments: argumentsValue },
319
- undefined,
320
- undefined,
321
- {} as never,
322
- ),
323
- ).rejects.toThrow(/arguments.*32 levels/iu);
324
- } finally {
325
- await fixture.context.fiber.dispose();
326
- }
327
- });
328
-
329
- test("cancels a managed request while it is waiting in the server queue", async () => {
330
- const cwd = await mkdtemp(join(tmpdir(), "pi-harness-mcp-client-queue-"));
331
- temporaryDirectories.push(cwd);
332
- const firstRequested = join(cwd, "first-requested");
333
- const server = await writeServer(
334
- cwd,
335
- `import { writeFileSync } from "node:fs"; let buffer = ""; let lists = 0; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "queue", version: "1" } } }); else if (message.method === "tools/list" && ++lists === 1) writeFileSync(${JSON.stringify(firstRequested)}, "yes"); } });`,
336
- );
337
- const fixture = await createFixture({ servers: [{ id: "queue", command: [process.execPath, server] }] });
338
- await tool(fixture.tools, "mcp_server_start").execute("start", { serverId: "queue" }, undefined, undefined, {} as never);
339
- const first = tool(fixture.tools, "mcp_list_tools").execute("first", { serverId: "queue" }, undefined, undefined, {} as never);
340
- void first.catch(() => undefined);
341
- const controller = new AbortController();
342
- let secondOutcome: unknown;
343
- let second: Promise<unknown> | undefined;
344
- try {
345
- await vi.waitFor(() => expect(existsSync(firstRequested)).toBe(true));
346
- second = tool(fixture.tools, "mcp_list_tools").execute("second", { serverId: "queue" }, controller.signal, undefined, {} as never);
347
- void second.catch((error: unknown) => {
348
- secondOutcome = error;
349
- });
350
- controller.abort(new Error("queued request cancelled"));
351
- await vi.waitFor(() => expect(secondOutcome).toBeInstanceOf(Error), { timeout: 500 });
352
- expect((secondOutcome as Error).message).toMatch(/cancelled/iu);
353
- } finally {
354
- await fixture.context.fiber.dispose();
355
- await first.catch(() => undefined);
356
- await second?.catch(() => undefined);
357
- }
358
- });
359
-
360
- test("retains stdout framing bytes between managed requests", async () => {
361
- const fixture = await createFixture();
362
- const server = await writeServer(
363
- fixture.cwd,
364
- `let buffer = "";
365
- const notification = JSON.stringify({ jsonrpc: "2.0", method: "notifications/message", params: { data: "between requests" } });
366
- const split = Math.floor(notification.length / 2);
367
- const header = "Content-Length: " + Buffer.byteLength(notification) + "\\r\\n\\r\\n";
368
- process.stdin.setEncoding("utf8");
369
- process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") process.stdout.write(JSON.stringify({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "framing", version: "1" } } }) + "\\n" + header + notification.slice(0, split)); else if (message.method === "tools/list") process.stdout.write(notification.slice(split) + JSON.stringify({ jsonrpc: "2.0", id: message.id, result: { tools: [{ name: "retained", inputSchema: { type: "object" } }] } }) + "\\n"); } });`,
370
- );
371
- try {
372
- await tool(fixture.tools, "mcp_server_start").execute(
373
- "start-framing",
374
- { command: [process.execPath, server], serverId: "framing" },
375
- undefined,
376
- undefined,
377
- {} as never,
378
- );
379
- await expect(
380
- tool(fixture.tools, "mcp_list_tools").execute("list-framing", { serverId: "framing" }, AbortSignal.timeout(500), undefined, {} as never),
381
- ).resolves.toMatchObject({ details: { tools: [{ name: "retained" }] } });
382
- } finally {
383
- await fixture.context.fiber.dispose();
384
- }
385
- });
386
-
387
- test("bounds total bytes received before the matching response", async () => {
388
- const fixture = await createFixture();
389
- const server = await writeServer(
390
- fixture.cwd,
391
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "bytes", version: "1" } } }); else if (message.method === "tools/list") { for (let index = 0; index < 1400; index += 1) send({ jsonrpc: "2.0", method: "notifications/message", params: { data: "x".repeat(900) } }); send({ jsonrpc: "2.0", id: message.id, result: { tools: [] } }); } } });`,
392
- );
393
- try {
394
- await expect(
395
- tool(fixture.tools, "mcp_list_tools").execute("total-bytes", { command: [process.execPath, server] }, undefined, undefined, {} as never),
396
- ).rejects.toThrow(/response exceeded the 1 MiB limit/iu);
397
- } finally {
398
- await fixture.context.fiber.dispose();
399
- }
400
- });
401
-
402
- test("rejects remote inventories above the item limit", async () => {
403
- const fixture = await createFixture();
404
- const server = await writeServer(
405
- fixture.cwd,
406
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "inventory-limit", version: "1" } } }); else if (message.method === "tools/list") send({ jsonrpc: "2.0", id: message.id, result: { tools: Array.from({ length: 1001 }, (_, index) => ({ name: "tool-" + index, inputSchema: { type: "object" } })) } }); } });`,
407
- );
408
- try {
409
- await expect(
410
- tool(fixture.tools, "mcp_list_tools").execute("inventory-limit", { command: [process.execPath, server] }, undefined, undefined, {} as never),
411
- ).rejects.toThrow(/inventory.*1000 items/iu);
412
- } finally {
413
- await fixture.context.fiber.dispose();
414
- }
415
- });
416
-
417
- test("rejects malformed remote tool descriptors", async () => {
418
- const fixture = await createFixture();
419
- const server = await writeServer(
420
- fixture.cwd,
421
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "malformed-tool", version: "1" } } }); else if (message.method === "tools/list") send({ jsonrpc: "2.0", id: message.id, result: { tools: [{ name: "", description: 42, inputSchema: [] }] } }); } });`,
422
- );
423
- try {
424
- await expect(
425
- tool(fixture.tools, "mcp_list_tools").execute("malformed-tool", { command: [process.execPath, server] }, undefined, undefined, {} as never),
426
- ).rejects.toThrow(/invalid MCP tool descriptor/iu);
427
- } finally {
428
- await fixture.context.fiber.dispose();
429
- }
430
- });
431
-
432
- test("rejects malformed remote resource and prompt descriptors", async () => {
433
- const fixture = await createFixture();
434
- const server = await writeServer(
435
- fixture.cwd,
436
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "malformed-inventory", version: "1" } } }); else if (message.method === "resources/list") send({ jsonrpc: "2.0", id: message.id, result: { resources: [{ uri: "fixture://missing-name" }] } }); else if (message.method === "prompts/list") send({ jsonrpc: "2.0", id: message.id, result: { prompts: [{ name: "", arguments: {} }] } }); } });`,
437
- );
438
- try {
439
- await expect(
440
- tool(fixture.tools, "mcp_list_resources").execute("malformed-resource", { command: [process.execPath, server] }, undefined, undefined, {} as never),
441
- ).rejects.toThrow(/invalid MCP resource descriptor/iu);
442
- await expect(
443
- tool(fixture.tools, "mcp_list_prompts").execute("malformed-prompt", { command: [process.execPath, server] }, undefined, undefined, {} as never),
444
- ).rejects.toThrow(/invalid MCP prompt descriptor/iu);
445
- } finally {
446
- await fixture.context.fiber.dispose();
447
- }
448
- });
449
-
450
- test("rejects malformed MCP tool result content before returning it to the agent", async () => {
451
- const fixture = await createFixture();
452
- const server = await writeServer(
453
- fixture.cwd,
454
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "malformed-result", version: "1" } } }); else if (message.method === "tools/call") send({ jsonrpc: "2.0", id: message.id, result: { content: [{ type: "text", text: 42 }] } }); } });`,
455
- );
456
- try {
457
- await expect(
458
- tool(fixture.tools, "mcp_call").execute(
459
- "malformed-result",
460
- { command: [process.execPath, server], name: "echo", arguments: {} },
461
- undefined,
462
- undefined,
463
- {} as never,
464
- ),
465
- ).rejects.toThrow(/invalid MCP tool result content/iu);
466
- } finally {
467
- await fixture.context.fiber.dispose();
468
- }
469
- });
470
-
471
- test("rejects malformed base64 content before returning it to the agent", async () => {
472
- const fixture = await createFixture();
473
- const server = await writeServer(
474
- fixture.cwd,
475
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "malformed-base64", version: "1" } } }); else if (message.method === "tools/call") send({ jsonrpc: "2.0", id: message.id, result: { content: [{ type: "image", data: "not-base64!", mimeType: "image/png" }] } }); } });`,
476
- );
477
- try {
478
- await expect(
479
- tool(fixture.tools, "mcp_call").execute("malformed-base64", { command: [process.execPath, server], name: "image" }, undefined, undefined, {} as never),
480
- ).rejects.toThrow(/invalid MCP tool result content/iu);
481
- } finally {
482
- await fixture.context.fiber.dispose();
483
- }
484
- });
485
-
486
- test("does not publish an invalid MCP tool call as the latest successful call", async () => {
487
- const fixture = await createFixture();
488
- const server = await writeServer(
489
- fixture.cwd,
490
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "invalid-call-state", version: "1" } } }); else if (message.method === "tools/call") send({ jsonrpc: "2.0", id: message.id, result: { content: [{ type: "text", text: 42 }] } }); } });`,
491
- );
492
- try {
493
- await expect(
494
- tool(fixture.tools, "mcp_call").execute(
495
- "invalid-call-state",
496
- { command: [process.execPath, server], name: "broken" },
497
- undefined,
498
- undefined,
499
- {} as never,
500
- ),
501
- ).rejects.toThrow(/invalid MCP tool result content/iu);
502
- await expect(fixture.panels.snapshot()).resolves.toMatchObject([{ data: { lastCall: null } }]);
503
- } finally {
504
- await fixture.context.fiber.dispose();
505
- }
506
- });
507
-
508
- test("normalizes resource and prompt payloads into agent text and image content", async () => {
509
- const fixture = await createFixture();
510
- const server = await writeServer(
511
- fixture.cwd,
512
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "content", version: "1" } } }); else if (message.method === "resources/read") send({ jsonrpc: "2.0", id: message.id, result: { contents: [{ uri: message.params.uri, mimeType: "text/plain", text: "resource body" }, { uri: "fixture://image", mimeType: "image/png", blob: "aGVsbG8=" }] } }); else if (message.method === "prompts/get") send({ jsonrpc: "2.0", id: message.id, result: { description: "Review", messages: [{ role: "user", content: { type: "text", text: "Review this" } }] } }); } });`,
513
- );
514
- try {
515
- await expect(
516
- tool(fixture.tools, "mcp_read_resource").execute(
517
- "read-resource",
518
- { command: [process.execPath, server], uri: "fixture://readme" },
519
- undefined,
520
- undefined,
521
- {} as never,
522
- ),
523
- ).resolves.toMatchObject({
524
- content: [
525
- { type: "text", text: "resource body" },
526
- { type: "image", data: "aGVsbG8=", mimeType: "image/png" },
527
- ],
528
- });
529
- await expect(
530
- tool(fixture.tools, "mcp_get_prompt").execute("get-prompt", { command: [process.execPath, server], name: "review" }, undefined, undefined, {} as never),
531
- ).resolves.toMatchObject({ content: [{ type: "text", text: "[user]\nReview this" }] });
532
- } finally {
533
- await fixture.context.fiber.dispose();
534
- }
535
- });
536
-
537
- test("accepts spec-valid binary resources without an optional MIME type", async () => {
538
- const fixture = await createFixture();
539
- const server = await writeServer(
540
- fixture.cwd,
541
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "optional-mime", version: "1" } } }); else if (message.method === "resources/read") send({ jsonrpc: "2.0", id: message.id, result: { contents: [{ uri: "fixture://binary", blob: "aGVsbG8=" }] } }); else if (message.method === "tools/call") send({ jsonrpc: "2.0", id: message.id, result: { content: [{ type: "resource", resource: { uri: "fixture://embedded", blob: "aGVsbG8=" } }] } }); } });`,
542
- );
543
- try {
544
- await expect(
545
- tool(fixture.tools, "mcp_read_resource").execute(
546
- "optional-mime-read",
547
- { command: [process.execPath, server], uri: "fixture://binary" },
548
- undefined,
549
- undefined,
550
- {} as never,
551
- ),
552
- ).resolves.toMatchObject({ content: [{ type: "text", text: "[MCP binary resource omitted: fixture://binary (unknown MIME type)]" }] });
553
- await expect(
554
- tool(fixture.tools, "mcp_call").execute(
555
- "optional-mime-call",
556
- { command: [process.execPath, server], name: "binary" },
557
- undefined,
558
- undefined,
559
- {} as never,
560
- ),
561
- ).resolves.toMatchObject({ content: [{ type: "text", text: "[MCP binary resource omitted: fixture://embedded (unknown MIME type)]" }] });
562
- } finally {
563
- await fixture.context.fiber.dispose();
564
- }
565
- });
566
-
567
- test("does not mix inventories from different MCP servers", async () => {
568
- const fixture = await createFixture();
569
- const resourceServer = await writeServer(
570
- fixture.cwd,
571
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "resources", version: "1" } } }); else if (message.method === "resources/list") send({ jsonrpc: "2.0", id: message.id, result: { resources: [{ uri: "fixture://one", name: "One" }] } }); } });`,
572
- );
573
- const toolServer = await writeServer(
574
- fixture.cwd,
575
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "tools", version: "1" } } }); else if (message.method === "tools/list") send({ jsonrpc: "2.0", id: message.id, result: { tools: [{ name: "echo", inputSchema: { type: "object" } }] } }); } });`,
576
- );
577
- try {
578
- await tool(fixture.tools, "mcp_list_resources").execute("resources", { command: [process.execPath, resourceServer] }, undefined, undefined, {} as never);
579
- await tool(fixture.tools, "mcp_list_tools").execute("tools", { command: [process.execPath, toolServer] }, undefined, undefined, {} as never);
580
- await expect(fixture.panels.snapshot()).resolves.toMatchObject([{ data: { resources: [], tools: [{ name: "echo" }] } }]);
581
- } finally {
582
- await fixture.context.fiber.dispose();
583
- }
584
- });
585
-
586
- test("rejects NUL command arguments and invalid server ids before spawning", async () => {
587
- const fixture = await createFixture();
588
- const server = await writeServer(
589
- fixture.cwd,
590
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "validation", version: "1" } } }); } });`,
591
- );
592
- try {
593
- await expect(
594
- tool(fixture.tools, "mcp_list_tools").execute("nul-command", { command: [process.execPath, `bad\0argument`] }, undefined, undefined, {} as never),
595
- ).rejects.toThrow(/command.*NUL/iu);
596
- await expect(
597
- tool(fixture.tools, "mcp_server_start").execute(
598
- "invalid-id",
599
- { command: [process.execPath, server], serverId: "bad id" },
600
- undefined,
601
- undefined,
602
- {} as never,
603
- ),
604
- ).rejects.toThrow(/serverId.*letters.*numbers/iu);
605
- } finally {
606
- await fixture.context.fiber.dispose();
607
- }
608
- });
609
-
610
- test("validates tool names, prompt names, and resource URIs before spawning", async () => {
611
- const fixture = await createFixture();
612
- try {
613
- await expect(
614
- tool(fixture.tools, "mcp_call").execute(
615
- "invalid-tool-name",
616
- { command: ["/definitely/missing-mcp-server"], name: "" },
617
- undefined,
618
- undefined,
619
- {} as never,
620
- ),
621
- ).rejects.toThrow(/tool name.*1.*512/iu);
622
- await expect(
623
- tool(fixture.tools, "mcp_get_prompt").execute(
624
- "invalid-prompt-name",
625
- { command: ["/definitely/missing-mcp-server"], name: "bad\0name" },
626
- undefined,
627
- undefined,
628
- {} as never,
629
- ),
630
- ).rejects.toThrow(/prompt name.*NUL/iu);
631
- await expect(
632
- tool(fixture.tools, "mcp_read_resource").execute(
633
- "invalid-uri",
634
- { command: ["/definitely/missing-mcp-server"], uri: "bad\0uri" },
635
- undefined,
636
- undefined,
637
- {} as never,
638
- ),
639
- ).rejects.toThrow(/resource URI.*NUL/iu);
640
- } finally {
641
- await fixture.context.fiber.dispose();
642
- }
643
- });
644
-
645
- test("escalates to SIGKILL when a one-shot server ignores graceful shutdown", async () => {
646
- if (process.platform === "win32") return;
647
- const fixture = await createFixture();
648
- const pidPath = join(fixture.cwd, "server.pid");
649
- const requested = join(fixture.cwd, "kill-requested");
650
- const server = await writeServer(
651
- fixture.cwd,
652
- `import { writeFileSync } from "node:fs"; writeFileSync(${JSON.stringify(pidPath)}, String(process.pid)); process.on("SIGTERM", () => {}); setInterval(() => {}, 1000); let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "ignore-term", version: "1" } } }); else if (message.method === "tools/list") writeFileSync(${JSON.stringify(requested)}, "yes"); } });`,
653
- );
654
- const pending = tool(fixture.tools, "mcp_list_tools").execute("kill-fallback", { command: [process.execPath, server] }, undefined, undefined, {} as never);
655
- void pending.catch(() => undefined);
656
- let pid: number | undefined;
657
- try {
658
- await vi.waitFor(() => expect(existsSync(requested)).toBe(true));
659
- pid = Number(await readFile(pidPath, "utf8"));
660
- await fixture.context.fiber.dispose();
661
- await pending.catch(() => undefined);
662
- await vi.waitFor(
663
- () => {
664
- expect(() => process.kill(pid!, 0)).toThrow();
665
- },
666
- { timeout: 1500 },
667
- );
668
- } finally {
669
- if (pid !== undefined) {
670
- try {
671
- process.kill(pid, "SIGKILL");
672
- } catch {
673
- // The plugin already reaped the process.
674
- }
675
- }
676
- await fixture.context.fiber.dispose();
677
- await pending.catch(() => undefined);
678
- }
679
- });
680
-
681
- test("cancels a stop request while an earlier managed request is still running", async () => {
682
- const cwd = await mkdtemp(join(tmpdir(), "pi-harness-mcp-client-stop-"));
683
- temporaryDirectories.push(cwd);
684
- const requested = join(cwd, "stop-wait-requested");
685
- const server = await writeServer(
686
- cwd,
687
- `import { writeFileSync } from "node:fs"; let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "stop-wait", version: "1" } } }); else if (message.method === "tools/list") writeFileSync(${JSON.stringify(requested)}, "yes"); } });`,
688
- );
689
- const fixture = await createFixture({ servers: [{ id: "stop-wait", command: [process.execPath, server] }] });
690
- await tool(fixture.tools, "mcp_server_start").execute("start", { serverId: "stop-wait" }, undefined, undefined, {} as never);
691
- const first = tool(fixture.tools, "mcp_list_tools").execute("list", { serverId: "stop-wait" }, undefined, undefined, {} as never);
692
- void first.catch(() => undefined);
693
- const controller = new AbortController();
694
- let stopOutcome: unknown;
695
- let stopping: Promise<unknown> | undefined;
696
- try {
697
- await vi.waitFor(() => expect(existsSync(requested)).toBe(true));
698
- stopping = tool(fixture.tools, "mcp_server_stop").execute("stop", { serverId: "stop-wait" }, controller.signal, undefined, {} as never);
699
- void stopping.catch((error: unknown) => {
700
- stopOutcome = error;
701
- });
702
- controller.abort(new Error("stop cancelled"));
703
- await vi.waitFor(() => expect(stopOutcome).toBeInstanceOf(Error), { timeout: 500 });
704
- expect((stopOutcome as Error).message).toMatch(/cancelled/iu);
705
- } finally {
706
- await fixture.context.fiber.dispose();
707
- await first.catch(() => undefined);
708
- await stopping?.catch(() => undefined);
709
- }
710
- });
711
-
712
- test("bounds captured server stderr by UTF-8 bytes", async () => {
713
- const fixture = await createFixture();
714
- const server = await writeServer(
715
- fixture.cwd,
716
- `process.stderr.write("🙂".repeat(5000)); let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; const newline = buffer.indexOf("\\n"); if (newline < 0) return; const message = JSON.parse(buffer.slice(0, newline)); send({ jsonrpc: "2.0", id: message.id, error: { code: -32000, message: "boom" } }); });`,
717
- );
718
- let failure: unknown;
719
- try {
720
- await tool(fixture.tools, "mcp_list_tools")
721
- .execute("stderr", { command: [process.execPath, server] }, undefined, undefined, {} as never)
722
- .catch((error: unknown) => {
723
- failure = error;
724
- });
725
- expect(failure).toBeInstanceOf(Error);
726
- expect(Buffer.byteLength((failure as Error).message, "utf8")).toBeLessThanOrEqual(8300);
727
- } finally {
728
- await fixture.context.fiber.dispose();
729
- }
730
- });
731
-
732
- test("rejects invalid UTF-8 in MCP JSON frames", async () => {
733
- const fixture = await createFixture();
734
- const server = await writeServer(
735
- fixture.cwd,
736
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "utf8", version: "1" } } }); else if (message.method === "tools/list") process.stdout.write(Buffer.concat([Buffer.from('{"jsonrpc":"2.0","id":' + message.id + ',"result":{"tools":[{"name":"'), Buffer.from([0xc3, 0x28]), Buffer.from('","inputSchema":{"type":"object"}}]}}\\n')])); } });`,
737
- );
738
- try {
739
- await expect(
740
- tool(fixture.tools, "mcp_list_tools").execute("invalid-utf8", { command: [process.execPath, server] }, undefined, undefined, {} as never),
741
- ).rejects.toThrow(/valid UTF-8/iu);
742
- } finally {
743
- await fixture.context.fiber.dispose();
744
- }
745
- });
746
-
747
- test("rejects malformed JSON-RPC response envelopes", async () => {
748
- const fixture = await createFixture();
749
- const server = await writeServer(
750
- fixture.cwd,
751
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "rpc", version: "1" } } }); else if (message.method === "tools/list") send({ id: message.id, result: { tools: [] } }); } });`,
752
- );
753
- try {
754
- await expect(
755
- tool(fixture.tools, "mcp_list_tools").execute("invalid-rpc", { command: [process.execPath, server] }, undefined, undefined, {} as never),
756
- ).rejects.toThrow(/invalid JSON-RPC response/iu);
757
- } finally {
758
- await fixture.context.fiber.dispose();
759
- }
760
- });
761
-
762
- test("rejects an invalid initialize result before sending initialized", async () => {
763
- const fixture = await createFixture();
764
- const server = await writeServer(
765
- fixture.cwd,
766
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "unsupported", capabilities: [], serverInfo: { name: "", version: 1 } } }); else if (message.method === "tools/list") send({ jsonrpc: "2.0", id: message.id, result: { tools: [] } }); } });`,
767
- );
768
- try {
769
- await expect(
770
- tool(fixture.tools, "mcp_list_tools").execute("invalid-initialize", { command: [process.execPath, server] }, undefined, undefined, {} as never),
771
- ).rejects.toThrow(/invalid MCP initialize result/iu);
772
- } finally {
773
- await fixture.context.fiber.dispose();
774
- }
775
- });
776
-
777
- test("detaches resource and prompt details from panel state", async () => {
778
- const fixture = await createFixture();
779
- const server = await writeServer(
780
- fixture.cwd,
781
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "detach", version: "1" } } }); else if (message.method === "resources/list") send({ jsonrpc: "2.0", id: message.id, result: { resources: [{ uri: "fixture://original", name: "Original" }] } }); else if (message.method === "prompts/list") send({ jsonrpc: "2.0", id: message.id, result: { prompts: [{ name: "original", arguments: [] }] } }); } });`,
782
- );
783
- try {
784
- const resourcesResult = await tool(fixture.tools, "mcp_list_resources").execute(
785
- "resources",
786
- { command: [process.execPath, server] },
787
- undefined,
788
- undefined,
789
- {} as never,
790
- );
791
- (resourcesResult.details as { resources: Array<{ uri: string }> }).resources[0]!.uri = "fixture://mutated";
792
- await expect(fixture.panels.snapshot()).resolves.toMatchObject([{ data: { resources: [{ uri: "fixture://original" }] } }]);
793
- const promptsResult = await tool(fixture.tools, "mcp_list_prompts").execute(
794
- "prompts",
795
- { command: [process.execPath, server] },
796
- undefined,
797
- undefined,
798
- {} as never,
799
- );
800
- (promptsResult.details as { prompts: Array<{ name: string }> }).prompts[0]!.name = "mutated";
801
- await expect(fixture.panels.snapshot()).resolves.toMatchObject([{ data: { prompts: [{ name: "original" }] } }]);
802
- } finally {
803
- await fixture.context.fiber.dispose();
804
- }
805
- });
806
-
807
- test("detaches managed server command snapshots from tool results", async () => {
808
- const fixture = await createFixture();
809
- const server = await writeServer(
810
- fixture.cwd,
811
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "snapshot", version: "1" } } }); } });`,
812
- );
813
- try {
814
- const started = await tool(fixture.tools, "mcp_server_start").execute(
815
- "start",
816
- { command: [process.execPath, server], serverId: "snapshot" },
817
- undefined,
818
- undefined,
819
- {} as never,
820
- );
821
- (started.details as { command: string[] }).command[0] = "mutated";
822
- const status = await tool(fixture.tools, "mcp_server_status").execute("status", {}, undefined, undefined, {} as never);
823
- expect((status.details as { servers: Array<{ executable: string }> }).servers[0]?.executable).toBe(process.execPath.split("/").pop());
824
- (status.details as { servers: Array<{ executable: string }> }).servers[0]!.executable = "mutated-again";
825
- const secondStatus = await tool(fixture.tools, "mcp_server_status").execute("status-again", {}, undefined, undefined, {} as never);
826
- expect((secondStatus.details as { servers: Array<{ executable: string }> }).servers[0]?.executable).toBe(process.execPath.split("/").pop());
827
- await expect(fixture.panels.snapshot()).resolves.toMatchObject([
828
- { data: { servers: [{ id: "snapshot", executable: process.execPath.split("/").pop(), argumentCount: 1, status: "running" }] } },
829
- ]);
830
- } finally {
831
- await fixture.context.fiber.dispose();
832
- }
833
- });
834
-
835
- test("reserves managed server ids while concurrent starts initialize", async () => {
836
- const fixture = await createFixture();
837
- const server = await writeServer(
838
- fixture.cwd,
839
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") setTimeout(() => send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "concurrent", version: "1" } } }), 100); } });`,
840
- );
841
- try {
842
- const starts = await Promise.allSettled([
843
- tool(fixture.tools, "mcp_server_start").execute(
844
- "start-1",
845
- { command: [process.execPath, server], serverId: "same" },
846
- undefined,
847
- undefined,
848
- {} as never,
849
- ),
850
- tool(fixture.tools, "mcp_server_start").execute(
851
- "start-2",
852
- { command: [process.execPath, server], serverId: "same" },
853
- undefined,
854
- undefined,
855
- {} as never,
856
- ),
857
- ]);
858
- expect(starts.filter((result) => result.status === "fulfilled")).toHaveLength(1);
859
- expect(starts.filter((result) => result.status === "rejected")).toHaveLength(1);
860
- const rejection = starts.find((result) => result.status === "rejected");
861
- expect(rejection?.status).toBe("rejected");
862
- const reason: unknown = rejection?.status === "rejected" ? (rejection.reason as unknown) : undefined;
863
- expect(reason).toBeInstanceOf(Error);
864
- expect((reason as Error).message).toMatch(/already.*starting|already running/iu);
865
- } finally {
866
- await fixture.context.fiber.dispose();
867
- }
868
- });
869
-
870
- test("releases a managed server id when process spawning throws synchronously", async () => {
871
- const fixture = await createFixture({ launchCwd: "invalid\0cwd" });
872
- try {
873
- const start = () =>
874
- tool(fixture.tools, "mcp_server_start").execute(
875
- "sync-spawn-failure",
876
- { command: [process.execPath, "server.mjs"], serverId: "retryable" },
877
- undefined,
878
- undefined,
879
- {} as never,
880
- );
881
- await expect(start()).rejects.toThrow(/null bytes|must be a string without null bytes|invalid.*cwd/iu);
882
- await expect(start()).rejects.toThrow(/null bytes|must be a string without null bytes|invalid.*cwd/iu);
883
- } finally {
884
- await fixture.context.fiber.dispose();
885
- }
886
- });
887
-
888
- test("does not expose command arguments in the plugin panel", async () => {
889
- const secret = "secret-command-argument";
890
- const fixture = await createFixture({ servers: [{ id: "private", command: [process.execPath, secret] }] });
891
- try {
892
- const panels = await fixture.panels.snapshot();
893
- expect(JSON.stringify(panels)).not.toContain(secret);
894
- expect(panels).toMatchObject([
895
- {
896
- data: {
897
- servers: [{ id: "private", executable: process.execPath.split("/").pop(), argumentCount: 1, status: "stopped" }],
898
- },
899
- },
900
- ]);
901
- const status = await tool(fixture.tools, "mcp_server_status").execute("status", {}, undefined, undefined, {} as never);
902
- expect(JSON.stringify(status)).not.toContain(secret);
903
- expect(status).toMatchObject({ details: { servers: [{ id: "private", executable: process.execPath.split("/").pop(), argumentCount: 1 }] } });
904
- } finally {
905
- await fixture.context.fiber.dispose();
906
- }
907
- });
908
-
909
- test("does not expose one-shot command arguments as the latest server label", async () => {
910
- const fixture = await createFixture();
911
- const secret = "secret-one-shot-argument";
912
- const server = await writeServer(
913
- fixture.cwd,
914
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "private", version: "1" } } }); else if (message.method === "tools/list") send({ jsonrpc: "2.0", id: message.id, result: { tools: [] } }); } });`,
915
- );
916
- try {
917
- await tool(fixture.tools, "mcp_list_tools").execute("private", { command: [process.execPath, server, secret] }, undefined, undefined, {} as never);
918
- const panels = await fixture.panels.snapshot();
919
- expect(JSON.stringify(panels)).not.toContain(secret);
920
- expect(panels).toMatchObject([{ data: { server: `${process.execPath.split("/").pop()} (+2 args)` } }]);
921
- } finally {
922
- await fixture.context.fiber.dispose();
923
- }
924
- });
925
-
926
- test("accepts only string values for MCP prompt arguments", async () => {
927
- const fixture = await createFixture();
928
- try {
929
- await expect(
930
- tool(fixture.tools, "mcp_get_prompt").execute(
931
- "prompt-arguments",
932
- { command: ["/definitely/missing-mcp-server"], name: "review", arguments: { count: 2 } },
933
- undefined,
934
- undefined,
935
- {} as never,
936
- ),
937
- ).rejects.toThrow(/prompt arguments.*string values/iu);
938
- } finally {
939
- await fixture.context.fiber.dispose();
940
- }
941
- });
942
-
943
- test("rejects oversized configured server inventories", async () => {
944
- let fixture: Awaited<ReturnType<typeof createFixture>> | undefined;
945
- let failure: unknown;
946
- try {
947
- fixture = await createFixture({
948
- servers: Array.from({ length: 129 }, (_, index) => ({ id: `server-${index}`, command: [process.execPath, "server.mjs"] })),
949
- });
950
- } catch (error) {
951
- failure = error;
952
- } finally {
953
- await fixture?.context.fiber.dispose();
954
- }
955
- expect(failure).toBeInstanceOf(Error);
956
- expect((failure as Error).message).toMatch(/configured.*128 servers/iu);
957
- });
958
-
959
- test("does not allocate an automatic id reserved by configuration", async () => {
960
- const cwd = await mkdtemp(join(tmpdir(), "pi-harness-mcp-client-id-"));
961
- temporaryDirectories.push(cwd);
962
- const configuredServer = await writeServer(cwd, `process.stdin.resume();`);
963
- const directServer = await writeServer(
964
- cwd,
965
- `let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "direct", version: "1" } } }); } });`,
966
- );
967
- const fixture = await createFixture({ servers: [{ id: "mcp-1", command: [process.execPath, configuredServer] }] });
968
- try {
969
- await expect(
970
- tool(fixture.tools, "mcp_server_start").execute("automatic-id", { command: [process.execPath, directServer] }, undefined, undefined, {} as never),
971
- ).resolves.toMatchObject({ details: { serverId: "mcp-2" } });
972
- } finally {
973
- await fixture.context.fiber.dispose();
974
- }
975
- });
976
-
977
- test("rejects ambiguous one-shot and managed server targets", async () => {
978
- const fixture = await createFixture();
979
- try {
980
- await expect(
981
- tool(fixture.tools, "mcp_list_tools").execute(
982
- "ambiguous-target",
983
- { command: [process.execPath, "server.mjs"], serverId: "configured" },
984
- undefined,
985
- undefined,
986
- {} as never,
987
- ),
988
- ).rejects.toThrow(/either command or serverId, not both/iu);
989
- } finally {
990
- await fixture.context.fiber.dispose();
991
- }
992
- });
993
-
994
- test("reports truncated managed server inventory in the panel", async () => {
995
- const fixture = await createFixture({
996
- servers: Array.from({ length: 25 }, (_, index) => ({ id: `server-${index}`, command: [process.execPath, "server.mjs"] })),
997
- });
998
- try {
999
- const panels = await fixture.panels.snapshot();
1000
- expect((panels[0]?.data as { servers: unknown[] }).servers).toHaveLength(20);
1001
- expect(panels).toMatchObject([{ data: { inventory: { servers: { total: 25, shown: 20, truncated: true } } } }]);
1002
- } finally {
1003
- await fixture.context.fiber.dispose();
1004
- }
1005
- });
1006
-
1007
- test("stops a managed server without waiting for an in-flight request timeout", async () => {
1008
- const cwd = await mkdtemp(join(tmpdir(), "pi-harness-mcp-client-fast-stop-"));
1009
- temporaryDirectories.push(cwd);
1010
- const requested = join(cwd, "fast-stop-requested");
1011
- const server = await writeServer(
1012
- cwd,
1013
- `import { writeFileSync } from "node:fs"; let buffer = ""; const send = (value) => process.stdout.write(JSON.stringify(value) + "\\n"); process.stdin.setEncoding("utf8"); process.stdin.on("data", (chunk) => { buffer += chunk; for (;;) { const newline = buffer.indexOf("\\n"); if (newline < 0) break; const line = buffer.slice(0, newline); buffer = buffer.slice(newline + 1); if (!line.trim()) continue; const message = JSON.parse(line); if (message.method === "initialize") send({ jsonrpc: "2.0", id: message.id, result: { protocolVersion: "2025-06-18", capabilities: {}, serverInfo: { name: "fast-stop", version: "1" } } }); else if (message.method === "tools/list") writeFileSync(${JSON.stringify(requested)}, "yes"); } });`,
1014
- );
1015
- const fixture = await createFixture({ servers: [{ id: "fast-stop", command: [process.execPath, server] }] });
1016
- await tool(fixture.tools, "mcp_server_start").execute("start", { serverId: "fast-stop" }, undefined, undefined, {} as never);
1017
- const pending = tool(fixture.tools, "mcp_list_tools").execute("list", { serverId: "fast-stop" }, undefined, undefined, {} as never);
1018
- void pending.catch(() => undefined);
1019
- let stopped: unknown;
1020
- let stopping: Promise<unknown> | undefined;
1021
- try {
1022
- await vi.waitFor(() => expect(existsSync(requested)).toBe(true));
1023
- stopping = tool(fixture.tools, "mcp_server_stop")
1024
- .execute("stop", { serverId: "fast-stop" }, undefined, undefined, {} as never)
1025
- .then((result) => {
1026
- stopped = result;
1027
- });
1028
- void stopping.catch(() => undefined);
1029
- await vi.waitFor(() => expect(stopped).toMatchObject({ details: { stopped: true } }), { timeout: 500 });
1030
- await expect(pending).rejects.toThrow(/stopped/iu);
1031
- } finally {
1032
- await fixture.context.fiber.dispose();
1033
- await pending.catch(() => undefined);
1034
- await stopping?.catch(() => undefined);
1035
- }
1036
- });
1037
- });