@pi-harness/pi-harness 0.1.28 → 0.1.30

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 (298) hide show
  1. package/README.md +1 -1
  2. package/apps/web/dist/assets/{index-1vaEg8Vr.js → index-B7pwZ76Z.js} +2 -2
  3. package/apps/web/dist/index.html +1 -1
  4. package/apps/web/package.json +1 -15
  5. package/apps/web/profile/cordis.yml +73 -73
  6. package/apps/web/server-dist/bin.js +4 -2
  7. package/apps/web/server-dist/bin.js.map +1 -1
  8. package/apps/web/src/server/bin.ts +4 -2
  9. package/apps/web/test/bin.test.ts +6 -0
  10. package/node_modules/@pi-harness/api-gateway/dist/index.d.ts.map +1 -1
  11. package/node_modules/@pi-harness/api-gateway/dist/index.js +5 -12
  12. package/node_modules/@pi-harness/api-gateway/dist/index.js.map +1 -1
  13. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/agent-teams.json +3 -3
  14. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/anchored-standard.json +3 -3
  15. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/annotation.json +3 -3
  16. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/archify.json +3 -3
  17. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/at-file.json +3 -3
  18. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/auto-mode.json +3 -3
  19. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/better-sidebar.json +3 -3
  20. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/browser-fetch.json +3 -3
  21. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/browser-session.json +3 -3
  22. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/canvas-draw.json +3 -3
  23. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/change-verifier.json +3 -3
  24. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cleaner.json +3 -3
  25. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cli-notifier.json +3 -3
  26. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/code2skill.json +3 -3
  27. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/colleague-skill.json +3 -3
  28. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/context-doctor.json +3 -3
  29. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/context.json +3 -3
  30. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cost-meter.json +3 -3
  31. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/dependency-checker.json +3 -3
  32. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +3 -3
  33. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/fail-logger.json +3 -3
  34. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/genui.json +3 -3
  35. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +3 -3
  36. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/graph-memory.json +3 -3
  37. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/history-compressor.json +3 -3
  38. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/hol-guard.json +3 -3
  39. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/i18n-pair.json +3 -3
  40. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/image-compressor.json +3 -3
  41. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/llm-verifier.json +3 -3
  42. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mcp-client.json +3 -3
  43. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mcp-panel.json +3 -3
  44. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/memory.json +3 -3
  45. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mirage-bridge.json +3 -3
  46. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mock-server.json +3 -3
  47. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/modlens.json +3 -3
  48. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/module-search.json +3 -3
  49. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +3 -3
  50. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/openpets.json +3 -3
  51. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plan-execute.json +3 -3
  52. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-check.json +3 -3
  53. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-dev.json +3 -3
  54. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-finder.json +3 -3
  55. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-radar.json +3 -3
  56. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-stars.json +3 -3
  57. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-guard.json +3 -3
  58. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-library.json +3 -3
  59. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/readme-gen.json +3 -3
  60. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/recall-unread.json +3 -3
  61. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/reverse-skill.json +3 -3
  62. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/reviewer-bot.json +3 -3
  63. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/runtime-doctor.json +3 -3
  64. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/secure-audit.json +3 -3
  65. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-bookmarks.json +3 -3
  66. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-bridge.json +3 -3
  67. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-compare.json +3 -3
  68. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-export.json +3 -3
  69. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-insights.json +3 -3
  70. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-search.json +3 -3
  71. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/skill-catalog.json +3 -3
  72. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/skill-guard.json +3 -3
  73. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/sql-lens.json +3 -3
  74. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/synapse.json +3 -3
  75. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/tab-manager.json +3 -3
  76. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/taskboard.json +3 -3
  77. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +3 -3
  78. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/test-harness.json +3 -3
  79. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/theme-studio.json +3 -3
  80. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/token-guard.json +3 -3
  81. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/turn-rewind.json +3 -3
  82. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/undo-savepoint.json +3 -3
  83. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/vision-toolkit.json +3 -3
  84. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/web-research.json +3 -3
  85. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/workspace-navigator.json +3 -3
  86. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/workspace-search.json +3 -3
  87. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/yaml-validator.json +3 -3
  88. package/node_modules/@pi-harness/api-gateway/dist/marketplace.d.ts +0 -1
  89. package/node_modules/@pi-harness/api-gateway/dist/marketplace.d.ts.map +1 -1
  90. package/node_modules/@pi-harness/api-gateway/dist/marketplace.js +0 -3
  91. package/node_modules/@pi-harness/api-gateway/dist/marketplace.js.map +1 -1
  92. package/node_modules/@pi-harness/api-gateway/package.json +27 -1
  93. package/node_modules/@pi-harness/cli/dist/bin.js +2 -1
  94. package/node_modules/@pi-harness/cli/dist/bin.js.map +1 -1
  95. package/node_modules/@pi-harness/cli/dist/main.d.ts +2 -0
  96. package/node_modules/@pi-harness/cli/dist/main.d.ts.map +1 -1
  97. package/node_modules/@pi-harness/cli/dist/main.js +12 -2
  98. package/node_modules/@pi-harness/cli/dist/main.js.map +1 -1
  99. package/node_modules/@pi-harness/cli/dist/profiles.d.ts +3 -0
  100. package/node_modules/@pi-harness/cli/dist/profiles.d.ts.map +1 -0
  101. package/node_modules/@pi-harness/cli/dist/profiles.js +5 -0
  102. package/node_modules/@pi-harness/cli/dist/profiles.js.map +1 -0
  103. package/node_modules/@pi-harness/cli/package.json +3 -2
  104. package/node_modules/@pi-harness/cli/profiles/default/cordis.yml +122 -0
  105. package/node_modules/@pi-harness/cli/profiles/development/cordis.yml +47 -0
  106. package/node_modules/@pi-harness/host-webserver/package.json +1 -1
  107. package/node_modules/@pi-harness/web-app/package.json +1 -1
  108. package/package.json +88 -15
  109. package/packages/api-gateway/dist/index.d.ts.map +1 -1
  110. package/packages/api-gateway/dist/index.js +5 -12
  111. package/packages/api-gateway/dist/index.js.map +1 -1
  112. package/packages/api-gateway/dist/marketplace-entries/official/agent-teams.json +3 -3
  113. package/packages/api-gateway/dist/marketplace-entries/official/anchored-standard.json +3 -3
  114. package/packages/api-gateway/dist/marketplace-entries/official/annotation.json +3 -3
  115. package/packages/api-gateway/dist/marketplace-entries/official/archify.json +3 -3
  116. package/packages/api-gateway/dist/marketplace-entries/official/at-file.json +3 -3
  117. package/packages/api-gateway/dist/marketplace-entries/official/auto-mode.json +3 -3
  118. package/packages/api-gateway/dist/marketplace-entries/official/better-sidebar.json +3 -3
  119. package/packages/api-gateway/dist/marketplace-entries/official/browser-fetch.json +3 -3
  120. package/packages/api-gateway/dist/marketplace-entries/official/browser-session.json +3 -3
  121. package/packages/api-gateway/dist/marketplace-entries/official/canvas-draw.json +3 -3
  122. package/packages/api-gateway/dist/marketplace-entries/official/change-verifier.json +3 -3
  123. package/packages/api-gateway/dist/marketplace-entries/official/cleaner.json +3 -3
  124. package/packages/api-gateway/dist/marketplace-entries/official/cli-notifier.json +3 -3
  125. package/packages/api-gateway/dist/marketplace-entries/official/code2skill.json +3 -3
  126. package/packages/api-gateway/dist/marketplace-entries/official/colleague-skill.json +3 -3
  127. package/packages/api-gateway/dist/marketplace-entries/official/context-doctor.json +3 -3
  128. package/packages/api-gateway/dist/marketplace-entries/official/context.json +3 -3
  129. package/packages/api-gateway/dist/marketplace-entries/official/cost-meter.json +3 -3
  130. package/packages/api-gateway/dist/marketplace-entries/official/dependency-checker.json +3 -3
  131. package/packages/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +3 -3
  132. package/packages/api-gateway/dist/marketplace-entries/official/fail-logger.json +3 -3
  133. package/packages/api-gateway/dist/marketplace-entries/official/genui.json +3 -3
  134. package/packages/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +3 -3
  135. package/packages/api-gateway/dist/marketplace-entries/official/graph-memory.json +3 -3
  136. package/packages/api-gateway/dist/marketplace-entries/official/history-compressor.json +3 -3
  137. package/packages/api-gateway/dist/marketplace-entries/official/hol-guard.json +3 -3
  138. package/packages/api-gateway/dist/marketplace-entries/official/i18n-pair.json +3 -3
  139. package/packages/api-gateway/dist/marketplace-entries/official/image-compressor.json +3 -3
  140. package/packages/api-gateway/dist/marketplace-entries/official/llm-verifier.json +3 -3
  141. package/packages/api-gateway/dist/marketplace-entries/official/mcp-client.json +3 -3
  142. package/packages/api-gateway/dist/marketplace-entries/official/mcp-panel.json +3 -3
  143. package/packages/api-gateway/dist/marketplace-entries/official/memory.json +3 -3
  144. package/packages/api-gateway/dist/marketplace-entries/official/mirage-bridge.json +3 -3
  145. package/packages/api-gateway/dist/marketplace-entries/official/mock-server.json +3 -3
  146. package/packages/api-gateway/dist/marketplace-entries/official/modlens.json +3 -3
  147. package/packages/api-gateway/dist/marketplace-entries/official/module-search.json +3 -3
  148. package/packages/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +3 -3
  149. package/packages/api-gateway/dist/marketplace-entries/official/openpets.json +3 -3
  150. package/packages/api-gateway/dist/marketplace-entries/official/plan-execute.json +3 -3
  151. package/packages/api-gateway/dist/marketplace-entries/official/plugin-check.json +3 -3
  152. package/packages/api-gateway/dist/marketplace-entries/official/plugin-dev.json +3 -3
  153. package/packages/api-gateway/dist/marketplace-entries/official/plugin-finder.json +3 -3
  154. package/packages/api-gateway/dist/marketplace-entries/official/plugin-radar.json +3 -3
  155. package/packages/api-gateway/dist/marketplace-entries/official/plugin-stars.json +3 -3
  156. package/packages/api-gateway/dist/marketplace-entries/official/prompt-guard.json +3 -3
  157. package/packages/api-gateway/dist/marketplace-entries/official/prompt-library.json +3 -3
  158. package/packages/api-gateway/dist/marketplace-entries/official/readme-gen.json +3 -3
  159. package/packages/api-gateway/dist/marketplace-entries/official/recall-unread.json +3 -3
  160. package/packages/api-gateway/dist/marketplace-entries/official/reverse-skill.json +3 -3
  161. package/packages/api-gateway/dist/marketplace-entries/official/reviewer-bot.json +3 -3
  162. package/packages/api-gateway/dist/marketplace-entries/official/runtime-doctor.json +3 -3
  163. package/packages/api-gateway/dist/marketplace-entries/official/secure-audit.json +3 -3
  164. package/packages/api-gateway/dist/marketplace-entries/official/session-bookmarks.json +3 -3
  165. package/packages/api-gateway/dist/marketplace-entries/official/session-bridge.json +3 -3
  166. package/packages/api-gateway/dist/marketplace-entries/official/session-compare.json +3 -3
  167. package/packages/api-gateway/dist/marketplace-entries/official/session-export.json +3 -3
  168. package/packages/api-gateway/dist/marketplace-entries/official/session-insights.json +3 -3
  169. package/packages/api-gateway/dist/marketplace-entries/official/session-search.json +3 -3
  170. package/packages/api-gateway/dist/marketplace-entries/official/skill-catalog.json +3 -3
  171. package/packages/api-gateway/dist/marketplace-entries/official/skill-guard.json +3 -3
  172. package/packages/api-gateway/dist/marketplace-entries/official/sql-lens.json +3 -3
  173. package/packages/api-gateway/dist/marketplace-entries/official/synapse.json +3 -3
  174. package/packages/api-gateway/dist/marketplace-entries/official/tab-manager.json +3 -3
  175. package/packages/api-gateway/dist/marketplace-entries/official/taskboard.json +3 -3
  176. package/packages/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +3 -3
  177. package/packages/api-gateway/dist/marketplace-entries/official/test-harness.json +3 -3
  178. package/packages/api-gateway/dist/marketplace-entries/official/theme-studio.json +3 -3
  179. package/packages/api-gateway/dist/marketplace-entries/official/token-guard.json +3 -3
  180. package/packages/api-gateway/dist/marketplace-entries/official/turn-rewind.json +3 -3
  181. package/packages/api-gateway/dist/marketplace-entries/official/undo-savepoint.json +3 -3
  182. package/packages/api-gateway/dist/marketplace-entries/official/vision-toolkit.json +3 -3
  183. package/packages/api-gateway/dist/marketplace-entries/official/web-research.json +3 -3
  184. package/packages/api-gateway/dist/marketplace-entries/official/workspace-navigator.json +3 -3
  185. package/packages/api-gateway/dist/marketplace-entries/official/workspace-search.json +3 -3
  186. package/packages/api-gateway/dist/marketplace-entries/official/yaml-validator.json +3 -3
  187. package/packages/api-gateway/dist/marketplace.d.ts +0 -1
  188. package/packages/api-gateway/dist/marketplace.d.ts.map +1 -1
  189. package/packages/api-gateway/dist/marketplace.js +0 -3
  190. package/packages/api-gateway/dist/marketplace.js.map +1 -1
  191. package/packages/api-gateway/package.json +27 -1
  192. package/packages/api-gateway/src/index.ts +4 -12
  193. package/packages/api-gateway/src/marketplace-entries/official/agent-teams.json +3 -3
  194. package/packages/api-gateway/src/marketplace-entries/official/anchored-standard.json +3 -3
  195. package/packages/api-gateway/src/marketplace-entries/official/annotation.json +3 -3
  196. package/packages/api-gateway/src/marketplace-entries/official/archify.json +3 -3
  197. package/packages/api-gateway/src/marketplace-entries/official/at-file.json +3 -3
  198. package/packages/api-gateway/src/marketplace-entries/official/auto-mode.json +3 -3
  199. package/packages/api-gateway/src/marketplace-entries/official/better-sidebar.json +3 -3
  200. package/packages/api-gateway/src/marketplace-entries/official/browser-fetch.json +3 -3
  201. package/packages/api-gateway/src/marketplace-entries/official/browser-session.json +3 -3
  202. package/packages/api-gateway/src/marketplace-entries/official/canvas-draw.json +3 -3
  203. package/packages/api-gateway/src/marketplace-entries/official/change-verifier.json +3 -3
  204. package/packages/api-gateway/src/marketplace-entries/official/cleaner.json +3 -3
  205. package/packages/api-gateway/src/marketplace-entries/official/cli-notifier.json +3 -3
  206. package/packages/api-gateway/src/marketplace-entries/official/code2skill.json +3 -3
  207. package/packages/api-gateway/src/marketplace-entries/official/colleague-skill.json +3 -3
  208. package/packages/api-gateway/src/marketplace-entries/official/context-doctor.json +3 -3
  209. package/packages/api-gateway/src/marketplace-entries/official/context.json +3 -3
  210. package/packages/api-gateway/src/marketplace-entries/official/cost-meter.json +3 -3
  211. package/packages/api-gateway/src/marketplace-entries/official/dependency-checker.json +3 -3
  212. package/packages/api-gateway/src/marketplace-entries/official/docker-sandbox.json +3 -3
  213. package/packages/api-gateway/src/marketplace-entries/official/fail-logger.json +3 -3
  214. package/packages/api-gateway/src/marketplace-entries/official/genui.json +3 -3
  215. package/packages/api-gateway/src/marketplace-entries/official/git-time-capsule.json +3 -3
  216. package/packages/api-gateway/src/marketplace-entries/official/graph-memory.json +3 -3
  217. package/packages/api-gateway/src/marketplace-entries/official/history-compressor.json +3 -3
  218. package/packages/api-gateway/src/marketplace-entries/official/hol-guard.json +3 -3
  219. package/packages/api-gateway/src/marketplace-entries/official/i18n-pair.json +3 -3
  220. package/packages/api-gateway/src/marketplace-entries/official/image-compressor.json +3 -3
  221. package/packages/api-gateway/src/marketplace-entries/official/llm-verifier.json +3 -3
  222. package/packages/api-gateway/src/marketplace-entries/official/mcp-client.json +3 -3
  223. package/packages/api-gateway/src/marketplace-entries/official/mcp-panel.json +3 -3
  224. package/packages/api-gateway/src/marketplace-entries/official/memory.json +3 -3
  225. package/packages/api-gateway/src/marketplace-entries/official/mirage-bridge.json +3 -3
  226. package/packages/api-gateway/src/marketplace-entries/official/mock-server.json +3 -3
  227. package/packages/api-gateway/src/marketplace-entries/official/modlens.json +3 -3
  228. package/packages/api-gateway/src/marketplace-entries/official/module-search.json +3 -3
  229. package/packages/api-gateway/src/marketplace-entries/official/obsidian-sync.json +3 -3
  230. package/packages/api-gateway/src/marketplace-entries/official/openpets.json +3 -3
  231. package/packages/api-gateway/src/marketplace-entries/official/plan-execute.json +3 -3
  232. package/packages/api-gateway/src/marketplace-entries/official/plugin-check.json +3 -3
  233. package/packages/api-gateway/src/marketplace-entries/official/plugin-dev.json +3 -3
  234. package/packages/api-gateway/src/marketplace-entries/official/plugin-finder.json +3 -3
  235. package/packages/api-gateway/src/marketplace-entries/official/plugin-radar.json +3 -3
  236. package/packages/api-gateway/src/marketplace-entries/official/plugin-stars.json +3 -3
  237. package/packages/api-gateway/src/marketplace-entries/official/prompt-guard.json +3 -3
  238. package/packages/api-gateway/src/marketplace-entries/official/prompt-library.json +3 -3
  239. package/packages/api-gateway/src/marketplace-entries/official/readme-gen.json +3 -3
  240. package/packages/api-gateway/src/marketplace-entries/official/recall-unread.json +3 -3
  241. package/packages/api-gateway/src/marketplace-entries/official/reverse-skill.json +3 -3
  242. package/packages/api-gateway/src/marketplace-entries/official/reviewer-bot.json +3 -3
  243. package/packages/api-gateway/src/marketplace-entries/official/runtime-doctor.json +3 -3
  244. package/packages/api-gateway/src/marketplace-entries/official/secure-audit.json +3 -3
  245. package/packages/api-gateway/src/marketplace-entries/official/session-bookmarks.json +3 -3
  246. package/packages/api-gateway/src/marketplace-entries/official/session-bridge.json +3 -3
  247. package/packages/api-gateway/src/marketplace-entries/official/session-compare.json +3 -3
  248. package/packages/api-gateway/src/marketplace-entries/official/session-export.json +3 -3
  249. package/packages/api-gateway/src/marketplace-entries/official/session-insights.json +3 -3
  250. package/packages/api-gateway/src/marketplace-entries/official/session-search.json +3 -3
  251. package/packages/api-gateway/src/marketplace-entries/official/skill-catalog.json +3 -3
  252. package/packages/api-gateway/src/marketplace-entries/official/skill-guard.json +3 -3
  253. package/packages/api-gateway/src/marketplace-entries/official/sql-lens.json +3 -3
  254. package/packages/api-gateway/src/marketplace-entries/official/synapse.json +3 -3
  255. package/packages/api-gateway/src/marketplace-entries/official/tab-manager.json +3 -3
  256. package/packages/api-gateway/src/marketplace-entries/official/taskboard.json +3 -3
  257. package/packages/api-gateway/src/marketplace-entries/official/telemetry-blocker.json +3 -3
  258. package/packages/api-gateway/src/marketplace-entries/official/test-harness.json +3 -3
  259. package/packages/api-gateway/src/marketplace-entries/official/theme-studio.json +3 -3
  260. package/packages/api-gateway/src/marketplace-entries/official/token-guard.json +3 -3
  261. package/packages/api-gateway/src/marketplace-entries/official/turn-rewind.json +3 -3
  262. package/packages/api-gateway/src/marketplace-entries/official/undo-savepoint.json +3 -3
  263. package/packages/api-gateway/src/marketplace-entries/official/vision-toolkit.json +3 -3
  264. package/packages/api-gateway/src/marketplace-entries/official/web-research.json +3 -3
  265. package/packages/api-gateway/src/marketplace-entries/official/workspace-navigator.json +3 -3
  266. package/packages/api-gateway/src/marketplace-entries/official/workspace-search.json +3 -3
  267. package/packages/api-gateway/src/marketplace-entries/official/yaml-validator.json +3 -3
  268. package/packages/api-gateway/src/marketplace.ts +0 -4
  269. package/packages/api-gateway/test/index.test.ts +140 -94
  270. package/packages/api-gateway/test/marketplace-schema.test.ts +1 -1
  271. package/packages/api-gateway/test/marketplace.test.ts +7 -9
  272. package/packages/api-gateway/test/packed-package.test.ts +95 -11
  273. package/packages/api-gateway/test/release-contract.test.ts +37 -6
  274. package/packages/api-gateway/test/release-package.test.ts +1 -1
  275. package/packages/api-gateway/test/release-version.test.ts +79 -3
  276. package/packages/bundle-web-app/package.json +1 -1
  277. package/packages/cli/dist/bin.js +2 -1
  278. package/packages/cli/dist/bin.js.map +1 -1
  279. package/packages/cli/dist/main.d.ts +2 -0
  280. package/packages/cli/dist/main.d.ts.map +1 -1
  281. package/packages/cli/dist/main.js +12 -2
  282. package/packages/cli/dist/main.js.map +1 -1
  283. package/packages/cli/dist/profiles.d.ts +3 -0
  284. package/packages/cli/dist/profiles.d.ts.map +1 -0
  285. package/packages/cli/dist/profiles.js +5 -0
  286. package/packages/cli/dist/profiles.js.map +1 -0
  287. package/packages/cli/package.json +3 -2
  288. package/packages/cli/profiles/default/cordis.yml +122 -0
  289. package/packages/cli/profiles/development/cordis.yml +47 -0
  290. package/packages/cli/src/bin.ts +2 -1
  291. package/packages/cli/src/main.ts +14 -2
  292. package/packages/cli/src/profiles.ts +6 -0
  293. package/packages/cli/test/binary.test.ts +5 -1
  294. package/packages/cli/test/broken-pipe.test.ts +1 -1
  295. package/packages/cli/test/cli.test.ts +1 -0
  296. package/packages/cli/test/main.test.ts +1 -0
  297. package/packages/cli/test/profiles.integration.test.ts +575 -0
  298. package/packages/host-webserver/package.json +1 -1
