@pi-harness/pi-harness 0.1.31 → 0.1.32

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 (280) hide show
  1. package/apps/web/dist/assets/index-BqOM0elx.css +2 -0
  2. package/apps/web/dist/assets/index-x2UhIAWm.js +25 -0
  3. package/apps/web/dist/index.html +2 -2
  4. package/apps/web/package.json +1 -1
  5. package/apps/web/server-dist/bin.js +11 -3
  6. package/apps/web/server-dist/bin.js.map +1 -1
  7. package/apps/web/src/server/bin.ts +10 -2
  8. package/apps/web/src/style.css +27 -1
  9. package/node_modules/@pi-harness/api-gateway/dist/index.d.ts.map +1 -1
  10. package/node_modules/@pi-harness/api-gateway/dist/index.js +28 -7
  11. package/node_modules/@pi-harness/api-gateway/dist/index.js.map +1 -1
  12. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/agent-teams.json +1 -1
  13. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/anchored-standard.json +1 -1
  14. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/annotation.json +1 -1
  15. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/archify.json +1 -1
  16. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/at-file.json +1 -9
  17. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/auto-mode.json +1 -1
  18. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/better-sidebar.json +1 -1
  19. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/browser-fetch.json +1 -8
  20. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/browser-session.json +1 -8
  21. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/canvas-draw.json +2 -2
  22. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/change-verifier.json +1 -1
  23. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cleaner.json +1 -9
  24. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cli-notifier.json +1 -1
  25. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/code2skill.json +1 -1
  26. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/colleague-skill.json +1 -1
  27. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/context-doctor.json +1 -8
  28. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/context.json +1 -7
  29. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cordis-group.json +1 -1
  30. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cordis-logger-console.json +1 -1
  31. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cordis-timer.json +1 -1
  32. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cost-meter.json +1 -1
  33. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/dependency-checker.json +2 -10
  34. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +1 -9
  35. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/fail-logger.json +1 -8
  36. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/genui.json +1 -1
  37. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +1 -8
  38. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/graph-memory.json +1 -1
  39. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/history-compressor.json +2 -2
  40. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/hol-guard.json +2 -2
  41. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/i18n-pair.json +1 -7
  42. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/image-compressor.json +2 -2
  43. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/llm-verifier.json +1 -1
  44. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mcp-client.json +2 -8
  45. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mcp-panel.json +1 -1
  46. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/memory.json +1 -1
  47. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mirage-bridge.json +1 -1
  48. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mock-server.json +1 -1
  49. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/modlens.json +1 -1
  50. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/module-search.json +1 -1
  51. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +1 -1
  52. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/openpets.json +2 -8
  53. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plan-execute.json +1 -1
  54. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-check.json +1 -1
  55. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-dev.json +1 -1
  56. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-finder.json +1 -1
  57. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-radar.json +1 -1
  58. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-stars.json +1 -8
  59. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-guard.json +2 -2
  60. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-library.json +1 -1
  61. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/readme-gen.json +1 -9
  62. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/recall-unread.json +1 -8
  63. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/reverse-skill.json +2 -2
  64. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/reviewer-bot.json +1 -1
  65. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/runtime-doctor.json +1 -1
  66. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/secure-audit.json +1 -1
  67. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-bookmarks.json +1 -1
  68. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-bridge.json +1 -9
  69. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-compare.json +1 -1
  70. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-export.json +1 -1
  71. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-insights.json +1 -9
  72. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-search.json +1 -1
  73. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/skill-catalog.json +1 -1
  74. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/skill-guard.json +2 -9
  75. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/sql-lens.json +1 -8
  76. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/synapse.json +1 -1
  77. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/tab-manager.json +1 -1
  78. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/taskboard.json +1 -1
  79. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +1 -1
  80. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/test-harness.json +2 -10
  81. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/theme-studio.json +1 -1
  82. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/token-guard.json +1 -9
  83. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/turn-rewind.json +1 -8
  84. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/undo-savepoint.json +1 -1
  85. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/vision-toolkit.json +1 -7
  86. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/web-research.json +1 -1
  87. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/workspace-navigator.json +1 -1
  88. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/workspace-search.json +2 -2
  89. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/yaml-validator.json +1 -7
  90. package/node_modules/@pi-harness/api-gateway/dist/marketplace.d.ts +18 -2
  91. package/node_modules/@pi-harness/api-gateway/dist/marketplace.d.ts.map +1 -1
  92. package/node_modules/@pi-harness/api-gateway/dist/marketplace.js +93 -10
  93. package/node_modules/@pi-harness/api-gateway/dist/marketplace.js.map +1 -1
  94. package/node_modules/@pi-harness/api-gateway/package.json +1 -1
  95. package/node_modules/@pi-harness/cli/dist/main.d.ts.map +1 -1
  96. package/node_modules/@pi-harness/cli/dist/main.js +19 -3
  97. package/node_modules/@pi-harness/cli/dist/main.js.map +1 -1
  98. package/node_modules/@pi-harness/cli/package.json +1 -1
  99. package/node_modules/@pi-harness/host-webserver/package.json +1 -1
  100. package/node_modules/@pi-harness/web-app/package.json +1 -1
  101. package/package.json +6 -6
  102. package/packages/api-gateway/dist/index.d.ts.map +1 -1
  103. package/packages/api-gateway/dist/index.js +28 -7
  104. package/packages/api-gateway/dist/index.js.map +1 -1
  105. package/packages/api-gateway/dist/marketplace-entries/official/agent-teams.json +1 -1
  106. package/packages/api-gateway/dist/marketplace-entries/official/anchored-standard.json +1 -1
  107. package/packages/api-gateway/dist/marketplace-entries/official/annotation.json +1 -1
  108. package/packages/api-gateway/dist/marketplace-entries/official/archify.json +1 -1
  109. package/packages/api-gateway/dist/marketplace-entries/official/at-file.json +1 -9
  110. package/packages/api-gateway/dist/marketplace-entries/official/auto-mode.json +1 -1
  111. package/packages/api-gateway/dist/marketplace-entries/official/better-sidebar.json +1 -1
  112. package/packages/api-gateway/dist/marketplace-entries/official/browser-fetch.json +1 -8
  113. package/packages/api-gateway/dist/marketplace-entries/official/browser-session.json +1 -8
  114. package/packages/api-gateway/dist/marketplace-entries/official/canvas-draw.json +2 -2
  115. package/packages/api-gateway/dist/marketplace-entries/official/change-verifier.json +1 -1
  116. package/packages/api-gateway/dist/marketplace-entries/official/cleaner.json +1 -9
  117. package/packages/api-gateway/dist/marketplace-entries/official/cli-notifier.json +1 -1
  118. package/packages/api-gateway/dist/marketplace-entries/official/code2skill.json +1 -1
  119. package/packages/api-gateway/dist/marketplace-entries/official/colleague-skill.json +1 -1
  120. package/packages/api-gateway/dist/marketplace-entries/official/context-doctor.json +1 -8
  121. package/packages/api-gateway/dist/marketplace-entries/official/context.json +1 -7
  122. package/packages/api-gateway/dist/marketplace-entries/official/cordis-group.json +1 -1
  123. package/packages/api-gateway/dist/marketplace-entries/official/cordis-logger-console.json +1 -1
  124. package/packages/api-gateway/dist/marketplace-entries/official/cordis-timer.json +1 -1
  125. package/packages/api-gateway/dist/marketplace-entries/official/cost-meter.json +1 -1
  126. package/packages/api-gateway/dist/marketplace-entries/official/dependency-checker.json +2 -10
  127. package/packages/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +1 -9
  128. package/packages/api-gateway/dist/marketplace-entries/official/fail-logger.json +1 -8
  129. package/packages/api-gateway/dist/marketplace-entries/official/genui.json +1 -1
  130. package/packages/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +1 -8
  131. package/packages/api-gateway/dist/marketplace-entries/official/graph-memory.json +1 -1
  132. package/packages/api-gateway/dist/marketplace-entries/official/history-compressor.json +2 -2
  133. package/packages/api-gateway/dist/marketplace-entries/official/hol-guard.json +2 -2
  134. package/packages/api-gateway/dist/marketplace-entries/official/i18n-pair.json +1 -7
  135. package/packages/api-gateway/dist/marketplace-entries/official/image-compressor.json +2 -2
  136. package/packages/api-gateway/dist/marketplace-entries/official/llm-verifier.json +1 -1
  137. package/packages/api-gateway/dist/marketplace-entries/official/mcp-client.json +2 -8
  138. package/packages/api-gateway/dist/marketplace-entries/official/mcp-panel.json +1 -1
  139. package/packages/api-gateway/dist/marketplace-entries/official/memory.json +1 -1
  140. package/packages/api-gateway/dist/marketplace-entries/official/mirage-bridge.json +1 -1
  141. package/packages/api-gateway/dist/marketplace-entries/official/mock-server.json +1 -1
  142. package/packages/api-gateway/dist/marketplace-entries/official/modlens.json +1 -1
  143. package/packages/api-gateway/dist/marketplace-entries/official/module-search.json +1 -1
  144. package/packages/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +1 -1
  145. package/packages/api-gateway/dist/marketplace-entries/official/openpets.json +2 -8
  146. package/packages/api-gateway/dist/marketplace-entries/official/plan-execute.json +1 -1
  147. package/packages/api-gateway/dist/marketplace-entries/official/plugin-check.json +1 -1
  148. package/packages/api-gateway/dist/marketplace-entries/official/plugin-dev.json +1 -1
  149. package/packages/api-gateway/dist/marketplace-entries/official/plugin-finder.json +1 -1
  150. package/packages/api-gateway/dist/marketplace-entries/official/plugin-radar.json +1 -1
  151. package/packages/api-gateway/dist/marketplace-entries/official/plugin-stars.json +1 -8
  152. package/packages/api-gateway/dist/marketplace-entries/official/prompt-guard.json +2 -2
  153. package/packages/api-gateway/dist/marketplace-entries/official/prompt-library.json +1 -1
  154. package/packages/api-gateway/dist/marketplace-entries/official/readme-gen.json +1 -9
  155. package/packages/api-gateway/dist/marketplace-entries/official/recall-unread.json +1 -8
  156. package/packages/api-gateway/dist/marketplace-entries/official/reverse-skill.json +2 -2
  157. package/packages/api-gateway/dist/marketplace-entries/official/reviewer-bot.json +1 -1
  158. package/packages/api-gateway/dist/marketplace-entries/official/runtime-doctor.json +1 -1
  159. package/packages/api-gateway/dist/marketplace-entries/official/secure-audit.json +1 -1
  160. package/packages/api-gateway/dist/marketplace-entries/official/session-bookmarks.json +1 -1
  161. package/packages/api-gateway/dist/marketplace-entries/official/session-bridge.json +1 -9
  162. package/packages/api-gateway/dist/marketplace-entries/official/session-compare.json +1 -1
  163. package/packages/api-gateway/dist/marketplace-entries/official/session-export.json +1 -1
  164. package/packages/api-gateway/dist/marketplace-entries/official/session-insights.json +1 -9
  165. package/packages/api-gateway/dist/marketplace-entries/official/session-search.json +1 -1
  166. package/packages/api-gateway/dist/marketplace-entries/official/skill-catalog.json +1 -1
  167. package/packages/api-gateway/dist/marketplace-entries/official/skill-guard.json +2 -9
  168. package/packages/api-gateway/dist/marketplace-entries/official/sql-lens.json +1 -8
  169. package/packages/api-gateway/dist/marketplace-entries/official/synapse.json +1 -1
  170. package/packages/api-gateway/dist/marketplace-entries/official/tab-manager.json +1 -1
  171. package/packages/api-gateway/dist/marketplace-entries/official/taskboard.json +1 -1
  172. package/packages/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +1 -1
  173. package/packages/api-gateway/dist/marketplace-entries/official/test-harness.json +2 -10
  174. package/packages/api-gateway/dist/marketplace-entries/official/theme-studio.json +1 -1
  175. package/packages/api-gateway/dist/marketplace-entries/official/token-guard.json +1 -9
  176. package/packages/api-gateway/dist/marketplace-entries/official/turn-rewind.json +1 -8
  177. package/packages/api-gateway/dist/marketplace-entries/official/undo-savepoint.json +1 -1
  178. package/packages/api-gateway/dist/marketplace-entries/official/vision-toolkit.json +1 -7
  179. package/packages/api-gateway/dist/marketplace-entries/official/web-research.json +1 -1
  180. package/packages/api-gateway/dist/marketplace-entries/official/workspace-navigator.json +1 -1
  181. package/packages/api-gateway/dist/marketplace-entries/official/workspace-search.json +2 -2
  182. package/packages/api-gateway/dist/marketplace-entries/official/yaml-validator.json +1 -7
  183. package/packages/api-gateway/dist/marketplace.d.ts +18 -2
  184. package/packages/api-gateway/dist/marketplace.d.ts.map +1 -1
  185. package/packages/api-gateway/dist/marketplace.js +93 -10
  186. package/packages/api-gateway/dist/marketplace.js.map +1 -1
  187. package/packages/api-gateway/package.json +1 -1
  188. package/packages/api-gateway/src/index.ts +31 -7
  189. package/packages/api-gateway/src/marketplace-entries/official/agent-teams.json +1 -1
  190. package/packages/api-gateway/src/marketplace-entries/official/anchored-standard.json +1 -1
  191. package/packages/api-gateway/src/marketplace-entries/official/annotation.json +1 -1
  192. package/packages/api-gateway/src/marketplace-entries/official/archify.json +1 -1
  193. package/packages/api-gateway/src/marketplace-entries/official/at-file.json +1 -9
  194. package/packages/api-gateway/src/marketplace-entries/official/auto-mode.json +1 -1
  195. package/packages/api-gateway/src/marketplace-entries/official/better-sidebar.json +1 -1
  196. package/packages/api-gateway/src/marketplace-entries/official/browser-fetch.json +1 -8
  197. package/packages/api-gateway/src/marketplace-entries/official/browser-session.json +1 -8
  198. package/packages/api-gateway/src/marketplace-entries/official/canvas-draw.json +2 -2
  199. package/packages/api-gateway/src/marketplace-entries/official/change-verifier.json +1 -1
  200. package/packages/api-gateway/src/marketplace-entries/official/cleaner.json +1 -9
  201. package/packages/api-gateway/src/marketplace-entries/official/cli-notifier.json +1 -1
  202. package/packages/api-gateway/src/marketplace-entries/official/code2skill.json +1 -1
  203. package/packages/api-gateway/src/marketplace-entries/official/colleague-skill.json +1 -1
  204. package/packages/api-gateway/src/marketplace-entries/official/context-doctor.json +1 -8
  205. package/packages/api-gateway/src/marketplace-entries/official/context.json +1 -7
  206. package/packages/api-gateway/src/marketplace-entries/official/cordis-group.json +1 -1
  207. package/packages/api-gateway/src/marketplace-entries/official/cordis-logger-console.json +1 -1
  208. package/packages/api-gateway/src/marketplace-entries/official/cordis-timer.json +1 -1
  209. package/packages/api-gateway/src/marketplace-entries/official/cost-meter.json +1 -1
  210. package/packages/api-gateway/src/marketplace-entries/official/dependency-checker.json +2 -10
  211. package/packages/api-gateway/src/marketplace-entries/official/docker-sandbox.json +1 -9
  212. package/packages/api-gateway/src/marketplace-entries/official/fail-logger.json +1 -8
  213. package/packages/api-gateway/src/marketplace-entries/official/genui.json +1 -1
  214. package/packages/api-gateway/src/marketplace-entries/official/git-time-capsule.json +1 -8
  215. package/packages/api-gateway/src/marketplace-entries/official/graph-memory.json +1 -1
  216. package/packages/api-gateway/src/marketplace-entries/official/history-compressor.json +2 -2
  217. package/packages/api-gateway/src/marketplace-entries/official/hol-guard.json +2 -2
  218. package/packages/api-gateway/src/marketplace-entries/official/i18n-pair.json +1 -7
  219. package/packages/api-gateway/src/marketplace-entries/official/image-compressor.json +2 -2
  220. package/packages/api-gateway/src/marketplace-entries/official/llm-verifier.json +1 -1
  221. package/packages/api-gateway/src/marketplace-entries/official/mcp-client.json +2 -8
  222. package/packages/api-gateway/src/marketplace-entries/official/mcp-panel.json +1 -1
  223. package/packages/api-gateway/src/marketplace-entries/official/memory.json +1 -1
  224. package/packages/api-gateway/src/marketplace-entries/official/mirage-bridge.json +1 -1
  225. package/packages/api-gateway/src/marketplace-entries/official/mock-server.json +1 -1
  226. package/packages/api-gateway/src/marketplace-entries/official/modlens.json +1 -1
  227. package/packages/api-gateway/src/marketplace-entries/official/module-search.json +1 -1
  228. package/packages/api-gateway/src/marketplace-entries/official/obsidian-sync.json +1 -1
  229. package/packages/api-gateway/src/marketplace-entries/official/openpets.json +2 -8
  230. package/packages/api-gateway/src/marketplace-entries/official/plan-execute.json +1 -1
  231. package/packages/api-gateway/src/marketplace-entries/official/plugin-check.json +1 -1
  232. package/packages/api-gateway/src/marketplace-entries/official/plugin-dev.json +1 -1
  233. package/packages/api-gateway/src/marketplace-entries/official/plugin-finder.json +1 -1
  234. package/packages/api-gateway/src/marketplace-entries/official/plugin-radar.json +1 -1
  235. package/packages/api-gateway/src/marketplace-entries/official/plugin-stars.json +1 -8
  236. package/packages/api-gateway/src/marketplace-entries/official/prompt-guard.json +2 -2
  237. package/packages/api-gateway/src/marketplace-entries/official/prompt-library.json +1 -1
  238. package/packages/api-gateway/src/marketplace-entries/official/readme-gen.json +1 -9
  239. package/packages/api-gateway/src/marketplace-entries/official/recall-unread.json +1 -8
  240. package/packages/api-gateway/src/marketplace-entries/official/reverse-skill.json +2 -2
  241. package/packages/api-gateway/src/marketplace-entries/official/reviewer-bot.json +1 -1
  242. package/packages/api-gateway/src/marketplace-entries/official/runtime-doctor.json +1 -1
  243. package/packages/api-gateway/src/marketplace-entries/official/secure-audit.json +1 -1
  244. package/packages/api-gateway/src/marketplace-entries/official/session-bookmarks.json +1 -1
  245. package/packages/api-gateway/src/marketplace-entries/official/session-bridge.json +1 -9
  246. package/packages/api-gateway/src/marketplace-entries/official/session-compare.json +1 -1
  247. package/packages/api-gateway/src/marketplace-entries/official/session-export.json +1 -1
  248. package/packages/api-gateway/src/marketplace-entries/official/session-insights.json +1 -9
  249. package/packages/api-gateway/src/marketplace-entries/official/session-search.json +1 -1
  250. package/packages/api-gateway/src/marketplace-entries/official/skill-catalog.json +1 -1
  251. package/packages/api-gateway/src/marketplace-entries/official/skill-guard.json +2 -9
  252. package/packages/api-gateway/src/marketplace-entries/official/sql-lens.json +1 -8
  253. package/packages/api-gateway/src/marketplace-entries/official/synapse.json +1 -1
  254. package/packages/api-gateway/src/marketplace-entries/official/tab-manager.json +1 -1
  255. package/packages/api-gateway/src/marketplace-entries/official/taskboard.json +1 -1
  256. package/packages/api-gateway/src/marketplace-entries/official/telemetry-blocker.json +1 -1
  257. package/packages/api-gateway/src/marketplace-entries/official/test-harness.json +2 -10
  258. package/packages/api-gateway/src/marketplace-entries/official/theme-studio.json +1 -1
  259. package/packages/api-gateway/src/marketplace-entries/official/token-guard.json +1 -9
  260. package/packages/api-gateway/src/marketplace-entries/official/turn-rewind.json +1 -8
  261. package/packages/api-gateway/src/marketplace-entries/official/undo-savepoint.json +1 -1
  262. package/packages/api-gateway/src/marketplace-entries/official/vision-toolkit.json +1 -7
  263. package/packages/api-gateway/src/marketplace-entries/official/web-research.json +1 -1
  264. package/packages/api-gateway/src/marketplace-entries/official/workspace-navigator.json +1 -1
  265. package/packages/api-gateway/src/marketplace-entries/official/workspace-search.json +2 -2
  266. package/packages/api-gateway/src/marketplace-entries/official/yaml-validator.json +1 -7
  267. package/packages/api-gateway/src/marketplace.ts +113 -12
  268. package/packages/api-gateway/test/index.test.ts +140 -3
  269. package/packages/api-gateway/test/marketplace-schema.test.ts +12 -0
  270. package/packages/api-gateway/test/marketplace.test.ts +172 -240
  271. package/packages/bundle-web-app/package.json +1 -1
  272. package/packages/cli/dist/main.d.ts.map +1 -1
  273. package/packages/cli/dist/main.js +19 -3
  274. package/packages/cli/dist/main.js.map +1 -1
  275. package/packages/cli/package.json +1 -1
  276. package/packages/cli/src/main.ts +18 -3
  277. package/packages/cli/test/cli.test.ts +20 -0
  278. package/packages/host-webserver/package.json +1 -1
  279. package/apps/web/dist/assets/index-D9ZcvGXi.js +0 -25
  280. package/apps/web/dist/assets/index-DJsNIiIo.css +0 -2
