@pi-harness/pi-harness 0.1.30 → 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 (288) hide show
  1. package/README.md +1 -1
  2. package/apps/web/dist/assets/index-BqOM0elx.css +2 -0
  3. package/apps/web/dist/assets/index-x2UhIAWm.js +25 -0
  4. package/apps/web/dist/index.html +2 -2
  5. package/apps/web/package.json +1 -1
  6. package/apps/web/profile/cordis.yml +0 -221
  7. package/apps/web/server-dist/bin.js +11 -3
  8. package/apps/web/server-dist/bin.js.map +1 -1
  9. package/apps/web/src/server/bin.ts +10 -2
  10. package/apps/web/src/style.css +30 -1
  11. package/node_modules/@pi-harness/api-gateway/dist/index.d.ts.map +1 -1
  12. package/node_modules/@pi-harness/api-gateway/dist/index.js +70 -18
  13. package/node_modules/@pi-harness/api-gateway/dist/index.js.map +1 -1
  14. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/agent-teams.json +1 -1
  15. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/anchored-standard.json +1 -1
  16. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/annotation.json +1 -1
  17. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/archify.json +1 -1
  18. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/at-file.json +1 -9
  19. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/auto-mode.json +1 -1
  20. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/better-sidebar.json +1 -1
  21. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/browser-fetch.json +1 -8
  22. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/browser-session.json +1 -8
  23. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/canvas-draw.json +2 -2
  24. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/change-verifier.json +1 -1
  25. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cleaner.json +1 -9
  26. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cli-notifier.json +1 -1
  27. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/code2skill.json +1 -1
  28. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/colleague-skill.json +1 -1
  29. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/context-doctor.json +1 -8
  30. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/context.json +1 -7
  31. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cordis-group.json +1 -1
  32. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cordis-logger-console.json +1 -1
  33. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cordis-timer.json +1 -1
  34. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cost-meter.json +1 -1
  35. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/dependency-checker.json +2 -10
  36. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +1 -9
  37. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/fail-logger.json +1 -8
  38. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/genui.json +1 -1
  39. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +1 -8
  40. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/graph-memory.json +1 -1
  41. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/history-compressor.json +2 -2
  42. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/hol-guard.json +2 -2
  43. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/i18n-pair.json +1 -7
  44. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/image-compressor.json +2 -2
  45. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/llm-verifier.json +1 -1
  46. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mcp-client.json +2 -8
  47. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mcp-panel.json +1 -1
  48. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/memory.json +1 -1
  49. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mirage-bridge.json +1 -1
  50. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mock-server.json +1 -1
  51. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/modlens.json +1 -1
  52. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/module-search.json +1 -1
  53. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +1 -1
  54. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/openpets.json +2 -8
  55. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plan-execute.json +1 -1
  56. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-check.json +1 -1
  57. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-dev.json +1 -1
  58. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-finder.json +1 -1
  59. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-radar.json +1 -1
  60. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-stars.json +1 -8
  61. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-guard.json +2 -2
  62. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-library.json +1 -1
  63. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/readme-gen.json +1 -9
  64. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/recall-unread.json +1 -8
  65. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/reverse-skill.json +2 -2
  66. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/reviewer-bot.json +1 -1
  67. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/runtime-doctor.json +1 -1
  68. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/secure-audit.json +1 -1
  69. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-bookmarks.json +1 -1
  70. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-bridge.json +1 -9
  71. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-compare.json +1 -1
  72. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-export.json +1 -1
  73. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-insights.json +1 -9
  74. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-search.json +1 -1
  75. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/skill-catalog.json +1 -1
  76. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/skill-guard.json +2 -9
  77. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/sql-lens.json +1 -8
  78. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/synapse.json +1 -1
  79. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/tab-manager.json +1 -1
  80. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/taskboard.json +1 -1
  81. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +1 -1
  82. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/test-harness.json +2 -10
  83. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/theme-studio.json +1 -1
  84. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/token-guard.json +1 -9
  85. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/turn-rewind.json +1 -8
  86. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/undo-savepoint.json +1 -1
  87. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/vision-toolkit.json +1 -7
  88. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/web-research.json +1 -1
  89. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/workspace-navigator.json +1 -1
  90. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/workspace-search.json +2 -2
  91. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/yaml-validator.json +1 -7
  92. package/node_modules/@pi-harness/api-gateway/dist/marketplace.d.ts +18 -2
  93. package/node_modules/@pi-harness/api-gateway/dist/marketplace.d.ts.map +1 -1
  94. package/node_modules/@pi-harness/api-gateway/dist/marketplace.js +93 -10
  95. package/node_modules/@pi-harness/api-gateway/dist/marketplace.js.map +1 -1
  96. package/node_modules/@pi-harness/api-gateway/package.json +1 -27
  97. package/node_modules/@pi-harness/cli/dist/main.d.ts.map +1 -1
  98. package/node_modules/@pi-harness/cli/dist/main.js +19 -3
  99. package/node_modules/@pi-harness/cli/dist/main.js.map +1 -1
  100. package/node_modules/@pi-harness/cli/package.json +1 -1
  101. package/node_modules/@pi-harness/cli/profiles/default/cordis.yml +0 -87
  102. package/node_modules/@pi-harness/host-webserver/package.json +1 -1
  103. package/node_modules/@pi-harness/web-app/package.json +1 -1
  104. package/package.json +6 -79
  105. package/packages/api-gateway/dist/index.d.ts.map +1 -1
  106. package/packages/api-gateway/dist/index.js +70 -18
  107. package/packages/api-gateway/dist/index.js.map +1 -1
  108. package/packages/api-gateway/dist/marketplace-entries/official/agent-teams.json +1 -1
  109. package/packages/api-gateway/dist/marketplace-entries/official/anchored-standard.json +1 -1
  110. package/packages/api-gateway/dist/marketplace-entries/official/annotation.json +1 -1
  111. package/packages/api-gateway/dist/marketplace-entries/official/archify.json +1 -1
  112. package/packages/api-gateway/dist/marketplace-entries/official/at-file.json +1 -9
  113. package/packages/api-gateway/dist/marketplace-entries/official/auto-mode.json +1 -1
  114. package/packages/api-gateway/dist/marketplace-entries/official/better-sidebar.json +1 -1
  115. package/packages/api-gateway/dist/marketplace-entries/official/browser-fetch.json +1 -8
  116. package/packages/api-gateway/dist/marketplace-entries/official/browser-session.json +1 -8
  117. package/packages/api-gateway/dist/marketplace-entries/official/canvas-draw.json +2 -2
  118. package/packages/api-gateway/dist/marketplace-entries/official/change-verifier.json +1 -1
  119. package/packages/api-gateway/dist/marketplace-entries/official/cleaner.json +1 -9
  120. package/packages/api-gateway/dist/marketplace-entries/official/cli-notifier.json +1 -1
  121. package/packages/api-gateway/dist/marketplace-entries/official/code2skill.json +1 -1
  122. package/packages/api-gateway/dist/marketplace-entries/official/colleague-skill.json +1 -1
  123. package/packages/api-gateway/dist/marketplace-entries/official/context-doctor.json +1 -8
  124. package/packages/api-gateway/dist/marketplace-entries/official/context.json +1 -7
  125. package/packages/api-gateway/dist/marketplace-entries/official/cordis-group.json +1 -1
  126. package/packages/api-gateway/dist/marketplace-entries/official/cordis-logger-console.json +1 -1
  127. package/packages/api-gateway/dist/marketplace-entries/official/cordis-timer.json +1 -1
  128. package/packages/api-gateway/dist/marketplace-entries/official/cost-meter.json +1 -1
  129. package/packages/api-gateway/dist/marketplace-entries/official/dependency-checker.json +2 -10
  130. package/packages/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +1 -9
  131. package/packages/api-gateway/dist/marketplace-entries/official/fail-logger.json +1 -8
  132. package/packages/api-gateway/dist/marketplace-entries/official/genui.json +1 -1
  133. package/packages/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +1 -8
  134. package/packages/api-gateway/dist/marketplace-entries/official/graph-memory.json +1 -1
  135. package/packages/api-gateway/dist/marketplace-entries/official/history-compressor.json +2 -2
  136. package/packages/api-gateway/dist/marketplace-entries/official/hol-guard.json +2 -2
  137. package/packages/api-gateway/dist/marketplace-entries/official/i18n-pair.json +1 -7
  138. package/packages/api-gateway/dist/marketplace-entries/official/image-compressor.json +2 -2
  139. package/packages/api-gateway/dist/marketplace-entries/official/llm-verifier.json +1 -1
  140. package/packages/api-gateway/dist/marketplace-entries/official/mcp-client.json +2 -8
  141. package/packages/api-gateway/dist/marketplace-entries/official/mcp-panel.json +1 -1
  142. package/packages/api-gateway/dist/marketplace-entries/official/memory.json +1 -1
  143. package/packages/api-gateway/dist/marketplace-entries/official/mirage-bridge.json +1 -1
  144. package/packages/api-gateway/dist/marketplace-entries/official/mock-server.json +1 -1
  145. package/packages/api-gateway/dist/marketplace-entries/official/modlens.json +1 -1
  146. package/packages/api-gateway/dist/marketplace-entries/official/module-search.json +1 -1
  147. package/packages/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +1 -1
  148. package/packages/api-gateway/dist/marketplace-entries/official/openpets.json +2 -8
  149. package/packages/api-gateway/dist/marketplace-entries/official/plan-execute.json +1 -1
  150. package/packages/api-gateway/dist/marketplace-entries/official/plugin-check.json +1 -1
  151. package/packages/api-gateway/dist/marketplace-entries/official/plugin-dev.json +1 -1
  152. package/packages/api-gateway/dist/marketplace-entries/official/plugin-finder.json +1 -1
  153. package/packages/api-gateway/dist/marketplace-entries/official/plugin-radar.json +1 -1
  154. package/packages/api-gateway/dist/marketplace-entries/official/plugin-stars.json +1 -8
  155. package/packages/api-gateway/dist/marketplace-entries/official/prompt-guard.json +2 -2
  156. package/packages/api-gateway/dist/marketplace-entries/official/prompt-library.json +1 -1
  157. package/packages/api-gateway/dist/marketplace-entries/official/readme-gen.json +1 -9
  158. package/packages/api-gateway/dist/marketplace-entries/official/recall-unread.json +1 -8
  159. package/packages/api-gateway/dist/marketplace-entries/official/reverse-skill.json +2 -2
  160. package/packages/api-gateway/dist/marketplace-entries/official/reviewer-bot.json +1 -1
  161. package/packages/api-gateway/dist/marketplace-entries/official/runtime-doctor.json +1 -1
  162. package/packages/api-gateway/dist/marketplace-entries/official/secure-audit.json +1 -1
  163. package/packages/api-gateway/dist/marketplace-entries/official/session-bookmarks.json +1 -1
  164. package/packages/api-gateway/dist/marketplace-entries/official/session-bridge.json +1 -9
  165. package/packages/api-gateway/dist/marketplace-entries/official/session-compare.json +1 -1
  166. package/packages/api-gateway/dist/marketplace-entries/official/session-export.json +1 -1
  167. package/packages/api-gateway/dist/marketplace-entries/official/session-insights.json +1 -9
  168. package/packages/api-gateway/dist/marketplace-entries/official/session-search.json +1 -1
  169. package/packages/api-gateway/dist/marketplace-entries/official/skill-catalog.json +1 -1
  170. package/packages/api-gateway/dist/marketplace-entries/official/skill-guard.json +2 -9
  171. package/packages/api-gateway/dist/marketplace-entries/official/sql-lens.json +1 -8
  172. package/packages/api-gateway/dist/marketplace-entries/official/synapse.json +1 -1
  173. package/packages/api-gateway/dist/marketplace-entries/official/tab-manager.json +1 -1
  174. package/packages/api-gateway/dist/marketplace-entries/official/taskboard.json +1 -1
  175. package/packages/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +1 -1
  176. package/packages/api-gateway/dist/marketplace-entries/official/test-harness.json +2 -10
  177. package/packages/api-gateway/dist/marketplace-entries/official/theme-studio.json +1 -1
  178. package/packages/api-gateway/dist/marketplace-entries/official/token-guard.json +1 -9
  179. package/packages/api-gateway/dist/marketplace-entries/official/turn-rewind.json +1 -8
  180. package/packages/api-gateway/dist/marketplace-entries/official/undo-savepoint.json +1 -1
  181. package/packages/api-gateway/dist/marketplace-entries/official/vision-toolkit.json +1 -7
  182. package/packages/api-gateway/dist/marketplace-entries/official/web-research.json +1 -1
  183. package/packages/api-gateway/dist/marketplace-entries/official/workspace-navigator.json +1 -1
  184. package/packages/api-gateway/dist/marketplace-entries/official/workspace-search.json +2 -2
  185. package/packages/api-gateway/dist/marketplace-entries/official/yaml-validator.json +1 -7
  186. package/packages/api-gateway/dist/marketplace.d.ts +18 -2
  187. package/packages/api-gateway/dist/marketplace.d.ts.map +1 -1
  188. package/packages/api-gateway/dist/marketplace.js +93 -10
  189. package/packages/api-gateway/dist/marketplace.js.map +1 -1
  190. package/packages/api-gateway/package.json +1 -27
  191. package/packages/api-gateway/src/index.ts +85 -23
  192. package/packages/api-gateway/src/marketplace-entries/official/agent-teams.json +1 -1
  193. package/packages/api-gateway/src/marketplace-entries/official/anchored-standard.json +1 -1
  194. package/packages/api-gateway/src/marketplace-entries/official/annotation.json +1 -1
  195. package/packages/api-gateway/src/marketplace-entries/official/archify.json +1 -1
  196. package/packages/api-gateway/src/marketplace-entries/official/at-file.json +1 -9
  197. package/packages/api-gateway/src/marketplace-entries/official/auto-mode.json +1 -1
  198. package/packages/api-gateway/src/marketplace-entries/official/better-sidebar.json +1 -1
  199. package/packages/api-gateway/src/marketplace-entries/official/browser-fetch.json +1 -8
  200. package/packages/api-gateway/src/marketplace-entries/official/browser-session.json +1 -8
  201. package/packages/api-gateway/src/marketplace-entries/official/canvas-draw.json +2 -2
  202. package/packages/api-gateway/src/marketplace-entries/official/change-verifier.json +1 -1
  203. package/packages/api-gateway/src/marketplace-entries/official/cleaner.json +1 -9
  204. package/packages/api-gateway/src/marketplace-entries/official/cli-notifier.json +1 -1
  205. package/packages/api-gateway/src/marketplace-entries/official/code2skill.json +1 -1
  206. package/packages/api-gateway/src/marketplace-entries/official/colleague-skill.json +1 -1
  207. package/packages/api-gateway/src/marketplace-entries/official/context-doctor.json +1 -8
  208. package/packages/api-gateway/src/marketplace-entries/official/context.json +1 -7
  209. package/packages/api-gateway/src/marketplace-entries/official/cordis-group.json +1 -1
  210. package/packages/api-gateway/src/marketplace-entries/official/cordis-logger-console.json +1 -1
  211. package/packages/api-gateway/src/marketplace-entries/official/cordis-timer.json +1 -1
  212. package/packages/api-gateway/src/marketplace-entries/official/cost-meter.json +1 -1
  213. package/packages/api-gateway/src/marketplace-entries/official/dependency-checker.json +2 -10
  214. package/packages/api-gateway/src/marketplace-entries/official/docker-sandbox.json +1 -9
  215. package/packages/api-gateway/src/marketplace-entries/official/fail-logger.json +1 -8
  216. package/packages/api-gateway/src/marketplace-entries/official/genui.json +1 -1
  217. package/packages/api-gateway/src/marketplace-entries/official/git-time-capsule.json +1 -8
  218. package/packages/api-gateway/src/marketplace-entries/official/graph-memory.json +1 -1
  219. package/packages/api-gateway/src/marketplace-entries/official/history-compressor.json +2 -2
  220. package/packages/api-gateway/src/marketplace-entries/official/hol-guard.json +2 -2
  221. package/packages/api-gateway/src/marketplace-entries/official/i18n-pair.json +1 -7
  222. package/packages/api-gateway/src/marketplace-entries/official/image-compressor.json +2 -2
  223. package/packages/api-gateway/src/marketplace-entries/official/llm-verifier.json +1 -1
  224. package/packages/api-gateway/src/marketplace-entries/official/mcp-client.json +2 -8
  225. package/packages/api-gateway/src/marketplace-entries/official/mcp-panel.json +1 -1
  226. package/packages/api-gateway/src/marketplace-entries/official/memory.json +1 -1
  227. package/packages/api-gateway/src/marketplace-entries/official/mirage-bridge.json +1 -1
  228. package/packages/api-gateway/src/marketplace-entries/official/mock-server.json +1 -1
  229. package/packages/api-gateway/src/marketplace-entries/official/modlens.json +1 -1
  230. package/packages/api-gateway/src/marketplace-entries/official/module-search.json +1 -1
  231. package/packages/api-gateway/src/marketplace-entries/official/obsidian-sync.json +1 -1
  232. package/packages/api-gateway/src/marketplace-entries/official/openpets.json +2 -8
  233. package/packages/api-gateway/src/marketplace-entries/official/plan-execute.json +1 -1
  234. package/packages/api-gateway/src/marketplace-entries/official/plugin-check.json +1 -1
  235. package/packages/api-gateway/src/marketplace-entries/official/plugin-dev.json +1 -1
  236. package/packages/api-gateway/src/marketplace-entries/official/plugin-finder.json +1 -1
  237. package/packages/api-gateway/src/marketplace-entries/official/plugin-radar.json +1 -1
  238. package/packages/api-gateway/src/marketplace-entries/official/plugin-stars.json +1 -8
  239. package/packages/api-gateway/src/marketplace-entries/official/prompt-guard.json +2 -2
  240. package/packages/api-gateway/src/marketplace-entries/official/prompt-library.json +1 -1
  241. package/packages/api-gateway/src/marketplace-entries/official/readme-gen.json +1 -9
  242. package/packages/api-gateway/src/marketplace-entries/official/recall-unread.json +1 -8
  243. package/packages/api-gateway/src/marketplace-entries/official/reverse-skill.json +2 -2
  244. package/packages/api-gateway/src/marketplace-entries/official/reviewer-bot.json +1 -1
  245. package/packages/api-gateway/src/marketplace-entries/official/runtime-doctor.json +1 -1
  246. package/packages/api-gateway/src/marketplace-entries/official/secure-audit.json +1 -1
  247. package/packages/api-gateway/src/marketplace-entries/official/session-bookmarks.json +1 -1
  248. package/packages/api-gateway/src/marketplace-entries/official/session-bridge.json +1 -9
  249. package/packages/api-gateway/src/marketplace-entries/official/session-compare.json +1 -1
  250. package/packages/api-gateway/src/marketplace-entries/official/session-export.json +1 -1
  251. package/packages/api-gateway/src/marketplace-entries/official/session-insights.json +1 -9
  252. package/packages/api-gateway/src/marketplace-entries/official/session-search.json +1 -1
  253. package/packages/api-gateway/src/marketplace-entries/official/skill-catalog.json +1 -1
  254. package/packages/api-gateway/src/marketplace-entries/official/skill-guard.json +2 -9
  255. package/packages/api-gateway/src/marketplace-entries/official/sql-lens.json +1 -8
  256. package/packages/api-gateway/src/marketplace-entries/official/synapse.json +1 -1
  257. package/packages/api-gateway/src/marketplace-entries/official/tab-manager.json +1 -1
  258. package/packages/api-gateway/src/marketplace-entries/official/taskboard.json +1 -1
  259. package/packages/api-gateway/src/marketplace-entries/official/telemetry-blocker.json +1 -1
  260. package/packages/api-gateway/src/marketplace-entries/official/test-harness.json +2 -10
  261. package/packages/api-gateway/src/marketplace-entries/official/theme-studio.json +1 -1
  262. package/packages/api-gateway/src/marketplace-entries/official/token-guard.json +1 -9
  263. package/packages/api-gateway/src/marketplace-entries/official/turn-rewind.json +1 -8
  264. package/packages/api-gateway/src/marketplace-entries/official/undo-savepoint.json +1 -1
  265. package/packages/api-gateway/src/marketplace-entries/official/vision-toolkit.json +1 -7
  266. package/packages/api-gateway/src/marketplace-entries/official/web-research.json +1 -1
  267. package/packages/api-gateway/src/marketplace-entries/official/workspace-navigator.json +1 -1
  268. package/packages/api-gateway/src/marketplace-entries/official/workspace-search.json +2 -2
  269. package/packages/api-gateway/src/marketplace-entries/official/yaml-validator.json +1 -7
  270. package/packages/api-gateway/src/marketplace.ts +113 -12
  271. package/packages/api-gateway/test/index.test.ts +297 -5
  272. package/packages/api-gateway/test/marketplace-schema.test.ts +12 -0
  273. package/packages/api-gateway/test/marketplace.test.ts +172 -240
  274. package/packages/api-gateway/test/packed-package.test.ts +18 -6
  275. package/packages/api-gateway/test/release-contract.test.ts +8 -4
  276. package/packages/bundle-web-app/package.json +1 -1
  277. package/packages/cli/dist/main.d.ts.map +1 -1
  278. package/packages/cli/dist/main.js +19 -3
  279. package/packages/cli/dist/main.js.map +1 -1
  280. package/packages/cli/package.json +1 -1
  281. package/packages/cli/profiles/default/cordis.yml +0 -87
  282. package/packages/cli/src/main.ts +18 -3
  283. package/packages/cli/test/cli.test.ts +20 -0
  284. package/packages/cli/test/profiles/plugins/cordis.yml +122 -0
  285. package/packages/cli/test/profiles.integration.test.ts +40 -23
  286. package/packages/host-webserver/package.json +1 -1
  287. package/apps/web/dist/assets/index-B7pwZ76Z.js +0 -25
  288. package/apps/web/dist/assets/index-xF647pQJ.css +0 -2