@@ -15,7 +15,7 @@
15
15
  <link rel="apple-touch-icon" href="/icons/app/apple-touch-icon-180.png" sizes="180x180" />
16
16
  <link rel="manifest" href="/manifest.webmanifest" />
17
17
  <title>Pi Harness / Control Room</title>
18
- <script type="module" crossorigin src="/assets/index-1vaEg8Vr.js"></script>
18
+ <script type="module" crossorigin src="/assets/index-B7pwZ76Z.js"></script>
19
19
  <link rel="modulepreload" crossorigin href="/assets/react-vendor-BxoMtjVy.js">
20
20
  <link rel="modulepreload" crossorigin href="/assets/markdown-vendor-DUdMWn0M.js">
21
21
  <link rel="stylesheet" crossorigin href="/assets/index-xF647pQJ.css">
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/web",
3
- "version": "0.1.28",
3
+ "version": "0.1.30",
4
4
  "private": true,
5
5
  "description": "Browser application entry for Pi Harness",
6
6
  "type": "module",
@@ -8,19 +8,5 @@
8
8
  "build": "tsc -p tsconfig.build.json && vp build",
9
9
  "typecheck": "tsc -p tsconfig.json",
10
10
  "dev": "vp dev"
11
- },
12
- "dependencies": {
13
- "@pi-harness/api-gateway": "0.1.28",
14
- "@pi-harness/client-web": "0.1.28",
15
- "@pi-harness/core": "0.1.28",
16
- "@pi-harness/host-webserver": "0.1.28",
17
- "@pi-harness/web-app": "0.1.28"
18
- },
19
- "devDependencies": {
20
- "@tailwindcss/vite": "^4.3.3",
21
- "@types/node": "22.19.19",
22
- "tailwindcss": "^4.3.3",
23
- "typescript": "5.9.3",
24
- "vite": "8.2.2"
25
11
  }
