@pi-harness/pi-harness 0.1.12 → 0.1.14

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 (1363) hide show
  1. package/README.md +678 -2
  2. package/apps/web/dist/assets/index-BVI_IS-R.css +2 -0
  3. package/apps/web/dist/assets/index-C98SJjJd.js +22 -0
  4. package/apps/web/dist/index.html +2 -2
  5. package/apps/web/package.json +6 -6
  6. package/node_modules/@pi-harness/api-gateway/dist/index.d.ts.map +1 -1
  7. package/node_modules/@pi-harness/api-gateway/dist/index.js +97 -9
  8. package/node_modules/@pi-harness/api-gateway/dist/index.js.map +1 -1
  9. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/agent-teams.json +6 -6
  10. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/anchored-standard.json +1 -1
  11. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/annotation.json +1 -2
  12. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/archify.json +1 -1
  13. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/at-file.json +11 -5
  14. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/auto-mode.json +1 -1
  15. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/better-sidebar.json +1 -1
  16. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/browser-fetch.json +12 -5
  17. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/browser-session.json +14 -8
  18. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/canvas-draw.json +3 -4
  19. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/change-verifier.json +1 -1
  20. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cleaner.json +11 -6
  21. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cli-notifier.json +5 -5
  22. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/code2skill.json +5 -5
  23. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/colleague-skill.json +1 -2
  24. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/context-doctor.json +12 -7
  25. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/context.json +10 -5
  26. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cordis-group.json +2 -2
  27. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cordis-logger-console.json +4 -4
  28. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cordis-timer.json +3 -3
  29. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cost-meter.json +9 -6
  30. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/dependency-checker.json +13 -10
  31. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +10 -5
  32. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/fail-logger.json +11 -6
  33. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/genui.json +7 -5
  34. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +13 -8
  35. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/graph-memory.json +13 -7
  36. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/history-compressor.json +1 -1
  37. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/hol-guard.json +1 -1
  38. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/i18n-pair.json +9 -6
  39. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/image-compressor.json +1 -1
  40. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/llm-verifier.json +1 -1
  41. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mcp-client.json +12 -7
  42. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mcp-panel.json +1 -1
  43. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/memory.json +1 -1
  44. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mirage-bridge.json +1 -1
  45. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mock-server.json +1 -1
  46. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/modlens.json +4 -4
  47. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/module-search.json +1 -1
  48. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +1 -1
  49. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/openpets.json +9 -5
  50. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plan-execute.json +1 -1
  51. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-check.json +1 -1
  52. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-dev.json +8 -6
  53. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-finder.json +1 -1
  54. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-radar.json +1 -1
  55. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-stars.json +15 -7
  56. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-guard.json +1 -1
  57. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-library.json +1 -1
  58. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/readme-gen.json +12 -8
  59. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/recall-unread.json +11 -6
  60. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/reverse-skill.json +1 -1
  61. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/reviewer-bot.json +1 -1
  62. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/runtime-doctor.json +1 -1
  63. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/secure-audit.json +1 -1
  64. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-bookmarks.json +1 -1
  65. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-bridge.json +13 -8
  66. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-compare.json +1 -1
  67. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-export.json +1 -1
  68. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-insights.json +12 -6
  69. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-search.json +1 -1
  70. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/skill-catalog.json +1 -1
  71. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/skill-guard.json +9 -5
  72. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/sql-lens.json +13 -7
  73. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/synapse.json +1 -1
  74. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/tab-manager.json +1 -1
  75. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/taskboard.json +1 -1
  76. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +1 -1
  77. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/test-harness.json +14 -7
  78. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/theme-studio.json +1 -1
  79. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/token-guard.json +12 -6
  80. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/turn-rewind.json +11 -6
  81. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/undo-savepoint.json +1 -1
  82. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/vision-toolkit.json +8 -5
  83. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/web-research.json +1 -1
  84. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/workspace-navigator.json +1 -1
  85. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/workspace-search.json +1 -1
  86. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/yaml-validator.json +8 -5
  87. package/node_modules/@pi-harness/api-gateway/package.json +1 -1
  88. package/node_modules/@pi-harness/cli/dist/bin.js.map +1 -1
  89. package/node_modules/@pi-harness/cli/dist/main.d.ts.map +1 -1
  90. package/node_modules/@pi-harness/cli/dist/main.js +2 -2
  91. package/node_modules/@pi-harness/cli/dist/main.js.map +1 -1
  92. package/node_modules/@pi-harness/cli/dist/node-stdio.d.ts.map +1 -1
  93. package/node_modules/@pi-harness/cli/dist/node-stdio.js +85 -20
  94. package/node_modules/@pi-harness/cli/dist/node-stdio.js.map +1 -1
  95. package/node_modules/@pi-harness/cli/package.json +1 -1
  96. package/node_modules/@pi-harness/core/dist/atomic-write.d.ts +8 -0
  97. package/node_modules/@pi-harness/core/dist/atomic-write.d.ts.map +1 -0
  98. package/node_modules/@pi-harness/core/dist/atomic-write.js +40 -0
  99. package/node_modules/@pi-harness/core/dist/atomic-write.js.map +1 -0
  100. package/node_modules/@pi-harness/core/dist/boot.d.ts.map +1 -1
  101. package/node_modules/@pi-harness/core/dist/boot.js +132 -10
  102. package/node_modules/@pi-harness/core/dist/boot.js.map +1 -1
  103. package/node_modules/@pi-harness/core/dist/bounded-file.d.ts +7 -0
  104. package/node_modules/@pi-harness/core/dist/bounded-file.d.ts.map +1 -0
  105. package/node_modules/@pi-harness/core/dist/bounded-file.js +50 -0
  106. package/node_modules/@pi-harness/core/dist/bounded-file.js.map +1 -0
  107. package/node_modules/@pi-harness/core/dist/config.d.ts +2 -0
  108. package/node_modules/@pi-harness/core/dist/config.d.ts.map +1 -1
  109. package/node_modules/@pi-harness/core/dist/config.js +21 -0
  110. package/node_modules/@pi-harness/core/dist/config.js.map +1 -1
  111. package/node_modules/@pi-harness/core/dist/cordis-timer.d.ts +15 -0
  112. package/node_modules/@pi-harness/core/dist/cordis-timer.d.ts.map +1 -0
  113. package/node_modules/@pi-harness/core/dist/cordis-timer.js +99 -0
  114. package/node_modules/@pi-harness/core/dist/cordis-timer.js.map +1 -0
  115. package/node_modules/@pi-harness/core/dist/http.js +1 -1
  116. package/node_modules/@pi-harness/core/dist/http.js.map +1 -1
  117. package/node_modules/@pi-harness/core/dist/plugins/agent-teams.d.ts +5 -1
  118. package/node_modules/@pi-harness/core/dist/plugins/agent-teams.d.ts.map +1 -1
  119. package/node_modules/@pi-harness/core/dist/plugins/agent-teams.js +986 -105
  120. package/node_modules/@pi-harness/core/dist/plugins/agent-teams.js.map +1 -1
  121. package/node_modules/@pi-harness/core/dist/plugins/anchored-standard.d.ts +1 -0
  122. package/node_modules/@pi-harness/core/dist/plugins/anchored-standard.d.ts.map +1 -1
  123. package/node_modules/@pi-harness/core/dist/plugins/anchored-standard.js +39 -11
  124. package/node_modules/@pi-harness/core/dist/plugins/anchored-standard.js.map +1 -1
  125. package/node_modules/@pi-harness/core/dist/plugins/annotation.d.ts +1 -0
  126. package/node_modules/@pi-harness/core/dist/plugins/annotation.d.ts.map +1 -1
  127. package/node_modules/@pi-harness/core/dist/plugins/annotation.js +35 -17
  128. package/node_modules/@pi-harness/core/dist/plugins/annotation.js.map +1 -1
  129. package/node_modules/@pi-harness/core/dist/plugins/archify.d.ts +1 -0
  130. package/node_modules/@pi-harness/core/dist/plugins/archify.d.ts.map +1 -1
  131. package/node_modules/@pi-harness/core/dist/plugins/archify.js +69 -22
  132. package/node_modules/@pi-harness/core/dist/plugins/archify.js.map +1 -1
  133. package/node_modules/@pi-harness/core/dist/plugins/at-file.d.ts +5 -1
  134. package/node_modules/@pi-harness/core/dist/plugins/at-file.d.ts.map +1 -1
  135. package/node_modules/@pi-harness/core/dist/plugins/at-file.js +120 -29
  136. package/node_modules/@pi-harness/core/dist/plugins/at-file.js.map +1 -1
  137. package/node_modules/@pi-harness/core/dist/plugins/auto-mode.d.ts.map +1 -1
  138. package/node_modules/@pi-harness/core/dist/plugins/auto-mode.js +89 -20
  139. package/node_modules/@pi-harness/core/dist/plugins/auto-mode.js.map +1 -1
  140. package/node_modules/@pi-harness/core/dist/plugins/better-sidebar.d.ts +1 -0
  141. package/node_modules/@pi-harness/core/dist/plugins/better-sidebar.d.ts.map +1 -1
  142. package/node_modules/@pi-harness/core/dist/plugins/better-sidebar.js +14 -4
  143. package/node_modules/@pi-harness/core/dist/plugins/better-sidebar.js.map +1 -1
  144. package/node_modules/@pi-harness/core/dist/plugins/browser-fetch.d.ts +1 -0
  145. package/node_modules/@pi-harness/core/dist/plugins/browser-fetch.d.ts.map +1 -1
  146. package/node_modules/@pi-harness/core/dist/plugins/browser-fetch.js +288 -96
  147. package/node_modules/@pi-harness/core/dist/plugins/browser-fetch.js.map +1 -1
  148. package/node_modules/@pi-harness/core/dist/plugins/browser-session.d.ts.map +1 -1
  149. package/node_modules/@pi-harness/core/dist/plugins/browser-session.js +445 -106
  150. package/node_modules/@pi-harness/core/dist/plugins/browser-session.js.map +1 -1
  151. package/node_modules/@pi-harness/core/dist/plugins/canvas-draw.d.ts +1 -0
  152. package/node_modules/@pi-harness/core/dist/plugins/canvas-draw.d.ts.map +1 -1
  153. package/node_modules/@pi-harness/core/dist/plugins/canvas-draw.js +71 -19
  154. package/node_modules/@pi-harness/core/dist/plugins/canvas-draw.js.map +1 -1
  155. package/node_modules/@pi-harness/core/dist/plugins/change-verifier.d.ts +1 -0
  156. package/node_modules/@pi-harness/core/dist/plugins/change-verifier.d.ts.map +1 -1
  157. package/node_modules/@pi-harness/core/dist/plugins/change-verifier.js +30 -9
  158. package/node_modules/@pi-harness/core/dist/plugins/change-verifier.js.map +1 -1
  159. package/node_modules/@pi-harness/core/dist/plugins/cleaner.d.ts +5 -1
  160. package/node_modules/@pi-harness/core/dist/plugins/cleaner.d.ts.map +1 -1
  161. package/node_modules/@pi-harness/core/dist/plugins/cleaner.js +337 -40
  162. package/node_modules/@pi-harness/core/dist/plugins/cleaner.js.map +1 -1
  163. package/node_modules/@pi-harness/core/dist/plugins/cli-notifier.d.ts +2 -1
  164. package/node_modules/@pi-harness/core/dist/plugins/cli-notifier.d.ts.map +1 -1
  165. package/node_modules/@pi-harness/core/dist/plugins/cli-notifier.js +99 -42
  166. package/node_modules/@pi-harness/core/dist/plugins/cli-notifier.js.map +1 -1
  167. package/node_modules/@pi-harness/core/dist/plugins/code2skill.d.ts +1 -0
  168. package/node_modules/@pi-harness/core/dist/plugins/code2skill.d.ts.map +1 -1
  169. package/node_modules/@pi-harness/core/dist/plugins/code2skill.js +178 -38
  170. package/node_modules/@pi-harness/core/dist/plugins/code2skill.js.map +1 -1
  171. package/node_modules/@pi-harness/core/dist/plugins/colleague-skill.d.ts +2 -1
  172. package/node_modules/@pi-harness/core/dist/plugins/colleague-skill.d.ts.map +1 -1
  173. package/node_modules/@pi-harness/core/dist/plugins/colleague-skill.js +79 -49
  174. package/node_modules/@pi-harness/core/dist/plugins/colleague-skill.js.map +1 -1
  175. package/node_modules/@pi-harness/core/dist/plugins/context-doctor.d.ts +6 -1
  176. package/node_modules/@pi-harness/core/dist/plugins/context-doctor.d.ts.map +1 -1
  177. package/node_modules/@pi-harness/core/dist/plugins/context-doctor.js +403 -39
  178. package/node_modules/@pi-harness/core/dist/plugins/context-doctor.js.map +1 -1
  179. package/node_modules/@pi-harness/core/dist/plugins/context.d.ts +1 -0
  180. package/node_modules/@pi-harness/core/dist/plugins/context.d.ts.map +1 -1
  181. package/node_modules/@pi-harness/core/dist/plugins/context.js +169 -42
  182. package/node_modules/@pi-harness/core/dist/plugins/context.js.map +1 -1
  183. package/node_modules/@pi-harness/core/dist/plugins/cost-meter.d.ts +4 -0
  184. package/node_modules/@pi-harness/core/dist/plugins/cost-meter.d.ts.map +1 -1
  185. package/node_modules/@pi-harness/core/dist/plugins/cost-meter.js +319 -93
  186. package/node_modules/@pi-harness/core/dist/plugins/cost-meter.js.map +1 -1
  187. package/node_modules/@pi-harness/core/dist/plugins/dependency-checker.d.ts +11 -2
  188. package/node_modules/@pi-harness/core/dist/plugins/dependency-checker.d.ts.map +1 -1
  189. package/node_modules/@pi-harness/core/dist/plugins/dependency-checker.js +463 -114
  190. package/node_modules/@pi-harness/core/dist/plugins/dependency-checker.js.map +1 -1
  191. package/node_modules/@pi-harness/core/dist/plugins/docker-sandbox.d.ts +1 -0
  192. package/node_modules/@pi-harness/core/dist/plugins/docker-sandbox.d.ts.map +1 -1
  193. package/node_modules/@pi-harness/core/dist/plugins/docker-sandbox.js +322 -80
  194. package/node_modules/@pi-harness/core/dist/plugins/docker-sandbox.js.map +1 -1
  195. package/node_modules/@pi-harness/core/dist/plugins/fail-logger.d.ts +1 -0
  196. package/node_modules/@pi-harness/core/dist/plugins/fail-logger.d.ts.map +1 -1
  197. package/node_modules/@pi-harness/core/dist/plugins/fail-logger.js +187 -20
  198. package/node_modules/@pi-harness/core/dist/plugins/fail-logger.js.map +1 -1
  199. package/node_modules/@pi-harness/core/dist/plugins/genui.d.ts +1 -0
  200. package/node_modules/@pi-harness/core/dist/plugins/genui.d.ts.map +1 -1
  201. package/node_modules/@pi-harness/core/dist/plugins/genui.js +103 -38
  202. package/node_modules/@pi-harness/core/dist/plugins/genui.js.map +1 -1
  203. package/node_modules/@pi-harness/core/dist/plugins/git-time-capsule.d.ts +8 -2
  204. package/node_modules/@pi-harness/core/dist/plugins/git-time-capsule.d.ts.map +1 -1
  205. package/node_modules/@pi-harness/core/dist/plugins/git-time-capsule.js +400 -54
  206. package/node_modules/@pi-harness/core/dist/plugins/git-time-capsule.js.map +1 -1
  207. package/node_modules/@pi-harness/core/dist/plugins/graph-memory.d.ts.map +1 -1
  208. package/node_modules/@pi-harness/core/dist/plugins/graph-memory.js +329 -42
  209. package/node_modules/@pi-harness/core/dist/plugins/graph-memory.js.map +1 -1
  210. package/node_modules/@pi-harness/core/dist/plugins/history-compressor.d.ts.map +1 -1
  211. package/node_modules/@pi-harness/core/dist/plugins/history-compressor.js +31 -12
  212. package/node_modules/@pi-harness/core/dist/plugins/history-compressor.js.map +1 -1
  213. package/node_modules/@pi-harness/core/dist/plugins/hol-guard.d.ts.map +1 -1
  214. package/node_modules/@pi-harness/core/dist/plugins/hol-guard.js +33 -13
  215. package/node_modules/@pi-harness/core/dist/plugins/hol-guard.js.map +1 -1
  216. package/node_modules/@pi-harness/core/dist/plugins/i18n-pair.d.ts +5 -1
  217. package/node_modules/@pi-harness/core/dist/plugins/i18n-pair.d.ts.map +1 -1
  218. package/node_modules/@pi-harness/core/dist/plugins/i18n-pair.js +308 -52
  219. package/node_modules/@pi-harness/core/dist/plugins/i18n-pair.js.map +1 -1
  220. package/node_modules/@pi-harness/core/dist/plugins/image-compressor.d.ts +7 -0
  221. package/node_modules/@pi-harness/core/dist/plugins/image-compressor.d.ts.map +1 -1
  222. package/node_modules/@pi-harness/core/dist/plugins/image-compressor.js +98 -25
  223. package/node_modules/@pi-harness/core/dist/plugins/image-compressor.js.map +1 -1
  224. package/node_modules/@pi-harness/core/dist/plugins/llm-verifier.d.ts.map +1 -1
  225. package/node_modules/@pi-harness/core/dist/plugins/llm-verifier.js +21 -11
  226. package/node_modules/@pi-harness/core/dist/plugins/llm-verifier.js.map +1 -1
  227. package/node_modules/@pi-harness/core/dist/plugins/mcp-client.d.ts.map +1 -1
  228. package/node_modules/@pi-harness/core/dist/plugins/mcp-client.js +986 -232
  229. package/node_modules/@pi-harness/core/dist/plugins/mcp-client.js.map +1 -1
  230. package/node_modules/@pi-harness/core/dist/plugins/mcp-panel.d.ts.map +1 -1
  231. package/node_modules/@pi-harness/core/dist/plugins/mcp-panel.js +30 -16
  232. package/node_modules/@pi-harness/core/dist/plugins/mcp-panel.js.map +1 -1
  233. package/node_modules/@pi-harness/core/dist/plugins/memory.d.ts.map +1 -1
  234. package/node_modules/@pi-harness/core/dist/plugins/memory.js +292 -59
  235. package/node_modules/@pi-harness/core/dist/plugins/memory.js.map +1 -1
  236. package/node_modules/@pi-harness/core/dist/plugins/mirage-bridge.d.ts.map +1 -1
  237. package/node_modules/@pi-harness/core/dist/plugins/mirage-bridge.js +20 -10
  238. package/node_modules/@pi-harness/core/dist/plugins/mirage-bridge.js.map +1 -1
  239. package/node_modules/@pi-harness/core/dist/plugins/mock-server.d.ts.map +1 -1
  240. package/node_modules/@pi-harness/core/dist/plugins/mock-server.js +85 -54
  241. package/node_modules/@pi-harness/core/dist/plugins/mock-server.js.map +1 -1
  242. package/node_modules/@pi-harness/core/dist/plugins/model.d.ts +3 -0
  243. package/node_modules/@pi-harness/core/dist/plugins/model.d.ts.map +1 -1
  244. package/node_modules/@pi-harness/core/dist/plugins/model.js +3 -0
  245. package/node_modules/@pi-harness/core/dist/plugins/model.js.map +1 -1
  246. package/node_modules/@pi-harness/core/dist/plugins/models.d.ts.map +1 -1
  247. package/node_modules/@pi-harness/core/dist/plugins/models.js +10 -2
  248. package/node_modules/@pi-harness/core/dist/plugins/models.js.map +1 -1
  249. package/node_modules/@pi-harness/core/dist/plugins/modlens.d.ts +8 -1
  250. package/node_modules/@pi-harness/core/dist/plugins/modlens.d.ts.map +1 -1
  251. package/node_modules/@pi-harness/core/dist/plugins/modlens.js +438 -31
  252. package/node_modules/@pi-harness/core/dist/plugins/modlens.js.map +1 -1
  253. package/node_modules/@pi-harness/core/dist/plugins/module-search.d.ts +1 -0
  254. package/node_modules/@pi-harness/core/dist/plugins/module-search.d.ts.map +1 -1
  255. package/node_modules/@pi-harness/core/dist/plugins/module-search.js +35 -16
  256. package/node_modules/@pi-harness/core/dist/plugins/module-search.js.map +1 -1
  257. package/node_modules/@pi-harness/core/dist/plugins/obsidian-sync.d.ts.map +1 -1
  258. package/node_modules/@pi-harness/core/dist/plugins/obsidian-sync.js +20 -11
  259. package/node_modules/@pi-harness/core/dist/plugins/obsidian-sync.js.map +1 -1
  260. package/node_modules/@pi-harness/core/dist/plugins/openpets.d.ts.map +1 -1
  261. package/node_modules/@pi-harness/core/dist/plugins/openpets.js +203 -44
  262. package/node_modules/@pi-harness/core/dist/plugins/openpets.js.map +1 -1
  263. package/node_modules/@pi-harness/core/dist/plugins/plan-execute.d.ts +4 -1
  264. package/node_modules/@pi-harness/core/dist/plugins/plan-execute.d.ts.map +1 -1
  265. package/node_modules/@pi-harness/core/dist/plugins/plan-execute.js +42 -21
  266. package/node_modules/@pi-harness/core/dist/plugins/plan-execute.js.map +1 -1
  267. package/node_modules/@pi-harness/core/dist/plugins/plugin-check.d.ts +12 -3
  268. package/node_modules/@pi-harness/core/dist/plugins/plugin-check.d.ts.map +1 -1
  269. package/node_modules/@pi-harness/core/dist/plugins/plugin-check.js +83 -12
  270. package/node_modules/@pi-harness/core/dist/plugins/plugin-check.js.map +1 -1
  271. package/node_modules/@pi-harness/core/dist/plugins/plugin-dev.d.ts +1 -0
  272. package/node_modules/@pi-harness/core/dist/plugins/plugin-dev.d.ts.map +1 -1
  273. package/node_modules/@pi-harness/core/dist/plugins/plugin-dev.js +156 -23
  274. package/node_modules/@pi-harness/core/dist/plugins/plugin-dev.js.map +1 -1
  275. package/node_modules/@pi-harness/core/dist/plugins/plugin-finder.d.ts +1 -0
  276. package/node_modules/@pi-harness/core/dist/plugins/plugin-finder.d.ts.map +1 -1
  277. package/node_modules/@pi-harness/core/dist/plugins/plugin-finder.js +131 -13
  278. package/node_modules/@pi-harness/core/dist/plugins/plugin-finder.js.map +1 -1
  279. package/node_modules/@pi-harness/core/dist/plugins/plugin-radar.d.ts +4 -0
  280. package/node_modules/@pi-harness/core/dist/plugins/plugin-radar.d.ts.map +1 -1
  281. package/node_modules/@pi-harness/core/dist/plugins/plugin-radar.js +137 -36
  282. package/node_modules/@pi-harness/core/dist/plugins/plugin-radar.js.map +1 -1
  283. package/node_modules/@pi-harness/core/dist/plugins/plugin-stars.d.ts.map +1 -1
  284. package/node_modules/@pi-harness/core/dist/plugins/plugin-stars.js +282 -81
  285. package/node_modules/@pi-harness/core/dist/plugins/plugin-stars.js.map +1 -1
  286. package/node_modules/@pi-harness/core/dist/plugins/prompt-guard.d.ts +1 -0
  287. package/node_modules/@pi-harness/core/dist/plugins/prompt-guard.d.ts.map +1 -1
  288. package/node_modules/@pi-harness/core/dist/plugins/prompt-guard.js +60 -9
  289. package/node_modules/@pi-harness/core/dist/plugins/prompt-guard.js.map +1 -1
  290. package/node_modules/@pi-harness/core/dist/plugins/prompt-library.d.ts +1 -0
  291. package/node_modules/@pi-harness/core/dist/plugins/prompt-library.d.ts.map +1 -1
  292. package/node_modules/@pi-harness/core/dist/plugins/prompt-library.js +4 -1
  293. package/node_modules/@pi-harness/core/dist/plugins/prompt-library.js.map +1 -1
  294. package/node_modules/@pi-harness/core/dist/plugins/readme-gen.d.ts +6 -2
  295. package/node_modules/@pi-harness/core/dist/plugins/readme-gen.d.ts.map +1 -1
  296. package/node_modules/@pi-harness/core/dist/plugins/readme-gen.js +514 -73
  297. package/node_modules/@pi-harness/core/dist/plugins/readme-gen.js.map +1 -1
  298. package/node_modules/@pi-harness/core/dist/plugins/recall-unread.d.ts +1 -1
  299. package/node_modules/@pi-harness/core/dist/plugins/recall-unread.d.ts.map +1 -1
  300. package/node_modules/@pi-harness/core/dist/plugins/recall-unread.js +411 -68
  301. package/node_modules/@pi-harness/core/dist/plugins/recall-unread.js.map +1 -1
  302. package/node_modules/@pi-harness/core/dist/plugins/resources.d.ts.map +1 -1
  303. package/node_modules/@pi-harness/core/dist/plugins/resources.js +75 -6
  304. package/node_modules/@pi-harness/core/dist/plugins/resources.js.map +1 -1
  305. package/node_modules/@pi-harness/core/dist/plugins/reverse-skill.d.ts.map +1 -1
  306. package/node_modules/@pi-harness/core/dist/plugins/reverse-skill.js +2 -1
  307. package/node_modules/@pi-harness/core/dist/plugins/reverse-skill.js.map +1 -1
  308. package/node_modules/@pi-harness/core/dist/plugins/reviewer-bot.d.ts +1 -0
  309. package/node_modules/@pi-harness/core/dist/plugins/reviewer-bot.d.ts.map +1 -1
  310. package/node_modules/@pi-harness/core/dist/plugins/reviewer-bot.js +35 -16
  311. package/node_modules/@pi-harness/core/dist/plugins/reviewer-bot.js.map +1 -1
  312. package/node_modules/@pi-harness/core/dist/plugins/runtime-doctor.d.ts +1 -0
  313. package/node_modules/@pi-harness/core/dist/plugins/runtime-doctor.d.ts.map +1 -1
  314. package/node_modules/@pi-harness/core/dist/plugins/runtime-doctor.js +4 -1
  315. package/node_modules/@pi-harness/core/dist/plugins/runtime-doctor.js.map +1 -1
  316. package/node_modules/@pi-harness/core/dist/plugins/runtime.d.ts.map +1 -1
  317. package/node_modules/@pi-harness/core/dist/plugins/runtime.js +106 -64
  318. package/node_modules/@pi-harness/core/dist/plugins/runtime.js.map +1 -1
  319. package/node_modules/@pi-harness/core/dist/plugins/secure-audit.d.ts +1 -0
  320. package/node_modules/@pi-harness/core/dist/plugins/secure-audit.d.ts.map +1 -1
  321. package/node_modules/@pi-harness/core/dist/plugins/secure-audit.js +30 -12
  322. package/node_modules/@pi-harness/core/dist/plugins/secure-audit.js.map +1 -1
  323. package/node_modules/@pi-harness/core/dist/plugins/session-bookmarks.d.ts +1 -0
  324. package/node_modules/@pi-harness/core/dist/plugins/session-bookmarks.d.ts.map +1 -1
  325. package/node_modules/@pi-harness/core/dist/plugins/session-bookmarks.js +4 -1
  326. package/node_modules/@pi-harness/core/dist/plugins/session-bookmarks.js.map +1 -1
  327. package/node_modules/@pi-harness/core/dist/plugins/session-bridge.d.ts +1 -0
  328. package/node_modules/@pi-harness/core/dist/plugins/session-bridge.d.ts.map +1 -1
  329. package/node_modules/@pi-harness/core/dist/plugins/session-bridge.js +401 -88
  330. package/node_modules/@pi-harness/core/dist/plugins/session-bridge.js.map +1 -1
  331. package/node_modules/@pi-harness/core/dist/plugins/session-compare.d.ts +1 -0
  332. package/node_modules/@pi-harness/core/dist/plugins/session-compare.d.ts.map +1 -1
  333. package/node_modules/@pi-harness/core/dist/plugins/session-compare.js +4 -1
  334. package/node_modules/@pi-harness/core/dist/plugins/session-compare.js.map +1 -1
  335. package/node_modules/@pi-harness/core/dist/plugins/session-export.d.ts +1 -0
  336. package/node_modules/@pi-harness/core/dist/plugins/session-export.d.ts.map +1 -1
  337. package/node_modules/@pi-harness/core/dist/plugins/session-export.js +6 -6
  338. package/node_modules/@pi-harness/core/dist/plugins/session-export.js.map +1 -1
  339. package/node_modules/@pi-harness/core/dist/plugins/session-insights.d.ts +37 -1
  340. package/node_modules/@pi-harness/core/dist/plugins/session-insights.d.ts.map +1 -1
  341. package/node_modules/@pi-harness/core/dist/plugins/session-insights.js +406 -21
  342. package/node_modules/@pi-harness/core/dist/plugins/session-insights.js.map +1 -1
  343. package/node_modules/@pi-harness/core/dist/plugins/session-search.d.ts +1 -0
  344. package/node_modules/@pi-harness/core/dist/plugins/session-search.d.ts.map +1 -1
  345. package/node_modules/@pi-harness/core/dist/plugins/session-search.js +4 -1
  346. package/node_modules/@pi-harness/core/dist/plugins/session-search.js.map +1 -1
  347. package/node_modules/@pi-harness/core/dist/plugins/session.d.ts.map +1 -1
  348. package/node_modules/@pi-harness/core/dist/plugins/session.js +8 -1
  349. package/node_modules/@pi-harness/core/dist/plugins/session.js.map +1 -1
  350. package/node_modules/@pi-harness/core/dist/plugins/skill-catalog.d.ts +1 -0
  351. package/node_modules/@pi-harness/core/dist/plugins/skill-catalog.d.ts.map +1 -1
  352. package/node_modules/@pi-harness/core/dist/plugins/skill-catalog.js +6 -5
  353. package/node_modules/@pi-harness/core/dist/plugins/skill-catalog.js.map +1 -1
  354. package/node_modules/@pi-harness/core/dist/plugins/skill-guard.d.ts +2 -1
  355. package/node_modules/@pi-harness/core/dist/plugins/skill-guard.d.ts.map +1 -1
  356. package/node_modules/@pi-harness/core/dist/plugins/skill-guard.js +241 -61
  357. package/node_modules/@pi-harness/core/dist/plugins/skill-guard.js.map +1 -1
  358. package/node_modules/@pi-harness/core/dist/plugins/sql-lens-worker.d.ts +2 -0
  359. package/node_modules/@pi-harness/core/dist/plugins/sql-lens-worker.d.ts.map +1 -0
  360. package/node_modules/@pi-harness/core/dist/plugins/sql-lens-worker.js +206 -0
  361. package/node_modules/@pi-harness/core/dist/plugins/sql-lens-worker.js.map +1 -0
  362. package/node_modules/@pi-harness/core/dist/plugins/sql-lens.d.ts +7 -1
  363. package/node_modules/@pi-harness/core/dist/plugins/sql-lens.d.ts.map +1 -1
  364. package/node_modules/@pi-harness/core/dist/plugins/sql-lens.js +301 -68
  365. package/node_modules/@pi-harness/core/dist/plugins/sql-lens.js.map +1 -1
  366. package/node_modules/@pi-harness/core/dist/plugins/stdio.d.ts +3 -0
  367. package/node_modules/@pi-harness/core/dist/plugins/stdio.d.ts.map +1 -1
  368. package/node_modules/@pi-harness/core/dist/plugins/stdio.js +62 -4
  369. package/node_modules/@pi-harness/core/dist/plugins/stdio.js.map +1 -1
  370. package/node_modules/@pi-harness/core/dist/plugins/synapse.d.ts.map +1 -1
  371. package/node_modules/@pi-harness/core/dist/plugins/synapse.js +17 -9
  372. package/node_modules/@pi-harness/core/dist/plugins/synapse.js.map +1 -1
  373. package/node_modules/@pi-harness/core/dist/plugins/tab-manager.d.ts +1 -0
  374. package/node_modules/@pi-harness/core/dist/plugins/tab-manager.d.ts.map +1 -1
  375. package/node_modules/@pi-harness/core/dist/plugins/tab-manager.js +167 -62
  376. package/node_modules/@pi-harness/core/dist/plugins/tab-manager.js.map +1 -1
  377. package/node_modules/@pi-harness/core/dist/plugins/taskboard.d.ts.map +1 -1
  378. package/node_modules/@pi-harness/core/dist/plugins/taskboard.js +50 -22
  379. package/node_modules/@pi-harness/core/dist/plugins/taskboard.js.map +1 -1
  380. package/node_modules/@pi-harness/core/dist/plugins/telemetry-blocker.d.ts +4 -1
  381. package/node_modules/@pi-harness/core/dist/plugins/telemetry-blocker.d.ts.map +1 -1
  382. package/node_modules/@pi-harness/core/dist/plugins/telemetry-blocker.js +30 -11
  383. package/node_modules/@pi-harness/core/dist/plugins/telemetry-blocker.js.map +1 -1
  384. package/node_modules/@pi-harness/core/dist/plugins/test-harness.d.ts +7 -1
  385. package/node_modules/@pi-harness/core/dist/plugins/test-harness.d.ts.map +1 -1
  386. package/node_modules/@pi-harness/core/dist/plugins/test-harness.js +255 -43
  387. package/node_modules/@pi-harness/core/dist/plugins/test-harness.js.map +1 -1
  388. package/node_modules/@pi-harness/core/dist/plugins/theme-studio.d.ts.map +1 -1
  389. package/node_modules/@pi-harness/core/dist/plugins/theme-studio.js +4 -2
  390. package/node_modules/@pi-harness/core/dist/plugins/theme-studio.js.map +1 -1
  391. package/node_modules/@pi-harness/core/dist/plugins/token-guard.d.ts.map +1 -1
  392. package/node_modules/@pi-harness/core/dist/plugins/token-guard.js +164 -32
  393. package/node_modules/@pi-harness/core/dist/plugins/token-guard.js.map +1 -1
  394. package/node_modules/@pi-harness/core/dist/plugins/tools.d.ts.map +1 -1
  395. package/node_modules/@pi-harness/core/dist/plugins/tools.js +4 -1
  396. package/node_modules/@pi-harness/core/dist/plugins/tools.js.map +1 -1
  397. package/node_modules/@pi-harness/core/dist/plugins/turn-rewind.d.ts +17 -0
  398. package/node_modules/@pi-harness/core/dist/plugins/turn-rewind.d.ts.map +1 -1
  399. package/node_modules/@pi-harness/core/dist/plugins/turn-rewind.js +340 -36
  400. package/node_modules/@pi-harness/core/dist/plugins/turn-rewind.js.map +1 -1
  401. package/node_modules/@pi-harness/core/dist/plugins/undo-savepoint.d.ts.map +1 -1
  402. package/node_modules/@pi-harness/core/dist/plugins/undo-savepoint.js +157 -51
  403. package/node_modules/@pi-harness/core/dist/plugins/undo-savepoint.js.map +1 -1
  404. package/node_modules/@pi-harness/core/dist/plugins/vision-toolkit.d.ts +22 -3
  405. package/node_modules/@pi-harness/core/dist/plugins/vision-toolkit.d.ts.map +1 -1
  406. package/node_modules/@pi-harness/core/dist/plugins/vision-toolkit.js +389 -66
  407. package/node_modules/@pi-harness/core/dist/plugins/vision-toolkit.js.map +1 -1
  408. package/node_modules/@pi-harness/core/dist/plugins/web-research.d.ts.map +1 -1
  409. package/node_modules/@pi-harness/core/dist/plugins/web-research.js +13 -4
  410. package/node_modules/@pi-harness/core/dist/plugins/web-research.js.map +1 -1
  411. package/node_modules/@pi-harness/core/dist/plugins/workspace-navigator.d.ts +8 -2
  412. package/node_modules/@pi-harness/core/dist/plugins/workspace-navigator.d.ts.map +1 -1
  413. package/node_modules/@pi-harness/core/dist/plugins/workspace-navigator.js +28 -10
  414. package/node_modules/@pi-harness/core/dist/plugins/workspace-navigator.js.map +1 -1
  415. package/node_modules/@pi-harness/core/dist/plugins/workspace-search.d.ts +7 -0
  416. package/node_modules/@pi-harness/core/dist/plugins/workspace-search.d.ts.map +1 -1
  417. package/node_modules/@pi-harness/core/dist/plugins/workspace-search.js +67 -34
  418. package/node_modules/@pi-harness/core/dist/plugins/workspace-search.js.map +1 -1
  419. package/node_modules/@pi-harness/core/dist/plugins/yaml-validator.d.ts +1 -0
  420. package/node_modules/@pi-harness/core/dist/plugins/yaml-validator.d.ts.map +1 -1
  421. package/node_modules/@pi-harness/core/dist/plugins/yaml-validator.js +156 -47
  422. package/node_modules/@pi-harness/core/dist/plugins/yaml-validator.js.map +1 -1
  423. package/node_modules/@pi-harness/core/dist/profile.d.ts.map +1 -1
  424. package/node_modules/@pi-harness/core/dist/profile.js +3 -1
  425. package/node_modules/@pi-harness/core/dist/profile.js.map +1 -1
  426. package/node_modules/@pi-harness/core/dist/runtime.d.ts.map +1 -1
  427. package/node_modules/@pi-harness/core/dist/runtime.js +8 -3
  428. package/node_modules/@pi-harness/core/dist/runtime.js.map +1 -1
  429. package/node_modules/@pi-harness/core/dist/services.d.ts.map +1 -1
  430. package/node_modules/@pi-harness/core/dist/services.js +22 -2
  431. package/node_modules/@pi-harness/core/dist/services.js.map +1 -1
  432. package/node_modules/@pi-harness/core/dist/stdio.d.ts +1 -0
  433. package/node_modules/@pi-harness/core/dist/stdio.d.ts.map +1 -1
  434. package/node_modules/@pi-harness/core/dist/stdio.js +241 -25
  435. package/node_modules/@pi-harness/core/dist/stdio.js.map +1 -1
  436. package/node_modules/@pi-harness/core/dist/workspace-path.d.ts +1 -0
  437. package/node_modules/@pi-harness/core/dist/workspace-path.d.ts.map +1 -1
  438. package/node_modules/@pi-harness/core/dist/workspace-path.js +9 -0
  439. package/node_modules/@pi-harness/core/dist/workspace-path.js.map +1 -1
  440. package/node_modules/@pi-harness/core/package.json +1 -1
  441. package/node_modules/@pi-harness/core/profiles/default/cordis.yml +4 -2
  442. package/node_modules/@pi-harness/host-webserver/package.json +1 -1
  443. package/node_modules/@pi-harness/web-app/package.json +1 -1
  444. package/package.json +12 -7
  445. package/packages/api-gateway/dist/index.d.ts.map +1 -1
  446. package/packages/api-gateway/dist/index.js +97 -9
  447. package/packages/api-gateway/dist/index.js.map +1 -1
  448. package/packages/api-gateway/dist/marketplace-entries/official/agent-teams.json +6 -6
  449. package/packages/api-gateway/dist/marketplace-entries/official/anchored-standard.json +1 -1
  450. package/packages/api-gateway/dist/marketplace-entries/official/annotation.json +1 -2
  451. package/packages/api-gateway/dist/marketplace-entries/official/archify.json +1 -1
  452. package/packages/api-gateway/dist/marketplace-entries/official/at-file.json +11 -5
  453. package/packages/api-gateway/dist/marketplace-entries/official/auto-mode.json +1 -1
  454. package/packages/api-gateway/dist/marketplace-entries/official/better-sidebar.json +1 -1
  455. package/packages/api-gateway/dist/marketplace-entries/official/browser-fetch.json +12 -5
  456. package/packages/api-gateway/dist/marketplace-entries/official/browser-session.json +14 -8
  457. package/packages/api-gateway/dist/marketplace-entries/official/canvas-draw.json +3 -4
  458. package/packages/api-gateway/dist/marketplace-entries/official/change-verifier.json +1 -1
  459. package/packages/api-gateway/dist/marketplace-entries/official/cleaner.json +11 -6
  460. package/packages/api-gateway/dist/marketplace-entries/official/cli-notifier.json +5 -5
  461. package/packages/api-gateway/dist/marketplace-entries/official/code2skill.json +5 -5
  462. package/packages/api-gateway/dist/marketplace-entries/official/colleague-skill.json +1 -2
  463. package/packages/api-gateway/dist/marketplace-entries/official/context-doctor.json +12 -7
  464. package/packages/api-gateway/dist/marketplace-entries/official/context.json +10 -5
  465. package/packages/api-gateway/dist/marketplace-entries/official/cordis-group.json +2 -2
  466. package/packages/api-gateway/dist/marketplace-entries/official/cordis-logger-console.json +4 -4
  467. package/packages/api-gateway/dist/marketplace-entries/official/cordis-timer.json +3 -3
  468. package/packages/api-gateway/dist/marketplace-entries/official/cost-meter.json +9 -6
  469. package/packages/api-gateway/dist/marketplace-entries/official/dependency-checker.json +13 -10
  470. package/packages/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +10 -5
  471. package/packages/api-gateway/dist/marketplace-entries/official/fail-logger.json +11 -6
  472. package/packages/api-gateway/dist/marketplace-entries/official/genui.json +7 -5
  473. package/packages/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +13 -8
  474. package/packages/api-gateway/dist/marketplace-entries/official/graph-memory.json +13 -7
  475. package/packages/api-gateway/dist/marketplace-entries/official/history-compressor.json +1 -1
  476. package/packages/api-gateway/dist/marketplace-entries/official/hol-guard.json +1 -1
  477. package/packages/api-gateway/dist/marketplace-entries/official/i18n-pair.json +9 -6
  478. package/packages/api-gateway/dist/marketplace-entries/official/image-compressor.json +1 -1
  479. package/packages/api-gateway/dist/marketplace-entries/official/llm-verifier.json +1 -1
  480. package/packages/api-gateway/dist/marketplace-entries/official/mcp-client.json +12 -7
  481. package/packages/api-gateway/dist/marketplace-entries/official/mcp-panel.json +1 -1
  482. package/packages/api-gateway/dist/marketplace-entries/official/memory.json +1 -1
  483. package/packages/api-gateway/dist/marketplace-entries/official/mirage-bridge.json +1 -1
  484. package/packages/api-gateway/dist/marketplace-entries/official/mock-server.json +1 -1
  485. package/packages/api-gateway/dist/marketplace-entries/official/modlens.json +4 -4
  486. package/packages/api-gateway/dist/marketplace-entries/official/module-search.json +1 -1
  487. package/packages/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +1 -1
  488. package/packages/api-gateway/dist/marketplace-entries/official/openpets.json +9 -5
  489. package/packages/api-gateway/dist/marketplace-entries/official/plan-execute.json +1 -1
  490. package/packages/api-gateway/dist/marketplace-entries/official/plugin-check.json +1 -1
  491. package/packages/api-gateway/dist/marketplace-entries/official/plugin-dev.json +8 -6
  492. package/packages/api-gateway/dist/marketplace-entries/official/plugin-finder.json +1 -1
  493. package/packages/api-gateway/dist/marketplace-entries/official/plugin-radar.json +1 -1
  494. package/packages/api-gateway/dist/marketplace-entries/official/plugin-stars.json +15 -7
  495. package/packages/api-gateway/dist/marketplace-entries/official/prompt-guard.json +1 -1
  496. package/packages/api-gateway/dist/marketplace-entries/official/prompt-library.json +1 -1
  497. package/packages/api-gateway/dist/marketplace-entries/official/readme-gen.json +12 -8
  498. package/packages/api-gateway/dist/marketplace-entries/official/recall-unread.json +11 -6
  499. package/packages/api-gateway/dist/marketplace-entries/official/reverse-skill.json +1 -1
  500. package/packages/api-gateway/dist/marketplace-entries/official/reviewer-bot.json +1 -1
  501. package/packages/api-gateway/dist/marketplace-entries/official/runtime-doctor.json +1 -1
  502. package/packages/api-gateway/dist/marketplace-entries/official/secure-audit.json +1 -1
  503. package/packages/api-gateway/dist/marketplace-entries/official/session-bookmarks.json +1 -1
  504. package/packages/api-gateway/dist/marketplace-entries/official/session-bridge.json +13 -8
  505. package/packages/api-gateway/dist/marketplace-entries/official/session-compare.json +1 -1
  506. package/packages/api-gateway/dist/marketplace-entries/official/session-export.json +1 -1
  507. package/packages/api-gateway/dist/marketplace-entries/official/session-insights.json +12 -6
  508. package/packages/api-gateway/dist/marketplace-entries/official/session-search.json +1 -1
  509. package/packages/api-gateway/dist/marketplace-entries/official/skill-catalog.json +1 -1
  510. package/packages/api-gateway/dist/marketplace-entries/official/skill-guard.json +9 -5
  511. package/packages/api-gateway/dist/marketplace-entries/official/sql-lens.json +13 -7
  512. package/packages/api-gateway/dist/marketplace-entries/official/synapse.json +1 -1
  513. package/packages/api-gateway/dist/marketplace-entries/official/tab-manager.json +1 -1
  514. package/packages/api-gateway/dist/marketplace-entries/official/taskboard.json +1 -1
  515. package/packages/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +1 -1
  516. package/packages/api-gateway/dist/marketplace-entries/official/test-harness.json +14 -7
  517. package/packages/api-gateway/dist/marketplace-entries/official/theme-studio.json +1 -1
  518. package/packages/api-gateway/dist/marketplace-entries/official/token-guard.json +12 -6
  519. package/packages/api-gateway/dist/marketplace-entries/official/turn-rewind.json +11 -6
  520. package/packages/api-gateway/dist/marketplace-entries/official/undo-savepoint.json +1 -1
  521. package/packages/api-gateway/dist/marketplace-entries/official/vision-toolkit.json +8 -5
  522. package/packages/api-gateway/dist/marketplace-entries/official/web-research.json +1 -1
  523. package/packages/api-gateway/dist/marketplace-entries/official/workspace-navigator.json +1 -1
  524. package/packages/api-gateway/dist/marketplace-entries/official/workspace-search.json +1 -1
  525. package/packages/api-gateway/dist/marketplace-entries/official/yaml-validator.json +8 -5
  526. package/packages/api-gateway/package.json +1 -1
  527. package/packages/api-gateway/src/index.ts +90 -9
  528. package/packages/api-gateway/src/marketplace-entries/official/agent-teams.json +6 -6
  529. package/packages/api-gateway/src/marketplace-entries/official/anchored-standard.json +1 -1
  530. package/packages/api-gateway/src/marketplace-entries/official/annotation.json +1 -2
  531. package/packages/api-gateway/src/marketplace-entries/official/archify.json +1 -1
  532. package/packages/api-gateway/src/marketplace-entries/official/at-file.json +11 -5
  533. package/packages/api-gateway/src/marketplace-entries/official/auto-mode.json +1 -1
  534. package/packages/api-gateway/src/marketplace-entries/official/better-sidebar.json +1 -1
  535. package/packages/api-gateway/src/marketplace-entries/official/browser-fetch.json +12 -5
  536. package/packages/api-gateway/src/marketplace-entries/official/browser-session.json +14 -8
  537. package/packages/api-gateway/src/marketplace-entries/official/canvas-draw.json +3 -4
  538. package/packages/api-gateway/src/marketplace-entries/official/change-verifier.json +1 -1
  539. package/packages/api-gateway/src/marketplace-entries/official/cleaner.json +11 -6
  540. package/packages/api-gateway/src/marketplace-entries/official/cli-notifier.json +5 -5
  541. package/packages/api-gateway/src/marketplace-entries/official/code2skill.json +5 -5
  542. package/packages/api-gateway/src/marketplace-entries/official/colleague-skill.json +1 -2
  543. package/packages/api-gateway/src/marketplace-entries/official/context-doctor.json +12 -7
  544. package/packages/api-gateway/src/marketplace-entries/official/context.json +10 -5
  545. package/packages/api-gateway/src/marketplace-entries/official/cordis-group.json +2 -2
  546. package/packages/api-gateway/src/marketplace-entries/official/cordis-logger-console.json +4 -4
  547. package/packages/api-gateway/src/marketplace-entries/official/cordis-timer.json +3 -3
  548. package/packages/api-gateway/src/marketplace-entries/official/cost-meter.json +9 -6
  549. package/packages/api-gateway/src/marketplace-entries/official/dependency-checker.json +13 -10
  550. package/packages/api-gateway/src/marketplace-entries/official/docker-sandbox.json +10 -5
  551. package/packages/api-gateway/src/marketplace-entries/official/fail-logger.json +11 -6
  552. package/packages/api-gateway/src/marketplace-entries/official/genui.json +7 -5
  553. package/packages/api-gateway/src/marketplace-entries/official/git-time-capsule.json +13 -8
  554. package/packages/api-gateway/src/marketplace-entries/official/graph-memory.json +13 -7
  555. package/packages/api-gateway/src/marketplace-entries/official/history-compressor.json +1 -1
  556. package/packages/api-gateway/src/marketplace-entries/official/hol-guard.json +1 -1
  557. package/packages/api-gateway/src/marketplace-entries/official/i18n-pair.json +9 -6
  558. package/packages/api-gateway/src/marketplace-entries/official/image-compressor.json +1 -1
  559. package/packages/api-gateway/src/marketplace-entries/official/llm-verifier.json +1 -1
  560. package/packages/api-gateway/src/marketplace-entries/official/mcp-client.json +12 -7
  561. package/packages/api-gateway/src/marketplace-entries/official/mcp-panel.json +1 -1
  562. package/packages/api-gateway/src/marketplace-entries/official/memory.json +1 -1
  563. package/packages/api-gateway/src/marketplace-entries/official/mirage-bridge.json +1 -1
  564. package/packages/api-gateway/src/marketplace-entries/official/mock-server.json +1 -1
  565. package/packages/api-gateway/src/marketplace-entries/official/modlens.json +4 -4
  566. package/packages/api-gateway/src/marketplace-entries/official/module-search.json +1 -1
  567. package/packages/api-gateway/src/marketplace-entries/official/obsidian-sync.json +1 -1
  568. package/packages/api-gateway/src/marketplace-entries/official/openpets.json +9 -5
  569. package/packages/api-gateway/src/marketplace-entries/official/plan-execute.json +1 -1
  570. package/packages/api-gateway/src/marketplace-entries/official/plugin-check.json +1 -1
  571. package/packages/api-gateway/src/marketplace-entries/official/plugin-dev.json +8 -6
  572. package/packages/api-gateway/src/marketplace-entries/official/plugin-finder.json +1 -1
  573. package/packages/api-gateway/src/marketplace-entries/official/plugin-radar.json +1 -1
  574. package/packages/api-gateway/src/marketplace-entries/official/plugin-stars.json +15 -7
  575. package/packages/api-gateway/src/marketplace-entries/official/prompt-guard.json +1 -1
  576. package/packages/api-gateway/src/marketplace-entries/official/prompt-library.json +1 -1
  577. package/packages/api-gateway/src/marketplace-entries/official/readme-gen.json +12 -8
  578. package/packages/api-gateway/src/marketplace-entries/official/recall-unread.json +11 -6
  579. package/packages/api-gateway/src/marketplace-entries/official/reverse-skill.json +1 -1
  580. package/packages/api-gateway/src/marketplace-entries/official/reviewer-bot.json +1 -1
  581. package/packages/api-gateway/src/marketplace-entries/official/runtime-doctor.json +1 -1
  582. package/packages/api-gateway/src/marketplace-entries/official/secure-audit.json +1 -1
  583. package/packages/api-gateway/src/marketplace-entries/official/session-bookmarks.json +1 -1
  584. package/packages/api-gateway/src/marketplace-entries/official/session-bridge.json +13 -8
  585. package/packages/api-gateway/src/marketplace-entries/official/session-compare.json +1 -1
  586. package/packages/api-gateway/src/marketplace-entries/official/session-export.json +1 -1
  587. package/packages/api-gateway/src/marketplace-entries/official/session-insights.json +12 -6
  588. package/packages/api-gateway/src/marketplace-entries/official/session-search.json +1 -1
  589. package/packages/api-gateway/src/marketplace-entries/official/skill-catalog.json +1 -1
  590. package/packages/api-gateway/src/marketplace-entries/official/skill-guard.json +9 -5
  591. package/packages/api-gateway/src/marketplace-entries/official/sql-lens.json +13 -7
  592. package/packages/api-gateway/src/marketplace-entries/official/synapse.json +1 -1
  593. package/packages/api-gateway/src/marketplace-entries/official/tab-manager.json +1 -1
  594. package/packages/api-gateway/src/marketplace-entries/official/taskboard.json +1 -1
  595. package/packages/api-gateway/src/marketplace-entries/official/telemetry-blocker.json +1 -1
  596. package/packages/api-gateway/src/marketplace-entries/official/test-harness.json +14 -7
  597. package/packages/api-gateway/src/marketplace-entries/official/theme-studio.json +1 -1
  598. package/packages/api-gateway/src/marketplace-entries/official/token-guard.json +12 -6
  599. package/packages/api-gateway/src/marketplace-entries/official/turn-rewind.json +11 -6
  600. package/packages/api-gateway/src/marketplace-entries/official/undo-savepoint.json +1 -1
  601. package/packages/api-gateway/src/marketplace-entries/official/vision-toolkit.json +8 -5
  602. package/packages/api-gateway/src/marketplace-entries/official/web-research.json +1 -1
  603. package/packages/api-gateway/src/marketplace-entries/official/workspace-navigator.json +1 -1
  604. package/packages/api-gateway/src/marketplace-entries/official/workspace-search.json +1 -1
  605. package/packages/api-gateway/src/marketplace-entries/official/yaml-validator.json +8 -5
  606. package/packages/api-gateway/test/index.test.ts +1594 -2
  607. package/packages/api-gateway/test/marketplace.test.ts +389 -2
  608. package/packages/api-gateway/test/release-package.test.ts +1 -0
  609. package/packages/bundle-web-app/package.json +1 -1
  610. package/packages/cli/dist/bin.js.map +1 -1
  611. package/packages/cli/dist/main.d.ts.map +1 -1
  612. package/packages/cli/dist/main.js +2 -2
  613. package/packages/cli/dist/main.js.map +1 -1
  614. package/packages/cli/dist/node-stdio.d.ts.map +1 -1
  615. package/packages/cli/dist/node-stdio.js +85 -20
  616. package/packages/cli/dist/node-stdio.js.map +1 -1
  617. package/packages/cli/package.json +1 -1
  618. package/packages/cli/src/bin.ts +5 -1
  619. package/packages/cli/src/main.ts +25 -7
  620. package/packages/cli/src/node-stdio.ts +81 -21
  621. package/packages/cli/test/args.test.ts +18 -3
  622. package/packages/cli/test/binary.test.ts +10 -2
  623. package/packages/cli/test/broken-pipe.test.ts +15 -4
  624. package/packages/cli/test/cli.test.ts +24 -6
  625. package/packages/cli/test/node-stdio.test.ts +128 -5
  626. package/packages/cli/test/relaunch.test.ts +5 -1
  627. package/packages/cli/test/stdin-shutdown.test.ts +20 -5
  628. package/packages/client-web/dist/agent-teams-view.d.ts +70 -0
  629. package/packages/client-web/dist/agent-teams-view.d.ts.map +1 -0
  630. package/packages/client-web/dist/agent-teams-view.js +159 -0
  631. package/packages/client-web/dist/agent-teams-view.js.map +1 -0
  632. package/packages/client-web/dist/at-file-view.d.ts +10 -0
  633. package/packages/client-web/dist/at-file-view.d.ts.map +1 -0
  634. package/packages/client-web/dist/at-file-view.js +65 -0
  635. package/packages/client-web/dist/at-file-view.js.map +1 -0
  636. package/packages/client-web/dist/browser-fetch-view.d.ts +22 -0
  637. package/packages/client-web/dist/browser-fetch-view.d.ts.map +1 -0
  638. package/packages/client-web/dist/browser-fetch-view.js +101 -0
  639. package/packages/client-web/dist/browser-fetch-view.js.map +1 -0
  640. package/packages/client-web/dist/browser-session-view.d.ts +32 -0
  641. package/packages/client-web/dist/browser-session-view.d.ts.map +1 -1
  642. package/packages/client-web/dist/browser-session-view.js +206 -3
  643. package/packages/client-web/dist/browser-session-view.js.map +1 -1
  644. package/packages/client-web/dist/cleaner-view.d.ts +29 -0
  645. package/packages/client-web/dist/cleaner-view.d.ts.map +1 -0
  646. package/packages/client-web/dist/cleaner-view.js +191 -0
  647. package/packages/client-web/dist/cleaner-view.js.map +1 -0
  648. package/packages/client-web/dist/context-doctor-view.d.ts +35 -0
  649. package/packages/client-web/dist/context-doctor-view.d.ts.map +1 -0
  650. package/packages/client-web/dist/context-doctor-view.js +129 -0
  651. package/packages/client-web/dist/context-doctor-view.js.map +1 -0
  652. package/packages/client-web/dist/context-insights-view.d.ts +31 -0
  653. package/packages/client-web/dist/context-insights-view.d.ts.map +1 -0
  654. package/packages/client-web/dist/context-insights-view.js +90 -0
  655. package/packages/client-web/dist/context-insights-view.js.map +1 -0
  656. package/packages/client-web/dist/cost-meter-view.d.ts +16 -0
  657. package/packages/client-web/dist/cost-meter-view.d.ts.map +1 -0
  658. package/packages/client-web/dist/cost-meter-view.js +43 -0
  659. package/packages/client-web/dist/cost-meter-view.js.map +1 -0
  660. package/packages/client-web/dist/dependency-checker-view.d.ts +24 -0
  661. package/packages/client-web/dist/dependency-checker-view.d.ts.map +1 -0
  662. package/packages/client-web/dist/dependency-checker-view.js +195 -0
  663. package/packages/client-web/dist/dependency-checker-view.js.map +1 -0
  664. package/packages/client-web/dist/docker-sandbox-view.d.ts +28 -0
  665. package/packages/client-web/dist/docker-sandbox-view.d.ts.map +1 -0
  666. package/packages/client-web/dist/docker-sandbox-view.js +152 -0
  667. package/packages/client-web/dist/docker-sandbox-view.js.map +1 -0
  668. package/packages/client-web/dist/fail-logger-view.d.ts +16 -0
  669. package/packages/client-web/dist/fail-logger-view.d.ts.map +1 -0
  670. package/packages/client-web/dist/fail-logger-view.js +97 -0
  671. package/packages/client-web/dist/fail-logger-view.js.map +1 -0
  672. package/packages/client-web/dist/genui-view.d.ts +28 -0
  673. package/packages/client-web/dist/genui-view.d.ts.map +1 -0
  674. package/packages/client-web/dist/genui-view.js +62 -0
  675. package/packages/client-web/dist/genui-view.js.map +1 -0
  676. package/packages/client-web/dist/git-time-capsule-view.d.ts +31 -0
  677. package/packages/client-web/dist/git-time-capsule-view.d.ts.map +1 -0
  678. package/packages/client-web/dist/git-time-capsule-view.js +203 -0
  679. package/packages/client-web/dist/git-time-capsule-view.js.map +1 -0
  680. package/packages/client-web/dist/graph-memory-view.d.ts +39 -0
  681. package/packages/client-web/dist/graph-memory-view.d.ts.map +1 -0
  682. package/packages/client-web/dist/graph-memory-view.js +82 -0
  683. package/packages/client-web/dist/graph-memory-view.js.map +1 -0
  684. package/packages/client-web/dist/i18n-pair-view.d.ts +32 -0
  685. package/packages/client-web/dist/i18n-pair-view.d.ts.map +1 -0
  686. package/packages/client-web/dist/i18n-pair-view.js +182 -0
  687. package/packages/client-web/dist/i18n-pair-view.js.map +1 -0
  688. package/packages/client-web/dist/mcp-client-view.d.ts +58 -0
  689. package/packages/client-web/dist/mcp-client-view.d.ts.map +1 -0
  690. package/packages/client-web/dist/mcp-client-view.js +121 -0
  691. package/packages/client-web/dist/mcp-client-view.js.map +1 -0
  692. package/packages/client-web/dist/modlens-view.d.ts +43 -0
  693. package/packages/client-web/dist/modlens-view.d.ts.map +1 -0
  694. package/packages/client-web/dist/modlens-view.js +176 -0
  695. package/packages/client-web/dist/modlens-view.js.map +1 -0
  696. package/packages/client-web/dist/openpets-view.d.ts +26 -0
  697. package/packages/client-web/dist/openpets-view.d.ts.map +1 -0
  698. package/packages/client-web/dist/openpets-view.js +62 -0
  699. package/packages/client-web/dist/openpets-view.js.map +1 -0
  700. package/packages/client-web/dist/panel-safe.d.ts +5 -0
  701. package/packages/client-web/dist/panel-safe.d.ts.map +1 -0
  702. package/packages/client-web/dist/panel-safe.js +58 -0
  703. package/packages/client-web/dist/panel-safe.js.map +1 -0
  704. package/packages/client-web/dist/plugin-dev-view.d.ts +15 -0
  705. package/packages/client-web/dist/plugin-dev-view.d.ts.map +1 -0
  706. package/packages/client-web/dist/plugin-dev-view.js +33 -0
  707. package/packages/client-web/dist/plugin-dev-view.js.map +1 -0
  708. package/packages/client-web/dist/plugin-stars-view.d.ts +28 -0
  709. package/packages/client-web/dist/plugin-stars-view.d.ts.map +1 -1
  710. package/packages/client-web/dist/plugin-stars-view.js +209 -1
  711. package/packages/client-web/dist/plugin-stars-view.js.map +1 -1
  712. package/packages/client-web/dist/react-room.d.ts +5 -1
  713. package/packages/client-web/dist/react-room.d.ts.map +1 -1
  714. package/packages/client-web/dist/react-room.js +463 -219
  715. package/packages/client-web/dist/react-room.js.map +1 -1
  716. package/packages/client-web/dist/readme-gen-view.d.ts +30 -0
  717. package/packages/client-web/dist/readme-gen-view.d.ts.map +1 -0
  718. package/packages/client-web/dist/readme-gen-view.js +134 -0
  719. package/packages/client-web/dist/readme-gen-view.js.map +1 -0
  720. package/packages/client-web/dist/recall-unread-view.d.ts +46 -0
  721. package/packages/client-web/dist/recall-unread-view.d.ts.map +1 -0
  722. package/packages/client-web/dist/recall-unread-view.js +104 -0
  723. package/packages/client-web/dist/recall-unread-view.js.map +1 -0
  724. package/packages/client-web/dist/session-bridge-view.d.ts +50 -0
  725. package/packages/client-web/dist/session-bridge-view.d.ts.map +1 -0
  726. package/packages/client-web/dist/session-bridge-view.js +113 -0
  727. package/packages/client-web/dist/session-bridge-view.js.map +1 -0
  728. package/packages/client-web/dist/session-insights-view.d.ts +40 -0
  729. package/packages/client-web/dist/session-insights-view.d.ts.map +1 -0
  730. package/packages/client-web/dist/session-insights-view.js +157 -0
  731. package/packages/client-web/dist/session-insights-view.js.map +1 -0
  732. package/packages/client-web/dist/skill-guard-view.d.ts +47 -0
  733. package/packages/client-web/dist/skill-guard-view.d.ts.map +1 -0
  734. package/packages/client-web/dist/skill-guard-view.js +93 -0
  735. package/packages/client-web/dist/skill-guard-view.js.map +1 -0
  736. package/packages/client-web/dist/sql-lens-view.d.ts +37 -0
  737. package/packages/client-web/dist/sql-lens-view.d.ts.map +1 -0
  738. package/packages/client-web/dist/sql-lens-view.js +235 -0
  739. package/packages/client-web/dist/sql-lens-view.js.map +1 -0
  740. package/packages/client-web/dist/test-harness-view.d.ts +24 -0
  741. package/packages/client-web/dist/test-harness-view.d.ts.map +1 -0
  742. package/packages/client-web/dist/test-harness-view.js +149 -0
  743. package/packages/client-web/dist/test-harness-view.js.map +1 -0
  744. package/packages/client-web/dist/token-guard-view.d.ts +19 -0
  745. package/packages/client-web/dist/token-guard-view.d.ts.map +1 -0
  746. package/packages/client-web/dist/token-guard-view.js +56 -0
  747. package/packages/client-web/dist/token-guard-view.js.map +1 -0
  748. package/packages/client-web/dist/turn-rewind-view.d.ts +41 -0
  749. package/packages/client-web/dist/turn-rewind-view.d.ts.map +1 -0
  750. package/packages/client-web/dist/turn-rewind-view.js +117 -0
  751. package/packages/client-web/dist/turn-rewind-view.js.map +1 -0
  752. package/packages/client-web/dist/vision-toolkit-view.d.ts +66 -0
  753. package/packages/client-web/dist/vision-toolkit-view.d.ts.map +1 -0
  754. package/packages/client-web/dist/vision-toolkit-view.js +238 -0
  755. package/packages/client-web/dist/vision-toolkit-view.js.map +1 -0
  756. package/packages/client-web/dist/yaml-validator-view.d.ts +52 -0
  757. package/packages/client-web/dist/yaml-validator-view.d.ts.map +1 -0
  758. package/packages/client-web/dist/yaml-validator-view.js +96 -0
  759. package/packages/client-web/dist/yaml-validator-view.js.map +1 -0
  760. package/packages/client-web/package.json +1 -1
  761. package/packages/client-web/src/agent-teams-view.ts +189 -0
  762. package/packages/client-web/src/at-file-view.ts +69 -0
  763. package/packages/client-web/src/browser-fetch-view.ts +114 -0
  764. package/packages/client-web/src/browser-session-view.ts +222 -3
  765. package/packages/client-web/src/cleaner-view.ts +207 -0
  766. package/packages/client-web/src/context-doctor-view.ts +140 -0
  767. package/packages/client-web/src/context-insights-view.ts +125 -0
  768. package/packages/client-web/src/cost-meter-view.ts +63 -0
  769. package/packages/client-web/src/dependency-checker-view.ts +215 -0
  770. package/packages/client-web/src/docker-sandbox-view.ts +177 -0
  771. package/packages/client-web/src/fail-logger-view.ts +112 -0
  772. package/packages/client-web/src/genui-view.ts +88 -0
  773. package/packages/client-web/src/git-time-capsule-view.ts +215 -0
  774. package/packages/client-web/src/graph-memory-view.ts +91 -0
  775. package/packages/client-web/src/i18n-pair-view.ts +194 -0
  776. package/packages/client-web/src/mcp-client-view.ts +122 -0
  777. package/packages/client-web/src/modlens-view.ts +210 -0
  778. package/packages/client-web/src/openpets-view.ts +67 -0
  779. package/packages/client-web/src/panel-safe.ts +47 -0
  780. package/packages/client-web/src/plugin-dev-view.ts +39 -0
  781. package/packages/client-web/src/plugin-stars-view.ts +239 -1
  782. package/packages/client-web/src/react-room.tsx +1770 -900
  783. package/packages/client-web/src/readme-gen-view.ts +145 -0
  784. package/packages/client-web/src/recall-unread-view.ts +105 -0
  785. package/packages/client-web/src/session-bridge-view.ts +118 -0
  786. package/packages/client-web/src/session-insights-view.ts +205 -0
  787. package/packages/client-web/src/skill-guard-view.ts +94 -0
  788. package/packages/client-web/src/sql-lens-view.ts +247 -0
  789. package/packages/client-web/src/test-harness-view.ts +170 -0
  790. package/packages/client-web/src/token-guard-view.ts +75 -0
  791. package/packages/client-web/src/turn-rewind-view.ts +120 -0
  792. package/packages/client-web/src/vision-toolkit-view.ts +280 -0
  793. package/packages/client-web/src/yaml-validator-view.ts +102 -0
  794. package/packages/client-web/test/agent-teams-view.test.ts +198 -0
  795. package/packages/client-web/test/at-file-panel.test.ts +76 -0
  796. package/packages/client-web/test/browser-fetch-panel.test.ts +44 -0
  797. package/packages/client-web/test/browser-fetch-view.test.ts +89 -0
  798. package/packages/client-web/test/browser-session-panel.test.ts +55 -0
  799. package/packages/client-web/test/browser-session-view.test.ts +99 -1
  800. package/packages/client-web/test/cleaner-panel.test.ts +66 -0
  801. package/packages/client-web/test/cleaner-view.test.ts +143 -0
  802. package/packages/client-web/test/context-doctor-view.test.ts +169 -0
  803. package/packages/client-web/test/context-insights-view.test.ts +120 -0
  804. package/packages/client-web/test/cost-meter-view.test.ts +53 -0
  805. package/packages/client-web/test/dependency-checker-panel.test.ts +51 -0
  806. package/packages/client-web/test/dependency-checker-view.test.ts +266 -0
  807. package/packages/client-web/test/docker-sandbox-panel.test.ts +44 -0
  808. package/packages/client-web/test/docker-sandbox-view.test.ts +127 -0
  809. package/packages/client-web/test/fail-logger-view.test.ts +155 -0
  810. package/packages/client-web/test/genui-view.test.ts +55 -0
  811. package/packages/client-web/test/git-time-capsule-view.test.ts +252 -0
  812. package/packages/client-web/test/graph-memory-view.test.ts +67 -0
  813. package/packages/client-web/test/i18n-pair-panel.test.ts +72 -0
  814. package/packages/client-web/test/i18n-pair-view.test.ts +164 -0
  815. package/packages/client-web/test/mcp-client-view.test.ts +106 -0
  816. package/packages/client-web/test/modlens-view.test.ts +198 -0
  817. package/packages/client-web/test/openpets-view.test.ts +57 -0
  818. package/packages/client-web/test/plugin-dev-view.test.ts +63 -0
  819. package/packages/client-web/test/plugin-navigation.test.ts +1 -3
  820. package/packages/client-web/test/plugin-stars-panel.test.ts +44 -0
  821. package/packages/client-web/test/plugin-stars-view.test.ts +88 -1
  822. package/packages/client-web/test/readme-gen-panel.test.ts +81 -0
  823. package/packages/client-web/test/readme-gen-view.test.ts +91 -0
  824. package/packages/client-web/test/recall-unread-view.test.ts +153 -0
  825. package/packages/client-web/test/session-bridge-view.test.ts +102 -0
  826. package/packages/client-web/test/session-insights-panel.test.ts +85 -0
  827. package/packages/client-web/test/session-insights-view.test.ts +152 -0
  828. package/packages/client-web/test/skill-guard-view.test.ts +138 -0
  829. package/packages/client-web/test/sql-lens-panel.test.ts +52 -0
  830. package/packages/client-web/test/sql-lens-view.test.ts +134 -0
  831. package/packages/client-web/test/test-harness-panel.test.ts +228 -0
  832. package/packages/client-web/test/token-guard-view.test.ts +93 -0
  833. package/packages/client-web/test/turn-rewind-view.test.ts +159 -0
  834. package/packages/client-web/test/vision-toolkit-view.test.ts +152 -0
  835. package/packages/client-web/test/yaml-validator-view.test.ts +100 -0
  836. package/packages/core/dist/atomic-write.d.ts +8 -0
  837. package/packages/core/dist/atomic-write.d.ts.map +1 -0
  838. package/packages/core/dist/atomic-write.js +40 -0
  839. package/packages/core/dist/atomic-write.js.map +1 -0
  840. package/packages/core/dist/boot.d.ts.map +1 -1
  841. package/packages/core/dist/boot.js +132 -10
  842. package/packages/core/dist/boot.js.map +1 -1
  843. package/packages/core/dist/bounded-file.d.ts +7 -0
  844. package/packages/core/dist/bounded-file.d.ts.map +1 -0
  845. package/packages/core/dist/bounded-file.js +50 -0
  846. package/packages/core/dist/bounded-file.js.map +1 -0
  847. package/packages/core/dist/config.d.ts +2 -0
  848. package/packages/core/dist/config.d.ts.map +1 -1
  849. package/packages/core/dist/config.js +21 -0
  850. package/packages/core/dist/config.js.map +1 -1
  851. package/packages/core/dist/cordis-timer.d.ts +15 -0
  852. package/packages/core/dist/cordis-timer.d.ts.map +1 -0
  853. package/packages/core/dist/cordis-timer.js +99 -0
  854. package/packages/core/dist/cordis-timer.js.map +1 -0
  855. package/packages/core/dist/http.js +1 -1
  856. package/packages/core/dist/http.js.map +1 -1
  857. package/packages/core/dist/plugins/agent-teams.d.ts +5 -1
  858. package/packages/core/dist/plugins/agent-teams.d.ts.map +1 -1
  859. package/packages/core/dist/plugins/agent-teams.js +986 -105
  860. package/packages/core/dist/plugins/agent-teams.js.map +1 -1
  861. package/packages/core/dist/plugins/anchored-standard.d.ts +1 -0
  862. package/packages/core/dist/plugins/anchored-standard.d.ts.map +1 -1
  863. package/packages/core/dist/plugins/anchored-standard.js +39 -11
  864. package/packages/core/dist/plugins/anchored-standard.js.map +1 -1
  865. package/packages/core/dist/plugins/annotation.d.ts +1 -0
  866. package/packages/core/dist/plugins/annotation.d.ts.map +1 -1
  867. package/packages/core/dist/plugins/annotation.js +35 -17
  868. package/packages/core/dist/plugins/annotation.js.map +1 -1
  869. package/packages/core/dist/plugins/archify.d.ts +1 -0
  870. package/packages/core/dist/plugins/archify.d.ts.map +1 -1
  871. package/packages/core/dist/plugins/archify.js +69 -22
  872. package/packages/core/dist/plugins/archify.js.map +1 -1
  873. package/packages/core/dist/plugins/at-file.d.ts +5 -1
  874. package/packages/core/dist/plugins/at-file.d.ts.map +1 -1
  875. package/packages/core/dist/plugins/at-file.js +120 -29
  876. package/packages/core/dist/plugins/at-file.js.map +1 -1
  877. package/packages/core/dist/plugins/auto-mode.d.ts.map +1 -1
  878. package/packages/core/dist/plugins/auto-mode.js +89 -20
  879. package/packages/core/dist/plugins/auto-mode.js.map +1 -1
  880. package/packages/core/dist/plugins/better-sidebar.d.ts +1 -0
  881. package/packages/core/dist/plugins/better-sidebar.d.ts.map +1 -1
  882. package/packages/core/dist/plugins/better-sidebar.js +14 -4
  883. package/packages/core/dist/plugins/better-sidebar.js.map +1 -1
  884. package/packages/core/dist/plugins/browser-fetch.d.ts +1 -0
  885. package/packages/core/dist/plugins/browser-fetch.d.ts.map +1 -1
  886. package/packages/core/dist/plugins/browser-fetch.js +288 -96
  887. package/packages/core/dist/plugins/browser-fetch.js.map +1 -1
  888. package/packages/core/dist/plugins/browser-session.d.ts.map +1 -1
  889. package/packages/core/dist/plugins/browser-session.js +445 -106
  890. package/packages/core/dist/plugins/browser-session.js.map +1 -1
  891. package/packages/core/dist/plugins/canvas-draw.d.ts +1 -0
  892. package/packages/core/dist/plugins/canvas-draw.d.ts.map +1 -1
  893. package/packages/core/dist/plugins/canvas-draw.js +71 -19
  894. package/packages/core/dist/plugins/canvas-draw.js.map +1 -1
  895. package/packages/core/dist/plugins/change-verifier.d.ts +1 -0
  896. package/packages/core/dist/plugins/change-verifier.d.ts.map +1 -1
  897. package/packages/core/dist/plugins/change-verifier.js +30 -9
  898. package/packages/core/dist/plugins/change-verifier.js.map +1 -1
  899. package/packages/core/dist/plugins/cleaner.d.ts +5 -1
  900. package/packages/core/dist/plugins/cleaner.d.ts.map +1 -1
  901. package/packages/core/dist/plugins/cleaner.js +337 -40
  902. package/packages/core/dist/plugins/cleaner.js.map +1 -1
  903. package/packages/core/dist/plugins/cli-notifier.d.ts +2 -1
  904. package/packages/core/dist/plugins/cli-notifier.d.ts.map +1 -1
  905. package/packages/core/dist/plugins/cli-notifier.js +99 -42
  906. package/packages/core/dist/plugins/cli-notifier.js.map +1 -1
  907. package/packages/core/dist/plugins/code2skill.d.ts +1 -0
  908. package/packages/core/dist/plugins/code2skill.d.ts.map +1 -1
  909. package/packages/core/dist/plugins/code2skill.js +178 -38
  910. package/packages/core/dist/plugins/code2skill.js.map +1 -1
  911. package/packages/core/dist/plugins/colleague-skill.d.ts +2 -1
  912. package/packages/core/dist/plugins/colleague-skill.d.ts.map +1 -1
  913. package/packages/core/dist/plugins/colleague-skill.js +79 -49
  914. package/packages/core/dist/plugins/colleague-skill.js.map +1 -1
  915. package/packages/core/dist/plugins/context-doctor.d.ts +6 -1
  916. package/packages/core/dist/plugins/context-doctor.d.ts.map +1 -1
  917. package/packages/core/dist/plugins/context-doctor.js +403 -39
  918. package/packages/core/dist/plugins/context-doctor.js.map +1 -1
  919. package/packages/core/dist/plugins/context.d.ts +1 -0
  920. package/packages/core/dist/plugins/context.d.ts.map +1 -1
  921. package/packages/core/dist/plugins/context.js +169 -42
  922. package/packages/core/dist/plugins/context.js.map +1 -1
  923. package/packages/core/dist/plugins/cost-meter.d.ts +4 -0
  924. package/packages/core/dist/plugins/cost-meter.d.ts.map +1 -1
  925. package/packages/core/dist/plugins/cost-meter.js +319 -93
  926. package/packages/core/dist/plugins/cost-meter.js.map +1 -1
  927. package/packages/core/dist/plugins/dependency-checker.d.ts +11 -2
  928. package/packages/core/dist/plugins/dependency-checker.d.ts.map +1 -1
  929. package/packages/core/dist/plugins/dependency-checker.js +463 -114
  930. package/packages/core/dist/plugins/dependency-checker.js.map +1 -1
  931. package/packages/core/dist/plugins/docker-sandbox.d.ts +1 -0
  932. package/packages/core/dist/plugins/docker-sandbox.d.ts.map +1 -1
  933. package/packages/core/dist/plugins/docker-sandbox.js +322 -80
  934. package/packages/core/dist/plugins/docker-sandbox.js.map +1 -1
  935. package/packages/core/dist/plugins/fail-logger.d.ts +1 -0
  936. package/packages/core/dist/plugins/fail-logger.d.ts.map +1 -1
  937. package/packages/core/dist/plugins/fail-logger.js +187 -20
  938. package/packages/core/dist/plugins/fail-logger.js.map +1 -1
  939. package/packages/core/dist/plugins/genui.d.ts +1 -0
  940. package/packages/core/dist/plugins/genui.d.ts.map +1 -1
  941. package/packages/core/dist/plugins/genui.js +103 -38
  942. package/packages/core/dist/plugins/genui.js.map +1 -1
  943. package/packages/core/dist/plugins/git-time-capsule.d.ts +8 -2
  944. package/packages/core/dist/plugins/git-time-capsule.d.ts.map +1 -1
  945. package/packages/core/dist/plugins/git-time-capsule.js +400 -54
  946. package/packages/core/dist/plugins/git-time-capsule.js.map +1 -1
  947. package/packages/core/dist/plugins/graph-memory.d.ts.map +1 -1
  948. package/packages/core/dist/plugins/graph-memory.js +329 -42
  949. package/packages/core/dist/plugins/graph-memory.js.map +1 -1
  950. package/packages/core/dist/plugins/history-compressor.d.ts.map +1 -1
  951. package/packages/core/dist/plugins/history-compressor.js +31 -12
  952. package/packages/core/dist/plugins/history-compressor.js.map +1 -1
  953. package/packages/core/dist/plugins/hol-guard.d.ts.map +1 -1
  954. package/packages/core/dist/plugins/hol-guard.js +33 -13
  955. package/packages/core/dist/plugins/hol-guard.js.map +1 -1
  956. package/packages/core/dist/plugins/i18n-pair.d.ts +5 -1
  957. package/packages/core/dist/plugins/i18n-pair.d.ts.map +1 -1
  958. package/packages/core/dist/plugins/i18n-pair.js +308 -52
  959. package/packages/core/dist/plugins/i18n-pair.js.map +1 -1
  960. package/packages/core/dist/plugins/image-compressor.d.ts +7 -0
  961. package/packages/core/dist/plugins/image-compressor.d.ts.map +1 -1
  962. package/packages/core/dist/plugins/image-compressor.js +98 -25
  963. package/packages/core/dist/plugins/image-compressor.js.map +1 -1
  964. package/packages/core/dist/plugins/llm-verifier.d.ts.map +1 -1
  965. package/packages/core/dist/plugins/llm-verifier.js +21 -11
  966. package/packages/core/dist/plugins/llm-verifier.js.map +1 -1
  967. package/packages/core/dist/plugins/mcp-client.d.ts.map +1 -1
  968. package/packages/core/dist/plugins/mcp-client.js +986 -232
  969. package/packages/core/dist/plugins/mcp-client.js.map +1 -1
  970. package/packages/core/dist/plugins/mcp-panel.d.ts.map +1 -1
  971. package/packages/core/dist/plugins/mcp-panel.js +30 -16
  972. package/packages/core/dist/plugins/mcp-panel.js.map +1 -1
  973. package/packages/core/dist/plugins/memory.d.ts.map +1 -1
  974. package/packages/core/dist/plugins/memory.js +292 -59
  975. package/packages/core/dist/plugins/memory.js.map +1 -1
  976. package/packages/core/dist/plugins/mirage-bridge.d.ts.map +1 -1
  977. package/packages/core/dist/plugins/mirage-bridge.js +20 -10
  978. package/packages/core/dist/plugins/mirage-bridge.js.map +1 -1
  979. package/packages/core/dist/plugins/mock-server.d.ts.map +1 -1
  980. package/packages/core/dist/plugins/mock-server.js +85 -54
  981. package/packages/core/dist/plugins/mock-server.js.map +1 -1
  982. package/packages/core/dist/plugins/model.d.ts +3 -0
  983. package/packages/core/dist/plugins/model.d.ts.map +1 -1
  984. package/packages/core/dist/plugins/model.js +3 -0
  985. package/packages/core/dist/plugins/model.js.map +1 -1
  986. package/packages/core/dist/plugins/models.d.ts.map +1 -1
  987. package/packages/core/dist/plugins/models.js +10 -2
  988. package/packages/core/dist/plugins/models.js.map +1 -1
  989. package/packages/core/dist/plugins/modlens.d.ts +8 -1
  990. package/packages/core/dist/plugins/modlens.d.ts.map +1 -1
  991. package/packages/core/dist/plugins/modlens.js +438 -31
  992. package/packages/core/dist/plugins/modlens.js.map +1 -1
  993. package/packages/core/dist/plugins/module-search.d.ts +1 -0
  994. package/packages/core/dist/plugins/module-search.d.ts.map +1 -1
  995. package/packages/core/dist/plugins/module-search.js +35 -16
  996. package/packages/core/dist/plugins/module-search.js.map +1 -1
  997. package/packages/core/dist/plugins/obsidian-sync.d.ts.map +1 -1
  998. package/packages/core/dist/plugins/obsidian-sync.js +20 -11
  999. package/packages/core/dist/plugins/obsidian-sync.js.map +1 -1
  1000. package/packages/core/dist/plugins/openpets.d.ts.map +1 -1
  1001. package/packages/core/dist/plugins/openpets.js +203 -44
  1002. package/packages/core/dist/plugins/openpets.js.map +1 -1
  1003. package/packages/core/dist/plugins/plan-execute.d.ts +4 -1
  1004. package/packages/core/dist/plugins/plan-execute.d.ts.map +1 -1
  1005. package/packages/core/dist/plugins/plan-execute.js +42 -21
  1006. package/packages/core/dist/plugins/plan-execute.js.map +1 -1
  1007. package/packages/core/dist/plugins/plugin-check.d.ts +12 -3
  1008. package/packages/core/dist/plugins/plugin-check.d.ts.map +1 -1
  1009. package/packages/core/dist/plugins/plugin-check.js +83 -12
  1010. package/packages/core/dist/plugins/plugin-check.js.map +1 -1
  1011. package/packages/core/dist/plugins/plugin-dev.d.ts +1 -0
  1012. package/packages/core/dist/plugins/plugin-dev.d.ts.map +1 -1
  1013. package/packages/core/dist/plugins/plugin-dev.js +156 -23
  1014. package/packages/core/dist/plugins/plugin-dev.js.map +1 -1
  1015. package/packages/core/dist/plugins/plugin-finder.d.ts +1 -0
  1016. package/packages/core/dist/plugins/plugin-finder.d.ts.map +1 -1
  1017. package/packages/core/dist/plugins/plugin-finder.js +131 -13
  1018. package/packages/core/dist/plugins/plugin-finder.js.map +1 -1
  1019. package/packages/core/dist/plugins/plugin-radar.d.ts +4 -0
  1020. package/packages/core/dist/plugins/plugin-radar.d.ts.map +1 -1
  1021. package/packages/core/dist/plugins/plugin-radar.js +137 -36
  1022. package/packages/core/dist/plugins/plugin-radar.js.map +1 -1
  1023. package/packages/core/dist/plugins/plugin-stars.d.ts.map +1 -1
  1024. package/packages/core/dist/plugins/plugin-stars.js +282 -81
  1025. package/packages/core/dist/plugins/plugin-stars.js.map +1 -1
  1026. package/packages/core/dist/plugins/prompt-guard.d.ts +1 -0
  1027. package/packages/core/dist/plugins/prompt-guard.d.ts.map +1 -1
  1028. package/packages/core/dist/plugins/prompt-guard.js +60 -9
  1029. package/packages/core/dist/plugins/prompt-guard.js.map +1 -1
  1030. package/packages/core/dist/plugins/prompt-library.d.ts +1 -0
  1031. package/packages/core/dist/plugins/prompt-library.d.ts.map +1 -1
  1032. package/packages/core/dist/plugins/prompt-library.js +4 -1
  1033. package/packages/core/dist/plugins/prompt-library.js.map +1 -1
  1034. package/packages/core/dist/plugins/readme-gen.d.ts +6 -2
  1035. package/packages/core/dist/plugins/readme-gen.d.ts.map +1 -1
  1036. package/packages/core/dist/plugins/readme-gen.js +514 -73
  1037. package/packages/core/dist/plugins/readme-gen.js.map +1 -1
  1038. package/packages/core/dist/plugins/recall-unread.d.ts +1 -1
  1039. package/packages/core/dist/plugins/recall-unread.d.ts.map +1 -1
  1040. package/packages/core/dist/plugins/recall-unread.js +411 -68
  1041. package/packages/core/dist/plugins/recall-unread.js.map +1 -1
  1042. package/packages/core/dist/plugins/resources.d.ts.map +1 -1
  1043. package/packages/core/dist/plugins/resources.js +75 -6
  1044. package/packages/core/dist/plugins/resources.js.map +1 -1
  1045. package/packages/core/dist/plugins/reverse-skill.d.ts.map +1 -1
  1046. package/packages/core/dist/plugins/reverse-skill.js +2 -1
  1047. package/packages/core/dist/plugins/reverse-skill.js.map +1 -1
  1048. package/packages/core/dist/plugins/reviewer-bot.d.ts +1 -0
  1049. package/packages/core/dist/plugins/reviewer-bot.d.ts.map +1 -1
  1050. package/packages/core/dist/plugins/reviewer-bot.js +35 -16
  1051. package/packages/core/dist/plugins/reviewer-bot.js.map +1 -1
  1052. package/packages/core/dist/plugins/runtime-doctor.d.ts +1 -0
  1053. package/packages/core/dist/plugins/runtime-doctor.d.ts.map +1 -1
  1054. package/packages/core/dist/plugins/runtime-doctor.js +4 -1
  1055. package/packages/core/dist/plugins/runtime-doctor.js.map +1 -1
  1056. package/packages/core/dist/plugins/runtime.d.ts.map +1 -1
  1057. package/packages/core/dist/plugins/runtime.js +106 -64
  1058. package/packages/core/dist/plugins/runtime.js.map +1 -1
  1059. package/packages/core/dist/plugins/secure-audit.d.ts +1 -0
  1060. package/packages/core/dist/plugins/secure-audit.d.ts.map +1 -1
  1061. package/packages/core/dist/plugins/secure-audit.js +30 -12
  1062. package/packages/core/dist/plugins/secure-audit.js.map +1 -1
  1063. package/packages/core/dist/plugins/session-bookmarks.d.ts +1 -0
  1064. package/packages/core/dist/plugins/session-bookmarks.d.ts.map +1 -1
  1065. package/packages/core/dist/plugins/session-bookmarks.js +4 -1
  1066. package/packages/core/dist/plugins/session-bookmarks.js.map +1 -1
  1067. package/packages/core/dist/plugins/session-bridge.d.ts +1 -0
  1068. package/packages/core/dist/plugins/session-bridge.d.ts.map +1 -1
  1069. package/packages/core/dist/plugins/session-bridge.js +401 -88
  1070. package/packages/core/dist/plugins/session-bridge.js.map +1 -1
  1071. package/packages/core/dist/plugins/session-compare.d.ts +1 -0
  1072. package/packages/core/dist/plugins/session-compare.d.ts.map +1 -1
  1073. package/packages/core/dist/plugins/session-compare.js +4 -1
  1074. package/packages/core/dist/plugins/session-compare.js.map +1 -1
  1075. package/packages/core/dist/plugins/session-export.d.ts +1 -0
  1076. package/packages/core/dist/plugins/session-export.d.ts.map +1 -1
  1077. package/packages/core/dist/plugins/session-export.js +6 -6
  1078. package/packages/core/dist/plugins/session-export.js.map +1 -1
  1079. package/packages/core/dist/plugins/session-insights.d.ts +37 -1
  1080. package/packages/core/dist/plugins/session-insights.d.ts.map +1 -1
  1081. package/packages/core/dist/plugins/session-insights.js +406 -21
  1082. package/packages/core/dist/plugins/session-insights.js.map +1 -1
  1083. package/packages/core/dist/plugins/session-search.d.ts +1 -0
  1084. package/packages/core/dist/plugins/session-search.d.ts.map +1 -1
  1085. package/packages/core/dist/plugins/session-search.js +4 -1
  1086. package/packages/core/dist/plugins/session-search.js.map +1 -1
  1087. package/packages/core/dist/plugins/session.d.ts.map +1 -1
  1088. package/packages/core/dist/plugins/session.js +8 -1
  1089. package/packages/core/dist/plugins/session.js.map +1 -1
  1090. package/packages/core/dist/plugins/skill-catalog.d.ts +1 -0
  1091. package/packages/core/dist/plugins/skill-catalog.d.ts.map +1 -1
  1092. package/packages/core/dist/plugins/skill-catalog.js +6 -5
  1093. package/packages/core/dist/plugins/skill-catalog.js.map +1 -1
  1094. package/packages/core/dist/plugins/skill-guard.d.ts +2 -1
  1095. package/packages/core/dist/plugins/skill-guard.d.ts.map +1 -1
  1096. package/packages/core/dist/plugins/skill-guard.js +241 -61
  1097. package/packages/core/dist/plugins/skill-guard.js.map +1 -1
  1098. package/packages/core/dist/plugins/sql-lens-worker.d.ts +2 -0
  1099. package/packages/core/dist/plugins/sql-lens-worker.d.ts.map +1 -0
  1100. package/packages/core/dist/plugins/sql-lens-worker.js +206 -0
  1101. package/packages/core/dist/plugins/sql-lens-worker.js.map +1 -0
  1102. package/packages/core/dist/plugins/sql-lens.d.ts +7 -1
  1103. package/packages/core/dist/plugins/sql-lens.d.ts.map +1 -1
  1104. package/packages/core/dist/plugins/sql-lens.js +301 -68
  1105. package/packages/core/dist/plugins/sql-lens.js.map +1 -1
  1106. package/packages/core/dist/plugins/stdio.d.ts +3 -0
  1107. package/packages/core/dist/plugins/stdio.d.ts.map +1 -1
  1108. package/packages/core/dist/plugins/stdio.js +62 -4
  1109. package/packages/core/dist/plugins/stdio.js.map +1 -1
  1110. package/packages/core/dist/plugins/synapse.d.ts.map +1 -1
  1111. package/packages/core/dist/plugins/synapse.js +17 -9
  1112. package/packages/core/dist/plugins/synapse.js.map +1 -1
  1113. package/packages/core/dist/plugins/tab-manager.d.ts +1 -0
  1114. package/packages/core/dist/plugins/tab-manager.d.ts.map +1 -1
  1115. package/packages/core/dist/plugins/tab-manager.js +167 -62
  1116. package/packages/core/dist/plugins/tab-manager.js.map +1 -1
  1117. package/packages/core/dist/plugins/taskboard.d.ts.map +1 -1
  1118. package/packages/core/dist/plugins/taskboard.js +50 -22
  1119. package/packages/core/dist/plugins/taskboard.js.map +1 -1
  1120. package/packages/core/dist/plugins/telemetry-blocker.d.ts +4 -1
  1121. package/packages/core/dist/plugins/telemetry-blocker.d.ts.map +1 -1
  1122. package/packages/core/dist/plugins/telemetry-blocker.js +30 -11
  1123. package/packages/core/dist/plugins/telemetry-blocker.js.map +1 -1
  1124. package/packages/core/dist/plugins/test-harness.d.ts +7 -1
  1125. package/packages/core/dist/plugins/test-harness.d.ts.map +1 -1
  1126. package/packages/core/dist/plugins/test-harness.js +255 -43
  1127. package/packages/core/dist/plugins/test-harness.js.map +1 -1
  1128. package/packages/core/dist/plugins/theme-studio.d.ts.map +1 -1
  1129. package/packages/core/dist/plugins/theme-studio.js +4 -2
  1130. package/packages/core/dist/plugins/theme-studio.js.map +1 -1
  1131. package/packages/core/dist/plugins/token-guard.d.ts.map +1 -1
  1132. package/packages/core/dist/plugins/token-guard.js +164 -32
  1133. package/packages/core/dist/plugins/token-guard.js.map +1 -1
  1134. package/packages/core/dist/plugins/tools.d.ts.map +1 -1
  1135. package/packages/core/dist/plugins/tools.js +4 -1
  1136. package/packages/core/dist/plugins/tools.js.map +1 -1
  1137. package/packages/core/dist/plugins/turn-rewind.d.ts +17 -0
  1138. package/packages/core/dist/plugins/turn-rewind.d.ts.map +1 -1
  1139. package/packages/core/dist/plugins/turn-rewind.js +340 -36
  1140. package/packages/core/dist/plugins/turn-rewind.js.map +1 -1
  1141. package/packages/core/dist/plugins/undo-savepoint.d.ts.map +1 -1
  1142. package/packages/core/dist/plugins/undo-savepoint.js +157 -51
  1143. package/packages/core/dist/plugins/undo-savepoint.js.map +1 -1
  1144. package/packages/core/dist/plugins/vision-toolkit.d.ts +22 -3
  1145. package/packages/core/dist/plugins/vision-toolkit.d.ts.map +1 -1
  1146. package/packages/core/dist/plugins/vision-toolkit.js +389 -66
  1147. package/packages/core/dist/plugins/vision-toolkit.js.map +1 -1
  1148. package/packages/core/dist/plugins/web-research.d.ts.map +1 -1
  1149. package/packages/core/dist/plugins/web-research.js +13 -4
  1150. package/packages/core/dist/plugins/web-research.js.map +1 -1
  1151. package/packages/core/dist/plugins/workspace-navigator.d.ts +8 -2
  1152. package/packages/core/dist/plugins/workspace-navigator.d.ts.map +1 -1
  1153. package/packages/core/dist/plugins/workspace-navigator.js +28 -10
  1154. package/packages/core/dist/plugins/workspace-navigator.js.map +1 -1
  1155. package/packages/core/dist/plugins/workspace-search.d.ts +7 -0
  1156. package/packages/core/dist/plugins/workspace-search.d.ts.map +1 -1
  1157. package/packages/core/dist/plugins/workspace-search.js +67 -34
  1158. package/packages/core/dist/plugins/workspace-search.js.map +1 -1
  1159. package/packages/core/dist/plugins/yaml-validator.d.ts +1 -0
  1160. package/packages/core/dist/plugins/yaml-validator.d.ts.map +1 -1
  1161. package/packages/core/dist/plugins/yaml-validator.js +156 -47
  1162. package/packages/core/dist/plugins/yaml-validator.js.map +1 -1
  1163. package/packages/core/dist/profile.d.ts.map +1 -1
  1164. package/packages/core/dist/profile.js +3 -1
  1165. package/packages/core/dist/profile.js.map +1 -1
  1166. package/packages/core/dist/runtime.d.ts.map +1 -1
  1167. package/packages/core/dist/runtime.js +8 -3
  1168. package/packages/core/dist/runtime.js.map +1 -1
  1169. package/packages/core/dist/services.d.ts.map +1 -1
  1170. package/packages/core/dist/services.js +22 -2
  1171. package/packages/core/dist/services.js.map +1 -1
  1172. package/packages/core/dist/stdio.d.ts +1 -0
  1173. package/packages/core/dist/stdio.d.ts.map +1 -1
  1174. package/packages/core/dist/stdio.js +241 -25
  1175. package/packages/core/dist/stdio.js.map +1 -1
  1176. package/packages/core/dist/workspace-path.d.ts +1 -0
  1177. package/packages/core/dist/workspace-path.d.ts.map +1 -1
  1178. package/packages/core/dist/workspace-path.js +9 -0
  1179. package/packages/core/dist/workspace-path.js.map +1 -1
  1180. package/packages/core/package.json +1 -1
  1181. package/packages/core/profiles/default/cordis.yml +4 -2
  1182. package/packages/core/src/atomic-write.ts +45 -0
  1183. package/packages/core/src/boot.ts +125 -9
  1184. package/packages/core/src/bounded-file.ts +41 -0
  1185. package/packages/core/src/config.ts +20 -1
  1186. package/packages/core/src/cordis-timer.ts +107 -0
  1187. package/packages/core/src/http.ts +1 -1
  1188. package/packages/core/src/plugins/agent-teams.ts +1003 -103
  1189. package/packages/core/src/plugins/anchored-standard.ts +41 -14
  1190. package/packages/core/src/plugins/annotation.ts +36 -19
  1191. package/packages/core/src/plugins/archify.ts +80 -33
  1192. package/packages/core/src/plugins/at-file.ts +110 -26
  1193. package/packages/core/src/plugins/auto-mode.ts +91 -24
  1194. package/packages/core/src/plugins/better-sidebar.ts +15 -4
  1195. package/packages/core/src/plugins/browser-fetch.ts +286 -95
  1196. package/packages/core/src/plugins/browser-session.ts +421 -102
  1197. package/packages/core/src/plugins/canvas-draw.ts +74 -21
  1198. package/packages/core/src/plugins/change-verifier.ts +33 -9
  1199. package/packages/core/src/plugins/cleaner.ts +339 -37
  1200. package/packages/core/src/plugins/cli-notifier.ts +110 -41
  1201. package/packages/core/src/plugins/code2skill.ts +175 -34
  1202. package/packages/core/src/plugins/colleague-skill.ts +72 -47
  1203. package/packages/core/src/plugins/context-doctor.ts +410 -40
  1204. package/packages/core/src/plugins/context.ts +164 -39
  1205. package/packages/core/src/plugins/cost-meter.ts +360 -113
  1206. package/packages/core/src/plugins/dependency-checker.ts +456 -119
  1207. package/packages/core/src/plugins/docker-sandbox.ts +312 -76
  1208. package/packages/core/src/plugins/fail-logger.ts +169 -18
  1209. package/packages/core/src/plugins/genui.ts +104 -42
  1210. package/packages/core/src/plugins/git-time-capsule.ts +424 -55
  1211. package/packages/core/src/plugins/graph-memory.ts +333 -60
  1212. package/packages/core/src/plugins/history-compressor.ts +29 -12
  1213. package/packages/core/src/plugins/hol-guard.ts +31 -13
  1214. package/packages/core/src/plugins/i18n-pair.ts +296 -52
  1215. package/packages/core/src/plugins/image-compressor.ts +98 -25
  1216. package/packages/core/src/plugins/llm-verifier.ts +39 -21
  1217. package/packages/core/src/plugins/mcp-client.ts +1069 -249
  1218. package/packages/core/src/plugins/mcp-panel.ts +37 -21
  1219. package/packages/core/src/plugins/memory.ts +262 -57
  1220. package/packages/core/src/plugins/mirage-bridge.ts +22 -10
  1221. package/packages/core/src/plugins/mock-server.ts +91 -60
  1222. package/packages/core/src/plugins/model.ts +4 -0
  1223. package/packages/core/src/plugins/models.ts +10 -2
  1224. package/packages/core/src/plugins/modlens.ts +463 -29
  1225. package/packages/core/src/plugins/module-search.ts +40 -19
  1226. package/packages/core/src/plugins/obsidian-sync.ts +26 -15
  1227. package/packages/core/src/plugins/openpets.ts +193 -42
  1228. package/packages/core/src/plugins/plan-execute.ts +49 -21
  1229. package/packages/core/src/plugins/plugin-check.ts +100 -16
  1230. package/packages/core/src/plugins/plugin-dev.ts +167 -23
  1231. package/packages/core/src/plugins/plugin-finder.ts +119 -12
  1232. package/packages/core/src/plugins/plugin-radar.ts +130 -39
  1233. package/packages/core/src/plugins/plugin-stars.ts +252 -80
  1234. package/packages/core/src/plugins/prompt-guard.ts +51 -12
  1235. package/packages/core/src/plugins/prompt-library.ts +14 -8
  1236. package/packages/core/src/plugins/readme-gen.ts +476 -79
  1237. package/packages/core/src/plugins/recall-unread.ts +412 -68
  1238. package/packages/core/src/plugins/resources.ts +87 -5
  1239. package/packages/core/src/plugins/reverse-skill.ts +9 -5
  1240. package/packages/core/src/plugins/reviewer-bot.ts +34 -16
  1241. package/packages/core/src/plugins/runtime-doctor.ts +4 -1
  1242. package/packages/core/src/plugins/runtime.ts +113 -62
  1243. package/packages/core/src/plugins/secure-audit.ts +33 -12
  1244. package/packages/core/src/plugins/session-bookmarks.ts +12 -6
  1245. package/packages/core/src/plugins/session-bridge.ts +404 -89
  1246. package/packages/core/src/plugins/session-compare.ts +10 -4
  1247. package/packages/core/src/plugins/session-export.ts +12 -9
  1248. package/packages/core/src/plugins/session-insights.ts +454 -31
  1249. package/packages/core/src/plugins/session-search.ts +4 -1
  1250. package/packages/core/src/plugins/session.ts +15 -4
  1251. package/packages/core/src/plugins/skill-catalog.ts +13 -8
  1252. package/packages/core/src/plugins/skill-guard.ts +254 -61
  1253. package/packages/core/src/plugins/sql-lens-worker.ts +202 -0
  1254. package/packages/core/src/plugins/sql-lens.ts +323 -71
  1255. package/packages/core/src/plugins/stdio.ts +58 -3
  1256. package/packages/core/src/plugins/synapse.ts +16 -9
  1257. package/packages/core/src/plugins/tab-manager.ts +163 -65
  1258. package/packages/core/src/plugins/taskboard.ts +81 -47
  1259. package/packages/core/src/plugins/telemetry-blocker.ts +27 -11
  1260. package/packages/core/src/plugins/test-harness.ts +275 -42
  1261. package/packages/core/src/plugins/theme-studio.ts +7 -2
  1262. package/packages/core/src/plugins/token-guard.ts +171 -31
  1263. package/packages/core/src/plugins/tools.ts +4 -1
  1264. package/packages/core/src/plugins/turn-rewind.ts +351 -37
  1265. package/packages/core/src/plugins/undo-savepoint.ts +160 -59
  1266. package/packages/core/src/plugins/vision-toolkit.ts +420 -63
  1267. package/packages/core/src/plugins/web-research.ts +19 -7
  1268. package/packages/core/src/plugins/workspace-navigator.ts +39 -14
  1269. package/packages/core/src/plugins/workspace-search.ts +75 -37
  1270. package/packages/core/src/plugins/yaml-validator.ts +165 -46
  1271. package/packages/core/src/profile.ts +4 -1
  1272. package/packages/core/src/runtime.ts +8 -2
  1273. package/packages/core/src/services.ts +22 -2
  1274. package/packages/core/src/stdio.ts +220 -23
  1275. package/packages/core/src/workspace-path.ts +10 -0
  1276. package/packages/core/test/agent-teams.test.ts +495 -2
  1277. package/packages/core/test/anchored-standard.test.ts +60 -0
  1278. package/packages/core/test/annotation.test.ts +69 -0
  1279. package/packages/core/test/archify.test.ts +212 -1
  1280. package/packages/core/test/at-file.test.ts +666 -0
  1281. package/packages/core/test/atomic-write.test.ts +52 -0
  1282. package/packages/core/test/auto-mode.test.ts +629 -0
  1283. package/packages/core/test/better-sidebar.test.ts +108 -1
  1284. package/packages/core/test/boot.test.ts +142 -6
  1285. package/packages/core/test/bounded-file.test.ts +55 -0
  1286. package/packages/core/test/browser-fetch-rebinding.test.ts +93 -0
  1287. package/packages/core/test/browser-fetch.test.ts +844 -0
  1288. package/packages/core/test/browser-session.test.ts +1236 -0
  1289. package/packages/core/test/canvas-draw.test.ts +164 -0
  1290. package/packages/core/test/change-verifier.test.ts +200 -0
  1291. package/packages/core/test/cleaner.test.ts +316 -0
  1292. package/packages/core/test/cli-notifier.test.ts +235 -0
  1293. package/packages/core/test/code2skill.test.ts +264 -0
  1294. package/packages/core/test/colleague-skill.test.ts +167 -0
  1295. package/packages/core/test/config.test.ts +31 -5
  1296. package/packages/core/test/context-doctor.test.ts +597 -2
  1297. package/packages/core/test/context-insights.test.ts +396 -0
  1298. package/packages/core/test/cordis-timer.test.ts +147 -0
  1299. package/packages/core/test/cost-meter.test.ts +362 -0
  1300. package/packages/core/test/dependency-checker.test.ts +576 -3
  1301. package/packages/core/test/docker-sandbox.test.ts +170 -0
  1302. package/packages/core/test/fail-logger.test.ts +363 -0
  1303. package/packages/core/test/genui.test.ts +162 -0
  1304. package/packages/core/test/git-time-capsule.test.ts +1364 -3
  1305. package/packages/core/test/graph-memory.test.ts +508 -0
  1306. package/packages/core/test/history-compressor.test.ts +47 -0
  1307. package/packages/core/test/hol-guard.test.ts +61 -0
  1308. package/packages/core/test/http.test.ts +4 -2
  1309. package/packages/core/test/i18n-pair.test.ts +367 -0
  1310. package/packages/core/test/image-compressor.test.ts +59 -0
  1311. package/packages/core/test/llm-verifier.test.ts +4 -0
  1312. package/packages/core/test/mcp-client.test.ts +1037 -0
  1313. package/packages/core/test/mcp-panel.test.ts +91 -0
  1314. package/packages/core/test/memory.test.ts +125 -0
  1315. package/packages/core/test/mirage-bridge.test.ts +4 -0
  1316. package/packages/core/test/mock-server.test.ts +63 -0
  1317. package/packages/core/test/model.test.ts +62 -0
  1318. package/packages/core/test/models.test.ts +85 -0
  1319. package/packages/core/test/modlens.test.ts +615 -0
  1320. package/packages/core/test/module-search.test.ts +20 -0
  1321. package/packages/core/test/obsidian-sync.test.ts +57 -0
  1322. package/packages/core/test/openpets.test.ts +273 -0
  1323. package/packages/core/test/plan-execute.test.ts +86 -0
  1324. package/packages/core/test/plugin-dev.test.ts +246 -0
  1325. package/packages/core/test/plugin-finder.test.ts +105 -0
  1326. package/packages/core/test/plugin-radar.test.ts +87 -0
  1327. package/packages/core/test/plugin-stars.test.ts +429 -4
  1328. package/packages/core/test/profiles.integration.test.ts +451 -2
  1329. package/packages/core/test/prompt-guard.test.ts +78 -0
  1330. package/packages/core/test/readme-gen.test.ts +403 -3
  1331. package/packages/core/test/recall-unread.test.ts +559 -2
  1332. package/packages/core/test/registry.test.ts +16 -0
  1333. package/packages/core/test/resources.test.ts +310 -0
  1334. package/packages/core/test/reviewer-bot.test.ts +55 -0
  1335. package/packages/core/test/runtime-fixture.ts +28 -4
  1336. package/packages/core/test/runtime.test.ts +178 -8
  1337. package/packages/core/test/secure-audit.test.ts +14 -1
  1338. package/packages/core/test/services.test.ts +2772 -117
  1339. package/packages/core/test/session-bridge.test.ts +309 -1
  1340. package/packages/core/test/session-insights.test.ts +486 -0
  1341. package/packages/core/test/session.test.ts +153 -0
  1342. package/packages/core/test/skill-guard.test.ts +261 -2
  1343. package/packages/core/test/sql-lens.test.ts +244 -0
  1344. package/packages/core/test/stdio-args.test.ts +484 -1
  1345. package/packages/core/test/stdio.test.ts +159 -0
  1346. package/packages/core/test/synapse.test.ts +67 -0
  1347. package/packages/core/test/tab-manager.test.ts +58 -0
  1348. package/packages/core/test/taskboard.test.ts +73 -0
  1349. package/packages/core/test/telemetry-blocker.test.ts +61 -0
  1350. package/packages/core/test/test-harness.test.ts +297 -0
  1351. package/packages/core/test/token-guard.test.ts +362 -1
  1352. package/packages/core/test/tools.test.ts +118 -0
  1353. package/packages/core/test/turn-rewind.test.ts +532 -2
  1354. package/packages/core/test/undo-savepoint.test.ts +222 -0
  1355. package/packages/core/test/vision-toolkit.test.ts +480 -7
  1356. package/packages/core/test/web-research.test.ts +63 -0
  1357. package/packages/core/test/workspace-git-status.test.ts +19 -2
  1358. package/packages/core/test/workspace-navigator.test.ts +11 -1
  1359. package/packages/core/test/workspace-search.test.ts +88 -0
  1360. package/packages/core/test/yaml-validator.test.ts +195 -0
  1361. package/packages/host-webserver/package.json +1 -1
  1362. package/apps/web/dist/assets/index-D6dtMTPb.js +0 -20
  1363. package/apps/web/dist/assets/index-De8Rm01Z.css +0 -2