@@ -2,6 +2,7 @@ import { execFile } from "node:child_process";
2
2
  import { mkdir, mkdtemp, readFile, writeFile } from "node:fs/promises";
3
3
  import { tmpdir } from "node:os";
4
4
  import { join } from "node:path";
5
+ import { fileURLToPath } from "node:url";
5
6
  import { promisify } from "node:util";
6
7
  import { afterEach, describe, expect, test } from "vitest";
7
8
  import { bootHarness, provideStdioContext, resolveProfileConfig, type BootedHarness } from "@pi-harness/core";
@@ -11,14 +12,17 @@ import { BUILTIN_PROFILES_DIR } from "../src/profiles.js";
11
12
  const booted: BootedHarness[] = [];
12
13
  const execFileAsync = promisify(execFile);
13
14
 
15
+ // The shipped profiles enable infrastructure only, because an official plugin is installed from the plugin center like a community one. Exercising a plugin against a real host therefore needs a profile that enables it, so this one names the plugins these tests drive end to end.
16
+ const PLUGIN_PROFILES_DIR = fileURLToPath(new URL("profiles", import.meta.url));
17
+
14
18
  afterEach(async () => {
15
19
  await Promise.all(booted.splice(0).map(async (harness) => harness.dispose()));
16
20
  });