26
12
  }
@@ -27,229 +27,229 @@
27
27
  - edit
28
28
  - write
29
29
  - id: agent-teams
30
- name: "@pi-harness/core/plugins/agent-teams"
30
+ name: "@pi-harness/plugin-agent-teams"
31
31
  config: {}
32
32
  - id: modlens
33
- name: "@pi-harness/core/plugins/modlens"
33
+ name: "@pi-harness/plugin-modlens"
34
34
  config: {}
35
35
  - id: git-time-capsule
36
- name: "@pi-harness/core/plugins/git-time-capsule"
36
+ name: "@pi-harness/plugin-git-time-capsule"
37
37
  config: {}
38
38
  - id: dependency-checker
39
- name: "@pi-harness/core/plugins/dependency-checker"
39
+ name: "@pi-harness/plugin-dependency-checker"
40
40
  config: {}
41
41
  - id: at-file
42
- name: "@pi-harness/core/plugins/at-file"
42
+ name: "@pi-harness/plugin-at-file"
43
43
  config: {}
44
44
  - id: test-harness
45
- name: "@pi-harness/core/plugins/test-harness"
45
+ name: "@pi-harness/plugin-test-harness"
46
46
  config: {}
47
47
  - id: session-insights
48
- name: "@pi-harness/core/plugins/session-insights"
48
+ name: "@pi-harness/plugin-session-insights"
49
49
  config: {}