@@ -32,7 +32,8 @@ interface ApiServices {
32
32
  readonly pluginUi: PiPluginUiRegistry | undefined;
33
33
  }
34
34
 
35
- const loadMarketplaceStatistics = createMarketplaceStatisticsLoader();
35
+ // The first paint waits for every console endpoint to answer, so the catalogue is sorted from whatever npm statistics are already cached and the misses are warmed in the background instead of held on to.
36
+ const { readCached: readCachedMarketplaceStatistics } = createMarketplaceStatisticsLoader();
36
37
 
37
38
  const RUNTIME_ENTRY_NAME = "@pi-harness/core/plugins/runtime";
38
39
 
@@ -43,6 +44,8 @@ const IMPORT_BODY_LIMIT_BYTES = 16 * 1024 * 1024;
43
44
  // Retained trajectory events are replayed to every SSE client and returned by /api/session, so the array must stay bounded.
44
45
  const MAX_RETAINED_EVENTS = 2000;
45
46
  const GIT_TIMEOUT_MS = 15_000;
47
+ const PROCESS_FAILURE_TEXT_LIMIT = 400;
48
+ const PROCESS_TIMEOUT_MS = 120_000;
46
49
  // Mutating commands run user hooks (pre-commit, lint-staged, test suites) and may stage large trees; killing them part-way leaves index.lock and a half-finished operation behind, so they get a far more generous bound than read-only queries.
