@pi-harness/pi-harness 0.1.4 → 0.1.6

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 (669) hide show
  1. package/README.md +1 -1
  2. package/apps/web/dist/assets/{index-NzapJoGa.js → index-CxqGqqZh.js} +1 -1
  3. package/apps/web/dist/index.html +1 -1
  4. package/apps/web/package.json +6 -6
  5. package/apps/web/profile/cordis.yml +1 -1
  6. package/apps/web/server-dist/bin.js +1 -1
  7. package/apps/web/src/server/bin.ts +1 -1
  8. package/node_modules/@pi-harness/api-gateway/LICENSE +9 -0
  9. package/node_modules/@pi-harness/api-gateway/dist/index.d.ts +8 -0
  10. package/node_modules/@pi-harness/api-gateway/dist/index.d.ts.map +1 -0
  11. package/node_modules/@pi-harness/api-gateway/dist/index.js +1747 -0
  12. package/node_modules/@pi-harness/api-gateway/dist/index.js.map +1 -0
  13. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/agent-teams.json +31 -0
  14. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/anchored-standard.json +29 -0
  15. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/annotation.json +28 -0
  16. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/archify.json +31 -0
  17. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/at-file.json +28 -0
  18. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/auto-mode.json +32 -0
  19. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/better-sidebar.json +32 -0
  20. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/browser-fetch.json +28 -0
  21. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/browser-session.json +29 -0
  22. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/canvas-draw.json +29 -0
  23. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/change-verifier.json +30 -0
  24. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cleaner.json +29 -0
  25. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cli-notifier.json +30 -0
  26. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/code2skill.json +29 -0
  27. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/colleague-skill.json +30 -0
  28. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/context-doctor.json +30 -0
  29. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/context.json +28 -0
  30. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cordis-group.json +16 -0
  31. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cordis-logger-console.json +16 -0
  32. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cordis-timer.json +16 -0
  33. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/cost-meter.json +31 -0
  34. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/dependency-checker.json +31 -0
  35. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +29 -0
  36. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/fail-logger.json +29 -0
  37. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/genui.json +28 -0
  38. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +30 -0
  39. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/graph-memory.json +29 -0
  40. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/history-compressor.json +33 -0
  41. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/hol-guard.json +29 -0
  42. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/i18n-pair.json +29 -0
  43. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/image-compressor.json +29 -0
  44. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/llm-verifier.json +32 -0
  45. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mcp-client.json +29 -0
  46. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mcp-panel.json +29 -0
  47. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/memory.json +28 -0
  48. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mirage-bridge.json +33 -0
  49. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/mock-server.json +29 -0
  50. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/modlens.json +28 -0
  51. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/module-search.json +30 -0
  52. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +29 -0
  53. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/openpets.json +29 -0
  54. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plan-execute.json +29 -0
  55. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-check.json +29 -0
  56. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-dev.json +29 -0
  57. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-finder.json +32 -0
  58. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-radar.json +28 -0
  59. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-stars.json +29 -0
  60. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-guard.json +28 -0
  61. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-library.json +30 -0
  62. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/readme-gen.json +31 -0
  63. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/recall-unread.json +29 -0
  64. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/reverse-skill.json +30 -0
  65. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/reviewer-bot.json +29 -0
  66. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/runtime-doctor.json +32 -0
  67. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/secure-audit.json +30 -0
  68. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-bookmarks.json +30 -0
  69. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-bridge.json +30 -0
  70. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-compare.json +30 -0
  71. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-export.json +30 -0
  72. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-insights.json +29 -0
  73. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-search.json +30 -0
  74. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/skill-catalog.json +31 -0
  75. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/skill-guard.json +29 -0
  76. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/sql-lens.json +29 -0
  77. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/synapse.json +28 -0
  78. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/tab-manager.json +29 -0
  79. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/taskboard.json +29 -0
  80. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +29 -0
  81. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/test-harness.json +29 -0
  82. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/theme-studio.json +32 -0
  83. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/token-guard.json +32 -0
  84. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/turn-rewind.json +29 -0
  85. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/undo-savepoint.json +28 -0
  86. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/vision-toolkit.json +29 -0
  87. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/web-research.json +29 -0
  88. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/workspace-navigator.json +32 -0
  89. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/workspace-search.json +29 -0
  90. package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/yaml-validator.json +29 -0
  91. package/node_modules/@pi-harness/api-gateway/dist/marketplace.d.ts +60 -0
  92. package/node_modules/@pi-harness/api-gateway/dist/marketplace.d.ts.map +1 -0
  93. package/node_modules/@pi-harness/api-gateway/dist/marketplace.js +235 -0
  94. package/node_modules/@pi-harness/api-gateway/dist/marketplace.js.map +1 -0
  95. package/node_modules/@pi-harness/api-gateway/dist/workspaces.d.ts +8 -0
  96. package/node_modules/@pi-harness/api-gateway/dist/workspaces.d.ts.map +1 -0
  97. package/node_modules/@pi-harness/api-gateway/dist/workspaces.js +14 -0
  98. package/node_modules/@pi-harness/api-gateway/dist/workspaces.js.map +1 -0
  99. package/node_modules/@pi-harness/api-gateway/package.json +36 -0
  100. package/node_modules/@pi-harness/cli/LICENSE +9 -0
  101. package/node_modules/@pi-harness/cli/dist/args.d.ts +16 -0
  102. package/node_modules/@pi-harness/cli/dist/args.d.ts.map +1 -0
  103. package/node_modules/@pi-harness/cli/dist/args.js +60 -0
  104. package/node_modules/@pi-harness/cli/dist/args.js.map +1 -0
  105. package/node_modules/@pi-harness/cli/dist/bin.d.ts +3 -0
  106. package/node_modules/@pi-harness/cli/dist/bin.d.ts.map +1 -0
  107. package/node_modules/@pi-harness/cli/dist/bin.js +49 -0
  108. package/node_modules/@pi-harness/cli/dist/bin.js.map +1 -0
  109. package/node_modules/@pi-harness/cli/dist/main.d.ts +15 -0
  110. package/node_modules/@pi-harness/cli/dist/main.d.ts.map +1 -0
  111. package/node_modules/@pi-harness/cli/dist/main.js +188 -0
  112. package/node_modules/@pi-harness/cli/dist/main.js.map +1 -0
  113. package/node_modules/@pi-harness/cli/dist/node-stdio.d.ts +12 -0
  114. package/node_modules/@pi-harness/cli/dist/node-stdio.d.ts.map +1 -0
  115. package/node_modules/@pi-harness/cli/dist/node-stdio.js +112 -0
  116. package/node_modules/@pi-harness/cli/dist/node-stdio.js.map +1 -0
  117. package/node_modules/@pi-harness/cli/dist/relaunch.d.ts +5 -0
  118. package/node_modules/@pi-harness/cli/dist/relaunch.d.ts.map +1 -0
  119. package/node_modules/@pi-harness/cli/dist/relaunch.js +65 -0
  120. package/node_modules/@pi-harness/cli/dist/relaunch.js.map +1 -0
  121. package/node_modules/@pi-harness/cli/package.json +33 -0
  122. package/node_modules/@pi-harness/core/LICENSE +9 -0
  123. package/node_modules/@pi-harness/core/dist/boot.d.ts +13 -0
  124. package/node_modules/@pi-harness/core/dist/boot.d.ts.map +1 -0
  125. package/node_modules/@pi-harness/core/dist/boot.js +135 -0
  126. package/node_modules/@pi-harness/core/dist/boot.js.map +1 -0
  127. package/node_modules/@pi-harness/core/dist/config.d.ts +2 -0
  128. package/node_modules/@pi-harness/core/dist/config.d.ts.map +1 -0
  129. package/node_modules/@pi-harness/core/dist/config.js +8 -0
  130. package/node_modules/@pi-harness/core/dist/config.js.map +1 -0
  131. package/node_modules/@pi-harness/core/dist/context.d.ts +3 -0
  132. package/node_modules/@pi-harness/core/dist/context.d.ts.map +1 -0
  133. package/node_modules/@pi-harness/core/dist/context.js +2 -0
  134. package/node_modules/@pi-harness/core/dist/context.js.map +1 -0
  135. package/node_modules/@pi-harness/core/dist/http.d.ts +8 -0
  136. package/node_modules/@pi-harness/core/dist/http.d.ts.map +1 -0
  137. package/node_modules/@pi-harness/core/dist/http.js +27 -0
  138. package/node_modules/@pi-harness/core/dist/http.js.map +1 -0
  139. package/node_modules/@pi-harness/core/dist/index.d.ts +9 -0
  140. package/node_modules/@pi-harness/core/dist/index.d.ts.map +1 -0
  141. package/node_modules/@pi-harness/core/dist/index.js +8 -0
  142. package/node_modules/@pi-harness/core/dist/index.js.map +1 -0
  143. package/node_modules/@pi-harness/core/dist/plugins/agent-teams.d.ts +17 -0
  144. package/node_modules/@pi-harness/core/dist/plugins/agent-teams.d.ts.map +1 -0
  145. package/node_modules/@pi-harness/core/dist/plugins/agent-teams.js +298 -0
  146. package/node_modules/@pi-harness/core/dist/plugins/agent-teams.js.map +1 -0
  147. package/node_modules/@pi-harness/core/dist/plugins/anchored-standard.d.ts +14 -0
  148. package/node_modules/@pi-harness/core/dist/plugins/anchored-standard.d.ts.map +1 -0
  149. package/node_modules/@pi-harness/core/dist/plugins/anchored-standard.js +84 -0
  150. package/node_modules/@pi-harness/core/dist/plugins/anchored-standard.js.map +1 -0
  151. package/node_modules/@pi-harness/core/dist/plugins/annotation.d.ts +18 -0
  152. package/node_modules/@pi-harness/core/dist/plugins/annotation.d.ts.map +1 -0
  153. package/node_modules/@pi-harness/core/dist/plugins/annotation.js +94 -0
  154. package/node_modules/@pi-harness/core/dist/plugins/annotation.js.map +1 -0
  155. package/node_modules/@pi-harness/core/dist/plugins/archify.d.ts +23 -0
  156. package/node_modules/@pi-harness/core/dist/plugins/archify.d.ts.map +1 -0
  157. package/node_modules/@pi-harness/core/dist/plugins/archify.js +98 -0
  158. package/node_modules/@pi-harness/core/dist/plugins/archify.js.map +1 -0
  159. package/node_modules/@pi-harness/core/dist/plugins/at-file.d.ts +8 -0
  160. package/node_modules/@pi-harness/core/dist/plugins/at-file.d.ts.map +1 -0
  161. package/node_modules/@pi-harness/core/dist/plugins/at-file.js +52 -0
  162. package/node_modules/@pi-harness/core/dist/plugins/at-file.js.map +1 -0
  163. package/node_modules/@pi-harness/core/dist/plugins/auto-mode.d.ts +15 -0
  164. package/node_modules/@pi-harness/core/dist/plugins/auto-mode.d.ts.map +1 -0
  165. package/node_modules/@pi-harness/core/dist/plugins/auto-mode.js +114 -0
  166. package/node_modules/@pi-harness/core/dist/plugins/auto-mode.js.map +1 -0
  167. package/node_modules/@pi-harness/core/dist/plugins/better-sidebar.d.ts +37 -0
  168. package/node_modules/@pi-harness/core/dist/plugins/better-sidebar.d.ts.map +1 -0
  169. package/node_modules/@pi-harness/core/dist/plugins/better-sidebar.js +89 -0
  170. package/node_modules/@pi-harness/core/dist/plugins/better-sidebar.js.map +1 -0
  171. package/node_modules/@pi-harness/core/dist/plugins/browser-fetch.d.ts +14 -0
  172. package/node_modules/@pi-harness/core/dist/plugins/browser-fetch.d.ts.map +1 -0
  173. package/node_modules/@pi-harness/core/dist/plugins/browser-fetch.js +167 -0
  174. package/node_modules/@pi-harness/core/dist/plugins/browser-fetch.js.map +1 -0
  175. package/node_modules/@pi-harness/core/dist/plugins/browser-session.d.ts +14 -0
  176. package/node_modules/@pi-harness/core/dist/plugins/browser-session.d.ts.map +1 -0
  177. package/node_modules/@pi-harness/core/dist/plugins/browser-session.js +265 -0
  178. package/node_modules/@pi-harness/core/dist/plugins/browser-session.js.map +1 -0
  179. package/node_modules/@pi-harness/core/dist/plugins/canvas-draw.d.ts +8 -0
  180. package/node_modules/@pi-harness/core/dist/plugins/canvas-draw.d.ts.map +1 -0
  181. package/node_modules/@pi-harness/core/dist/plugins/canvas-draw.js +88 -0
  182. package/node_modules/@pi-harness/core/dist/plugins/canvas-draw.js.map +1 -0
  183. package/node_modules/@pi-harness/core/dist/plugins/change-verifier.d.ts +8 -0
  184. package/node_modules/@pi-harness/core/dist/plugins/change-verifier.d.ts.map +1 -0
  185. package/node_modules/@pi-harness/core/dist/plugins/change-verifier.js +67 -0
  186. package/node_modules/@pi-harness/core/dist/plugins/change-verifier.js.map +1 -0
  187. package/node_modules/@pi-harness/core/dist/plugins/cleaner.d.ts +8 -0
  188. package/node_modules/@pi-harness/core/dist/plugins/cleaner.d.ts.map +1 -0
  189. package/node_modules/@pi-harness/core/dist/plugins/cleaner.js +56 -0
  190. package/node_modules/@pi-harness/core/dist/plugins/cleaner.js.map +1 -0
  191. package/node_modules/@pi-harness/core/dist/plugins/cli-notifier.d.ts +15 -0
  192. package/node_modules/@pi-harness/core/dist/plugins/cli-notifier.d.ts.map +1 -0
  193. package/node_modules/@pi-harness/core/dist/plugins/cli-notifier.js +110 -0
  194. package/node_modules/@pi-harness/core/dist/plugins/cli-notifier.js.map +1 -0
  195. package/node_modules/@pi-harness/core/dist/plugins/code2skill.d.ts +8 -0
  196. package/node_modules/@pi-harness/core/dist/plugins/code2skill.d.ts.map +1 -0
  197. package/node_modules/@pi-harness/core/dist/plugins/code2skill.js +95 -0
  198. package/node_modules/@pi-harness/core/dist/plugins/code2skill.js.map +1 -0
  199. package/node_modules/@pi-harness/core/dist/plugins/colleague-skill.d.ts +27 -0
  200. package/node_modules/@pi-harness/core/dist/plugins/colleague-skill.d.ts.map +1 -0
  201. package/node_modules/@pi-harness/core/dist/plugins/colleague-skill.js +99 -0
  202. package/node_modules/@pi-harness/core/dist/plugins/colleague-skill.js.map +1 -0
  203. package/node_modules/@pi-harness/core/dist/plugins/context-doctor.d.ts +30 -0
  204. package/node_modules/@pi-harness/core/dist/plugins/context-doctor.d.ts.map +1 -0
  205. package/node_modules/@pi-harness/core/dist/plugins/context-doctor.js +95 -0
  206. package/node_modules/@pi-harness/core/dist/plugins/context-doctor.js.map +1 -0
  207. package/node_modules/@pi-harness/core/dist/plugins/context.d.ts +8 -0
  208. package/node_modules/@pi-harness/core/dist/plugins/context.d.ts.map +1 -0
  209. package/node_modules/@pi-harness/core/dist/plugins/context.js +87 -0
  210. package/node_modules/@pi-harness/core/dist/plugins/context.js.map +1 -0
  211. package/node_modules/@pi-harness/core/dist/plugins/cost-meter.d.ts +32 -0
  212. package/node_modules/@pi-harness/core/dist/plugins/cost-meter.d.ts.map +1 -0
  213. package/node_modules/@pi-harness/core/dist/plugins/cost-meter.js +204 -0
  214. package/node_modules/@pi-harness/core/dist/plugins/cost-meter.js.map +1 -0
  215. package/node_modules/@pi-harness/core/dist/plugins/dependency-checker.d.ts +27 -0
  216. package/node_modules/@pi-harness/core/dist/plugins/dependency-checker.d.ts.map +1 -0
  217. package/node_modules/@pi-harness/core/dist/plugins/dependency-checker.js +221 -0
  218. package/node_modules/@pi-harness/core/dist/plugins/dependency-checker.js.map +1 -0
  219. package/node_modules/@pi-harness/core/dist/plugins/docker-sandbox.d.ts +8 -0
  220. package/node_modules/@pi-harness/core/dist/plugins/docker-sandbox.d.ts.map +1 -0
  221. package/node_modules/@pi-harness/core/dist/plugins/docker-sandbox.js +102 -0
  222. package/node_modules/@pi-harness/core/dist/plugins/docker-sandbox.js.map +1 -0
  223. package/node_modules/@pi-harness/core/dist/plugins/fail-logger.d.ts +8 -0
  224. package/node_modules/@pi-harness/core/dist/plugins/fail-logger.d.ts.map +1 -0
  225. package/node_modules/@pi-harness/core/dist/plugins/fail-logger.js +51 -0
  226. package/node_modules/@pi-harness/core/dist/plugins/fail-logger.js.map +1 -0
  227. package/node_modules/@pi-harness/core/dist/plugins/genui.d.ts +8 -0
  228. package/node_modules/@pi-harness/core/dist/plugins/genui.d.ts.map +1 -0
  229. package/node_modules/@pi-harness/core/dist/plugins/genui.js +79 -0
  230. package/node_modules/@pi-harness/core/dist/plugins/genui.js.map +1 -0
  231. package/node_modules/@pi-harness/core/dist/plugins/git-time-capsule.d.ts +9 -0
  232. package/node_modules/@pi-harness/core/dist/plugins/git-time-capsule.d.ts.map +1 -0
  233. package/node_modules/@pi-harness/core/dist/plugins/git-time-capsule.js +90 -0
  234. package/node_modules/@pi-harness/core/dist/plugins/git-time-capsule.js.map +1 -0
  235. package/node_modules/@pi-harness/core/dist/plugins/graph-memory.d.ts +16 -0
  236. package/node_modules/@pi-harness/core/dist/plugins/graph-memory.d.ts.map +1 -0
  237. package/node_modules/@pi-harness/core/dist/plugins/graph-memory.js +382 -0
  238. package/node_modules/@pi-harness/core/dist/plugins/graph-memory.js.map +1 -0
  239. package/node_modules/@pi-harness/core/dist/plugins/history-compressor.d.ts +15 -0
  240. package/node_modules/@pi-harness/core/dist/plugins/history-compressor.d.ts.map +1 -0
  241. package/node_modules/@pi-harness/core/dist/plugins/history-compressor.js +80 -0
  242. package/node_modules/@pi-harness/core/dist/plugins/history-compressor.js.map +1 -0
  243. package/node_modules/@pi-harness/core/dist/plugins/hol-guard.d.ts +29 -0
  244. package/node_modules/@pi-harness/core/dist/plugins/hol-guard.d.ts.map +1 -0
  245. package/node_modules/@pi-harness/core/dist/plugins/hol-guard.js +139 -0
  246. package/node_modules/@pi-harness/core/dist/plugins/hol-guard.js.map +1 -0
  247. package/node_modules/@pi-harness/core/dist/plugins/i18n-pair.d.ts +8 -0
  248. package/node_modules/@pi-harness/core/dist/plugins/i18n-pair.d.ts.map +1 -0
  249. package/node_modules/@pi-harness/core/dist/plugins/i18n-pair.js +76 -0
  250. package/node_modules/@pi-harness/core/dist/plugins/i18n-pair.js.map +1 -0
  251. package/node_modules/@pi-harness/core/dist/plugins/image-compressor.d.ts +8 -0
  252. package/node_modules/@pi-harness/core/dist/plugins/image-compressor.d.ts.map +1 -0
  253. package/node_modules/@pi-harness/core/dist/plugins/image-compressor.js +150 -0
  254. package/node_modules/@pi-harness/core/dist/plugins/image-compressor.js.map +1 -0
  255. package/node_modules/@pi-harness/core/dist/plugins/llm-verifier.d.ts +42 -0
  256. package/node_modules/@pi-harness/core/dist/plugins/llm-verifier.d.ts.map +1 -0
  257. package/node_modules/@pi-harness/core/dist/plugins/llm-verifier.js +128 -0
  258. package/node_modules/@pi-harness/core/dist/plugins/llm-verifier.js.map +1 -0
  259. package/node_modules/@pi-harness/core/dist/plugins/mcp-client.d.ts +19 -0
  260. package/node_modules/@pi-harness/core/dist/plugins/mcp-client.d.ts.map +1 -0
  261. package/node_modules/@pi-harness/core/dist/plugins/mcp-client.js +534 -0
  262. package/node_modules/@pi-harness/core/dist/plugins/mcp-client.js.map +1 -0
  263. package/node_modules/@pi-harness/core/dist/plugins/mcp-panel.d.ts +14 -0
  264. package/node_modules/@pi-harness/core/dist/plugins/mcp-panel.d.ts.map +1 -0
  265. package/node_modules/@pi-harness/core/dist/plugins/mcp-panel.js +180 -0
  266. package/node_modules/@pi-harness/core/dist/plugins/mcp-panel.js.map +1 -0
  267. package/node_modules/@pi-harness/core/dist/plugins/memory.d.ts +15 -0
  268. package/node_modules/@pi-harness/core/dist/plugins/memory.d.ts.map +1 -0
  269. package/node_modules/@pi-harness/core/dist/plugins/memory.js +161 -0
  270. package/node_modules/@pi-harness/core/dist/plugins/memory.js.map +1 -0
  271. package/node_modules/@pi-harness/core/dist/plugins/mirage-bridge.d.ts +23 -0
  272. package/node_modules/@pi-harness/core/dist/plugins/mirage-bridge.d.ts.map +1 -0
  273. package/node_modules/@pi-harness/core/dist/plugins/mirage-bridge.js +149 -0
  274. package/node_modules/@pi-harness/core/dist/plugins/mirage-bridge.js.map +1 -0
  275. package/node_modules/@pi-harness/core/dist/plugins/mock-server.d.ts +22 -0
  276. package/node_modules/@pi-harness/core/dist/plugins/mock-server.d.ts.map +1 -0
  277. package/node_modules/@pi-harness/core/dist/plugins/mock-server.js +149 -0
  278. package/node_modules/@pi-harness/core/dist/plugins/mock-server.js.map +1 -0
  279. package/node_modules/@pi-harness/core/dist/plugins/model.d.ts +8 -0
  280. package/node_modules/@pi-harness/core/dist/plugins/model.d.ts.map +1 -0
  281. package/node_modules/@pi-harness/core/dist/plugins/model.js +14 -0
  282. package/node_modules/@pi-harness/core/dist/plugins/model.js.map +1 -0
  283. package/node_modules/@pi-harness/core/dist/plugins/models.d.ts +16 -0
  284. package/node_modules/@pi-harness/core/dist/plugins/models.d.ts.map +1 -0
  285. package/node_modules/@pi-harness/core/dist/plugins/models.js +27 -0
  286. package/node_modules/@pi-harness/core/dist/plugins/models.js.map +1 -0
  287. package/node_modules/@pi-harness/core/dist/plugins/modlens.d.ts +8 -0
  288. package/node_modules/@pi-harness/core/dist/plugins/modlens.d.ts.map +1 -0
  289. package/node_modules/@pi-harness/core/dist/plugins/modlens.js +63 -0
  290. package/node_modules/@pi-harness/core/dist/plugins/modlens.js.map +1 -0
  291. package/node_modules/@pi-harness/core/dist/plugins/module-search.d.ts +27 -0
  292. package/node_modules/@pi-harness/core/dist/plugins/module-search.d.ts.map +1 -0
  293. package/node_modules/@pi-harness/core/dist/plugins/module-search.js +174 -0
  294. package/node_modules/@pi-harness/core/dist/plugins/module-search.js.map +1 -0
  295. package/node_modules/@pi-harness/core/dist/plugins/obsidian-sync.d.ts +14 -0
  296. package/node_modules/@pi-harness/core/dist/plugins/obsidian-sync.d.ts.map +1 -0
  297. package/node_modules/@pi-harness/core/dist/plugins/obsidian-sync.js +79 -0
  298. package/node_modules/@pi-harness/core/dist/plugins/obsidian-sync.js.map +1 -0
  299. package/node_modules/@pi-harness/core/dist/plugins/openpets.d.ts +14 -0
  300. package/node_modules/@pi-harness/core/dist/plugins/openpets.d.ts.map +1 -0
  301. package/node_modules/@pi-harness/core/dist/plugins/openpets.js +99 -0
  302. package/node_modules/@pi-harness/core/dist/plugins/openpets.js.map +1 -0
  303. package/node_modules/@pi-harness/core/dist/plugins/plan-execute.d.ts +8 -0
  304. package/node_modules/@pi-harness/core/dist/plugins/plan-execute.d.ts.map +1 -0
  305. package/node_modules/@pi-harness/core/dist/plugins/plan-execute.js +70 -0
  306. package/node_modules/@pi-harness/core/dist/plugins/plan-execute.js.map +1 -0
  307. package/node_modules/@pi-harness/core/dist/plugins/plugin-check.d.ts +38 -0
  308. package/node_modules/@pi-harness/core/dist/plugins/plugin-check.d.ts.map +1 -0
  309. package/node_modules/@pi-harness/core/dist/plugins/plugin-check.js +227 -0
  310. package/node_modules/@pi-harness/core/dist/plugins/plugin-check.js.map +1 -0
  311. package/node_modules/@pi-harness/core/dist/plugins/plugin-dev.d.ts +8 -0
  312. package/node_modules/@pi-harness/core/dist/plugins/plugin-dev.d.ts.map +1 -0
  313. package/node_modules/@pi-harness/core/dist/plugins/plugin-dev.js +44 -0
  314. package/node_modules/@pi-harness/core/dist/plugins/plugin-dev.js.map +1 -0
  315. package/node_modules/@pi-harness/core/dist/plugins/plugin-finder.d.ts +16 -0
  316. package/node_modules/@pi-harness/core/dist/plugins/plugin-finder.d.ts.map +1 -0
  317. package/node_modules/@pi-harness/core/dist/plugins/plugin-finder.js +98 -0
  318. package/node_modules/@pi-harness/core/dist/plugins/plugin-finder.js.map +1 -0
  319. package/node_modules/@pi-harness/core/dist/plugins/plugin-radar.d.ts +29 -0
  320. package/node_modules/@pi-harness/core/dist/plugins/plugin-radar.d.ts.map +1 -0
  321. package/node_modules/@pi-harness/core/dist/plugins/plugin-radar.js +146 -0
  322. package/node_modules/@pi-harness/core/dist/plugins/plugin-radar.js.map +1 -0
  323. package/node_modules/@pi-harness/core/dist/plugins/plugin-stars.d.ts +45 -0
  324. package/node_modules/@pi-harness/core/dist/plugins/plugin-stars.d.ts.map +1 -0
  325. package/node_modules/@pi-harness/core/dist/plugins/plugin-stars.js +165 -0
  326. package/node_modules/@pi-harness/core/dist/plugins/plugin-stars.js.map +1 -0
  327. package/node_modules/@pi-harness/core/dist/plugins/prompt-guard.d.ts +8 -0
  328. package/node_modules/@pi-harness/core/dist/plugins/prompt-guard.d.ts.map +1 -0
  329. package/node_modules/@pi-harness/core/dist/plugins/prompt-guard.js +114 -0
  330. package/node_modules/@pi-harness/core/dist/plugins/prompt-guard.js.map +1 -0
  331. package/node_modules/@pi-harness/core/dist/plugins/prompt-library.d.ts +25 -0
  332. package/node_modules/@pi-harness/core/dist/plugins/prompt-library.d.ts.map +1 -0
  333. package/node_modules/@pi-harness/core/dist/plugins/prompt-library.js +142 -0
  334. package/node_modules/@pi-harness/core/dist/plugins/prompt-library.js.map +1 -0
  335. package/node_modules/@pi-harness/core/dist/plugins/readme-gen.d.ts +25 -0
  336. package/node_modules/@pi-harness/core/dist/plugins/readme-gen.d.ts.map +1 -0
  337. package/node_modules/@pi-harness/core/dist/plugins/readme-gen.js +139 -0
  338. package/node_modules/@pi-harness/core/dist/plugins/readme-gen.js.map +1 -0
  339. package/node_modules/@pi-harness/core/dist/plugins/recall-unread.d.ts +24 -0
  340. package/node_modules/@pi-harness/core/dist/plugins/recall-unread.d.ts.map +1 -0
  341. package/node_modules/@pi-harness/core/dist/plugins/recall-unread.js +124 -0
  342. package/node_modules/@pi-harness/core/dist/plugins/recall-unread.js.map +1 -0
  343. package/node_modules/@pi-harness/core/dist/plugins/resources.d.ts +19 -0
  344. package/node_modules/@pi-harness/core/dist/plugins/resources.d.ts.map +1 -0
  345. package/node_modules/@pi-harness/core/dist/plugins/resources.js +57 -0
  346. package/node_modules/@pi-harness/core/dist/plugins/resources.js.map +1 -0
  347. package/node_modules/@pi-harness/core/dist/plugins/reverse-skill.d.ts +23 -0
  348. package/node_modules/@pi-harness/core/dist/plugins/reverse-skill.d.ts.map +1 -0
  349. package/node_modules/@pi-harness/core/dist/plugins/reverse-skill.js +60 -0
  350. package/node_modules/@pi-harness/core/dist/plugins/reverse-skill.js.map +1 -0
  351. package/node_modules/@pi-harness/core/dist/plugins/reviewer-bot.d.ts +14 -0
  352. package/node_modules/@pi-harness/core/dist/plugins/reviewer-bot.d.ts.map +1 -0
  353. package/node_modules/@pi-harness/core/dist/plugins/reviewer-bot.js +133 -0
  354. package/node_modules/@pi-harness/core/dist/plugins/reviewer-bot.js.map +1 -0
  355. package/node_modules/@pi-harness/core/dist/plugins/runtime-doctor.d.ts +33 -0
  356. package/node_modules/@pi-harness/core/dist/plugins/runtime-doctor.d.ts.map +1 -0
  357. package/node_modules/@pi-harness/core/dist/plugins/runtime-doctor.js +114 -0
  358. package/node_modules/@pi-harness/core/dist/plugins/runtime-doctor.js.map +1 -0
  359. package/node_modules/@pi-harness/core/dist/plugins/runtime.d.ts +14 -0
  360. package/node_modules/@pi-harness/core/dist/plugins/runtime.d.ts.map +1 -0
  361. package/node_modules/@pi-harness/core/dist/plugins/runtime.js +117 -0
  362. package/node_modules/@pi-harness/core/dist/plugins/runtime.js.map +1 -0
  363. package/node_modules/@pi-harness/core/dist/plugins/secure-audit.d.ts +31 -0
  364. package/node_modules/@pi-harness/core/dist/plugins/secure-audit.d.ts.map +1 -0
  365. package/node_modules/@pi-harness/core/dist/plugins/secure-audit.js +121 -0
  366. package/node_modules/@pi-harness/core/dist/plugins/secure-audit.js.map +1 -0
  367. package/node_modules/@pi-harness/core/dist/plugins/session-bookmarks.d.ts +15 -0
  368. package/node_modules/@pi-harness/core/dist/plugins/session-bookmarks.d.ts.map +1 -0
  369. package/node_modules/@pi-harness/core/dist/plugins/session-bookmarks.js +87 -0
  370. package/node_modules/@pi-harness/core/dist/plugins/session-bookmarks.js.map +1 -0
  371. package/node_modules/@pi-harness/core/dist/plugins/session-bridge.d.ts +44 -0
  372. package/node_modules/@pi-harness/core/dist/plugins/session-bridge.d.ts.map +1 -0
  373. package/node_modules/@pi-harness/core/dist/plugins/session-bridge.js +265 -0
  374. package/node_modules/@pi-harness/core/dist/plugins/session-bridge.js.map +1 -0
  375. package/node_modules/@pi-harness/core/dist/plugins/session-compare.d.ts +33 -0
  376. package/node_modules/@pi-harness/core/dist/plugins/session-compare.d.ts.map +1 -0
  377. package/node_modules/@pi-harness/core/dist/plugins/session-compare.js +150 -0
  378. package/node_modules/@pi-harness/core/dist/plugins/session-compare.js.map +1 -0
  379. package/node_modules/@pi-harness/core/dist/plugins/session-export.d.ts +9 -0
  380. package/node_modules/@pi-harness/core/dist/plugins/session-export.d.ts.map +1 -0
  381. package/node_modules/@pi-harness/core/dist/plugins/session-export.js +93 -0
  382. package/node_modules/@pi-harness/core/dist/plugins/session-export.js.map +1 -0
  383. package/node_modules/@pi-harness/core/dist/plugins/session-insights.d.ts +8 -0
  384. package/node_modules/@pi-harness/core/dist/plugins/session-insights.d.ts.map +1 -0
  385. package/node_modules/@pi-harness/core/dist/plugins/session-insights.js +47 -0
  386. package/node_modules/@pi-harness/core/dist/plugins/session-insights.js.map +1 -0
  387. package/node_modules/@pi-harness/core/dist/plugins/session-search.d.ts +20 -0
  388. package/node_modules/@pi-harness/core/dist/plugins/session-search.d.ts.map +1 -0
  389. package/node_modules/@pi-harness/core/dist/plugins/session-search.js +122 -0
  390. package/node_modules/@pi-harness/core/dist/plugins/session-search.js.map +1 -0
  391. package/node_modules/@pi-harness/core/dist/plugins/session.d.ts +15 -0
  392. package/node_modules/@pi-harness/core/dist/plugins/session.d.ts.map +1 -0
  393. package/node_modules/@pi-harness/core/dist/plugins/session.js +22 -0
  394. package/node_modules/@pi-harness/core/dist/plugins/session.js.map +1 -0
  395. package/node_modules/@pi-harness/core/dist/plugins/skill-catalog.d.ts +26 -0
  396. package/node_modules/@pi-harness/core/dist/plugins/skill-catalog.d.ts.map +1 -0
  397. package/node_modules/@pi-harness/core/dist/plugins/skill-catalog.js +97 -0
  398. package/node_modules/@pi-harness/core/dist/plugins/skill-catalog.js.map +1 -0
  399. package/node_modules/@pi-harness/core/dist/plugins/skill-guard.d.ts +26 -0
  400. package/node_modules/@pi-harness/core/dist/plugins/skill-guard.d.ts.map +1 -0
  401. package/node_modules/@pi-harness/core/dist/plugins/skill-guard.js +139 -0
  402. package/node_modules/@pi-harness/core/dist/plugins/skill-guard.js.map +1 -0
  403. package/node_modules/@pi-harness/core/dist/plugins/sql-lens.d.ts +8 -0
  404. package/node_modules/@pi-harness/core/dist/plugins/sql-lens.d.ts.map +1 -0
  405. package/node_modules/@pi-harness/core/dist/plugins/sql-lens.js +85 -0
  406. package/node_modules/@pi-harness/core/dist/plugins/sql-lens.js.map +1 -0
  407. package/node_modules/@pi-harness/core/dist/plugins/stdio.d.ts +8 -0
  408. package/node_modules/@pi-harness/core/dist/plugins/stdio.d.ts.map +1 -0
  409. package/node_modules/@pi-harness/core/dist/plugins/stdio.js +22 -0
  410. package/node_modules/@pi-harness/core/dist/plugins/stdio.js.map +1 -0
  411. package/node_modules/@pi-harness/core/dist/plugins/synapse.d.ts +38 -0
  412. package/node_modules/@pi-harness/core/dist/plugins/synapse.d.ts.map +1 -0
  413. package/node_modules/@pi-harness/core/dist/plugins/synapse.js +93 -0
  414. package/node_modules/@pi-harness/core/dist/plugins/synapse.js.map +1 -0
  415. package/node_modules/@pi-harness/core/dist/plugins/tab-manager.d.ts +8 -0
  416. package/node_modules/@pi-harness/core/dist/plugins/tab-manager.d.ts.map +1 -0
  417. package/node_modules/@pi-harness/core/dist/plugins/tab-manager.js +135 -0
  418. package/node_modules/@pi-harness/core/dist/plugins/tab-manager.js.map +1 -0
  419. package/node_modules/@pi-harness/core/dist/plugins/taskboard.d.ts +15 -0
  420. package/node_modules/@pi-harness/core/dist/plugins/taskboard.d.ts.map +1 -0
  421. package/node_modules/@pi-harness/core/dist/plugins/taskboard.js +347 -0
  422. package/node_modules/@pi-harness/core/dist/plugins/taskboard.js.map +1 -0
  423. package/node_modules/@pi-harness/core/dist/plugins/telemetry-blocker.d.ts +8 -0
  424. package/node_modules/@pi-harness/core/dist/plugins/telemetry-blocker.d.ts.map +1 -0
  425. package/node_modules/@pi-harness/core/dist/plugins/telemetry-blocker.js +57 -0
  426. package/node_modules/@pi-harness/core/dist/plugins/telemetry-blocker.js.map +1 -0
  427. package/node_modules/@pi-harness/core/dist/plugins/test-harness.d.ts +8 -0
  428. package/node_modules/@pi-harness/core/dist/plugins/test-harness.d.ts.map +1 -0
  429. package/node_modules/@pi-harness/core/dist/plugins/test-harness.js +64 -0
  430. package/node_modules/@pi-harness/core/dist/plugins/test-harness.js.map +1 -0
  431. package/node_modules/@pi-harness/core/dist/plugins/theme-studio.d.ts +29 -0
  432. package/node_modules/@pi-harness/core/dist/plugins/theme-studio.d.ts.map +1 -0
  433. package/node_modules/@pi-harness/core/dist/plugins/theme-studio.js +141 -0
  434. package/node_modules/@pi-harness/core/dist/plugins/theme-studio.js.map +1 -0
  435. package/node_modules/@pi-harness/core/dist/plugins/token-guard.d.ts +15 -0
  436. package/node_modules/@pi-harness/core/dist/plugins/token-guard.d.ts.map +1 -0
  437. package/node_modules/@pi-harness/core/dist/plugins/token-guard.js +78 -0
  438. package/node_modules/@pi-harness/core/dist/plugins/token-guard.js.map +1 -0
  439. package/node_modules/@pi-harness/core/dist/plugins/tools.d.ts +13 -0
  440. package/node_modules/@pi-harness/core/dist/plugins/tools.d.ts.map +1 -0
  441. package/node_modules/@pi-harness/core/dist/plugins/tools.js +20 -0
  442. package/node_modules/@pi-harness/core/dist/plugins/tools.js.map +1 -0
  443. package/node_modules/@pi-harness/core/dist/plugins/turn-rewind.d.ts +19 -0
  444. package/node_modules/@pi-harness/core/dist/plugins/turn-rewind.d.ts.map +1 -0
  445. package/node_modules/@pi-harness/core/dist/plugins/turn-rewind.js +74 -0
  446. package/node_modules/@pi-harness/core/dist/plugins/turn-rewind.js.map +1 -0
  447. package/node_modules/@pi-harness/core/dist/plugins/undo-savepoint.d.ts +17 -0
  448. package/node_modules/@pi-harness/core/dist/plugins/undo-savepoint.d.ts.map +1 -0
  449. package/node_modules/@pi-harness/core/dist/plugins/undo-savepoint.js +247 -0
  450. package/node_modules/@pi-harness/core/dist/plugins/undo-savepoint.js.map +1 -0
  451. package/node_modules/@pi-harness/core/dist/plugins/vision-toolkit.d.ts +17 -0
  452. package/node_modules/@pi-harness/core/dist/plugins/vision-toolkit.d.ts.map +1 -0
  453. package/node_modules/@pi-harness/core/dist/plugins/vision-toolkit.js +145 -0
  454. package/node_modules/@pi-harness/core/dist/plugins/vision-toolkit.js.map +1 -0
  455. package/node_modules/@pi-harness/core/dist/plugins/web-research.d.ts +17 -0
  456. package/node_modules/@pi-harness/core/dist/plugins/web-research.d.ts.map +1 -0
  457. package/node_modules/@pi-harness/core/dist/plugins/web-research.js +275 -0
  458. package/node_modules/@pi-harness/core/dist/plugins/web-research.js.map +1 -0
  459. package/node_modules/@pi-harness/core/dist/plugins/workspace-navigator.d.ts +36 -0
  460. package/node_modules/@pi-harness/core/dist/plugins/workspace-navigator.d.ts.map +1 -0
  461. package/node_modules/@pi-harness/core/dist/plugins/workspace-navigator.js +150 -0
  462. package/node_modules/@pi-harness/core/dist/plugins/workspace-navigator.js.map +1 -0
  463. package/node_modules/@pi-harness/core/dist/plugins/workspace-search.d.ts +8 -0
  464. package/node_modules/@pi-harness/core/dist/plugins/workspace-search.d.ts.map +1 -0
  465. package/node_modules/@pi-harness/core/dist/plugins/workspace-search.js +134 -0
  466. package/node_modules/@pi-harness/core/dist/plugins/workspace-search.js.map +1 -0
  467. package/node_modules/@pi-harness/core/dist/plugins/yaml-validator.d.ts +8 -0
  468. package/node_modules/@pi-harness/core/dist/plugins/yaml-validator.d.ts.map +1 -0
  469. package/node_modules/@pi-harness/core/dist/plugins/yaml-validator.js +94 -0
  470. package/node_modules/@pi-harness/core/dist/plugins/yaml-validator.js.map +1 -0
  471. package/node_modules/@pi-harness/core/dist/profile.d.ts +9 -0
  472. package/node_modules/@pi-harness/core/dist/profile.d.ts.map +1 -0
  473. package/node_modules/@pi-harness/core/dist/profile.js +31 -0
  474. package/node_modules/@pi-harness/core/dist/profile.js.map +1 -0
  475. package/node_modules/@pi-harness/core/dist/runtime.d.ts +16 -0
  476. package/node_modules/@pi-harness/core/dist/runtime.d.ts.map +1 -0
  477. package/node_modules/@pi-harness/core/dist/runtime.js +42 -0
  478. package/node_modules/@pi-harness/core/dist/runtime.js.map +1 -0
  479. package/node_modules/@pi-harness/core/dist/services.d.ts +118 -0
  480. package/node_modules/@pi-harness/core/dist/services.d.ts.map +1 -0
  481. package/node_modules/@pi-harness/core/dist/services.js +95 -0
  482. package/node_modules/@pi-harness/core/dist/services.js.map +1 -0
  483. package/node_modules/@pi-harness/core/dist/stdio.d.ts +36 -0
  484. package/node_modules/@pi-harness/core/dist/stdio.d.ts.map +1 -0
  485. package/node_modules/@pi-harness/core/dist/stdio.js +140 -0
  486. package/node_modules/@pi-harness/core/dist/stdio.js.map +1 -0
  487. package/node_modules/@pi-harness/core/dist/workspace-path.d.ts +12 -0
  488. package/node_modules/@pi-harness/core/dist/workspace-path.d.ts.map +1 -0
  489. package/node_modules/@pi-harness/core/dist/workspace-path.js +62 -0
  490. package/node_modules/@pi-harness/core/dist/workspace-path.js.map +1 -0
  491. package/node_modules/@pi-harness/core/package.json +42 -0
  492. package/node_modules/@pi-harness/core/profiles/default/cordis.yml +120 -0
  493. package/node_modules/@pi-harness/core/profiles/development/cordis.yml +47 -0
  494. package/node_modules/@pi-harness/host-webserver/LICENSE +9 -0
  495. package/node_modules/@pi-harness/host-webserver/dist/index.d.ts +29 -0
  496. package/node_modules/@pi-harness/host-webserver/dist/index.d.ts.map +1 -0
  497. package/node_modules/@pi-harness/host-webserver/dist/index.js +73 -0
  498. package/node_modules/@pi-harness/host-webserver/dist/index.js.map +1 -0
  499. package/node_modules/@pi-harness/host-webserver/package.json +35 -0
  500. package/node_modules/@pi-harness/web-app/LICENSE +9 -0
  501. package/node_modules/@pi-harness/web-app/cordis.patch.yml +12 -0
  502. package/node_modules/@pi-harness/web-app/dist/index.d.ts +12 -0
  503. package/node_modules/@pi-harness/web-app/dist/index.d.ts.map +1 -0
  504. package/node_modules/@pi-harness/web-app/dist/index.js +63 -0
  505. package/node_modules/@pi-harness/web-app/dist/index.js.map +1 -0
  506. package/node_modules/@pi-harness/web-app/package.json +37 -0
  507. package/package.json +29 -10
  508. package/packages/api-gateway/dist/marketplace-entries/official/agent-teams.json +1 -1
  509. package/packages/api-gateway/dist/marketplace-entries/official/anchored-standard.json +1 -1
  510. package/packages/api-gateway/dist/marketplace-entries/official/annotation.json +1 -1
  511. package/packages/api-gateway/dist/marketplace-entries/official/archify.json +1 -1
  512. package/packages/api-gateway/dist/marketplace-entries/official/at-file.json +1 -1
  513. package/packages/api-gateway/dist/marketplace-entries/official/auto-mode.json +1 -1
  514. package/packages/api-gateway/dist/marketplace-entries/official/better-sidebar.json +1 -1
  515. package/packages/api-gateway/dist/marketplace-entries/official/browser-fetch.json +1 -1
  516. package/packages/api-gateway/dist/marketplace-entries/official/browser-session.json +1 -1
  517. package/packages/api-gateway/dist/marketplace-entries/official/canvas-draw.json +1 -1
  518. package/packages/api-gateway/dist/marketplace-entries/official/change-verifier.json +1 -1
  519. package/packages/api-gateway/dist/marketplace-entries/official/cleaner.json +1 -1
  520. package/packages/api-gateway/dist/marketplace-entries/official/cli-notifier.json +1 -1
  521. package/packages/api-gateway/dist/marketplace-entries/official/code2skill.json +1 -1
  522. package/packages/api-gateway/dist/marketplace-entries/official/colleague-skill.json +1 -1
  523. package/packages/api-gateway/dist/marketplace-entries/official/context-doctor.json +1 -1
  524. package/packages/api-gateway/dist/marketplace-entries/official/context.json +1 -1
  525. package/packages/api-gateway/dist/marketplace-entries/official/cost-meter.json +1 -1
  526. package/packages/api-gateway/dist/marketplace-entries/official/dependency-checker.json +1 -1
  527. package/packages/api-gateway/dist/marketplace-entries/official/docker-sandbox.json +1 -1
  528. package/packages/api-gateway/dist/marketplace-entries/official/fail-logger.json +1 -1
  529. package/packages/api-gateway/dist/marketplace-entries/official/genui.json +1 -1
  530. package/packages/api-gateway/dist/marketplace-entries/official/git-time-capsule.json +1 -1
  531. package/packages/api-gateway/dist/marketplace-entries/official/graph-memory.json +1 -1
  532. package/packages/api-gateway/dist/marketplace-entries/official/history-compressor.json +1 -1
  533. package/packages/api-gateway/dist/marketplace-entries/official/hol-guard.json +1 -1
  534. package/packages/api-gateway/dist/marketplace-entries/official/i18n-pair.json +1 -1
  535. package/packages/api-gateway/dist/marketplace-entries/official/image-compressor.json +1 -1
  536. package/packages/api-gateway/dist/marketplace-entries/official/llm-verifier.json +1 -1
  537. package/packages/api-gateway/dist/marketplace-entries/official/mcp-client.json +1 -1
  538. package/packages/api-gateway/dist/marketplace-entries/official/mcp-panel.json +1 -1
  539. package/packages/api-gateway/dist/marketplace-entries/official/memory.json +1 -1
  540. package/packages/api-gateway/dist/marketplace-entries/official/mirage-bridge.json +1 -1
  541. package/packages/api-gateway/dist/marketplace-entries/official/mock-server.json +1 -1
  542. package/packages/api-gateway/dist/marketplace-entries/official/modlens.json +1 -1
  543. package/packages/api-gateway/dist/marketplace-entries/official/module-search.json +1 -1
  544. package/packages/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +1 -1
  545. package/packages/api-gateway/dist/marketplace-entries/official/openpets.json +1 -1
  546. package/packages/api-gateway/dist/marketplace-entries/official/plan-execute.json +1 -1
  547. package/packages/api-gateway/dist/marketplace-entries/official/plugin-check.json +1 -1
  548. package/packages/api-gateway/dist/marketplace-entries/official/plugin-dev.json +1 -1
  549. package/packages/api-gateway/dist/marketplace-entries/official/plugin-finder.json +1 -1
  550. package/packages/api-gateway/dist/marketplace-entries/official/plugin-radar.json +1 -1
  551. package/packages/api-gateway/dist/marketplace-entries/official/plugin-stars.json +1 -1
  552. package/packages/api-gateway/dist/marketplace-entries/official/prompt-guard.json +1 -1
  553. package/packages/api-gateway/dist/marketplace-entries/official/prompt-library.json +1 -1
  554. package/packages/api-gateway/dist/marketplace-entries/official/readme-gen.json +1 -1
  555. package/packages/api-gateway/dist/marketplace-entries/official/recall-unread.json +1 -1
  556. package/packages/api-gateway/dist/marketplace-entries/official/reverse-skill.json +1 -1
  557. package/packages/api-gateway/dist/marketplace-entries/official/reviewer-bot.json +1 -1
  558. package/packages/api-gateway/dist/marketplace-entries/official/runtime-doctor.json +1 -1
  559. package/packages/api-gateway/dist/marketplace-entries/official/secure-audit.json +1 -1
  560. package/packages/api-gateway/dist/marketplace-entries/official/session-bookmarks.json +1 -1
  561. package/packages/api-gateway/dist/marketplace-entries/official/session-bridge.json +1 -1
  562. package/packages/api-gateway/dist/marketplace-entries/official/session-compare.json +1 -1
  563. package/packages/api-gateway/dist/marketplace-entries/official/session-export.json +1 -1
  564. package/packages/api-gateway/dist/marketplace-entries/official/session-insights.json +1 -1
  565. package/packages/api-gateway/dist/marketplace-entries/official/session-search.json +1 -1
  566. package/packages/api-gateway/dist/marketplace-entries/official/skill-catalog.json +1 -1
  567. package/packages/api-gateway/dist/marketplace-entries/official/skill-guard.json +1 -1
  568. package/packages/api-gateway/dist/marketplace-entries/official/sql-lens.json +1 -1
  569. package/packages/api-gateway/dist/marketplace-entries/official/synapse.json +1 -1
  570. package/packages/api-gateway/dist/marketplace-entries/official/tab-manager.json +1 -1
  571. package/packages/api-gateway/dist/marketplace-entries/official/taskboard.json +1 -1
  572. package/packages/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +1 -1
  573. package/packages/api-gateway/dist/marketplace-entries/official/test-harness.json +1 -1
  574. package/packages/api-gateway/dist/marketplace-entries/official/theme-studio.json +1 -1
  575. package/packages/api-gateway/dist/marketplace-entries/official/token-guard.json +1 -1
  576. package/packages/api-gateway/dist/marketplace-entries/official/turn-rewind.json +1 -1
  577. package/packages/api-gateway/dist/marketplace-entries/official/undo-savepoint.json +1 -1
  578. package/packages/api-gateway/dist/marketplace-entries/official/vision-toolkit.json +1 -1
  579. package/packages/api-gateway/dist/marketplace-entries/official/web-research.json +1 -1
  580. package/packages/api-gateway/dist/marketplace-entries/official/workspace-navigator.json +1 -1
  581. package/packages/api-gateway/dist/marketplace-entries/official/workspace-search.json +1 -1
  582. package/packages/api-gateway/dist/marketplace-entries/official/yaml-validator.json +1 -1
  583. package/packages/api-gateway/package.json +7 -10
  584. package/packages/api-gateway/src/marketplace-entries/official/agent-teams.json +1 -1
  585. package/packages/api-gateway/src/marketplace-entries/official/anchored-standard.json +1 -1
  586. package/packages/api-gateway/src/marketplace-entries/official/annotation.json +1 -1
  587. package/packages/api-gateway/src/marketplace-entries/official/archify.json +1 -1
  588. package/packages/api-gateway/src/marketplace-entries/official/at-file.json +1 -1
  589. package/packages/api-gateway/src/marketplace-entries/official/auto-mode.json +1 -1
  590. package/packages/api-gateway/src/marketplace-entries/official/better-sidebar.json +1 -1
  591. package/packages/api-gateway/src/marketplace-entries/official/browser-fetch.json +1 -1
  592. package/packages/api-gateway/src/marketplace-entries/official/browser-session.json +1 -1
  593. package/packages/api-gateway/src/marketplace-entries/official/canvas-draw.json +1 -1
  594. package/packages/api-gateway/src/marketplace-entries/official/change-verifier.json +1 -1
  595. package/packages/api-gateway/src/marketplace-entries/official/cleaner.json +1 -1
  596. package/packages/api-gateway/src/marketplace-entries/official/cli-notifier.json +1 -1
  597. package/packages/api-gateway/src/marketplace-entries/official/code2skill.json +1 -1
  598. package/packages/api-gateway/src/marketplace-entries/official/colleague-skill.json +1 -1
  599. package/packages/api-gateway/src/marketplace-entries/official/context-doctor.json +1 -1
  600. package/packages/api-gateway/src/marketplace-entries/official/context.json +1 -1
  601. package/packages/api-gateway/src/marketplace-entries/official/cost-meter.json +1 -1
  602. package/packages/api-gateway/src/marketplace-entries/official/dependency-checker.json +1 -1
  603. package/packages/api-gateway/src/marketplace-entries/official/docker-sandbox.json +1 -1
  604. package/packages/api-gateway/src/marketplace-entries/official/fail-logger.json +1 -1
  605. package/packages/api-gateway/src/marketplace-entries/official/genui.json +1 -1
  606. package/packages/api-gateway/src/marketplace-entries/official/git-time-capsule.json +1 -1
  607. package/packages/api-gateway/src/marketplace-entries/official/graph-memory.json +1 -1
  608. package/packages/api-gateway/src/marketplace-entries/official/history-compressor.json +1 -1
  609. package/packages/api-gateway/src/marketplace-entries/official/hol-guard.json +1 -1
  610. package/packages/api-gateway/src/marketplace-entries/official/i18n-pair.json +1 -1
  611. package/packages/api-gateway/src/marketplace-entries/official/image-compressor.json +1 -1
  612. package/packages/api-gateway/src/marketplace-entries/official/llm-verifier.json +1 -1
  613. package/packages/api-gateway/src/marketplace-entries/official/mcp-client.json +1 -1
  614. package/packages/api-gateway/src/marketplace-entries/official/mcp-panel.json +1 -1
  615. package/packages/api-gateway/src/marketplace-entries/official/memory.json +1 -1
  616. package/packages/api-gateway/src/marketplace-entries/official/mirage-bridge.json +1 -1
  617. package/packages/api-gateway/src/marketplace-entries/official/mock-server.json +1 -1
  618. package/packages/api-gateway/src/marketplace-entries/official/modlens.json +1 -1
  619. package/packages/api-gateway/src/marketplace-entries/official/module-search.json +1 -1
  620. package/packages/api-gateway/src/marketplace-entries/official/obsidian-sync.json +1 -1
  621. package/packages/api-gateway/src/marketplace-entries/official/openpets.json +1 -1
  622. package/packages/api-gateway/src/marketplace-entries/official/plan-execute.json +1 -1
  623. package/packages/api-gateway/src/marketplace-entries/official/plugin-check.json +1 -1
  624. package/packages/api-gateway/src/marketplace-entries/official/plugin-dev.json +1 -1
  625. package/packages/api-gateway/src/marketplace-entries/official/plugin-finder.json +1 -1
  626. package/packages/api-gateway/src/marketplace-entries/official/plugin-radar.json +1 -1
  627. package/packages/api-gateway/src/marketplace-entries/official/plugin-stars.json +1 -1
  628. package/packages/api-gateway/src/marketplace-entries/official/prompt-guard.json +1 -1
  629. package/packages/api-gateway/src/marketplace-entries/official/prompt-library.json +1 -1
  630. package/packages/api-gateway/src/marketplace-entries/official/readme-gen.json +1 -1
  631. package/packages/api-gateway/src/marketplace-entries/official/recall-unread.json +1 -1
  632. package/packages/api-gateway/src/marketplace-entries/official/reverse-skill.json +1 -1
  633. package/packages/api-gateway/src/marketplace-entries/official/reviewer-bot.json +1 -1
  634. package/packages/api-gateway/src/marketplace-entries/official/runtime-doctor.json +1 -1
  635. package/packages/api-gateway/src/marketplace-entries/official/secure-audit.json +1 -1
  636. package/packages/api-gateway/src/marketplace-entries/official/session-bookmarks.json +1 -1
  637. package/packages/api-gateway/src/marketplace-entries/official/session-bridge.json +1 -1
  638. package/packages/api-gateway/src/marketplace-entries/official/session-compare.json +1 -1
  639. package/packages/api-gateway/src/marketplace-entries/official/session-export.json +1 -1
  640. package/packages/api-gateway/src/marketplace-entries/official/session-insights.json +1 -1
  641. package/packages/api-gateway/src/marketplace-entries/official/session-search.json +1 -1
  642. package/packages/api-gateway/src/marketplace-entries/official/skill-catalog.json +1 -1
  643. package/packages/api-gateway/src/marketplace-entries/official/skill-guard.json +1 -1
  644. package/packages/api-gateway/src/marketplace-entries/official/sql-lens.json +1 -1
  645. package/packages/api-gateway/src/marketplace-entries/official/synapse.json +1 -1
  646. package/packages/api-gateway/src/marketplace-entries/official/tab-manager.json +1 -1
  647. package/packages/api-gateway/src/marketplace-entries/official/taskboard.json +1 -1
  648. package/packages/api-gateway/src/marketplace-entries/official/telemetry-blocker.json +1 -1
  649. package/packages/api-gateway/src/marketplace-entries/official/test-harness.json +1 -1
  650. package/packages/api-gateway/src/marketplace-entries/official/theme-studio.json +1 -1
  651. package/packages/api-gateway/src/marketplace-entries/official/token-guard.json +1 -1
  652. package/packages/api-gateway/src/marketplace-entries/official/turn-rewind.json +1 -1
  653. package/packages/api-gateway/src/marketplace-entries/official/undo-savepoint.json +1 -1
  654. package/packages/api-gateway/src/marketplace-entries/official/vision-toolkit.json +1 -1
  655. package/packages/api-gateway/src/marketplace-entries/official/web-research.json +1 -1
  656. package/packages/api-gateway/src/marketplace-entries/official/workspace-navigator.json +1 -1
  657. package/packages/api-gateway/src/marketplace-entries/official/workspace-search.json +1 -1
  658. package/packages/api-gateway/src/marketplace-entries/official/yaml-validator.json +1 -1
  659. package/packages/api-gateway/test/release-package.test.ts +33 -0
  660. package/packages/api-gateway/test/release-version.test.ts +8 -0
  661. package/packages/bundle-web-app/cordis.patch.yml +1 -1
  662. package/packages/bundle-web-app/package.json +6 -9
  663. package/packages/cli/package.json +6 -8
  664. package/packages/client-web/package.json +6 -5
  665. package/packages/client-web/test/browser-session-view.test.ts +2 -2
  666. package/packages/core/package.json +6 -18
  667. package/packages/host-webserver/dist/index.js +1 -1
  668. package/packages/host-webserver/package.json +6 -8
  669. package/packages/host-webserver/src/index.ts +1 -1