50
50
  - id: readme-gen
51
- name: "@pi-harness/core/plugins/readme-gen"
51
+ name: "@pi-harness/plugin-readme-gen"
52
52
  config: {}
53
53
  - id: i18n-pair
54
- name: "@pi-harness/core/plugins/i18n-pair"
54
+ name: "@pi-harness/plugin-i18n-pair"
55
55
  config: {}
56
56
  - id: cleaner
57
- name: "@pi-harness/core/plugins/cleaner"
57
+ name: "@pi-harness/plugin-cleaner"
58
58
  config: {}
59
59
  - id: sql-lens
60
- name: "@pi-harness/core/plugins/sql-lens"
60
+ name: "@pi-harness/plugin-sql-lens"
61
61
  config: {}
62
62
  - id: docker-sandbox
63
- name: "@pi-harness/core/plugins/docker-sandbox"
63
+ name: "@pi-harness/plugin-docker-sandbox"
64
64
  config: {}
65
65
  - id: mcp-client
66
- name: "@pi-harness/core/plugins/mcp-client"
66
+ name: "@pi-harness/plugin-mcp-client"
67
67
  config: {}
68
68
  - id: mcp-panel
69
- name: "@pi-harness/core/plugins/mcp-panel"
69
+ name: "@pi-harness/plugin-mcp-panel"
70
70
  config: {}