47
50
  const GIT_MUTATION_TIMEOUT_MS = 120_000;
48
51
 
@@ -95,10 +98,14 @@ function jsonSafe(value: unknown, seen = new WeakSet<object>()): unknown {
95
98
  }
96
99
  }
97
100
 
101
+ // A plugin that contributes tools only joins on the next start, so the console remembers what it installed until then. That memory is about one particular process, and the console cannot tell a restart from a reconnect on its own, so the identity of this process rides along with the status it already polls.
102
+ const PROCESS_STARTED_AT = new Date(Date.now() - Math.round(process.uptime() * 1000)).toISOString();
103
+
98
104
  function createStatus(services: ApiServices, events: readonly AgentSessionEvent[]) {
99
105
  const activeModel = services.runtime.session.model ?? services.models.model;
100
106
  const cwd = activeCwd(services);
101
107
  return {
108
+ processStartedAt: PROCESS_STARTED_AT,
102
109
  status: services.runtime.session.isStreaming ? "running" : "ready",
103
110
  model: activeModel.provider + "/" + activeModel.id,
104
111
  messages: services.runtime.session.messages.length,
@@ -470,11 +477,28 @@ function registerPluginPanels(context: Context, services: ApiServices): () => vo
470
477
  return () => disposers.reverse().forEach((dispose) => dispose());
471
478
  }
472
479
 
480
+ // npm ends every failure with the path to a debug log inside its own cache, which the reader of this console has no reason to open and no easy way to reach.
481
+ const PROCESS_FAILURE_NOISE = /^npm (error|ERR!) A complete log of this run can be found in:/u;
482
+
483
+ // npm reports a failure over many lines and the whole text is shown to someone who never typed the command, so the lines are joined up to a character budget and the command itself stays on the cause for diagnostics. Node's own message is never used as the fallback: it reads `Command failed: <the whole command line>`, which is exactly what this is removing.
484
+ function processFailureText(executable: string, stderr: string, error: ExecFileException): string {
485
+ const text = stderr
486
+ .split(/\r?\n/u)
487
+ .map((line) => line.trim())
488
+ .filter((line) => line !== "" && !PROCESS_FAILURE_NOISE.test(line))
489
+ .join(" ");
490
+ if (text === "")
491
+ return error.killed === true
492
+ ? `${executable} was stopped after ${PROCESS_TIMEOUT_MS / 1000}s`
493
+ : `${executable} exited with code ${error.code ?? "unknown"} and reported nothing`;
494
+ return text.length <= PROCESS_FAILURE_TEXT_LIMIT ? text : text.slice(0, PROCESS_FAILURE_TEXT_LIMIT) + "…";
495
+ }
496
+
473
497
  function runProcess(executable: string, args: readonly string[], cwd: string): Promise<{ stdout: string; stderr: string }> {
474
498
  return new Promise((resolveProcess, rejectProcess) => {
475
- execFile(executable, [...args], { cwd, timeout: 120_000, maxBuffer: 2 * 1024 * 1024 }, (error, stdout, stderr) => {
499
+ execFile(executable, [...args], { cwd, timeout: PROCESS_TIMEOUT_MS, maxBuffer: 2 * 1024 * 1024 }, (error, stdout, stderr) => {
476
500
  if (error) {
477
- rejectProcess(new Error(`${executable} ${args.join(" ")} failed: ${stderr || error.message}`, { cause: error }));
501
+ rejectProcess(new Error(processFailureText(executable, stderr, error), { cause: { command: `${executable} ${args.join(" ")}`, error } }));
478
502
  return;
479
503
  }
480
504
  resolveProcess({ stdout, stderr });
@@ -1096,7 +1120,7 @@ export default {
1096
1120
  });
1097
1121
  const disposeMarketplace = services.webServer.register({
1098
1122
  path: "/api/marketplace",
1099
- async handler(request, response) {
1123
+ handler(request, response) {
1100
1124
  if (request.method !== "GET") {
1101
1125
  sendJson(response, 405, { error: "Method not allowed" });
1102
1126
  return;
@@ -1123,10 +1147,10 @@ export default {
1123
1147
  return;
1124
1148
  }
1125
1149
  const filtered = searchMarketplace(query, capability, category);
1150
+ const cached = readCachedMarketplaceStatistics(MARKETPLACE_PLUGINS);
1151
+ // Recommendation is only applied once the whole catalogue has been looked up. Scoring a half-warm cache would reorder the grid under the reader's cursor on every poll as the background lookups land, which costs more than the few seconds the first sort is delayed.
1126
1152
  const items =
1127
- sort === "recommended"
1128
- ? sortMarketplaceByRecommendation(attachMarketplaceStatistics(filtered, await loadMarketplaceStatistics(MARKETPLACE_PLUGINS)))
1129
- : filtered;
1153
+ sort === "recommended" && cached.ready ? sortMarketplaceByRecommendation(attachMarketplaceStatistics(filtered, cached.statistics)) : filtered;
1130
1154
  sendJson(response, 200, {
1131
1155
  ...paginateMarketplace(items, page, pageSize),
1132
1156
  capabilities: MARKETPLACE_CAPABILITIES,
@@ -13,7 +13,7 @@
13
13
  "id": "collaboration",
14
14
  "label": "会话协作"
15
15
  },
16
- "capabilities": ["collaboration ledger", "tasks", "mailbox notes", "dependency graph", "cycle detection"],
16
+ "capabilities": ["read-only", "session-data"],
17
17
  "hooks": ["session lifecycle", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-agent-teams",
@@ -13,7 +13,7 @@
13
13
  "id": "security",
14
14
  "label": "安全"
15
15
  },
16
- "capabilities": ["trajectory audit", "tool allowlist", "run anchoring"],
16
+ "capabilities": ["read-only"],
17
17
  "hooks": ["session events", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-anchored-standard",
@@ -13,7 +13,7 @@
13
13
  "id": "context",
14
14
  "label": "上下文管理"
15
15
  },
16
- "capabilities": ["annotations", "context"],
16
+ "capabilities": ["read-only"],
17
17
  "hooks": ["plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-annotation",
@@ -13,7 +13,7 @@
13
13
  "id": "developer",
14
14
  "label": "开发工具"
15
15
  },
16
- "capabilities": ["architecture map", "workspace scan", "dependency map", "Mermaid"],
16
+ "capabilities": ["reads-files", "runs-commands"],
17
17
  "hooks": ["workspace files", "package manifest", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-archify",
@@ -13,15 +13,7 @@
13
13
  "id": "context",
14
14
  "label": "上下文管理"
15
15
  },
16
- "capabilities": [
17
- "256 KiB strict UTF-8 text attachments",
18
- "canonical workspace path confinement",
19
- "no-follow regular-file reads",
20
- "untrusted context framing",
21
- "closing-tag neutralization",
22
- "cancellable sequential execution",
23
- "descriptor-safe normalized panel"
24
- ],
16
+ "capabilities": ["read-only", "reads-files"],
25
17
  "hooks": ["file context tool", "workspace file read", "plugin UI"],
26
18
  "profile": {
27
19
  "name": "@pi-harness/plugin-at-file",
@@ -13,7 +13,7 @@
13
13
  "id": "security",
14
14
  "label": "安全"
15
15
  },
16
- "capabilities": ["command policy", "confirmation gate", "safe execution"],
16
+ "capabilities": ["reads-files", "runs-commands"],
17
17
  "hooks": ["argv execution", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-auto-mode",
@@ -13,7 +13,7 @@
13
13
  "id": "developer",
14
14
  "label": "开发工具"
15
15
  },
16
- "capabilities": ["workspace overview", "Git status", "session context", "sidebar UI"],
16
+ "capabilities": ["session-data", "reads-files", "runs-commands"],
17
17
  "hooks": ["workspace scan", "read-only Git", "session manager", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-better-sidebar",
@@ -13,14 +13,7 @@
13
13
  "id": "web",
14
14
  "label": "网页与研究"
15
15
  },
16
- "capabilities": [
17
- "bounded textual HTTP fetch",
18
- "DNS rebinding protection",
19
- "per-hop SSRF validation",
20
- "cancellable request lifecycle",
21
- "bounded browser preview",
22
- "validated fail-closed panel reporting"
23
- ],
16
+ "capabilities": ["network-access"],
24
17
  "hooks": ["network request", "plugin UI"],
25
18
  "profile": {
26
19
  "name": "@pi-harness/plugin-browser-fetch",
@@ -13,14 +13,7 @@
13
13
  "id": "web",
14
14
  "label": "网页与研究"
15
15
  },
16
- "capabilities": [
17
- "loopback-only CDP endpoint",
18
- "bounded tab discovery",
19
- "navigation read click and screenshot tools",
20
- "cancellable request lifecycle",
21
- "bounded panel previews",
22
- "validated fail-closed panel reporting"
23
- ],
16
+ "capabilities": ["network-access"],
24
17
  "hooks": ["browser session tools", "Chrome DevTools Protocol", "plugin UI"],
25
18
  "profile": {
26
19
  "name": "@pi-harness/plugin-browser-session",
@@ -11,9 +11,9 @@
11
11
  "status": "verified",
12
12
  "category": {
13
13
  "id": "multimodal",
14
- "label": "多模态"
14
+ "label": "视觉与多模态"
15
15
  },
16
- "capabilities": ["Mermaid flowchart", "nodes and edges", "visual planning"],
16
+ "capabilities": ["read-only"],
17
17
  "hooks": ["plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-canvas-draw",
@@ -13,7 +13,7 @@
13
13
  "id": "workflow",
14
14
  "label": "工作流"
15
15
  },
16
- "capabilities": ["verification gate", "test orchestration", "change review"],
16
+ "capabilities": ["read-only"],
17
17
  "hooks": ["project scripts", "Git diff", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-change-verifier",
@@ -13,15 +13,7 @@
13
13
  "id": "developer",
14
14
  "label": "开发工具"
15
15
  },
16
- "capabilities": [
17
- "strict configuration and parameters",
18
- "bounded capsule inventory",
19
- "display-safe capsule filtering",
20
- "confirmed retention cleanup",
21
- "symlink and replacement defenses",
22
- "cancellable serialized cleanup",
23
- "fail-closed normalized panel"
24
- ],
16
+ "capabilities": ["reads-files", "writes-files"],
25
17
  "hooks": ["capsule cleanup tool", "agent capsule directory", "plugin UI"],
26
18
  "profile": {
27
19
  "name": "@pi-harness/plugin-cleaner",
@@ -13,7 +13,7 @@
13
13
  "id": "workflow",
14
14
  "label": "工作流"
15
15
  },
16
- "capabilities": ["desktop notification", "completion notice", "failure and abort notice"],
16
+ "capabilities": ["runs-commands"],
17
17
  "hooks": ["agent end", "compaction error", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-cli-notifier",
@@ -13,7 +13,7 @@
13
13
  "id": "tools",
14
14
  "label": "工具"
15
15
  },
16
- "capabilities": ["bounded skill packaging", "source file preservation", "SKILL.md generation"],
16
+ "capabilities": ["reads-files", "writes-files"],
17
17
  "hooks": ["workspace files", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-code2skill",
@@ -13,7 +13,7 @@
13
13
  "id": "workflow",
14
14
  "label": "工作流"
15
15
  },
16
- "capabilities": ["role handoff", "acceptance criteria", "durable session context"],
16
+ "capabilities": ["read-only", "session-data"],
17
17
  "hooks": ["session storage", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-colleague-skill",
@@ -13,14 +13,7 @@
13
13
  "id": "observability",
14
14
  "label": "可观测性"
15
15
  },
16
- "capabilities": [
17
- "descriptor-safe bounded context audit",
18
- "pressure oversized uninspectable and tool-error diagnostics",
19
- "confirmed settled-session compaction",
20
- "dedicated compaction cancellation",
21
- "single-flight bounded operation status",
22
- "cached normalized panel"
23
- ],
16
+ "capabilities": ["read-only", "session-data"],
24
17
  "hooks": ["context doctor tool", "session messages and usage", "Pi session lifecycle", "manual compaction", "plugin UI"],
25
18
  "profile": {
26
19
  "name": "@pi-harness/plugin-context-doctor",
@@ -13,13 +13,7 @@
13
13
  "id": "context",
14
14
  "label": "上下文管理"
15
15
  },
16
- "capabilities": [
17
- "descriptor-safe bounded message composition",
18
- "resilient context usage inspection",
19
- "active-session lifecycle counters",
20
- "cached session-aware panel",
21
- "bounded normalized browser view"
22
- ],
16
+ "capabilities": ["read-only", "session-data"],
23
17
  "hooks": ["context inspection tool", "active runtime session", "Pi session lifecycle", "plugin UI"],
24
18
  "profile": {
25
19
  "name": "@pi-harness/plugin-context",
@@ -10,7 +10,7 @@
10
10
  "source": "official",
11
11
  "status": "verified",
12
12
  "category": { "id": "composition", "label": "组合编排" },
13
- "capabilities": ["nested plugin composition", "transactional rollback", "lifecycle ownership"],
13
+ "capabilities": ["read-only"],
14
14
  "hooks": ["loader entry tree"],
15
15
  "profile": { "name": "@deepseek-ai/cordis-plugin-group", "group": true, "config": [] }
16
16
  }
@@ -10,7 +10,7 @@
10
10
  "source": "official",
11
11
  "status": "verified",
12
12
  "category": { "id": "observability", "label": "可观测性" },
13
- "capabilities": ["bounded console logging", "per-logger severity filtering", "safe recent-log panel"],
13
+ "capabilities": ["read-only"],
14
14
  "hooks": ["Cordis logger exporter", "plugin UI"],
15
15
  "profile": { "name": "@deepseek-ai/cordis-plugin-logger-console", "config": { "levels": { "default": 2 }, "maxLength": 8192 } }
16
16
  }
@@ -10,7 +10,7 @@
10
10
  "source": "official",
11
11
  "status": "verified",
12
12
  "category": { "id": "runtime", "label": "运行时" },
13
- "capabilities": ["scheduling", "lifecycle-owned cancellation", "async interval iteration", "throttle and debounce"],
13
+ "capabilities": ["read-only"],
14
14
  "hooks": ["Cordis timer service", "plugin UI"],
15
15
  "profile": { "name": "@deepseek-ai/cordis-plugin-timer", "config": {} }
16
16
  }
@@ -13,7 +13,7 @@
13
13
  "id": "observability",
14
14
  "label": "可观测性"
15
15
  },
16
- "capabilities": ["UTC daily cost ledger", "session cost snapshots", "daily budget monitoring", "bounded local persistence"],
16
+ "capabilities": ["session-data", "reads-files", "writes-files"],
17
17
  "hooks": ["agent end", "cost report tool", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-cost-meter",
@@ -11,17 +11,9 @@
11
11
  "status": "verified",
12
12
  "category": {
13
13
  "id": "developer",
14
- "label": "开发效率"
14
+ "label": "开发工具"
15
15
  },
16
- "capabilities": [
17
- "2000-declaration local presence scan",
18
- "4096-entry workspace-contained virtualenv scan",
19
- "npm common-intersection conflict detection",
20
- "bounded Python numeric constraint analysis",
21
- "unresolved constraint and directive reporting",
22
- "optional dependency reporting",
23
- "descriptor-safe normalized panel"
24
- ],
16
+ "capabilities": ["read-only", "reads-files"],
25
17
  "hooks": ["dependency check tool", "workspace manifest read", "plugin UI"],
26
18
  "profile": {
27
19
  "name": "@pi-harness/plugin-dependency-checker",
@@ -13,15 +13,7 @@
13
13
  "id": "security",
14
14
  "label": "安全"
15
15
  },
16
- "capabilities": [
17
- "local-only image execution",
18
- "no-network containers",
19
- "read-only workspace by default",
20
- "CPU memory and PID limits",
21
- "sanitized bounded output",
22
- "strict panel reporting",
23
- "cancellation cleanup"
24
- ],
16
+ "capabilities": ["reads-files", "writes-files", "runs-commands"],
25
17
  "hooks": ["sandbox execution tool", "Docker CLI", "plugin UI"],
26
18
  "profile": {
27
19
  "name": "@pi-harness/plugin-docker-sandbox",
@@ -13,14 +13,7 @@
13
13
  "id": "observability",
14
14
  "label": "可观测性"
15
15
  },
16
- "capabilities": [
17
- "bounded failure aggregation",
18
- "descriptor-safe event inspection",
19
- "abort-aware compaction diagnostics",
20
- "occurrence counting",
21
- "safe diagnostic summaries",
22
- "capacity visibility"
23
- ],
16
+ "capabilities": ["read-only"],
24
17
  "hooks": ["extension error", "agent end", "compaction end", "plugin UI"],
25
18
  "profile": {
26
19
  "name": "@pi-harness/plugin-fail-logger",
@@ -13,7 +13,7 @@
13
13
  "id": "interface",
14
14
  "label": "界面增强"
15
15
  },
16
- "capabilities": ["bounded structured cards", "typed text badge and progress blocks", "decimal progress validation", "plain-text HTML handling"],
16
+ "capabilities": ["read-only"],
17
17
  "hooks": ["GenUI render tool", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-genui",
@@ -13,14 +13,7 @@
13
13
  "id": "workflow",
14
14
  "label": "工作流"
15
15
  },
16
- "capabilities": [
17
- "byte-exact validated unstaged diff capture",
18
- "exclusive no-clobber capsule publication",
19
- "confirmed deterministic reverse apply",
20
- "bounded 256-capsule inventory",
21
- "cancellable serialized Git operations",
22
- "descriptor-safe normalized panel"
23
- ],
16
+ "capabilities": ["reads-files", "writes-files", "runs-commands"],
24
17
  "hooks": ["Git snapshot tool", "Git restore tool", "plugin UI"],
25
18
  "profile": {
26
19
  "name": "@pi-harness/plugin-git-time-capsule",
@@ -13,7 +13,7 @@
13
13
  "id": "memory",
14
14
  "label": "记忆与上下文"
15
15
  },
16
- "capabilities": ["bounded typed nodes", "validated directed relations", "ranked graph search", "atomic locked persistence"],
16
+ "capabilities": ["reads-files", "writes-files"],
17
17
  "hooks": ["graph memory tools", "local graph file", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-graph-memory",
@@ -11,9 +11,9 @@
11
11
  "status": "verified",
12
12
  "category": {
13
13
  "id": "context",
14
- "label": "上下文"
14
+ "label": "上下文管理"
15
15
  },
16
- "capabilities": ["history compaction", "context budget", "automatic cleanup"],
16
+ "capabilities": ["read-only", "session-data"],
17
17
  "hooks": ["agent end", "context usage", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-history-compressor",
@@ -11,9 +11,9 @@
11
11
  "status": "verified",
12
12
  "category": {
13
13
  "id": "security",
14
- "label": "安全防护"
14
+ "label": "安全"
15
15
  },
16
- "capabilities": ["command safety", "credential detection", "audit", "advisory"],
16
+ "capabilities": ["read-only"],
17
17
  "hooks": ["tool execution", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-hol-guard",
@@ -13,13 +13,7 @@
13
13
  "id": "workflow",
14
14
  "label": "工作流"
15
15
  },
16
- "capabilities": [
17
- "collision-safe locale key parity",
18
- "strict bounded workspace-only JSON reads",
19
- "no-follow symbolic-link safety",
20
- "stable sequential cancellable inspection",
21
- "validated bounded panel reporting"
22
- ],
16
+ "capabilities": ["read-only", "reads-files"],
23
17
  "hooks": ["i18n check tool", "workspace locale files", "plugin UI"],
24
18
  "profile": {
25
19
  "name": "@pi-harness/plugin-i18n-pair",
@@ -11,9 +11,9 @@
11
11
  "status": "verified",
12
12
  "category": {
13
13
  "id": "multimodal",
14
- "label": "多模态"
14
+ "label": "视觉与多模态"
15
15
  },
16
- "capabilities": ["image compression", "context hygiene", "asset safety"],
16
+ "capabilities": ["reads-files", "writes-files"],
17
17
  "hooks": ["workspace files", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-image-compressor",
@@ -13,7 +13,7 @@
13
13
  "id": "testing",
14
14
  "label": "测试与质量"
15
15
  },
16
- "capabilities": ["model verification", "batch verification", "evidence review", "audit history", "release confidence"],
16
+ "capabilities": ["model-calls"],
17
17
  "hooks": ["model runtime", "structured verdict", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-llm-verifier",
@@ -11,15 +11,9 @@
11
11
  "status": "verified",
12
12
  "category": {
13
13
  "id": "tools",
14
- "label": "工具集成"
14
+ "label": "工具"
15
15
  },
16
- "capabilities": [
17
- "bounded MCP stdio transport",
18
- "bounded inventory pagination",
19
- "tool resource and prompt bridging",
20
- "persistent server lifecycle",
21
- "cancellable queued requests"
22
- ],
16
+ "capabilities": ["runs-commands"],
23
17
  "hooks": ["MCP stdio tools", "managed server lifecycle", "plugin UI"],
24
18
  "profile": {
25
19
  "name": "@pi-harness/plugin-mcp-client",
@@ -13,7 +13,7 @@
13
13
  "id": "tools",
14
14
  "label": "工具"
15
15
  },
16
- "capabilities": ["MCP health", "tool inspection", "profile patch preview"],
16
+ "capabilities": ["reads-files", "writes-files", "runs-commands"],
17
17
  "hooks": ["MCP runtime", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-mcp-panel",
@@ -13,7 +13,7 @@
13
13
  "id": "memory",
14
14
  "label": "记忆与上下文"
15
15
  },
16
- "capabilities": ["memory", "notes"],
16
+ "capabilities": ["reads-files", "writes-files"],
17
17
  "hooks": ["session lifecycle", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-memory",
@@ -13,7 +13,7 @@
13
13
  "id": "tools",
14
14
  "label": "工具"
15
15
  },
16
- "capabilities": ["virtual terminal", "CLI bridge", "workspace execution"],
16
+ "capabilities": ["runs-commands"],
17
17
  "hooks": ["Mirage CLI", "argv execution", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-mirage-bridge",
@@ -13,7 +13,7 @@
13
13
  "id": "tools",
14
14
  "label": "工具"
15
15
  },
16
- "capabilities": ["HTTP mocks", "integration testing", "local fixtures"],
16
+ "capabilities": ["local-server"],
17
17
  "hooks": ["local HTTP server", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-mock-server",
@@ -13,7 +13,7 @@
13
13
  "id": "multimodal",
14
14
  "label": "视觉与多模态"
15
15
  },
16
- "capabilities": ["native vision", "OCR/layout evidence"],
16
+ "capabilities": ["reads-files", "writes-files", "runs-commands"],
17
17
  "hooks": ["tool execution", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-modlens",
@@ -13,7 +13,7 @@
13
13
  "id": "discovery",
14
14
  "label": "发现与生态"
15
15
  },
16
- "capabilities": ["module discovery", "symbol lookup", "source navigation"],
16
+ "capabilities": ["read-only", "reads-files"],
17
17
  "hooks": ["workspace files", "source scanning", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-module-search",
@@ -13,7 +13,7 @@
13
13
  "id": "workflow",
14
14
  "label": "工作流"
15
15
  },
16
- "capabilities": ["Obsidian notes", "session export", "knowledge capture"],
16
+ "capabilities": ["reads-files", "writes-files"],
17
17
  "hooks": ["vault path", "plugin UI"],
18
18
  "profile": {
19
19
  "name": "@pi-harness/plugin-obsidian-sync",
@@ -11,15 +11,9 @@
11
11
  "status": "verified",
12
12
  "category": {
13
13
  "id": "web",
14
- "label": "网页"
14
+ "label": "网页与研究"
15
15
  },
16
- "capabilities": [
17
- "bounded durable companion state",
18
- "validated session recovery",
19
- "descriptor-safe pet actions",
20
- "session event reactions",
21
- "persistence health panel"
22
- ],
16
+ "capabilities": ["read-only", "session-data"],
23
17
  "hooks": ["session events", "pet reaction tool", "session storage", "plugin UI"],
24
18
  "profile": {
25
19
  "name": "@pi-harness/plugin-openpets",