@@ -1,5 +1,5 @@
1
1
  import { createInterface } from "node:readline/promises";
2
- import { PiHarnessStdioCancelledError } from "@pi-harness/core";
2
+ import { MAX_STDIO_PROMPT_BYTES, PiHarnessStdioCancelledError } from "@pi-harness/core";
3
3
  export class NodeStdio {
4
4
  #input;
5
5
  #output;
@@ -7,12 +7,13 @@ export class NodeStdio {
7
7
  #abort = new AbortController();
8
8
  #readline;
9
9
  #broken = new WeakSet();
10
+ #pendingWrites = new WeakMap();
10
11
  constructor(input, output, error) {
11
12
  this.#input = input;
12
13
  this.#output = output;
13
14
  this.#error = error;
14
- output.on("error", () => this.#broken.add(output));
15
- error.on("error", () => this.#broken.add(error));
15
+ for (const stream of new Set([output, error]))
16
+ stream.on("error", () => this.#markBroken(stream));
16
17
  }
17
18
  async readPrompt() {
18
19
  if (this.#abort.signal.aborted)
@@ -21,8 +22,18 @@ export class NodeStdio {
21
22
  return await this.#question();
22
23
  this.#input.setEncoding("utf8");
23
24
  let content = "";
25
+ let bytes = 0;
24
26
  await new Promise((resolve, reject) => {
25
- const onData = (chunk) => { content += String(chunk); };
27
+ const onData = (chunk) => {
28
+ const text = String(chunk);
29
+ bytes += Buffer.byteLength(text, "utf8");
30
+ if (bytes > MAX_STDIO_PROMPT_BYTES) {
31
+ this.#input.pause();
32
+ settle(new Error(`Prompt must be at most ${MAX_STDIO_PROMPT_BYTES} UTF-8 bytes`));
33
+ return;
34
+ }
35
+ content += text;
36
+ };
26
37
  const settle = (error) => {
27
38
  this.#input.off("data", onData);
28
39
  this.#input.off("end", onEnd);
@@ -47,6 +58,40 @@ export class NodeStdio {
47
58
  return content.trimEnd();
48
59
  }
49
60
  async #question() {
61
+ let bytes = 0;
62
+ let lineEnded = false;
63
+ let rejectOversized = () => { };
64
+ const oversized = new Promise((_resolve, reject) => {
65
+ rejectOversized = reject;
66
+ });
67
+ const onInputData = (chunk) => {
68
+ if (lineEnded)
69
+ return;
70
+ if (chunk instanceof Uint8Array) {
71
+ let lineEnd = chunk.length;
72
+ for (let index = 0; index < chunk.length; index += 1) {
73
+ if (chunk[index] === 10 || chunk[index] === 13) {
74
+ lineEnd = index;
75
+ lineEnded = true;
76
+ break;
77
+ }
78
+ }
79
+ bytes += lineEnd;
80
+ }
81
+ else {
82
+ const text = String(chunk);
83
+ const lineEnd = text.search(/[\r\n]/u);
84
+ const promptText = lineEnd < 0 ? text : text.slice(0, lineEnd);
85
+ if (lineEnd >= 0)
86
+ lineEnded = true;
87
+ bytes += Buffer.byteLength(promptText, "utf8");
88
+ }
89
+ if (bytes <= MAX_STDIO_PROMPT_BYTES)
90
+ return;
91
+ this.#input.pause();
92
+ rejectOversized(new Error(`Prompt must be at most ${MAX_STDIO_PROMPT_BYTES} UTF-8 bytes`));
93
+ };
94
+ this.#input.on("data", onInputData);
50
95
  const readline = createInterface({ input: this.#input, output: this.#output });
51
96
  this.#readline = readline;
52
97
  readline.on("SIGINT", () => this.close());
@@ -54,6 +99,7 @@ export class NodeStdio {
54
99
  return await Promise.race([
55
100
  readline.question("> ", { signal: this.#abort.signal }),
56
101
  new Promise((_, reject) => readline.once("close", () => reject(new PiHarnessStdioCancelledError()))),
102
+ oversized,
57
103
  ]);
58
104
  }
59
105
  catch (cause) {
@@ -61,6 +107,7 @@ export class NodeStdio {
61
107
  }
62
108
  finally {
63
109
  this.#readline = undefined;
110
+ this.#input.off("data", onInputData);
64
111
  readline.close();
65
112
  }
66
113
  }
@@ -73,33 +120,51 @@ export class NodeStdio {
73
120
  #write(stream, text) {
74
121
  if (this.#broken.has(stream) || stream.destroyed || stream.writableEnded)
75
122
  return;
123
+ let resolve;
124
+ const pending = {
125
+ promise: new Promise((settle) => {
126
+ resolve = settle;
127
+ }),
128
+ resolve: () => resolve(),
129
+ };
130
+ let writes = this.#pendingWrites.get(stream);
131
+ if (writes === undefined) {
132
+ writes = new Set();
133
+ this.#pendingWrites.set(stream, writes);
134
+ }
135
+ writes.add(pending);
76
136
  try {
77
137
  stream.write(text, (error) => {
78
138
  if (error !== null && error !== undefined)
79
- this.#broken.add(stream);
139
+ this.#markBroken(stream);
140
+ else
141
+ this.#settleWrite(stream, pending);
80
142
  });
81
143
  }
82
144
  catch {
83
- this.#broken.add(stream);
145
+ this.#markBroken(stream);
84
146
  }
85
147
  }
86
148
  async flush() {
87
- await Promise.all([this.#drain(this.#output), this.#drain(this.#error)]);
149
+ const pending = [];
150
+ for (const stream of new Set([this.#output, this.#error])) {
151
+ for (const write of this.#pendingWrites.get(stream) ?? [])
152
+ pending.push(write.promise);
153
+ }
154
+ await Promise.all(pending);
155
+ }
156
+ #settleWrite(stream, pending) {
157
+ this.#pendingWrites.get(stream)?.delete(pending);
158
+ pending.resolve();
88
159
  }
89
- async #drain(stream) {
90
- if (this.#broken.has(stream) || stream.destroyed || stream.writableEnded || stream.writableLength === 0)
160
+ #markBroken(stream) {
161
+ this.#broken.add(stream);
162
+ const writes = this.#pendingWrites.get(stream);
163
+ if (writes === undefined)
91
164
  return;
92
- await new Promise((resolve) => {
93
- const done = () => {
94
- stream.off("drain", done);
95
- stream.off("error", done);
96
- stream.off("close", done);
97
- resolve();
98
- };
99
- stream.once("drain", done);
100
- stream.once("error", done);
101
- stream.once("close", done);
102
- });
165
+ this.#pendingWrites.delete(stream);
166
+ for (const pending of writes)
167
+ pending.resolve();
103
168
  }
104
169
  close() {
105
170
  if (this.#abort.signal.aborted)
@@ -1 +1 @@
1
- {"version":3,"file":"node-stdio.js","sourceRoot":"","sources":["../src/node-stdio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-stdio.js","sourceRoot":"","sources":["../src/node-stdio.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/cli",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "private": true,
5
5
  "description": "Plugin-first Pi Harness CLI",
6
6
  "homepage": "https://github.com/pi-harness/pi-harness#readme",
@@ -40,7 +40,11 @@ const environment: CliEnvironment = {
40
40
  const args = process.argv.slice(2);
41
41
  if (shouldRelaunchForDevelopmentProfile(args, process.execArgv)) {
42
42
  try {
43
- process.exitCode = await superviseDevelopmentProcess(process.execPath, ["--expose-internals", ...process.execArgv, fileURLToPath(import.meta.url), ...args], { stdio: "inherit", env: { ...process.env, PI_HARNESS_SUPERVISED: "1" } });
43
+ process.exitCode = await superviseDevelopmentProcess(
44
+ process.execPath,
45
+ ["--expose-internals", ...process.execArgv, fileURLToPath(import.meta.url), ...args],
46
+ { stdio: "inherit", env: { ...process.env, PI_HARNESS_SUPERVISED: "1" } },
47
+ );
44
48
  } catch (error) {
45
49
  process.stderr.write(`Pi Harness could not start the supervised development process: ${error instanceof Error ? error.message : String(error)}\n`);
46
50
  process.exitCode = 1;
@@ -171,14 +171,26 @@ export async function runCli(_args: readonly string[], _environment: CliEnvironm
171
171
  shutdownAbort.abort(new Error("Pi Harness is shutting down"));
172
172
  const runtime = harness.context.get("piRuntime");
173
173
  if (runtime !== undefined) {
174
- const aborted = await settleWithin(runtime.abort().then(() => undefined, (error: unknown) => {
175
- environment.stderr.write(`${error instanceof Error ? error.stack ?? error.message : String(error)}\n`);
176
- }), environment.shutdownTimeoutMs);
174
+ const aborted = await settleWithin(
175
+ runtime.abort().then(
176
+ () => undefined,
177
+ (error: unknown) => {
178
+ environment.stderr.write(`${error instanceof Error ? (error.stack ?? error.message) : String(error)}\n`);
179
+ },
180
+ ),
181
+ environment.shutdownTimeoutMs,
182
+ );
177
183
  if (!aborted.settled) await forceExit(result.code);
178
184
  }
179
185
  // The application surface outlives the runtime abort unless it honours the signal, and
180
186
  // Node waits for it before exiting, so it gets the same deadline as everything else.
181
- const finished = await settleWithin(applicationRun.then(() => undefined, () => undefined), environment.shutdownTimeoutMs);
187
+ const finished = await settleWithin(
188
+ applicationRun.then(
189
+ () => undefined,
190
+ () => undefined,
191
+ ),
192
+ environment.shutdownTimeoutMs,
193
+ );
182
194
  if (!finished.settled) await forceExit(result.code);
183
195
  }
184
196
  return result.code;
@@ -190,9 +202,15 @@ export async function runCli(_args: readonly string[], _environment: CliEnvironm
190
202
  removeSignals();
191
203
  stdio.close();
192
204
  if (harness !== undefined) {
193
- const disposed = await settleWithin(harness.dispose().then(() => undefined, (error: unknown) => {
194
- environment.stderr.write(`${error instanceof Error ? error.stack ?? error.message : String(error)}\n`);
195
- }), environment.shutdownTimeoutMs);
205
+ const disposed = await settleWithin(
206
+ harness.dispose().then(
207
+ () => undefined,
208
+ (error: unknown) => {
209
+ environment.stderr.write(`${error instanceof Error ? (error.stack ?? error.message) : String(error)}\n`);
210
+ },
211
+ ),
212
+ environment.shutdownTimeoutMs,
213
+ );
196
214
  if (!disposed.settled) await forceExit(resultCode ?? 1);
197
215
  }
198
216
  }
@@ -1,8 +1,9 @@
1
1
  import { createInterface, type Interface } from "node:readline/promises";
2
2
  import type { Readable, Writable } from "node:stream";
3
- import { PiHarnessStdioCancelledError, type PiHarnessStdio } from "@pi-harness/core";
3
+ import { MAX_STDIO_PROMPT_BYTES, PiHarnessStdioCancelledError, type PiHarnessStdio } from "@pi-harness/core";
4
4
 
5
5
  type TerminalReadable = Readable & { isTTY?: boolean };
6
+ type PendingWrite = { readonly promise: Promise<void>; readonly resolve: () => void };
6
7
 
7
8
  export class NodeStdio implements PiHarnessStdio {
8
9
  readonly #input: TerminalReadable;
@@ -11,13 +12,13 @@ export class NodeStdio implements PiHarnessStdio {
11
12
  readonly #abort = new AbortController();
12
13
  #readline: Interface | undefined;
13
14
  readonly #broken = new WeakSet<Writable>();
15
+ readonly #pendingWrites = new WeakMap<Writable, Set<PendingWrite>>();
14
16
 
15
17
  constructor(input: Readable, output: Writable, error: Writable) {
16
18
  this.#input = input;
17
19
  this.#output = output;
18
20
  this.#error = error;
19
- output.on("error", () => this.#broken.add(output));
20
- error.on("error", () => this.#broken.add(error));
21
+ for (const stream of new Set([output, error])) stream.on("error", () => this.#markBroken(stream));
21
22
  }
22
23
 
23
24
  async readPrompt(): Promise<string> {
@@ -25,14 +26,25 @@ export class NodeStdio implements PiHarnessStdio {
25
26
  if (this.#input.isTTY === true) return await this.#question();
26
27
  this.#input.setEncoding("utf8");
27
28
  let content = "";
29
+ let bytes = 0;
28
30
  await new Promise<void>((resolve, reject) => {
29
- const onData = (chunk: unknown) => { content += String(chunk); };
31
+ const onData = (chunk: unknown) => {
32
+ const text = String(chunk);
33
+ bytes += Buffer.byteLength(text, "utf8");
34
+ if (bytes > MAX_STDIO_PROMPT_BYTES) {
35
+ this.#input.pause();
36
+ settle(new Error(`Prompt must be at most ${MAX_STDIO_PROMPT_BYTES} UTF-8 bytes`));
37
+ return;
38
+ }
39
+ content += text;
40
+ };
30
41
  const settle = (error?: Error) => {
31
42
  this.#input.off("data", onData);
32
43
  this.#input.off("end", onEnd);
33
44
  this.#input.off("error", onError);
34
45
  this.#abort.signal.removeEventListener("abort", onAbort);
35
- if (error === undefined) resolve(); else reject(error);
46
+ if (error === undefined) resolve();
47
+ else reject(error);
36
48
  };
37
49
  const onEnd = () => settle();
38
50
  const onError = (error: Error) => settle(error);
@@ -49,6 +61,36 @@ export class NodeStdio implements PiHarnessStdio {
49
61
  }
50
62
 
51
63
  async #question(): Promise<string> {
64
+ let bytes = 0;
65
+ let lineEnded = false;
66
+ let rejectOversized: (reason?: unknown) => void = () => {};
67
+ const oversized = new Promise<string>((_resolve, reject) => {
68
+ rejectOversized = reject;
69
+ });
70
+ const onInputData = (chunk: unknown) => {
71
+ if (lineEnded) return;
72
+ if (chunk instanceof Uint8Array) {
73
+ let lineEnd = chunk.length;
74
+ for (let index = 0; index < chunk.length; index += 1) {
75
+ if (chunk[index] === 10 || chunk[index] === 13) {
76
+ lineEnd = index;
77
+ lineEnded = true;
78
+ break;
79
+ }
80
+ }
81
+ bytes += lineEnd;
82
+ } else {
83
+ const text = String(chunk);
84
+ const lineEnd = text.search(/[\r\n]/u);
85
+ const promptText = lineEnd < 0 ? text : text.slice(0, lineEnd);
86
+ if (lineEnd >= 0) lineEnded = true;
87
+ bytes += Buffer.byteLength(promptText, "utf8");
88
+ }
89
+ if (bytes <= MAX_STDIO_PROMPT_BYTES) return;
90
+ this.#input.pause();
91
+ rejectOversized(new Error(`Prompt must be at most ${MAX_STDIO_PROMPT_BYTES} UTF-8 bytes`));
92
+ };
93
+ this.#input.on("data", onInputData);
52
94
  const readline = createInterface({ input: this.#input, output: this.#output });
53
95
  this.#readline = readline;
54
96
  readline.on("SIGINT", () => this.close());
@@ -56,11 +98,13 @@ export class NodeStdio implements PiHarnessStdio {
56
98
  return await Promise.race([
57
99
  readline.question("> ", { signal: this.#abort.signal }),
58
100
  new Promise<string>((_, reject) => readline.once("close", () => reject(new PiHarnessStdioCancelledError()))),
101
+ oversized,
59
102
  ]);
60
103
  } catch (cause) {
61
104
  throw this.#abort.signal.aborted || cause instanceof PiHarnessStdioCancelledError ? new PiHarnessStdioCancelledError() : cause;
62
105
  } finally {
63
106
  this.#readline = undefined;
107
+ this.#input.off("data", onInputData);
64
108
  readline.close();
65
109
  }
66
110
  }
@@ -75,32 +119,48 @@ export class NodeStdio implements PiHarnessStdio {
75
119
 
76
120
  #write(stream: Writable, text: string): void {
77
121
  if (this.#broken.has(stream) || stream.destroyed || stream.writableEnded) return;
122
+ let resolve!: () => void;
123
+ const pending: PendingWrite = {
124
+ promise: new Promise<void>((settle) => {
125
+ resolve = settle;
126
+ }),
127
+ resolve: () => resolve(),
128
+ };
129
+ let writes = this.#pendingWrites.get(stream);
130
+ if (writes === undefined) {
131
+ writes = new Set();
132
+ this.#pendingWrites.set(stream, writes);
133
+ }
134
+ writes.add(pending);
78
135
  try {
79
136
  stream.write(text, (error) => {
80
- if (error !== null && error !== undefined) this.#broken.add(stream);
137
+ if (error !== null && error !== undefined) this.#markBroken(stream);
138
+ else this.#settleWrite(stream, pending);
81
139
  });
82
140
  } catch {
83
- this.#broken.add(stream);
141
+ this.#markBroken(stream);
84
142
  }
85
143
  }
86
144
 
87
145
  async flush(): Promise<void> {
88
- await Promise.all([this.#drain(this.#output), this.#drain(this.#error)]);
146
+ const pending: Promise<void>[] = [];
147
+ for (const stream of new Set([this.#output, this.#error])) {
148
+ for (const write of this.#pendingWrites.get(stream) ?? []) pending.push(write.promise);
149
+ }
150
+ await Promise.all(pending);
89
151
  }
90
152
 
91
- async #drain(stream: Writable): Promise<void> {
92
- if (this.#broken.has(stream) || stream.destroyed || stream.writableEnded || stream.writableLength === 0) return;
93
- await new Promise<void>((resolve) => {
94
- const done = () => {
95
- stream.off("drain", done);
96
- stream.off("error", done);
97
- stream.off("close", done);
98
- resolve();
99
- };
100
- stream.once("drain", done);
101
- stream.once("error", done);
102
- stream.once("close", done);
103
- });
153
+ #settleWrite(stream: Writable, pending: PendingWrite): void {
154
+ this.#pendingWrites.get(stream)?.delete(pending);
155
+ pending.resolve();
156
+ }
157
+
158
+ #markBroken(stream: Writable): void {
159
+ this.#broken.add(stream);
160
+ const writes = this.#pendingWrites.get(stream);
161
+ if (writes === undefined) return;
162
+ this.#pendingWrites.delete(stream);
163
+ for (const pending of writes) pending.resolve();
104
164
  }
105
165
 
106
166
  close(): void {
@@ -7,13 +7,28 @@ describe("parseLauncherArgs", () => {
7
7
  });
8
8
 
9
9
  test("forwards the end-of-options separator so the application can take option-shaped prompts literally", () => {
10
- expect(parseLauncherArgs(["--profile", "development", "--", "--profile", "inside", "hello"])).toEqual({ mode: "run", profile: "development", dumpConfig: false, args: ["--", "--profile", "inside", "hello"] });
10
+ expect(parseLauncherArgs(["--profile", "development", "--", "--profile", "inside", "hello"])).toEqual({
11
+ mode: "run",
12
+ profile: "development",
13
+ dumpConfig: false,
14
+ args: ["--", "--profile", "inside", "hello"],
15
+ });
11
16
  });
12
17
 
13
18
  test("stops recognizing launcher options at the first application argument", () => {
14
19
  expect(parseLauncherArgs(["--prompt", "--version"])).toEqual({ mode: "run", profile: "default", dumpConfig: false, args: ["--prompt", "--version"] });
15
- expect(parseLauncherArgs(["explain", "what", "tar", "-h", "prints"])).toEqual({ mode: "run", profile: "default", dumpConfig: false, args: ["explain", "what", "tar", "-h", "prints"] });
16
- expect(parseLauncherArgs(["hello", "--profile", "development"])).toEqual({ mode: "run", profile: "default", dumpConfig: false, args: ["hello", "--profile", "development"] });
20
+ expect(parseLauncherArgs(["explain", "what", "tar", "-h", "prints"])).toEqual({
21
+ mode: "run",
22
+ profile: "default",
23
+ dumpConfig: false,
24
+ args: ["explain", "what", "tar", "-h", "prints"],
25
+ });
26
+ expect(parseLauncherArgs(["hello", "--profile", "development"])).toEqual({
27
+ mode: "run",
28
+ profile: "default",
29
+ dumpConfig: false,
30
+ args: ["hello", "--profile", "development"],
31
+ });
17
32
  });
18
33
 
19
34
  test("accepts the inline form of launcher options", () => {
@@ -35,8 +35,16 @@ describe("published binary", () => {
35
35
  const directory = await mkdtemp(join(tmpdir(), "pi-harness-bin-resolve-"));
36
36
  const packageDir = join(directory, "node_modules", "@acme", "pi-probe");
37
37
  await mkdir(packageDir, { recursive: true });
38
- await writeFile(join(packageDir, "package.json"), JSON.stringify({ name: "@acme/pi-probe", version: "1.0.0", type: "module", exports: { ".": "./index.mjs" } }), "utf8");
39
- await writeFile(join(packageDir, "index.mjs"), `export default { apply(ctx) { ctx.provide("piApplication", { async run() { ctx.piHarnessStdio.writeOutput("probe ran\\n"); return 0; } }); }, inject: ["piHarnessStdio"] };`, "utf8");
38
+ await writeFile(
39
+ join(packageDir, "package.json"),
40
+ JSON.stringify({ name: "@acme/pi-probe", version: "1.0.0", type: "module", exports: { ".": "./index.mjs" } }),
41
+ "utf8",
42
+ );
43
+ await writeFile(
44
+ join(packageDir, "index.mjs"),
45
+ `export default { apply(ctx) { ctx.provide("piApplication", { async run() { ctx.piHarnessStdio.writeOutput("probe ran\\n"); return 0; } }); }, inject: ["piHarnessStdio"] };`,
46
+ "utf8",
47
+ );
40
48
  await writeFile(join(directory, "cordis.yml"), JSON.stringify([{ id: "probe", name: "@acme/pi-probe" }]), "utf8");
41
49
 
42
50
  const result = await pih(["--config", join(directory, "cordis.yml"), "--prompt", "hi"], directory, directory);
@@ -13,14 +13,25 @@ describe("broken output pipe", () => {
13
13
  const markerPath = join(directory, "marker.txt");
14
14
  const pluginPath = join(directory, "application.mjs");
15
15
  const configPath = join(directory, "cordis.yml");
16
- await writeFile(pluginPath, `import { appendFileSync } from "node:fs"; export default { inject: ["piHarnessStdio"], apply(ctx, config) { ctx.effect(() => () => appendFileSync(config.markerPath, "disposed\\n")); ctx.provide("piApplication", { async run() { for (let i = 0; i < 200; i += 1) { ctx.piHarnessStdio.writeOutput("line " + i + " " + "-".repeat(200) + "\\n"); await new Promise((resolve) => setTimeout(resolve, 5)); } appendFileSync(config.markerPath, "completed\\n"); return 0; } }); } };`, "utf8");
16
+ await writeFile(
17
+ pluginPath,
18
+ `import { appendFileSync } from "node:fs"; export default { inject: ["piHarnessStdio"], apply(ctx, config) { ctx.effect(() => () => appendFileSync(config.markerPath, "disposed\\n")); ctx.provide("piApplication", { async run() { for (let i = 0; i < 200; i += 1) { ctx.piHarnessStdio.writeOutput("line " + i + " " + "-".repeat(200) + "\\n"); await new Promise((resolve) => setTimeout(resolve, 5)); } appendFileSync(config.markerPath, "completed\\n"); return 0; } }); } };`,
19
+ "utf8",
20
+ );
17
21
  await writeFile(configPath, JSON.stringify([{ name: pathToFileURL(pluginPath).href, config: { markerPath } }]), "utf8");
18
22
 
19
- const producer = spawn(process.execPath, [BIN, "--config", configPath, "--prompt", "hi"], { stdio: ["ignore", "pipe", "pipe"], env: { ...process.env, PI_AGENT_DIR: directory } });
23
+ const producer = spawn(process.execPath, [BIN, "--config", configPath, "--prompt", "hi"], {
24
+ stdio: ["ignore", "pipe", "pipe"],
25
+ env: { ...process.env, PI_AGENT_DIR: directory },
26
+ });
20
27
  let stderr = "";
21
28
  producer.stderr.setEncoding("utf8");
22
- producer.stderr.on("data", (chunk: string) => { stderr += chunk; });
23
- producer.stdout.once("data", () => { producer.stdout.destroy(); });
29
+ producer.stderr.on("data", (chunk: string) => {
30
+ stderr += chunk;
31
+ });
32
+ producer.stdout.once("data", () => {
33
+ producer.stdout.destroy();
34
+ });
24
35
 
25
36
  const code = await new Promise<number | null>((resolve) => producer.once("exit", resolve));
26
37
 
@@ -29,8 +29,18 @@ function createEnvironment(cwd = process.cwd(), input: string | null = "", shutd
29
29
  agentDir: join(cwd, ".pi-agent-test"),
30
30
  version: "0.1.0-test",
31
31
  stdin,
32
- stdout: new Writable({ write(chunk, _encoding, callback) { output.push(String(chunk)); callback(); } }),
33
- stderr: new Writable({ write(chunk, _encoding, callback) { errors.push(String(chunk)); callback(); } }),
32
+ stdout: new Writable({
33
+ write(chunk, _encoding, callback) {
34
+ output.push(String(chunk));
35
+ callback();
36
+ },
37
+ }),
38
+ stderr: new Writable({
39
+ write(chunk, _encoding, callback) {
40
+ errors.push(String(chunk));
41
+ callback();
42
+ },
43
+ }),
34
44
  output,
35
45
  errors,
36
46
  forcedExitCodes,
@@ -115,7 +125,9 @@ describe("runCli", () => {
115
125
  });
116
126
 
117
127
  test("aborts and disposes a running application on SIGINT", async () => {
118
- const profile = await createApplicationProfile(`import { appendFileSync, writeFileSync } from "node:fs"; export default { apply(ctx, config) { writeFileSync(config.markerPath, "started"); ctx.effect(() => () => appendFileSync(config.markerPath, ":disposed")); ctx.provide("piApplication", { async run(signal) { appendFileSync(config.markerPath, ":run"); await new Promise((resolve) => signal.addEventListener("abort", resolve, { once: true })); appendFileSync(config.markerPath, ":aborted"); return 0; } }); } };`);
128
+ const profile = await createApplicationProfile(
129
+ `import { appendFileSync, writeFileSync } from "node:fs"; export default { apply(ctx, config) { writeFileSync(config.markerPath, "started"); ctx.effect(() => () => appendFileSync(config.markerPath, ":disposed")); ctx.provide("piApplication", { async run(signal) { appendFileSync(config.markerPath, ":run"); await new Promise((resolve) => signal.addEventListener("abort", resolve, { once: true })); appendFileSync(config.markerPath, ":aborted"); return 0; } }); } };`,
130
+ );
119
131
  const environment = createEnvironment(profile.directory);
120
132
  const result = runCli(["--config", profile.configPath], environment);
121
133
  const markerPath = join(profile.directory, "marker.txt");
@@ -129,7 +141,9 @@ describe("runCli", () => {
129
141
  });
130
142
 
131
143
  test("forces the bin exit when an application ignores the shutdown signal", async () => {
132
- const profile = await createApplicationProfile(`import { writeFileSync } from "node:fs"; export default { apply(ctx, config) { writeFileSync(config.markerPath, "started"); ctx.provide("piApplication", { async run() { return new Promise(() => {}); } }); } };`);
144
+ const profile = await createApplicationProfile(
145
+ `import { writeFileSync } from "node:fs"; export default { apply(ctx, config) { writeFileSync(config.markerPath, "started"); ctx.provide("piApplication", { async run() { return new Promise(() => {}); } }); } };`,
146
+ );
133
147
  const environment = createEnvironment(profile.directory, "", 25);
134
148
  const result = runCli(["--config", profile.configPath], environment);
135
149
  await waitForFileContent(join(profile.directory, "marker.txt"), "started");
@@ -168,7 +182,9 @@ describe("runCli", () => {
168
182
  });
169
183
 
170
184
  test("forces the bin exit on a repeated signal instead of waiting for the shutdown deadline", async () => {
171
- const profile = await createApplicationProfile(`import { writeFileSync } from "node:fs"; export default { apply(ctx, config) { writeFileSync(config.markerPath, "started"); ctx.provide("piRuntime", { async abort() { return new Promise(() => {}); }, async dispose() {} }); ctx.provide("piApplication", { async run() { return new Promise(() => {}); } }); } };`);
185
+ const profile = await createApplicationProfile(
186
+ `import { writeFileSync } from "node:fs"; export default { apply(ctx, config) { writeFileSync(config.markerPath, "started"); ctx.provide("piRuntime", { async abort() { return new Promise(() => {}); }, async dispose() {} }); ctx.provide("piApplication", { async run() { return new Promise(() => {}); } }); } };`,
187
+ );
172
188
  const environment = createEnvironment(profile.directory, "", 60_000);
173
189
  const result = runCli(["--config", profile.configPath], environment);
174
190
  await waitForFileContent(join(profile.directory, "marker.txt"), "started");
@@ -182,7 +198,9 @@ describe("runCli", () => {
182
198
  });
183
199
 
184
200
  test("does not exit with the restart code when the process is not supervised", async () => {
185
- const profile = await createApplicationProfile(`import { writeFileSync } from "node:fs"; export default { inject: ["piHarnessLaunch"], apply(ctx, config) { writeFileSync(config.markerPath, "started"); ctx.provide("piApplication", { async run() { ctx.loader.exit(); return 0; } }); } };`);
201
+ const profile = await createApplicationProfile(
202
+ `import { writeFileSync } from "node:fs"; export default { inject: ["piHarnessLaunch"], apply(ctx, config) { writeFileSync(config.markerPath, "started"); ctx.provide("piApplication", { async run() { ctx.loader.exit(); return 0; } }); } };`,
203
+ );
186
204
  const environment = createEnvironment(profile.directory);
187
205
 
188
206
  const exitCode = await runCli(["--config", profile.configPath], environment);