71
71
  - id: browser-fetch
72
- name: "@pi-harness/core/plugins/browser-fetch"
72
+ name: "@pi-harness/plugin-browser-fetch"
73
73
  config: {}
74
74
  - id: web-research
75
- name: "@pi-harness/core/plugins/web-research"
75
+ name: "@pi-harness/plugin-web-research"
76
76
  config: {}
77
77
  - id: browser-session
78
- name: "@pi-harness/core/plugins/browser-session"
78
+ name: "@pi-harness/plugin-browser-session"
79
79
  config: {}
80
80
  - id: yaml-validator
81
- name: "@pi-harness/core/plugins/yaml-validator"
81
+ name: "@pi-harness/plugin-yaml-validator"
82
82
  config: {}
83
83
  - id: mock-server
84
- name: "@pi-harness/core/plugins/mock-server"
84
+ name: "@pi-harness/plugin-mock-server"
85
85
  config: {}
86
86
  - id: cli-notifier
87
- name: "@pi-harness/core/plugins/cli-notifier"
87
+ name: "@pi-harness/plugin-cli-notifier"
88
88
  config: {}
89
89
  - id: obsidian-sync
90
- name: "@pi-harness/core/plugins/obsidian-sync"
90
+ name: "@pi-harness/plugin-obsidian-sync"
91
91
  config: {}
92
92
  - id: context-doctor
93
- name: "@pi-harness/core/plugins/context-doctor"
93
+ name: "@pi-harness/plugin-context-doctor"
94
94
  config: {}
95
95
  - id: history-compressor
96
- name: "@pi-harness/core/plugins/history-compressor"
96
+ name: "@pi-harness/plugin-history-compressor"
97
97
  config: {}
98
98
  - id: reviewer-bot
99
- name: "@pi-harness/core/plugins/reviewer-bot"
99
+ name: "@pi-harness/plugin-reviewer-bot"
100
100
  config: {}
101
101
  - id: auto-mode
102
- name: "@pi-harness/core/plugins/auto-mode"
102
+ name: "@pi-harness/plugin-auto-mode"
103
103
  config: {}
104
104
  - id: plan-execute
105
- name: "@pi-harness/core/plugins/plan-execute"
105
+ name: "@pi-harness/plugin-plan-execute"
106
106
  config: {}
107
107
  - id: plugin-finder
108
- name: "@pi-harness/core/plugins/plugin-finder"
108
+ name: "@pi-harness/plugin-plugin-finder"
109
109
  config: {}
110
110
  - id: memory
111
- name: "@pi-harness/core/plugins/memory"
111
+ name: "@pi-harness/plugin-memory"
112
112
  config: {}
113
113
  - id: graph-memory
114
- name: "@pi-harness/core/plugins/graph-memory"
114
+ name: "@pi-harness/plugin-graph-memory"
115
115
  config: {}
116
116
  - id: taskboard
117
- name: "@pi-harness/core/plugins/taskboard"
117
+ name: "@pi-harness/plugin-taskboard"
118
118
  config: {}
119
119
  - id: synapse
120
- name: "@pi-harness/core/plugins/synapse"
120
+ name: "@pi-harness/plugin-synapse"
121
121
  config: {}
122
122
  - id: hol-guard
123
- name: "@pi-harness/core/plugins/hol-guard"
123
+ name: "@pi-harness/plugin-hol-guard"
124
124
  config: {}
125
125
  - id: plugin-radar