@@ -0,0 +1,117 @@
1
+ import z from "@deepseek-ai/schemastery";
2
+ import { createAgentSessionFromServices, createAgentSessionRuntime } from "@earendil-works/pi-coding-agent";
3
+ import { PiRuntime } from "../runtime.js";
4
+ import { assertKnownConfigKeys } from "../config.js";
5
+ export const Config = z.object({
6
+ thinkingLevel: z.union(["off", "minimal", "low", "medium", "high", "xhigh", "max"]).default("medium"),
7
+ });
8
+ // Cordis disposes the outgoing fiber and applies the replacement concurrently, so an HMR reload
9
+ // would otherwise build a second AgentSession over the same SessionManager while the first is still
10
+ // streaming, interleaving both runs into one JSONL transcript. Each manager therefore has at most
11
+ // one runtime under construction or teardown at a time.
12
+ const sessionManagerGate = new WeakMap();
13
+ function enterSessionManagerGate(manager) {
14
+ const ready = sessionManagerGate.get(manager) ?? Promise.resolve();
15
+ let release;
16
+ const held = new Promise((resolve) => {
17
+ release = resolve;
18
+ });
19
+ sessionManagerGate.set(manager, ready.then(() => held, () => held));
20
+ return { ready, release };
21
+ }
22
+ export default {
23
+ name: "pi-runtime",
24
+ inject: ["piModels", "piResources", "piSession", "piTools"],
25
+ Config,
26
+ async apply(context, config) {
27
+ assertKnownConfigKeys("pi-runtime", config, ["thinkingLevel"]);
28
+ const gate = enterSessionManagerGate(context.piSession.manager);
29
+ await gate.ready;
30
+ const tools = context.piTools.acquire();
31
+ context.effect(() => () => tools.release());
32
+ const requestedTools = [...tools.names, ...tools.customTools.map((tool) => tool.name)];
33
+ const createRuntime = async ({ cwd, sessionManager, sessionStartEvent }) => {
34
+ const services = cwd === context.piResources.cwd ? context.piResources : await context.piResources.createForCwd(cwd);
35
+ const result = await createAgentSessionFromServices({
36
+ services,
37
+ sessionManager,
38
+ ...(sessionStartEvent === undefined ? {} : { sessionStartEvent }),
39
+ model: context.piModels.model,
40
+ thinkingLevel: config.thinkingLevel ?? "medium",
41
+ tools: requestedTools,
42
+ customTools: tools.customTools,
43
+ });
44
+ if (result.extensionsResult.errors.length > 0) {
45
+ result.session.dispose();
46
+ throw new Error(`Pi extensions failed to load:\n${result.extensionsResult.errors.map((failure) => `${failure.path}: ${failure.error}`).join("\n")}`);
47
+ }
48
+ return { ...result, services, diagnostics: services.diagnostics };
49
+ };
50
+ const sessionRuntime = await createAgentSessionRuntime(createRuntime, {
51
+ cwd: context.piResources.cwd,
52
+ agentDir: context.piResources.agentDir,
53
+ sessionManager: context.piSession.manager,
54
+ });
55
+ const runtime = new PiRuntime(sessionRuntime);
56
+ const bindSession = async (session) => {
57
+ await session.bindExtensions({
58
+ mode: "print",
59
+ abortHandler: () => {
60
+ void runtime.abort();
61
+ },
62
+ onError: (error) => {
63
+ context.emit("pi/extension-error", error);
64
+ },
65
+ });
66
+ // Reconciled after binding so a tool an extension registers from session_start is visible here.
67
+ const registeredTools = session.getAllTools().map((tool) => tool.name);
68
+ const missingTools = requestedTools.filter((name) => !registeredTools.includes(name));
69
+ if (missingTools.length > 0)
70
+ throw new Error(`Pi tools are not registered: ${missingTools.join(", ")}`);
71
+ // Pi treats the tool list as an allowlist, so anything an extension contributed but the
72
+ // profile did not name is dropped. Report it rather than letting the tool vanish silently.
73
+ const activeTools = new Set(session.getActiveToolNames());
74
+ const droppedTools = registeredTools.filter((name) => !activeTools.has(name));
75
+ if (droppedTools.length > 0)
76
+ context.emit("pi/extension-error", { extensionPath: "pi-tools", event: "session_start", error: `Pi tools registered by extensions are not enabled because the profile does not list them: ${droppedTools.join(", ")}; add them to the pi-tools names option to enable them` });
77
+ };
78
+ let unsubscribe;
79
+ const rebindSession = async (session) => {
80
+ unsubscribe?.();
81
+ await bindSession(session);
82
+ unsubscribe = session.subscribe((event) => {
83
+ // A throwing listener must not unwind back into Pi's event dispatch and kill the run.
84
+ try {
85
+ context.emit("pi/session-event", event);
86
+ }
87
+ catch (error) {
88
+ context.emit("pi/extension-error", { extensionPath: "pi/session-event", event: event.type, error: error instanceof Error ? error.message : String(error) });
89
+ }
90
+ });
91
+ };
92
+ try {
93
+ context.effect(() => {
94
+ return async () => {
95
+ unsubscribe?.();
96
+ try {
97
+ await runtime.dispose();
98
+ }
99
+ finally {
100
+ // Released only once teardown has finished, so a replacement fiber cannot build a
101
+ // second session over this SessionManager while this one is still writing to it.
102
+ gate.release();
103
+ }
104
+ };
105
+ });
106
+ context.provide("piRuntime", runtime);
107
+ sessionRuntime.setRebindSession(rebindSession);
108
+ await rebindSession(sessionRuntime.session);
109
+ }
110
+ catch (error) {
111
+ await runtime.dispose();
112
+ gate.release();
113
+ throw error;
114
+ }
115
+ },
116
+ };
117
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/plugins/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { Context } from "@deepseek-ai/cordis";
2
+ export type AuditSeverity = "critical" | "high" | "medium";
3
+ export type AuditFindingKind = "credential" | "private-key" | "shell-pipeline" | "destructive-command";
4
+ export interface AuditFinding {
5
+ path: string;
6
+ line: number;
7
+ severity: AuditSeverity;
8
+ kind: AuditFindingKind;
9
+ message: string;
10
+ }
11
+ export interface AuditSummary {
12
+ root: string;
13
+ scanned: number;
14
+ skipped: number;
15
+ total: number;
16
+ critical: number;
17
+ high: number;
18
+ medium: number;
19
+ changed: boolean;
20
+ findings: AuditFinding[];
21
+ }
22
+ export declare function auditText(path: string, source: string): AuditFinding[];
23
+ export declare function summarizeAudit(findings: readonly AuditFinding[], root?: string, scanned?: number, skipped?: number): AuditSummary;
24
+ export declare function auditWorkspace(root: string, requested?: string): Promise<AuditSummary>;
25
+ declare const _default: {
26
+ name: string;
27
+ inject: string[];
28
+ apply(context: Context): void;
29
+ };
30
+ export default _default;
31
+ //# sourceMappingURL=secure-audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secure-audit.d.ts","sourceRoot":"","sources":["../../src/plugins/secure-audit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AASnD,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,aAAa,GAAG,gBAAgB,GAAG,qBAAqB,CAAC;AAEvG,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAYD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAYtE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,EAAE,IAAI,SAAM,EAAE,OAAO,SAAI,EAAE,OAAO,SAAI,GAAG,YAAY,CAKpH;AAgBD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CA0BzF;;;;mBASgB,OAAO;;AAHxB,wBAkCE"}
@@ -0,0 +1,121 @@
1
+ import { readdir, readFile, stat } from "node:fs/promises";
2
+ import { basename, join, relative, resolve } from "node:path";
3
+ import { Type } from "@earendil-works/pi-ai";
4
+ import { defineTool } from "@earendil-works/pi-coding-agent";
5
+ import { resolveExistingWorkspacePath } from "../workspace-path.js";
6
+ const maxFiles = 500;
7
+ const maxFileBytes = 512 * 1024;
8
+ const ignoredDirectories = new Set([".git", ".pi", "node_modules", "dist", "build", "coverage"]);
9
+ const credentialPattern = /\b(?:sk-[A-Za-z0-9_-]{10,}|gh[pousr]_[A-Za-z0-9]{10,}|xox[baprs]-[A-Za-z0-9-]{10,}|AKIA[0-9A-Z]{12,})\b/iu;
10
+ const privateKeyPattern = /-----BEGIN (?:RSA|EC|OPENSSH|DSA|PGP )?PRIVATE KEY-----/u;
11
+ const assignmentPattern = /^\s*(?:password|secret|api[_-]?key|token)\s*[:=]\s*["']?[^\s"']{8,}/iu;
12
+ const shellPipelinePattern = /\b(?:curl|wget)\b[^\n|]{0,240}\|\s*(?:sh|bash|zsh)\b/iu;
13
+ const destructiveCommandPattern = /\brm\s+-rf(?:\s|$)/iu;
14
+ function finding(path, line, severity, kind, message) {
15
+ return { path, line, severity, kind, message };
16
+ }
17
+ export function auditText(path, source) {
18
+ const findings = [];
19
+ source.split("\n").forEach((lineText, index) => {
20
+ const line = index + 1;
21
+ if (privateKeyPattern.test(lineText))
22
+ findings.push(finding(path, line, "critical", "private-key", "Private key material is present in source text."));
23
+ else if (credentialPattern.test(lineText) || assignmentPattern.test(lineText))
24
+ findings.push(finding(path, line, "critical", "credential", "A credential-like value is present in source text."));
25
+ if (shellPipelinePattern.test(lineText))
26
+ findings.push(finding(path, line, "high", "shell-pipeline", "A remote script is piped directly into a shell."));
27
+ if (destructiveCommandPattern.test(lineText))
28
+ findings.push(finding(path, line, "high", "destructive-command", "A recursive force delete command is present."));
29
+ });
30
+ return findings;
31
+ }
32
+ export function summarizeAudit(findings, root = ".", scanned = 0, skipped = 0) {
33
+ const critical = findings.filter((item) => item.severity === "critical").length;
34
+ const high = findings.filter((item) => item.severity === "high").length;
35
+ const medium = findings.filter((item) => item.severity === "medium").length;
36
+ return { root, scanned, skipped, total: findings.length, critical, high, medium, changed: findings.length > 0, findings: [...findings] };
37
+ }
38
+ async function workspaceFiles(root, current, files) {
39
+ if (files.length >= maxFiles)
40
+ return;
41
+ const entries = await readdir(current, { withFileTypes: true });
42
+ for (const entry of entries) {
43
+ if (files.length >= maxFiles)
44
+ return;
45
+ const fullPath = join(current, entry.name);
46
+ if (entry.isDirectory()) {
47
+ if (!ignoredDirectories.has(entry.name))
48
+ await workspaceFiles(root, fullPath, files);
49
+ }
50
+ else if (entry.isFile()) {
51
+ files.push(relative(root, fullPath));
52
+ }
53
+ }
54
+ }
55
+ export async function auditWorkspace(root, requested = ".") {
56
+ const resolved = await resolveExistingWorkspacePath(root, requested, "Audit path must stay inside the current workspace");
57
+ root = resolved.root;
58
+ const target = resolved.target;
59
+ const metadata = await stat(target);
60
+ const files = [];
61
+ if (metadata.isFile())
62
+ files.push(relative(root, target));
63
+ else if (metadata.isDirectory())
64
+ await workspaceFiles(root, target, files);
65
+ else
66
+ throw new Error("Audit target must be a file or directory");
67
+ const findings = [];
68
+ let skipped = 0;
69
+ for (const file of files) {
70
+ const fullPath = resolve(root, file);
71
+ const fileMetadata = await stat(fullPath);
72
+ if (fileMetadata.size > maxFileBytes) {
73
+ skipped += 1;
74
+ continue;
75
+ }
76
+ const source = await readFile(fullPath, "utf8");
77
+ if (source.includes("\u0000")) {
78
+ skipped += 1;
79
+ continue;
80
+ }
81
+ findings.push(...auditText(file || basename(fullPath), source));
82
+ }
83
+ return summarizeAudit(findings, relative(root, target) || ".", files.length, skipped);
84
+ }
85
+ function emptySummary() {
86
+ return summarizeAudit([], ".");
87
+ }
88
+ export default {
89
+ name: "pi-secure-audit",
90
+ inject: ["piHarnessLaunch", "piPluginUi", "piTools"],
91
+ apply(context) {
92
+ let latest;
93
+ const unregister = context.piTools.register(defineTool({
94
+ name: "security_audit",
95
+ label: "Security audit",
96
+ description: "Read-only scan of workspace text files for exposed credentials and dangerous shell commands; findings are value-redacted.",
97
+ promptSnippet: "audit the workspace for secrets and dangerous commands",
98
+ parameters: Type.Object({ path: Type.Optional(Type.String({ description: "Workspace-relative file or directory to scan" })) }),
99
+ async execute(_toolCallId, params) {
100
+ latest = await auditWorkspace(context.piHarnessLaunch.cwd, params.path ?? ".");
101
+ return {
102
+ content: [{ type: "text", text: `${latest.total} findings across ${latest.scanned} files (${latest.critical} critical, ${latest.high} high).` }],
103
+ details: latest,
104
+ };
105
+ },
106
+ }));
107
+ const disposePanel = context.piPluginUi.register({
108
+ id: "secure-audit-panel",
109
+ pluginId: "@pi-harness/core/plugins/secure-audit",
110
+ title: "Secure Audit",
111
+ description: "只读扫描工作区中的凭据泄露和危险命令,结果不会显示敏感值。",
112
+ icon: "⌕",
113
+ read: () => latest ?? emptySummary(),
114
+ });
115
+ context.effect(() => () => {
116
+ unregister();
117
+ disposePanel();
118
+ });
119
+ },
120
+ };
121
+ //# sourceMappingURL=secure-audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secure-audit.js","sourceRoot":"","sources":["../../src/plugins/secure-audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Context } from "@deepseek-ai/cordis";
2
+ export type SessionBookmark = {
3
+ id: string;
4
+ entryId: string;
5
+ label: string;
6
+ };
7
+ export declare function normalizeBookmarkLabel(value: string): string;
8
+ export declare function listSessionBookmarks(entries: readonly unknown[]): SessionBookmark[];
9
+ declare const _default: {
10
+ name: string;
11
+ inject: string[];
12
+ apply(context: Context): void;
13
+ };
14
+ export default _default;
15
+ //# sourceMappingURL=session-bookmarks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-bookmarks.d.ts","sourceRoot":"","sources":["../../src/plugins/session-bookmarks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAMnD,MAAM,MAAM,eAAe,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI5D;AAMD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,eAAe,EAAE,CASnF;;;;mBAKgB,OAAO;;AAHxB,wBA2DE"}
@@ -0,0 +1,87 @@
1
+ import { Type } from "@earendil-works/pi-ai";
2
+ import { defineTool } from "@earendil-works/pi-coding-agent";
3
+ const maxLabelLength = 120;
4
+ export function normalizeBookmarkLabel(value) {
5
+ const normalized = value.trim();
6
+ if (normalized.length < 1 || normalized.length > maxLabelLength)
7
+ throw new Error("Bookmark label must contain 1-120 characters");
8
+ return normalized;
9
+ }
10
+ function record(value) {
11
+ return value !== null && typeof value === "object" && !Array.isArray(value) ? value : undefined;
12
+ }
13
+ export function listSessionBookmarks(entries) {
14
+ const labels = new Map();
15
+ for (const entry of entries) {
16
+ const item = record(entry);
17
+ if (item?.type !== "label" || typeof item.targetId !== "string")
18
+ continue;
19
+ if (typeof item.label === "string" && item.label.trim() !== "")
20
+ labels.set(item.targetId, item.label.trim());
21
+ else
22
+ labels.delete(item.targetId);
23
+ }
24
+ return [...labels].map(([entryId, label]) => ({ id: entryId, entryId, label }));
25
+ }
26
+ export default {
27
+ name: "pi-session-bookmarks",
28
+ inject: ["piSession", "piPluginUi", "piTools"],
29
+ apply(context) {
30
+ const manager = context.piSession.manager;
31
+ const readBookmarks = () => listSessionBookmarks(manager.getEntries());
32
+ const unregister = context.piTools.register(defineTool({
33
+ name: "session_bookmarks",
34
+ label: "Session bookmarks",
35
+ description: "Add, list, or remove labels on entries in the current Pi session using native session history.",
36
+ promptSnippet: "bookmark an important point in the current session",
37
+ parameters: Type.Object({
38
+ action: Type.Union([Type.Literal("add"), Type.Literal("list"), Type.Literal("remove")]),
39
+ label: Type.Optional(Type.String({ description: "Bookmark label for add" })),
40
+ entryId: Type.Optional(Type.String({ description: "Native session entry id for add" })),
41
+ bookmarkId: Type.Optional(Type.String({ description: "Bookmark id for remove" })),
42
+ }),
43
+ execute(_toolCallId, params) {
44
+ return Promise.resolve().then(() => {
45
+ if (params.action === "add") {
46
+ const label = normalizeBookmarkLabel(params.label ?? "");
47
+ const entryId = params.entryId?.trim();
48
+ if (entryId === undefined || entryId === "")
49
+ throw new Error("Bookmark entryId is required when adding a bookmark");
50
+ manager.appendLabelChange(entryId, label);
51
+ return { content: [{ type: "text", text: `Bookmark added: ${label}` }], details: { bookmarks: readBookmarks() } };
52
+ }
53
+ if (params.action === "remove") {
54
+ const bookmarkId = params.bookmarkId?.trim();
55
+ if (bookmarkId === undefined || bookmarkId === "")
56
+ throw new Error("Bookmark bookmarkId is required when removing a bookmark");
57
+ const bookmark = readBookmarks().find((item) => item.id === bookmarkId);
58
+ if (bookmark === undefined)
59
+ throw new Error("Bookmark was not found");
60
+ manager.appendLabelChange(bookmark.entryId, undefined);
61
+ }
62
+ const bookmarks = readBookmarks();
63
+ return {
64
+ content: [{ type: "text", text: bookmarks.map((bookmark) => `${bookmark.id}: ${bookmark.label}`).join("\n") || "No bookmarks found." }],
65
+ details: { bookmarks },
66
+ };
67
+ });
68
+ },
69
+ }));
70
+ const disposePanel = context.piPluginUi.register({
71
+ id: "session-bookmarks-panel",
72
+ pluginId: "@pi-harness/core/plugins/session-bookmarks",
73
+ title: "Session Bookmarks",
74
+ description: "为重要会话节点添加原生持久化标签,不修改已有消息内容。",
75
+ icon: "☆",
76
+ read: () => {
77
+ const bookmarks = readBookmarks();
78
+ return { bookmarks, total: bookmarks.length };
79
+ },
80
+ });
81
+ context.effect(() => () => {
82
+ unregister();
83
+ disposePanel();
84
+ });
85
+ },
86
+ };
87
+ //# sourceMappingURL=session-bookmarks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-bookmarks.js","sourceRoot":"","sources":["../../src/plugins/session-bookmarks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { Context } from "@deepseek-ai/cordis";
2
+ declare const bridgeVersion: 1;
3
+ export interface BridgeSource {
4
+ sessionId: string;
5
+ cwd: string;
6
+ model?: {
7
+ provider: string;
8
+ modelId: string;
9
+ };
10
+ }
11
+ export interface BridgeMessage {
12
+ role: "user" | "assistant" | "toolResult" | "system" | "other";
13
+ text: string;
14
+ hasImages: boolean;
15
+ }
16
+ export interface BridgePackage {
17
+ version: typeof bridgeVersion;
18
+ source: BridgeSource;
19
+ createdAt: string;
20
+ messageCount: number;
21
+ messages: BridgeMessage[];
22
+ unresolvedAttachments: string[];
23
+ }
24
+ export interface HandoffPreview {
25
+ goal: string;
26
+ currentState: string;
27
+ decisions: string[];
28
+ keyFiles: string[];
29
+ nextStep: string;
30
+ }
31
+ type MessageInput = {
32
+ role?: unknown;
33
+ content?: unknown;
34
+ };
35
+ export declare function buildHandoffPreview(packageValue: BridgePackage): HandoffPreview;
36
+ export declare function buildBridgePackage(source: BridgeSource, input: readonly MessageInput[]): BridgePackage;
37
+ export declare function parseBridgePackage(raw: string): BridgePackage;
38
+ declare const _default: {
39
+ name: string;
40
+ inject: string[];
41
+ apply(context: Context): void;
42
+ };
43
+ export default _default;
44
+ //# sourceMappingURL=session-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-bridge.d.ts","sourceRoot":"","sources":["../../src/plugins/session-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAInD,QAAA,MAAM,aAAa,EAAG,CAAU,CAAC;AAOjC,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,aAAa,CAAC;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,KAAK,YAAY,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AA8C1D,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,aAAa,GAAG,cAAc,CAW/E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,aAAa,CAqBtG;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAqD7D;;;;mBAwBgB,OAAO;;AAHxB,wBAsGE"}