17
21
 
18
- async function bootProfile(profile: string): Promise<{ harness: BootedHarness; cwd: string }> {
22
+ async function bootProfile(profile: string, profilesDir: string = BUILTIN_PROFILES_DIR): Promise<{ harness: BootedHarness; cwd: string }> {
19
23
  const cwd = await mkdtemp(join(tmpdir(), "pi-harness-profile-cwd-"));
20
24
  const agentDir = await mkdtemp(join(tmpdir(), "pi-harness-profile-agent-"));
21
- const configPath = await resolveProfileConfig({ profile, profilesDir: BUILTIN_PROFILES_DIR });
25
+ const configPath = await resolveProfileConfig({ profile, profilesDir });
22
26
  const harness = await bootHarness({
23
27
  configPath,
24
28
  prepare(context) {
@@ -37,8 +41,8 @@ async function bootProfile(profile: string): Promise<{ harness: BootedHarness; c
37
41
  }
38
42
 
39
43
  describe("packaged profiles", () => {
40
- test("exposes every production-profile tool with strict sequential execution metadata", async () => {
41
- const { harness } = await bootProfile("default");
44
+ test("exposes every plugin-profile tool with strict sequential execution metadata", async () => {
45
+ const { harness } = await bootProfile("plugins", PLUGIN_PROFILES_DIR);
42
46
  const tools = harness.context.get("piTools")?.snapshot().customTools ?? [];
43
47
  expect(tools.length).toBeGreaterThan(0);
44
48
  for (const tool of tools) {
@@ -47,8 +51,21 @@ describe("packaged profiles", () => {
47
51
  }
48
52
  }, 30_000);
49
53
 
50
- test("boots the default production profile without HMR", async () => {
51
- const { harness, cwd } = await bootProfile("default");
54
+ test("boots the shipped default profile with infrastructure only", async () => {
55
+ // A fresh install must arrive with nothing pluggable switched on: every official plugin is installed from the plugin center, exactly like a community one.
56
+ const { harness } = await bootProfile("default");
57
+ const names = [...harness.context.loader.entries()].map((entry) => entry.options.name);
58
+
59
+ expect(harness.context.get("piModels")?.model.provider).toBe("deepseek");
60
+ expect(harness.context.get("piApplication")).toBeDefined();
61
+ expect(harness.context.get("piRuntime")).toBeDefined();
62
+ expect(names.filter((name) => name.startsWith("@pi-harness/plugin-"))).toEqual([]);
63
+ expect(names).toEqual(expect.arrayContaining(["@pi-harness/core/plugins/tools", "@pi-harness/core/plugins/runtime", "@pi-harness/core/plugins/stdio"]));
64
+ expect(harness.context.get("piTools")?.snapshot().customTools).toEqual([]);
65
+ }, 15_000);
66
+
67
+ test("boots the production plugin profile without HMR", async () => {
68
+ const { harness, cwd } = await bootProfile("plugins", PLUGIN_PROFILES_DIR);
52
69
  const names = [...harness.context.loader.entries()].map((entry) => entry.options.name);
53
70
 
54
71
  expect(harness.context.get("piModels")?.model.provider).toBe("deepseek");
@@ -92,7 +109,7 @@ describe("packaged profiles", () => {
92
109
  .get("piTools")
93
110
  ?.snapshot()
94
111
  .customTools.find((tool) => tool.name === "session_report");
95
- if (sessionReportTool === undefined) throw new Error("default profile did not register session_report");
112
+ if (sessionReportTool === undefined) throw new Error("plugin test profile did not register session_report");
96
113
  expect(
97
114
  harness.context
98
115
  .get("piRuntime")
@@ -128,7 +145,7 @@ describe("packaged profiles", () => {
128
145
  .get("piTools")
129
146
  ?.snapshot()
130
147
  .customTools.find((tool) => tool.name === "dependency_check");
131
- if (dependencyTool === undefined) throw new Error("default profile did not register dependency_check");
148
+ if (dependencyTool === undefined) throw new Error("plugin test profile did not register dependency_check");
132
149
  expect(
133
150
  harness.context
134
151
  .get("piRuntime")
@@ -160,7 +177,7 @@ describe("packaged profiles", () => {
160
177
  .get("piTools")
161
178
  ?.snapshot()
162
179
  .customTools.find((tool) => tool.name === "file_context");
163
- if (fileContextTool === undefined) throw new Error("default profile did not register file_context");
180
+ if (fileContextTool === undefined) throw new Error("plugin test profile did not register file_context");
164
181
  expect(
165
182
  harness.context
166
183
  .get("piRuntime")
@@ -185,7 +202,7 @@ describe("packaged profiles", () => {
185
202
  .get("piTools")
186
203
  ?.snapshot()
187
204
  .customTools.find((tool) => tool.name === "run_project_tests");
188
- if (testHarnessTool === undefined) throw new Error("default profile did not register run_project_tests");
205
+ if (testHarnessTool === undefined) throw new Error("plugin test profile did not register run_project_tests");
189
206
  expect(
190
207
  harness.context
191
208
  .get("piRuntime")
@@ -222,7 +239,7 @@ describe("packaged profiles", () => {
222
239
  .get("piTools")
223
240
  ?.snapshot()
224
241
  .customTools.find((tool) => tool.name === "team_task");
225
- if (teamTool === undefined) throw new Error("default profile did not register team_task");
242
+ if (teamTool === undefined) throw new Error("plugin test profile did not register team_task");
226
243
  expect(
227
244
  harness.context
228
245
  .get("piRuntime")
@@ -240,7 +257,7 @@ describe("packaged profiles", () => {
240
257
  .get("piTools")
241
258
  ?.snapshot()
242
259
  .customTools.find((tool) => tool.name === "vision_inspect");
243
- if (visionTool === undefined) throw new Error("default profile did not register vision_inspect");
260
+ if (visionTool === undefined) throw new Error("plugin test profile did not register vision_inspect");
244
261
  expect(
245
262
  harness.context
246
263
  .get("piRuntime")
@@ -268,7 +285,7 @@ describe("packaged profiles", () => {
268
285
  image.writeUInt32BE(18, 20);
269
286
  await writeFile(join(cwd, "profile-vision.png"), image);
270
287
  const infoTool = toolkitTools?.find((tool) => tool.name === "vision_image_info");
271
- if (infoTool === undefined) throw new Error("default profile did not register vision_image_info");
288
+ if (infoTool === undefined) throw new Error("plugin test profile did not register vision_image_info");
272
289
  await expect(infoTool.execute("profile-vision", { path: "profile-vision.png" }, undefined, undefined, {} as never)).resolves.toMatchObject({
273
290
  details: { path: "profile-vision.png", width: 32, height: 18, headerTruncated: false },
274
291
  });
@@ -298,10 +315,10 @@ describe("packaged profiles", () => {
298
315
  await writeFile(join(cwd, "profile-capsule.txt"), "after\n", "utf8");
299
316
  const capture = capsuleTools?.find((tool) => tool.name === "git_snapshot");
300
317
  const restore = capsuleTools?.find((tool) => tool.name === "git_restore");
301
- if (capture === undefined || restore === undefined) throw new Error("default profile did not register both Git Time Capsule tools");
318
+ if (capture === undefined || restore === undefined) throw new Error("plugin test profile did not register both Git Time Capsule tools");
302
319
  const captured = await capture.execute("profile-capsule", {}, undefined, undefined, {} as never);
303
320
  const capsuleName = (captured.details as { name?: unknown }).name;
304
- if (typeof capsuleName !== "string") throw new Error("default profile Git snapshot did not return a capsule name");
321
+ if (typeof capsuleName !== "string") throw new Error("plugin test profile Git snapshot did not return a capsule name");
305
322
  await restore.execute("profile-capsule-restore", { name: capsuleName, confirm: true }, undefined, undefined, {} as never);
306
323
  await expect(readFile(join(cwd, "profile-capsule.txt"), "utf8")).resolves.toBe("before\n");
307
324
  const capsulePanel = (await harness.context.get("piPluginUi")?.snapshot())?.find((panel) => panel.id === "git-time-capsule-panel");
@@ -327,7 +344,7 @@ describe("packaged profiles", () => {
327
344
  });
328
345
 
329
346
  test("loads production README tools into the default runtime and writes a current confirmed snapshot", async () => {
330
- const { harness, cwd } = await bootProfile("default");
347
+ const { harness, cwd } = await bootProfile("plugins", PLUGIN_PROFILES_DIR);
331
348
  const loaderNames = [...harness.context.loader.entries()].map((entry) => entry.options.name);
332
349
  const registered = harness.context
333
350
  .get("piTools")
@@ -343,7 +360,7 @@ describe("packaged profiles", () => {
343
360
  expect(runtimeNames).toEqual(expect.arrayContaining(["readme_report", "readme_write"]));
344
361
  const report = registered?.find((tool) => tool.name === "readme_report");
345
362
  const write = registered?.find((tool) => tool.name === "readme_write");
346
- if (report === undefined || write === undefined) throw new Error("default profile did not register both README tools");
363
+ if (report === undefined || write === undefined) throw new Error("plugin test profile did not register both README tools");
347
364
 
348
365
  await writeFile(
349
366
  join(cwd, "package.json"),
@@ -393,7 +410,7 @@ describe("packaged profiles", () => {
393
410
  }, 15_000);
394
411
 
395
412
  test("loads the production I18n pair tool into the default runtime and compares real locale files", async () => {
396
- const { harness, cwd } = await bootProfile("default");
413
+ const { harness, cwd } = await bootProfile("plugins", PLUGIN_PROFILES_DIR);
397
414
  const loaderNames = [...harness.context.loader.entries()].map((entry) => entry.options.name);
398
415
  const tool = harness.context
399
416
  .get("piTools")
@@ -407,7 +424,7 @@ describe("packaged profiles", () => {
407
424
  expect(loaderNames).toContain("@pi-harness/plugin-i18n-pair");
408
425
  expect(tool).toMatchObject({ executionMode: "sequential", parameters: { additionalProperties: false } });
409
426
  expect(runtimeNames).toContain("i18n_check");
410
- if (tool === undefined) throw new Error("default profile did not register i18n_check");
427
+ if (tool === undefined) throw new Error("plugin test profile did not register i18n_check");
411
428
 
412
429
  await mkdir(join(cwd, "locales"), { recursive: true });
413
430
  await Promise.all([
@@ -442,7 +459,7 @@ describe("packaged profiles", () => {
442
459
  }, 15_000);
443
460
 
444
461
  test("loads the production Cleaner tool into the default runtime and removes only excess capsules", async () => {
445
- const { harness } = await bootProfile("default");
462
+ const { harness } = await bootProfile("plugins", PLUGIN_PROFILES_DIR);
446
463
  const loaderNames = [...harness.context.loader.entries()].map((entry) => entry.options.name);
447
464
  const tool = harness.context
448
465
  .get("piTools")
@@ -457,7 +474,7 @@ describe("packaged profiles", () => {
457
474
  expect(loaderNames).toContain("@pi-harness/plugin-cleaner");
458
475
  expect(tool).toMatchObject({ executionMode: "sequential", parameters: { additionalProperties: false } });
459
476
  expect(runtimeNames).toContain("clean_harness_artifacts");
460
- if (tool === undefined) throw new Error("default profile did not register clean_harness_artifacts");
477
+ if (tool === undefined) throw new Error("plugin test profile did not register clean_harness_artifacts");
461
478
  if (agentDir === undefined) throw new Error("default profile did not expose PI_AGENT_DIR");
462
479
 
463
480
  const capsuleDir = join(agentDir, "capsules");
@@ -486,7 +503,7 @@ describe("packaged profiles", () => {
486
503
  }, 15_000);
487
504
 
488
505
  test("loads the production SQL Lens tool into the default runtime and runs a local read-only query", async () => {
489
- const { harness, cwd } = await bootProfile("default");
506
+ const { harness, cwd } = await bootProfile("plugins", PLUGIN_PROFILES_DIR);
490
507
  const loaderNames = [...harness.context.loader.entries()].map((entry) => entry.options.name);
491
508
  const tool = harness.context
492
509
  .get("piTools")
@@ -499,7 +516,7 @@ describe("packaged profiles", () => {
499
516
  expect(loaderNames).toContain("@pi-harness/plugin-sql-lens");
500
517
  expect(tool).toMatchObject({ executionMode: "sequential", parameters: { additionalProperties: false } });
501
518
  expect(runtimeNames).toContain("sql_readonly");
502
- if (tool === undefined) throw new Error("default profile did not register sql_readonly");
519
+ if (tool === undefined) throw new Error("plugin test profile did not register sql_readonly");
503
520
  const { DatabaseSync } = await import("node:sqlite");
504
521
  const database = new DatabaseSync(join(cwd, "data.db"));
505
522
  database.exec("CREATE TABLE users(id INTEGER PRIMARY KEY, name TEXT); INSERT INTO users VALUES (1, 'Ada')");
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/host-webserver",
3
- "version": "0.1.30",
3
+ "version": "0.1.32",
4
4
  "private": true,
5
5
  "description": "Cordis route-registration service for the Pi Harness web host",
6
6
  "homepage": "https://github.com/pi-harness/pi-harness#readme",