126
- name: "@pi-harness/core/plugins/plugin-radar"
126
+ name: "@pi-harness/plugin-plugin-radar"
127
127
  config: {}
128
128
  - id: plugin-stars
129
- name: "@pi-harness/core/plugins/plugin-stars"
129
+ name: "@pi-harness/plugin-plugin-stars"
130
130
  config: {}
131
131
  - id: plugin-check
132
- name: "@pi-harness/core/plugins/plugin-check"
132
+ name: "@pi-harness/plugin-plugin-check"
133
133
  config: {}
134
134
  - id: annotation
135
- name: "@pi-harness/core/plugins/annotation"
135
+ name: "@pi-harness/plugin-annotation"
136
136
  config: {}
137
137
  - id: cost-meter
138
- name: "@pi-harness/core/plugins/cost-meter"
138
+ name: "@pi-harness/plugin-cost-meter"
139
139
  config:
140
140
  dailyBudget: 0
141
141
  - id: undo-savepoint
142
- name: "@pi-harness/core/plugins/undo-savepoint"
142
+ name: "@pi-harness/plugin-undo-savepoint"
143
143
  config: {}
144
144
  - id: skill-catalog
145
- name: "@pi-harness/core/plugins/skill-catalog"
145
+ name: "@pi-harness/plugin-skill-catalog"
146
146
  config: {}
147
147
  - id: canvas-draw
148
- name: "@pi-harness/core/plugins/canvas-draw"
148
+ name: "@pi-harness/plugin-canvas-draw"
149
149
  config: {}
150
150
  - id: image-compressor
151
- name: "@pi-harness/core/plugins/image-compressor"
151
+ name: "@pi-harness/plugin-image-compressor"
152
152
  config: {}
153
153
  - id: workspace-search
154
- name: "@pi-harness/core/plugins/workspace-search"
154
+ name: "@pi-harness/plugin-workspace-search"
155
155
  config: {}
156
156
  - id: prompt-guard
157
- name: "@pi-harness/core/plugins/prompt-guard"
157
+ name: "@pi-harness/plugin-prompt-guard"
158
158
  config: {}
159
159
  - id: code2skill
160
- name: "@pi-harness/core/plugins/code2skill"
160
+ name: "@pi-harness/plugin-code2skill"
161
161
  config: {}
162
162
  - id: tab-manager
163
- name: "@pi-harness/core/plugins/tab-manager"
163
+ name: "@pi-harness/plugin-tab-manager"
164
164
  config: {}
165
165
  - id: genui
166
- name: "@pi-harness/core/plugins/genui"
166
+ name: "@pi-harness/plugin-genui"
167
167
  config: {}
168
168
  - id: anchored-standard
169
- name: "@pi-harness/core/plugins/anchored-standard"
169
+ name: "@pi-harness/plugin-anchored-standard"
170
170
  config: {}
171
171
  - id: telemetry-blocker
172
- name: "@pi-harness/core/plugins/telemetry-blocker"
172
+ name: "@pi-harness/plugin-telemetry-blocker"
173
173
  config: {}
174
174
  - id: change-verifier
175
- name: "@pi-harness/core/plugins/change-verifier"
175
+ name: "@pi-harness/plugin-change-verifier"
176
176
  config: {}
177
177
  - id: context
178
- name: "@pi-harness/core/plugins/context"
178
+ name: "@pi-harness/plugin-context"
179
179
  config: {}
180
180
  - id: runtime
181
181
  name: "@pi-harness/core/plugins/runtime"
182
182
  config:
183
183
  thinkingLevel: medium
184
184
  - id: plugin-dev
185
- name: "@pi-harness/core/plugins/plugin-dev"
185
+ name: "@pi-harness/plugin-plugin-dev"
186
186
  config: {}
187
187
  - id: openpets
188
- name: "@pi-harness/core/plugins/openpets"
188
+ name: "@pi-harness/plugin-openpets"
189
189
  config: {}
190
190
  - id: session-bridge
191
- name: "@pi-harness/core/plugins/session-bridge"
191
+ name: "@pi-harness/plugin-session-bridge"
192
192
  config: {}
193
193
  - id: skill-guard
194
- name: "@pi-harness/core/plugins/skill-guard"
194
+ name: "@pi-harness/plugin-skill-guard"
195
195
  config: {}
196
196
  - id: recall-unread
197
- name: "@pi-harness/core/plugins/recall-unread"
197
+ name: "@pi-harness/plugin-recall-unread"
198
198
  config: {}
199
199
  - id: turn-rewind
200
- name: "@pi-harness/core/plugins/turn-rewind"
200
+ name: "@pi-harness/plugin-turn-rewind"
201
201
  config: {}
202
202
  - id: session-export
203
- name: "@pi-harness/core/plugins/session-export"
203
+ name: "@pi-harness/plugin-session-export"
204
204
  config: {}
205
205
  - id: session-search
206
- name: "@pi-harness/core/plugins/session-search"
206
+ name: "@pi-harness/plugin-session-search"
207
207
  config: {}
208
208
  - id: session-compare
209
- name: "@pi-harness/core/plugins/session-compare"
209
+ name: "@pi-harness/plugin-session-compare"
210
210
  config: {}
211
211
  - id: secure-audit
212
- name: "@pi-harness/core/plugins/secure-audit"
212
+ name: "@pi-harness/plugin-secure-audit"
213
213
  config: {}
214
214
  - id: session-bookmarks
215
- name: "@pi-harness/core/plugins/session-bookmarks"
215
+ name: "@pi-harness/plugin-session-bookmarks"
216
216
  config: {}
217
217
  - id: llm-verifier
218
- name: "@pi-harness/core/plugins/llm-verifier"
218
+ name: "@pi-harness/plugin-llm-verifier"
219
219
  config: {}
220
220
  - id: module-search
221
- name: "@pi-harness/core/plugins/module-search"
221
+ name: "@pi-harness/plugin-module-search"
222
222
  config: {}
223
223
  - id: workspace-navigator
224
- name: "@pi-harness/core/plugins/workspace-navigator"
224
+ name: "@pi-harness/plugin-workspace-navigator"
225
225
  config: {}
226
226
  - id: better-sidebar
227
- name: "@pi-harness/core/plugins/better-sidebar"
227
+ name: "@pi-harness/plugin-better-sidebar"
228
228
  config: {}
229
229
  - id: archify
230
- name: "@pi-harness/core/plugins/archify"
230
+ name: "@pi-harness/plugin-archify"
231
231
  config: {}
232
232
  - id: reverse-skill
233
- name: "@pi-harness/core/plugins/reverse-skill"
233
+ name: "@pi-harness/plugin-reverse-skill"
234
234
  config: {}
235
235
  - id: colleague-skill
236
- name: "@pi-harness/core/plugins/colleague-skill"
236
+ name: "@pi-harness/plugin-colleague-skill"
237
237
  config: {}
238
238
  - id: prompt-library
239
- name: "@pi-harness/core/plugins/prompt-library"
239
+ name: "@pi-harness/plugin-prompt-library"
240
240
  config: {}
241
241
  - id: token-guard
242
- name: "@pi-harness/core/plugins/token-guard"
242
+ name: "@pi-harness/plugin-token-guard"
243
243
  config:
244
244
  maxPercent: 90
245
245
  - id: fail-logger
246
- name: "@pi-harness/core/plugins/fail-logger"
246
+ name: "@pi-harness/plugin-fail-logger"
247
247
  config: {}
248
248
  - id: vision-toolkit
249
- name: "@pi-harness/core/plugins/vision-toolkit"
249
+ name: "@pi-harness/plugin-vision-toolkit"
250
250
  config: {}
251
251
  - id: runtime-doctor
252
- name: "@pi-harness/core/plugins/runtime-doctor"
252
+ name: "@pi-harness/plugin-runtime-doctor"
253
253
  config: {}
254
254
  - id: webserver
255
255
  name: "@pi-harness/host-webserver"
@@ -2,7 +2,7 @@
2
2
  import { homedir } from "node:os";
3
3
  import { join, resolve } from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
- import { bootHarness, coreUpdateNotice, provideLaunchContext } from "@pi-harness/core";
5
+ import { bootHarness, coreUpdateNotice, prepareHarnessProfile, provideLaunchContext } from "@pi-harness/core";
6
6
  import "@pi-harness/host-webserver";
7
7
  // An unhandled 'error' event on a stream throws, so an EPIPE from a reader that closed early (`pi-harness | head -1`) would kill the process before the signal handlers can run the graceful shutdown. Swallowing the event leaves the write silently dropped, which is what a closed pipe means.
8
8
  process.stdout.on("error", () => { });
@@ -41,7 +41,9 @@ const cwd = process.cwd();
41
41
  const configuredAgentDir = process.env.PI_AGENT_DIR?.trim();
42
42
  const agentDir = configuredAgentDir === undefined || configuredAgentDir.length === 0 ? join(homedir(), ".pi", "agent") : resolve(cwd, configuredAgentDir);
43
43
  const staticDir = fileURLToPath(new URL("../dist", import.meta.url));
44
- const profilePath = fileURLToPath(new URL("../profile/cordis.yml", import.meta.url));
44
+ const builtinProfilePath = fileURLToPath(new URL("../profile/cordis.yml", import.meta.url));
45
+ // The web console installs marketplace plugins with npm and then imports them, so the profile it edits and the node_modules it installs into live in a directory the user owns rather than inside the installed package, which npm replaces on every upgrade.
46
+ const profilePath = await prepareHarnessProfile({ builtinProfilePath, profileName: "web", cwd });
45
47
  process.env.PI_HARNESS_WEB_DIST = staticDir;
46
48
  process.env.PI_HARNESS_HOST = host;
47
49
  process.env.PI_HARNESS_PORT = String(port);
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/server/bin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/server/bin.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  import { homedir } from "node:os";
4
4
  import { join, resolve } from "node:path";
5
5
  import { fileURLToPath } from "node:url";
6
- import { bootHarness, coreUpdateNotice, provideLaunchContext } from "@pi-harness/core";
6
+ import { bootHarness, coreUpdateNotice, prepareHarnessProfile, provideLaunchContext } from "@pi-harness/core";
7
7
  import "@pi-harness/host-webserver";
8
8
  import type { WebServer } from "@pi-harness/host-webserver";
9
9
 
@@ -46,7 +46,9 @@ const cwd = process.cwd();
46
46
  const configuredAgentDir = process.env.PI_AGENT_DIR?.trim();
47
47
  const agentDir = configuredAgentDir === undefined || configuredAgentDir.length === 0 ? join(homedir(), ".pi", "agent") : resolve(cwd, configuredAgentDir);
48
48
  const staticDir = fileURLToPath(new URL("../dist", import.meta.url));
49
- const profilePath = fileURLToPath(new URL("../profile/cordis.yml", import.meta.url));
49
+ const builtinProfilePath = fileURLToPath(new URL("../profile/cordis.yml", import.meta.url));
50
+ // The web console installs marketplace plugins with npm and then imports them, so the profile it edits and the node_modules it installs into live in a directory the user owns rather than inside the installed package, which npm replaces on every upgrade.
51
+ const profilePath = await prepareHarnessProfile({ builtinProfilePath, profileName: "web", cwd });
50
52
  process.env.PI_HARNESS_WEB_DIST = staticDir;
51
53
  process.env.PI_HARNESS_HOST = host;
52
54
  process.env.PI_HARNESS_PORT = String(port);
@@ -44,6 +44,7 @@ async function runLauncher(
44
44
  probe?: (consoleUrl: string) => Promise<void>,
45
45
  ): Promise<LauncherRun> {
46
46
  const agentDir = await makeTempDir("agent");
47
+ const harnessHome = await makeTempDir("home");
47
48
  const child = spawn(process.execPath, [BIN], {
48
49
  stdio: ["ignore", "pipe", "pipe"],
49
50
  ...(spawnCwd === undefined ? {} : { cwd: spawnCwd }),
@@ -51,6 +52,7 @@ async function runLauncher(
51
52
  ...process.env,
52
53
  PI_HARNESS_PORT: "0",
53
54
  PI_AGENT_DIR: agentDir,
55
+ PI_HARNESS_HOME: harnessHome,
54
56
  PI_HARNESS_PROVIDER: "anthropic",
55
57
  PI_HARNESS_MODEL: "claude-sonnet-4-5",
56
58
  ...extraEnv,
@@ -95,12 +97,14 @@ async function runLauncher(
95
97
  // Runs the built launcher until it exits on its own, for the startup guards that must abort before a console URL is ever printed.
96
98
  async function runLauncherToExit(extraEnv: Record<string, string>): Promise<LauncherExit> {
97
99
  const agentDir = await makeTempDir("guard");
100
+ const harnessHome = await makeTempDir("guard-home");
98
101
  const child = spawn(process.execPath, [BIN], {
99
102
  stdio: ["ignore", "pipe", "pipe"],
100
103
  env: {
101
104
  ...process.env,
102
105
  PI_HARNESS_PORT: "0",
103
106
  PI_AGENT_DIR: agentDir,
107
+ PI_HARNESS_HOME: harnessHome,
104
108
  PI_HARNESS_PROVIDER: "anthropic",
105
109
  PI_HARNESS_MODEL: "claude-sonnet-4-5",
106
110
  PI_HARNESS_DISABLE_UPDATE_CHECK: "1",
@@ -198,6 +202,7 @@ describe("web launcher", () => {
198
202
 
199
203
  test("keeps serving and shuts down gracefully when a closed stdout pipe breaks the console URL write", async () => {
200
204
  const agentDir = await makeTempDir("epipe");
205
+ const harnessHome = await makeTempDir("epipe-home");
201
206
  const port = await reserveLoopbackPort();
202
207
  const child = spawn(process.execPath, [BIN], {
203
208
  stdio: ["ignore", "pipe", "pipe"],
@@ -205,6 +210,7 @@ describe("web launcher", () => {
205
210
  ...process.env,
206
211
  PI_HARNESS_PORT: String(port),
207
212
  PI_AGENT_DIR: agentDir,
213
+ PI_HARNESS_HOME: harnessHome,
208
214
  PI_HARNESS_PROVIDER: "anthropic",
209
215
  PI_HARNESS_MODEL: "claude-sonnet-4-5",
210
216
  PI_HARNESS_DISABLE_UPDATE_CHECK: "1",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;;;;mBA6sBlC,OAAO;;AAHxB,wBAu4CE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;;;;mBA4sBlC,OAAO;;AAHxB,wBAg4CE"}
@@ -4,7 +4,7 @@ import { basename, dirname, isAbsolute, join, posix, relative, resolve, sep } fr
4
4
  import { tmpdir } from "node:os";
5
5
  import { SessionManager } from "@earendil-works/pi-coding-agent";
6
6
  import { atomicWriteFile } from "@pi-harness/core";
7
- import { MARKETPLACE_CAPABILITIES, MARKETPLACE_CATEGORIES, MARKETPLACE_PLUGINS, attachMarketplaceStatistics, createMarketplaceStatisticsLoader, paginateMarketplace, searchMarketplace, needsMarketplacePackageInstall, marketplaceNpmPackageName, sortMarketplaceByRecommendation, } from "./marketplace.js";
7
+ import { MARKETPLACE_CAPABILITIES, MARKETPLACE_CATEGORIES, MARKETPLACE_PLUGINS, attachMarketplaceStatistics, createMarketplaceStatisticsLoader, paginateMarketplace, searchMarketplace, marketplaceNpmPackageName, sortMarketplaceByRecommendation, } from "./marketplace.js";
8
8
  import { parseGitWorktrees } from "./workspaces.js";
9
9
  const loadMarketplaceStatistics = createMarketplaceStatisticsLoader();
10
10
  const DEFAULT_BODY_LIMIT_BYTES = 64 * 1024;
@@ -590,7 +590,7 @@ async function isFile(path) {
590
590
  return false;
591
591
  }
592
592
  }
593
- // The loader resolves a bare plugin specifier from the profile file upwards (`createRequire(profilePath).resolve(name)`), never from the shell the harness was started in, so a marketplace package has to land in the package that owns the profile or it installs successfully and then fails to load.
593
+ // The loader resolves a bare plugin specifier by walking node_modules from the profile file upwards, never from the shell the harness was started in, so a marketplace package has to land in the package that owns the profile or it installs successfully and then fails to load. Under a built-in profile that package is the harness home, which is why the launcher boots a copy there instead of the read-only one inside its own installation.
594
594
  async function marketplaceInstallDirectory(configPath, fallback) {
595
595
  let directory = dirname(resolve(configPath));
596
596
  let parent = dirname(directory);
@@ -1060,15 +1060,9 @@ export default {
1060
1060
  let profileBefore;
1061
1061
  let entryId;
1062
1062
  try {
1063
- if (needsMarketplacePackageInstall(plugin)) {
1064
- const specifier = `${marketplaceNpmPackageName(plugin.packageName)}@${plugin.version}`;
1065
- await runProcess("npm", ["install", "--save-exact", "--package-lock=false", specifier], installDirectory);
1066
- }
1063
+ const specifier = `${marketplaceNpmPackageName(plugin.packageName)}@${plugin.version}`;
1064
+ await runProcess("npm", ["install", "--save-exact", "--package-lock=false", specifier], installDirectory);
1067
1065
  profileBefore = await appendMarketplaceProfile(configPath, plugin);
1068
- if (!needsMarketplacePackageInstall(plugin)) {
1069
- sendJson(response, 200, { plugin, installed: false, restartRequired: true });
1070
- return;
1071
- }
1072
1066
  entryId = await loader.create({
1073
1067
  id: `marketplace-${plugin.id}`,
1074
1068
  name: plugin.packageName,
@@ -1204,8 +1198,7 @@ export default {
1204
1198
  entry.parent.tree.write();
1205
1199
  try {
1206
1200
  await updateMarketplaceProfile(configPath, profileEntryId, { remove: true });
1207
- if (needsMarketplacePackageInstall(plugin))
1208
- await runProcess("npm", ["uninstall", "--package-lock=false", marketplaceNpmPackageName(plugin.packageName)], installDirectory);
1201
+ await runProcess("npm", ["uninstall", "--package-lock=false", marketplaceNpmPackageName(plugin.packageName)], installDirectory);
1209
1202
  sendJson(response, 200, { uninstalled: true, id: payload.id });
1210
1203
  }
1211
1204
  catch (error) {