pi-harness-runtime 1.1.5 → 1.1.7

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 (432) hide show
  1. package/package.json +3 -2
  2. package/packages/a2a-adapter/dist/discovery.d.ts +52 -0
  3. package/packages/a2a-adapter/dist/discovery.d.ts.map +1 -0
  4. package/packages/a2a-adapter/dist/discovery.js +76 -0
  5. package/packages/a2a-adapter/dist/discovery.js.map +1 -0
  6. package/packages/architecture-generator/dist/adr.d.ts +15 -0
  7. package/packages/architecture-generator/dist/adr.d.ts.map +1 -0
  8. package/packages/architecture-generator/dist/adr.js +42 -0
  9. package/packages/architecture-generator/dist/adr.js.map +1 -0
  10. package/packages/architecture-generator/dist/index.d.ts +9 -0
  11. package/packages/architecture-generator/dist/index.d.ts.map +1 -0
  12. package/packages/architecture-generator/dist/index.js +9 -0
  13. package/packages/architecture-generator/dist/index.js.map +1 -0
  14. package/packages/architecture-generator/dist/mermaid.d.ts +30 -0
  15. package/packages/architecture-generator/dist/mermaid.d.ts.map +1 -0
  16. package/packages/architecture-generator/dist/mermaid.js +58 -0
  17. package/packages/architecture-generator/dist/mermaid.js.map +1 -0
  18. package/packages/architecture-generator/dist/types.d.ts +30 -0
  19. package/packages/architecture-generator/dist/types.d.ts.map +1 -0
  20. package/packages/architecture-generator/dist/types.js +7 -0
  21. package/packages/architecture-generator/dist/types.js.map +1 -0
  22. package/packages/auth/dist/minimax-browser-auth.d.ts +89 -0
  23. package/packages/auth/dist/minimax-browser-auth.d.ts.map +1 -0
  24. package/packages/auth/dist/minimax-browser-auth.js +890 -0
  25. package/packages/auth/dist/minimax-browser-auth.js.map +1 -0
  26. package/packages/auth/dist/run-minimax-auth.d.ts +19 -0
  27. package/packages/auth/dist/run-minimax-auth.d.ts.map +1 -0
  28. package/packages/auth/dist/run-minimax-auth.js +112 -0
  29. package/packages/auth/dist/run-minimax-auth.js.map +1 -0
  30. package/packages/clipboard/dist/src/clipboard.d.ts +11 -0
  31. package/packages/clipboard/dist/src/clipboard.d.ts.map +1 -0
  32. package/packages/clipboard/dist/src/clipboard.js +51 -0
  33. package/packages/clipboard/dist/src/clipboard.js.map +1 -0
  34. package/packages/clipboard/dist/src/copy-sync.d.ts +27 -0
  35. package/packages/clipboard/dist/src/copy-sync.d.ts.map +1 -0
  36. package/packages/clipboard/dist/src/copy-sync.js +212 -0
  37. package/packages/clipboard/dist/src/copy-sync.js.map +1 -0
  38. package/packages/clipboard/dist/src/gist-relay.d.ts +48 -0
  39. package/packages/clipboard/dist/src/gist-relay.d.ts.map +1 -0
  40. package/packages/clipboard/dist/src/gist-relay.js +186 -0
  41. package/packages/clipboard/dist/src/gist-relay.js.map +1 -0
  42. package/packages/clipboard/dist/src/github-login.d.ts +16 -0
  43. package/packages/clipboard/dist/src/github-login.d.ts.map +1 -0
  44. package/packages/clipboard/dist/src/github-login.js +69 -0
  45. package/packages/clipboard/dist/src/github-login.js.map +1 -0
  46. package/packages/clipboard/dist/src/index.d.ts +5 -0
  47. package/packages/clipboard/dist/src/index.d.ts.map +1 -0
  48. package/packages/clipboard/dist/src/index.js +4 -0
  49. package/packages/clipboard/dist/src/index.js.map +1 -0
  50. package/packages/clipboard/dist/src/paste-bridge.d.ts +19 -0
  51. package/packages/clipboard/dist/src/paste-bridge.d.ts.map +1 -0
  52. package/packages/clipboard/dist/src/paste-bridge.js +78 -0
  53. package/packages/clipboard/dist/src/paste-bridge.js.map +1 -0
  54. package/packages/clipboard/dist/src/types.d.ts +13 -0
  55. package/packages/clipboard/dist/src/types.d.ts.map +1 -0
  56. package/packages/clipboard/dist/src/types.js +5 -0
  57. package/packages/clipboard/dist/src/types.js.map +1 -0
  58. package/packages/clipboard-plugin/dist/index.d.ts +28 -0
  59. package/packages/clipboard-plugin/dist/index.d.ts.map +1 -0
  60. package/packages/clipboard-plugin/dist/index.js +64 -0
  61. package/packages/clipboard-plugin/dist/index.js.map +1 -0
  62. package/packages/clipboard-plugin/dist/types.d.ts +30 -0
  63. package/packages/clipboard-plugin/dist/types.d.ts.map +1 -0
  64. package/packages/clipboard-plugin/dist/types.js +5 -0
  65. package/packages/clipboard-plugin/dist/types.js.map +1 -0
  66. package/packages/context-discovery/dist/src/discover.d.ts +3 -0
  67. package/packages/context-discovery/dist/src/discover.d.ts.map +1 -0
  68. package/packages/context-discovery/dist/src/discover.js +42 -0
  69. package/packages/context-discovery/dist/src/discover.js.map +1 -0
  70. package/packages/context-discovery/dist/src/discovery.d.ts +28 -0
  71. package/packages/context-discovery/dist/src/discovery.d.ts.map +1 -0
  72. package/packages/context-discovery/dist/src/discovery.js +21 -0
  73. package/packages/context-discovery/dist/src/discovery.js.map +1 -0
  74. package/packages/context-discovery/dist/src/index.d.ts +3 -0
  75. package/packages/context-discovery/dist/src/index.d.ts.map +1 -0
  76. package/packages/context-discovery/dist/src/index.js +2 -0
  77. package/packages/context-discovery/dist/src/index.js.map +1 -0
  78. package/packages/context-discovery/dist/src/types.d.ts +16 -0
  79. package/packages/context-discovery/dist/src/types.d.ts.map +1 -0
  80. package/packages/context-discovery/dist/src/types.js +2 -0
  81. package/packages/context-discovery/dist/src/types.js.map +1 -0
  82. package/packages/dependency-analyzer/dist/src/analyzer.d.ts +17 -0
  83. package/packages/dependency-analyzer/dist/src/analyzer.d.ts.map +1 -0
  84. package/packages/dependency-analyzer/dist/src/analyzer.js +119 -0
  85. package/packages/dependency-analyzer/dist/src/analyzer.js.map +1 -0
  86. package/packages/dependency-analyzer/dist/src/imports.d.ts +12 -0
  87. package/packages/dependency-analyzer/dist/src/imports.d.ts.map +1 -0
  88. package/packages/dependency-analyzer/dist/src/imports.js +73 -0
  89. package/packages/dependency-analyzer/dist/src/imports.js.map +1 -0
  90. package/packages/dependency-analyzer/dist/src/index.d.ts +4 -0
  91. package/packages/dependency-analyzer/dist/src/index.d.ts.map +1 -0
  92. package/packages/dependency-analyzer/dist/src/index.js +3 -0
  93. package/packages/dependency-analyzer/dist/src/index.js.map +1 -0
  94. package/packages/dependency-analyzer/dist/src/types.d.ts +28 -0
  95. package/packages/dependency-analyzer/dist/src/types.d.ts.map +1 -0
  96. package/packages/dependency-analyzer/dist/src/types.js +5 -0
  97. package/packages/dependency-analyzer/dist/src/types.js.map +1 -0
  98. package/packages/event-bus/dist/src/bus.d.ts +15 -0
  99. package/packages/event-bus/dist/src/bus.d.ts.map +1 -0
  100. package/packages/event-bus/dist/src/bus.js +98 -0
  101. package/packages/event-bus/dist/src/bus.js.map +1 -0
  102. package/packages/event-bus/dist/src/herdr-bus.d.ts +121 -0
  103. package/packages/event-bus/dist/src/herdr-bus.d.ts.map +1 -0
  104. package/packages/event-bus/dist/src/herdr-bus.js +324 -0
  105. package/packages/event-bus/dist/src/herdr-bus.js.map +1 -0
  106. package/packages/event-bus/dist/src/index.d.ts +6 -0
  107. package/packages/event-bus/dist/src/index.d.ts.map +1 -0
  108. package/packages/event-bus/dist/src/index.js +4 -0
  109. package/packages/event-bus/dist/src/index.js.map +1 -0
  110. package/packages/event-bus/dist/src/types.d.ts +27 -0
  111. package/packages/event-bus/dist/src/types.d.ts.map +1 -0
  112. package/packages/event-bus/dist/src/types.js +10 -0
  113. package/packages/event-bus/dist/src/types.js.map +1 -0
  114. package/packages/event-store/dist/src/index.d.ts +3 -0
  115. package/packages/event-store/dist/src/index.d.ts.map +1 -0
  116. package/packages/event-store/dist/src/index.js +2 -0
  117. package/packages/event-store/dist/src/index.js.map +1 -0
  118. package/packages/event-store/dist/src/store.d.ts +15 -0
  119. package/packages/event-store/dist/src/store.d.ts.map +1 -0
  120. package/packages/event-store/dist/src/store.js +139 -0
  121. package/packages/event-store/dist/src/store.js.map +1 -0
  122. package/packages/event-store/dist/src/types.d.ts +48 -0
  123. package/packages/event-store/dist/src/types.d.ts.map +1 -0
  124. package/packages/event-store/dist/src/types.js +5 -0
  125. package/packages/event-store/dist/src/types.js.map +1 -0
  126. package/packages/intent-analyzer/dist/src/analyzer.d.ts +13 -0
  127. package/packages/intent-analyzer/dist/src/analyzer.d.ts.map +1 -0
  128. package/packages/intent-analyzer/dist/src/analyzer.js +239 -0
  129. package/packages/intent-analyzer/dist/src/analyzer.js.map +1 -0
  130. package/packages/intent-analyzer/dist/src/index.d.ts +3 -0
  131. package/packages/intent-analyzer/dist/src/index.d.ts.map +1 -0
  132. package/packages/intent-analyzer/dist/src/index.js +2 -0
  133. package/packages/intent-analyzer/dist/src/index.js.map +1 -0
  134. package/packages/intent-analyzer/dist/src/types.d.ts +26 -0
  135. package/packages/intent-analyzer/dist/src/types.d.ts.map +1 -0
  136. package/packages/intent-analyzer/dist/src/types.js +7 -0
  137. package/packages/intent-analyzer/dist/src/types.js.map +1 -0
  138. package/packages/knowledge-graph/dist/graph-extractor.d.ts +27 -0
  139. package/packages/knowledge-graph/dist/graph-extractor.d.ts.map +1 -0
  140. package/packages/knowledge-graph/dist/graph-extractor.js +276 -0
  141. package/packages/knowledge-graph/dist/graph-extractor.js.map +1 -0
  142. package/packages/knowledge-graph/dist/index.d.ts +27 -0
  143. package/packages/knowledge-graph/dist/index.d.ts.map +1 -0
  144. package/packages/knowledge-graph/dist/index.js +27 -0
  145. package/packages/knowledge-graph/dist/index.js.map +1 -0
  146. package/packages/knowledge-graph/dist/mcp-client.d.ts +38 -0
  147. package/packages/knowledge-graph/dist/mcp-client.d.ts.map +1 -0
  148. package/packages/knowledge-graph/dist/mcp-client.js +157 -0
  149. package/packages/knowledge-graph/dist/mcp-client.js.map +1 -0
  150. package/packages/knowledge-graph/dist/provenance-linker.d.ts +19 -0
  151. package/packages/knowledge-graph/dist/provenance-linker.d.ts.map +1 -0
  152. package/packages/knowledge-graph/dist/provenance-linker.js +91 -0
  153. package/packages/knowledge-graph/dist/provenance-linker.js.map +1 -0
  154. package/packages/knowledge-graph/dist/types.d.ts +53 -0
  155. package/packages/knowledge-graph/dist/types.d.ts.map +1 -0
  156. package/packages/knowledge-graph/dist/types.js +7 -0
  157. package/packages/knowledge-graph/dist/types.js.map +1 -0
  158. package/packages/knowledge-retrieval/dist/index.d.ts +8 -0
  159. package/packages/knowledge-retrieval/dist/index.d.ts.map +1 -0
  160. package/packages/knowledge-retrieval/dist/index.js +7 -0
  161. package/packages/knowledge-retrieval/dist/index.js.map +1 -0
  162. package/packages/knowledge-retrieval/dist/mcp-client.d.ts +61 -0
  163. package/packages/knowledge-retrieval/dist/mcp-client.d.ts.map +1 -0
  164. package/packages/knowledge-retrieval/dist/mcp-client.js +132 -0
  165. package/packages/knowledge-retrieval/dist/mcp-client.js.map +1 -0
  166. package/packages/knowledge-retrieval/dist/types.d.ts +105 -0
  167. package/packages/knowledge-retrieval/dist/types.d.ts.map +1 -0
  168. package/packages/knowledge-retrieval/dist/types.js +7 -0
  169. package/packages/knowledge-retrieval/dist/types.js.map +1 -0
  170. package/packages/milestone-manager/dist/engine.d.ts +27 -0
  171. package/packages/milestone-manager/dist/engine.d.ts.map +1 -0
  172. package/packages/milestone-manager/dist/engine.js +78 -0
  173. package/packages/milestone-manager/dist/engine.js.map +1 -0
  174. package/packages/milestone-manager/dist/index.d.ts +6 -0
  175. package/packages/milestone-manager/dist/index.d.ts.map +1 -0
  176. package/packages/milestone-manager/dist/index.js +6 -0
  177. package/packages/milestone-manager/dist/index.js.map +1 -0
  178. package/packages/milestone-manager/dist/types.d.ts +25 -0
  179. package/packages/milestone-manager/dist/types.d.ts.map +1 -0
  180. package/packages/milestone-manager/dist/types.js +7 -0
  181. package/packages/milestone-manager/dist/types.js.map +1 -0
  182. package/packages/notification/dist/adapters/email-adapter.d.ts +17 -0
  183. package/packages/notification/dist/adapters/email-adapter.d.ts.map +1 -0
  184. package/packages/notification/dist/adapters/email-adapter.js +89 -0
  185. package/packages/notification/dist/adapters/email-adapter.js.map +1 -0
  186. package/packages/notification/dist/adapters/line-adapter.d.ts +17 -0
  187. package/packages/notification/dist/adapters/line-adapter.d.ts.map +1 -0
  188. package/packages/notification/dist/adapters/line-adapter.js +99 -0
  189. package/packages/notification/dist/adapters/line-adapter.js.map +1 -0
  190. package/packages/notification/dist/adapters/ntfy-adapter.d.ts +17 -0
  191. package/packages/notification/dist/adapters/ntfy-adapter.d.ts.map +1 -0
  192. package/packages/notification/dist/adapters/ntfy-adapter.js +84 -0
  193. package/packages/notification/dist/adapters/ntfy-adapter.js.map +1 -0
  194. package/packages/notification/dist/adapters/telegram-adapter.d.ts +17 -0
  195. package/packages/notification/dist/adapters/telegram-adapter.d.ts.map +1 -0
  196. package/packages/notification/dist/adapters/telegram-adapter.js +88 -0
  197. package/packages/notification/dist/adapters/telegram-adapter.js.map +1 -0
  198. package/packages/notification/dist/adapters/webhook-adapter.d.ts +15 -0
  199. package/packages/notification/dist/adapters/webhook-adapter.d.ts.map +1 -0
  200. package/packages/notification/dist/adapters/webhook-adapter.js +64 -0
  201. package/packages/notification/dist/adapters/webhook-adapter.js.map +1 -0
  202. package/packages/notification/dist/base-adapter.d.ts +36 -0
  203. package/packages/notification/dist/base-adapter.d.ts.map +1 -0
  204. package/packages/notification/dist/base-adapter.js +39 -0
  205. package/packages/notification/dist/base-adapter.js.map +1 -0
  206. package/packages/notification/dist/index.d.ts +10 -0
  207. package/packages/notification/dist/index.d.ts.map +1 -0
  208. package/packages/notification/dist/index.js +10 -0
  209. package/packages/notification/dist/index.js.map +1 -0
  210. package/packages/notification/dist/notification-center.d.ts +46 -0
  211. package/packages/notification/dist/notification-center.d.ts.map +1 -0
  212. package/packages/notification/dist/notification-center.js +232 -0
  213. package/packages/notification/dist/notification-center.js.map +1 -0
  214. package/packages/notification/dist/types.d.ts +69 -0
  215. package/packages/notification/dist/types.d.ts.map +1 -0
  216. package/packages/notification/dist/types.js +7 -0
  217. package/packages/notification/dist/types.js.map +1 -0
  218. package/packages/okf-indexer/dist/cli.d.ts +8 -0
  219. package/packages/okf-indexer/dist/cli.d.ts.map +1 -0
  220. package/packages/okf-indexer/dist/cli.js +23 -0
  221. package/packages/okf-indexer/dist/cli.js.map +1 -0
  222. package/packages/okf-indexer/dist/indexer.d.ts +55 -0
  223. package/packages/okf-indexer/dist/indexer.d.ts.map +1 -0
  224. package/packages/okf-indexer/dist/indexer.js +147 -0
  225. package/packages/okf-indexer/dist/indexer.js.map +1 -0
  226. package/packages/project-bootstrap/dist/bootstrap.d.ts +23 -0
  227. package/packages/project-bootstrap/dist/bootstrap.d.ts.map +1 -0
  228. package/packages/project-bootstrap/dist/bootstrap.js +128 -0
  229. package/packages/project-bootstrap/dist/bootstrap.js.map +1 -0
  230. package/packages/project-bootstrap/dist/frappe.d.ts +8 -0
  231. package/packages/project-bootstrap/dist/frappe.d.ts.map +1 -0
  232. package/packages/project-bootstrap/dist/frappe.js +82 -0
  233. package/packages/project-bootstrap/dist/frappe.js.map +1 -0
  234. package/packages/project-bootstrap/dist/index.d.ts +27 -0
  235. package/packages/project-bootstrap/dist/index.d.ts.map +1 -0
  236. package/packages/project-bootstrap/dist/index.js +27 -0
  237. package/packages/project-bootstrap/dist/index.js.map +1 -0
  238. package/packages/project-bootstrap/dist/minimal.d.ts +8 -0
  239. package/packages/project-bootstrap/dist/minimal.d.ts.map +1 -0
  240. package/packages/project-bootstrap/dist/minimal.js +35 -0
  241. package/packages/project-bootstrap/dist/minimal.js.map +1 -0
  242. package/packages/project-bootstrap/dist/types.d.ts +61 -0
  243. package/packages/project-bootstrap/dist/types.d.ts.map +1 -0
  244. package/packages/project-bootstrap/dist/types.js +7 -0
  245. package/packages/project-bootstrap/dist/types.js.map +1 -0
  246. package/packages/project-bootstrap/dist/typescript.d.ts +8 -0
  247. package/packages/project-bootstrap/dist/typescript.d.ts.map +1 -0
  248. package/packages/project-bootstrap/dist/typescript.js +103 -0
  249. package/packages/project-bootstrap/dist/typescript.js.map +1 -0
  250. package/packages/projection-engine/dist/src/engine.d.ts +61 -0
  251. package/packages/projection-engine/dist/src/engine.d.ts.map +1 -0
  252. package/packages/projection-engine/dist/src/engine.js +87 -0
  253. package/packages/projection-engine/dist/src/engine.js.map +1 -0
  254. package/packages/projection-engine/dist/src/index.d.ts +2 -0
  255. package/packages/projection-engine/dist/src/index.d.ts.map +1 -0
  256. package/packages/projection-engine/dist/src/index.js +2 -0
  257. package/packages/projection-engine/dist/src/index.js.map +1 -0
  258. package/packages/projection-engine/dist/src/project.d.ts +3 -0
  259. package/packages/projection-engine/dist/src/project.d.ts.map +1 -0
  260. package/packages/projection-engine/dist/src/project.js +24 -0
  261. package/packages/projection-engine/dist/src/project.js.map +1 -0
  262. package/packages/projection-engine/dist/src/types.d.ts +55 -0
  263. package/packages/projection-engine/dist/src/types.d.ts.map +1 -0
  264. package/packages/projection-engine/dist/src/types.js +5 -0
  265. package/packages/projection-engine/dist/src/types.js.map +1 -0
  266. package/packages/providers/dist/adapters.d.ts +133 -0
  267. package/packages/providers/dist/adapters.d.ts.map +1 -0
  268. package/packages/providers/dist/adapters.js +236 -0
  269. package/packages/providers/dist/adapters.js.map +1 -0
  270. package/packages/providers/dist/deepagents-adapter.d.ts +78 -0
  271. package/packages/providers/dist/deepagents-adapter.d.ts.map +1 -0
  272. package/packages/providers/dist/deepagents-adapter.js +323 -0
  273. package/packages/providers/dist/deepagents-adapter.js.map +1 -0
  274. package/packages/providers/dist/glm-usage.d.ts +102 -0
  275. package/packages/providers/dist/glm-usage.d.ts.map +1 -0
  276. package/packages/providers/dist/glm-usage.js +197 -0
  277. package/packages/providers/dist/glm-usage.js.map +1 -0
  278. package/packages/providers/dist/index.d.ts +11 -0
  279. package/packages/providers/dist/index.d.ts.map +1 -0
  280. package/packages/providers/dist/index.js +11 -0
  281. package/packages/providers/dist/index.js.map +1 -0
  282. package/packages/providers/dist/openai-usage.d.ts +103 -0
  283. package/packages/providers/dist/openai-usage.d.ts.map +1 -0
  284. package/packages/providers/dist/openai-usage.js +208 -0
  285. package/packages/providers/dist/openai-usage.js.map +1 -0
  286. package/packages/providers/dist/provider-id.d.ts +46 -0
  287. package/packages/providers/dist/provider-id.d.ts.map +1 -0
  288. package/packages/providers/dist/provider-id.js +113 -0
  289. package/packages/providers/dist/provider-id.js.map +1 -0
  290. package/packages/quota-manager/dist/examples/tui-usage-integration.d.ts +35 -0
  291. package/packages/quota-manager/dist/examples/tui-usage-integration.d.ts.map +1 -0
  292. package/packages/quota-manager/dist/examples/tui-usage-integration.js +73 -0
  293. package/packages/quota-manager/dist/examples/tui-usage-integration.js.map +1 -0
  294. package/packages/quota-manager/dist/index.d.ts +8 -0
  295. package/packages/quota-manager/dist/index.d.ts.map +1 -0
  296. package/packages/quota-manager/dist/index.js +8 -0
  297. package/packages/quota-manager/dist/index.js.map +1 -0
  298. package/packages/quota-manager/dist/quota-manager.d.ts +70 -0
  299. package/packages/quota-manager/dist/quota-manager.d.ts.map +1 -0
  300. package/packages/quota-manager/dist/quota-manager.js +260 -0
  301. package/packages/quota-manager/dist/quota-manager.js.map +1 -0
  302. package/packages/quota-manager/dist/tui-usage-monitor.d.ts +96 -0
  303. package/packages/quota-manager/dist/tui-usage-monitor.d.ts.map +1 -0
  304. package/packages/quota-manager/dist/tui-usage-monitor.js +268 -0
  305. package/packages/quota-manager/dist/tui-usage-monitor.js.map +1 -0
  306. package/packages/runtime/dist/command-executor.d.ts +129 -0
  307. package/packages/runtime/dist/command-executor.d.ts.map +1 -0
  308. package/packages/runtime/dist/command-executor.js +383 -0
  309. package/packages/runtime/dist/command-executor.js.map +1 -0
  310. package/packages/runtime/dist/index.d.ts +11 -0
  311. package/packages/runtime/dist/index.d.ts.map +1 -0
  312. package/packages/runtime/dist/index.js +11 -0
  313. package/packages/runtime/dist/index.js.map +1 -0
  314. package/packages/runtime/dist/local-runtime-agent.d.ts +111 -0
  315. package/packages/runtime/dist/local-runtime-agent.d.ts.map +1 -0
  316. package/packages/runtime/dist/local-runtime-agent.js +356 -0
  317. package/packages/runtime/dist/local-runtime-agent.js.map +1 -0
  318. package/packages/runtime/dist/policy-engine.d.ts +203 -0
  319. package/packages/runtime/dist/policy-engine.d.ts.map +1 -0
  320. package/packages/runtime/dist/policy-engine.js +592 -0
  321. package/packages/runtime/dist/policy-engine.js.map +1 -0
  322. package/packages/runtime/dist/runtime-api.d.ts +137 -0
  323. package/packages/runtime/dist/runtime-api.d.ts.map +1 -0
  324. package/packages/runtime/dist/runtime-api.js +454 -0
  325. package/packages/runtime/dist/runtime-api.js.map +1 -0
  326. package/packages/runtime/dist/workspace-manager.d.ts +162 -0
  327. package/packages/runtime/dist/workspace-manager.d.ts.map +1 -0
  328. package/packages/runtime/dist/workspace-manager.js +451 -0
  329. package/packages/runtime/dist/workspace-manager.js.map +1 -0
  330. package/packages/session-api/dist/src/api.d.ts +83 -0
  331. package/packages/session-api/dist/src/api.d.ts.map +1 -0
  332. package/packages/session-api/dist/src/api.js +49 -0
  333. package/packages/session-api/dist/src/api.js.map +1 -0
  334. package/packages/session-api/dist/src/index.d.ts +2 -0
  335. package/packages/session-api/dist/src/index.d.ts.map +1 -0
  336. package/packages/session-api/dist/src/index.js +2 -0
  337. package/packages/session-api/dist/src/index.js.map +1 -0
  338. package/packages/session-api/dist/src/types.d.ts +22 -0
  339. package/packages/session-api/dist/src/types.d.ts.map +1 -0
  340. package/packages/session-api/dist/src/types.js +5 -0
  341. package/packages/session-api/dist/src/types.js.map +1 -0
  342. package/packages/session-export/dist/src/exporter.d.ts +28 -0
  343. package/packages/session-export/dist/src/exporter.d.ts.map +1 -0
  344. package/packages/session-export/dist/src/exporter.js +42 -0
  345. package/packages/session-export/dist/src/exporter.js.map +1 -0
  346. package/packages/session-export/dist/src/index.d.ts +2 -0
  347. package/packages/session-export/dist/src/index.d.ts.map +1 -0
  348. package/packages/session-export/dist/src/index.js +2 -0
  349. package/packages/session-export/dist/src/index.js.map +1 -0
  350. package/packages/session-export/dist/src/types.d.ts +20 -0
  351. package/packages/session-export/dist/src/types.d.ts.map +1 -0
  352. package/packages/session-export/dist/src/types.js +5 -0
  353. package/packages/session-export/dist/src/types.js.map +1 -0
  354. package/packages/subscription-engine/dist/src/engine.d.ts +13 -0
  355. package/packages/subscription-engine/dist/src/engine.d.ts.map +1 -0
  356. package/packages/subscription-engine/dist/src/engine.js +40 -0
  357. package/packages/subscription-engine/dist/src/engine.js.map +1 -0
  358. package/packages/subscription-engine/dist/src/index.d.ts +2 -0
  359. package/packages/subscription-engine/dist/src/index.d.ts.map +1 -0
  360. package/packages/subscription-engine/dist/src/index.js +2 -0
  361. package/packages/subscription-engine/dist/src/index.js.map +1 -0
  362. package/packages/subscription-engine/dist/src/subscriptions.d.ts +19 -0
  363. package/packages/subscription-engine/dist/src/subscriptions.d.ts.map +1 -0
  364. package/packages/subscription-engine/dist/src/subscriptions.js +39 -0
  365. package/packages/subscription-engine/dist/src/subscriptions.js.map +1 -0
  366. package/packages/subscription-engine/dist/src/types.d.ts +24 -0
  367. package/packages/subscription-engine/dist/src/types.d.ts.map +1 -0
  368. package/packages/subscription-engine/dist/src/types.js +5 -0
  369. package/packages/subscription-engine/dist/src/types.js.map +1 -0
  370. package/packages/tencentdb-sync/dist/cli.d.ts +7 -0
  371. package/packages/tencentdb-sync/dist/cli.d.ts.map +1 -0
  372. package/packages/tencentdb-sync/dist/cli.js +311 -0
  373. package/packages/tencentdb-sync/dist/cli.js.map +1 -0
  374. package/packages/tencentdb-sync/dist/client.d.ts +141 -0
  375. package/packages/tencentdb-sync/dist/client.d.ts.map +1 -0
  376. package/packages/tencentdb-sync/dist/client.js +166 -0
  377. package/packages/tencentdb-sync/dist/client.js.map +1 -0
  378. package/packages/tencentdb-sync/dist/config.d.ts +32 -0
  379. package/packages/tencentdb-sync/dist/config.d.ts.map +1 -0
  380. package/packages/tencentdb-sync/dist/config.js +102 -0
  381. package/packages/tencentdb-sync/dist/config.js.map +1 -0
  382. package/packages/tencentdb-sync/dist/index.d.ts +9 -0
  383. package/packages/tencentdb-sync/dist/index.d.ts.map +1 -0
  384. package/packages/tencentdb-sync/dist/index.js +8 -0
  385. package/packages/tencentdb-sync/dist/index.js.map +1 -0
  386. package/packages/types/src/agent-worker-types.js +41 -0
  387. package/packages/types/src/ai-providers.js +66 -0
  388. package/packages/types/src/runtime-types.js +3 -0
  389. package/packages/workflow-events/dist/src/events.d.ts +38 -0
  390. package/packages/workflow-events/dist/src/events.d.ts.map +1 -0
  391. package/packages/workflow-events/dist/src/events.js +55 -0
  392. package/packages/workflow-events/dist/src/events.js.map +1 -0
  393. package/packages/workflow-events/dist/src/index.d.ts +2 -0
  394. package/packages/workflow-events/dist/src/index.d.ts.map +1 -0
  395. package/packages/workflow-events/dist/src/index.js +2 -0
  396. package/packages/workflow-events/dist/src/index.js.map +1 -0
  397. package/packages/workflow-events/dist/src/pipeline.d.ts +21 -0
  398. package/packages/workflow-events/dist/src/pipeline.d.ts.map +1 -0
  399. package/packages/workflow-events/dist/src/pipeline.js +36 -0
  400. package/packages/workflow-events/dist/src/pipeline.js.map +1 -0
  401. package/packages/workflow-events/dist/src/types.d.ts +110 -0
  402. package/packages/workflow-events/dist/src/types.d.ts.map +1 -0
  403. package/packages/workflow-events/dist/src/types.js +5 -0
  404. package/packages/workflow-events/dist/src/types.js.map +1 -0
  405. package/packages/workspace-scanner/dist/src/detect.d.ts +3 -0
  406. package/packages/workspace-scanner/dist/src/detect.d.ts.map +1 -0
  407. package/packages/workspace-scanner/dist/src/detect.js +60 -0
  408. package/packages/workspace-scanner/dist/src/detect.js.map +1 -0
  409. package/packages/workspace-scanner/dist/src/git.d.ts +7 -0
  410. package/packages/workspace-scanner/dist/src/git.d.ts.map +1 -0
  411. package/packages/workspace-scanner/dist/src/git.js +75 -0
  412. package/packages/workspace-scanner/dist/src/git.js.map +1 -0
  413. package/packages/workspace-scanner/dist/src/index.d.ts +5 -0
  414. package/packages/workspace-scanner/dist/src/index.d.ts.map +1 -0
  415. package/packages/workspace-scanner/dist/src/index.js +4 -0
  416. package/packages/workspace-scanner/dist/src/index.js.map +1 -0
  417. package/packages/workspace-scanner/dist/src/scanner.d.ts +11 -0
  418. package/packages/workspace-scanner/dist/src/scanner.d.ts.map +1 -0
  419. package/packages/workspace-scanner/dist/src/scanner.js +59 -0
  420. package/packages/workspace-scanner/dist/src/scanner.js.map +1 -0
  421. package/packages/workspace-scanner/dist/src/types.d.ts +35 -0
  422. package/packages/workspace-scanner/dist/src/types.d.ts.map +1 -0
  423. package/packages/workspace-scanner/dist/src/types.js +5 -0
  424. package/packages/workspace-scanner/dist/src/types.js.map +1 -0
  425. package/packages/worktree/dist/index.d.ts +7 -0
  426. package/packages/worktree/dist/index.d.ts.map +1 -0
  427. package/packages/worktree/dist/index.js +7 -0
  428. package/packages/worktree/dist/index.js.map +1 -0
  429. package/packages/worktree/dist/worktree.d.ts +88 -0
  430. package/packages/worktree/dist/worktree.d.ts.map +1 -0
  431. package/packages/worktree/dist/worktree.js +239 -0
  432. package/packages/worktree/dist/worktree.js.map +1 -0
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Workspace Manager — RFC-0026
3
+ *
4
+ * Manages workspace directories, worktrees, and cleanup for the harness runtime.
5
+ *
6
+ * Features:
7
+ * - Workspace lifecycle management
8
+ * - Worktree creation and cleanup
9
+ * - Disk usage tracking
10
+ * - Automatic cleanup policies
11
+ * - Workspace snapshots
12
+ */
13
+ import { EventEmitter } from "node:events";
14
+ export interface Workspace {
15
+ id: string;
16
+ path: string;
17
+ createdAt: string;
18
+ lastAccessedAt: string;
19
+ owner: string;
20
+ purpose: string;
21
+ sizeBytes: number;
22
+ worktree?: string;
23
+ isActive: boolean;
24
+ metadata: Record<string, unknown>;
25
+ }
26
+ export interface WorkspaceConfig {
27
+ /** Root directory for workspaces (default: ~/.pi/workspaces) */
28
+ rootDir?: string;
29
+ /** Maximum workspace age in days (default: 7) */
30
+ maxAgeDays?: number;
31
+ /** Maximum disk usage in bytes (default: 10GB) */
32
+ maxDiskUsage?: number;
33
+ /** Enable automatic cleanup (default: true) */
34
+ autoCleanup?: boolean;
35
+ /** Cleanup interval in ms (default: 1 hour) */
36
+ cleanupIntervalMs?: number;
37
+ /** Workspace prefix (default: ws-) */
38
+ prefix?: string;
39
+ }
40
+ export interface WorkspaceEvent {
41
+ workspaceId: string;
42
+ timestamp: string;
43
+ type: "created" | "accessed" | "cleaned" | "deleted" | "error";
44
+ details?: string;
45
+ }
46
+ export declare class WorkspaceManager extends EventEmitter {
47
+ private readonly config;
48
+ private readonly rootDir;
49
+ private workspaces;
50
+ private cleanupTimer;
51
+ private manifestPath;
52
+ constructor(config?: WorkspaceConfig);
53
+ /**
54
+ * Create a new workspace
55
+ */
56
+ create(options: {
57
+ owner: string;
58
+ purpose: string;
59
+ fromTemplate?: string;
60
+ metadata?: Record<string, unknown>;
61
+ }): Workspace;
62
+ /**
63
+ * Get a workspace by ID
64
+ */
65
+ get(id: string): Workspace | null;
66
+ /**
67
+ * Get workspace by path
68
+ */
69
+ getByPath(path: string): Workspace | null;
70
+ /**
71
+ * List all workspaces
72
+ */
73
+ list(filter?: {
74
+ owner?: string;
75
+ isActive?: boolean;
76
+ olderThan?: Date;
77
+ }): Workspace[];
78
+ /**
79
+ * Update workspace metadata
80
+ */
81
+ update(id: string, updates: Partial<Workspace>): boolean;
82
+ /**
83
+ * Mark workspace as complete (no longer active)
84
+ */
85
+ complete(id: string): boolean;
86
+ /**
87
+ * Delete a workspace
88
+ */
89
+ delete(id: string, force?: boolean): boolean;
90
+ /**
91
+ * Delete all workspaces for an owner
92
+ */
93
+ deleteByOwner(owner: string, force?: boolean): number;
94
+ /**
95
+ * Get workspace disk usage
96
+ */
97
+ getDiskUsage(): {
98
+ total: number;
99
+ byOwner: Record<string, number>;
100
+ };
101
+ /**
102
+ * Check if cleanup is needed
103
+ */
104
+ isCleanupNeeded(): boolean;
105
+ /**
106
+ * Run cleanup
107
+ */
108
+ cleanup(options?: {
109
+ olderThanDays?: number;
110
+ owner?: string;
111
+ dryRun?: boolean;
112
+ }): {
113
+ deleted: number;
114
+ freedBytes: number;
115
+ workspaces: string[];
116
+ };
117
+ /**
118
+ * Create a worktree from a workspace
119
+ */
120
+ createWorktree(workspaceId: string, branchName: string): string | null;
121
+ /**
122
+ * Start automatic cleanup timer
123
+ */
124
+ startAutoCleanup(): void;
125
+ /**
126
+ * Stop automatic cleanup timer
127
+ */
128
+ stopAutoCleanup(): void;
129
+ /**
130
+ * Snapshot a workspace
131
+ */
132
+ snapshot(workspaceId: string, name: string): string | null;
133
+ /**
134
+ * Get workspace statistics
135
+ */
136
+ getStats(): {
137
+ total: number;
138
+ active: number;
139
+ totalSize: number;
140
+ oldest: string | null;
141
+ newest: string | null;
142
+ };
143
+ /**
144
+ * Verify workspace integrity
145
+ */
146
+ verify(id: string): {
147
+ exists: boolean;
148
+ size: number;
149
+ isAccessible: boolean;
150
+ };
151
+ private ensureRootDir;
152
+ private generateId;
153
+ private calculateDirSize;
154
+ private copyDirectory;
155
+ private loadManifest;
156
+ private saveManifest;
157
+ }
158
+ /**
159
+ * Create a WorkspaceManager with default config for harness runtime
160
+ */
161
+ export declare function createHarnessWorkspaceManager(): WorkspaceManager;
162
+ //# sourceMappingURL=workspace-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-manager.d.ts","sourceRoot":"","sources":["../src/workspace-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,451 @@
1
+ /**
2
+ * Workspace Manager — RFC-0026
3
+ *
4
+ * Manages workspace directories, worktrees, and cleanup for the harness runtime.
5
+ *
6
+ * Features:
7
+ * - Workspace lifecycle management
8
+ * - Worktree creation and cleanup
9
+ * - Disk usage tracking
10
+ * - Automatic cleanup policies
11
+ * - Workspace snapshots
12
+ */
13
+ import { existsSync, mkdirSync, rmSync, readdirSync, statSync, writeFileSync, readFileSync, cpSync, } from "node:fs";
14
+ import { join } from "node:path";
15
+ import { homedir } from "node:os";
16
+ import { EventEmitter } from "node:events";
17
+ const DEFAULT_CONFIG = {
18
+ maxAgeDays: 7,
19
+ maxDiskUsage: 10 * 1024 * 1024 * 1024, // 10GB
20
+ autoCleanup: true,
21
+ cleanupIntervalMs: 3600000, // 1 hour
22
+ prefix: "ws-",
23
+ };
24
+ export class WorkspaceManager extends EventEmitter {
25
+ config;
26
+ rootDir;
27
+ workspaces = new Map();
28
+ cleanupTimer = null;
29
+ manifestPath;
30
+ constructor(config = {}) {
31
+ super();
32
+ this.config = { ...DEFAULT_CONFIG, ...config };
33
+ this.rootDir = this.config.rootDir ?? join(homedir(), ".pi", "workspaces");
34
+ this.manifestPath = join(this.rootDir, "workspaces.json");
35
+ this.ensureRootDir();
36
+ this.loadManifest();
37
+ }
38
+ /**
39
+ * Create a new workspace
40
+ */
41
+ create(options) {
42
+ const id = this.generateId();
43
+ const path = join(this.rootDir, id);
44
+ // Create directory
45
+ mkdirSync(path, { recursive: true });
46
+ // Copy template if specified
47
+ if (options.fromTemplate && existsSync(options.fromTemplate)) {
48
+ this.copyDirectory(options.fromTemplate, path);
49
+ }
50
+ const workspace = {
51
+ id,
52
+ path,
53
+ createdAt: new Date().toISOString(),
54
+ lastAccessedAt: new Date().toISOString(),
55
+ owner: options.owner,
56
+ purpose: options.purpose,
57
+ sizeBytes: this.calculateDirSize(path),
58
+ isActive: true,
59
+ metadata: options.metadata ?? {},
60
+ };
61
+ this.workspaces.set(id, workspace);
62
+ this.saveManifest();
63
+ this.emit("workspace", {
64
+ workspaceId: id,
65
+ timestamp: new Date().toISOString(),
66
+ type: "created",
67
+ details: `Created workspace for ${options.owner}: ${options.purpose}`,
68
+ });
69
+ return workspace;
70
+ }
71
+ /**
72
+ * Get a workspace by ID
73
+ */
74
+ get(id) {
75
+ const workspace = this.workspaces.get(id);
76
+ if (workspace) {
77
+ // Update last accessed
78
+ workspace.lastAccessedAt = new Date().toISOString();
79
+ this.saveManifest();
80
+ }
81
+ return workspace ?? null;
82
+ }
83
+ /**
84
+ * Get workspace by path
85
+ */
86
+ getByPath(path) {
87
+ for (const workspace of Array.from(this.workspaces.values())) {
88
+ if (workspace.path === path || workspace.path.startsWith(path + "/")) {
89
+ return workspace;
90
+ }
91
+ }
92
+ return null;
93
+ }
94
+ /**
95
+ * List all workspaces
96
+ */
97
+ list(filter) {
98
+ let result = Array.from(this.workspaces.values());
99
+ if (filter?.owner) {
100
+ result = result.filter((ws) => ws.owner === filter.owner);
101
+ }
102
+ if (filter?.isActive !== undefined) {
103
+ result = result.filter((ws) => ws.isActive === filter.isActive);
104
+ }
105
+ if (filter?.olderThan) {
106
+ result = result.filter((ws) => new Date(ws.lastAccessedAt) < filter.olderThan);
107
+ }
108
+ return result;
109
+ }
110
+ /**
111
+ * Update workspace metadata
112
+ */
113
+ update(id, updates) {
114
+ const workspace = this.workspaces.get(id);
115
+ if (!workspace) {
116
+ return false;
117
+ }
118
+ Object.assign(workspace, updates, {
119
+ lastAccessedAt: new Date().toISOString(),
120
+ });
121
+ this.saveManifest();
122
+ return true;
123
+ }
124
+ /**
125
+ * Mark workspace as complete (no longer active)
126
+ */
127
+ complete(id) {
128
+ return this.update(id, { isActive: false });
129
+ }
130
+ /**
131
+ * Delete a workspace
132
+ */
133
+ delete(id, force = false) {
134
+ const workspace = this.workspaces.get(id);
135
+ if (!workspace) {
136
+ return false;
137
+ }
138
+ // Check if active and not forced
139
+ if (workspace.isActive && !force) {
140
+ return false;
141
+ }
142
+ // Delete directory
143
+ try {
144
+ rmSync(workspace.path, { recursive: true, force: true });
145
+ }
146
+ catch (error) {
147
+ this.emit("workspace", {
148
+ workspaceId: id,
149
+ timestamp: new Date().toISOString(),
150
+ type: "error",
151
+ details: `Failed to delete: ${error}`,
152
+ });
153
+ return false;
154
+ }
155
+ this.workspaces.delete(id);
156
+ this.saveManifest();
157
+ this.emit("workspace", {
158
+ workspaceId: id,
159
+ timestamp: new Date().toISOString(),
160
+ type: "deleted",
161
+ details: `Deleted workspace ${id}`,
162
+ });
163
+ return true;
164
+ }
165
+ /**
166
+ * Delete all workspaces for an owner
167
+ */
168
+ deleteByOwner(owner, force = false) {
169
+ const toDelete = this.list({ owner, isActive: false });
170
+ let deleted = 0;
171
+ for (const workspace of toDelete) {
172
+ if (this.delete(workspace.id, force)) {
173
+ deleted++;
174
+ }
175
+ }
176
+ return deleted;
177
+ }
178
+ /**
179
+ * Get workspace disk usage
180
+ */
181
+ getDiskUsage() {
182
+ const byOwner = {};
183
+ let total = 0;
184
+ for (const workspace of Array.from(this.workspaces.values())) {
185
+ const size = workspace.sizeBytes;
186
+ total += size;
187
+ byOwner[workspace.owner] = (byOwner[workspace.owner] ?? 0) + size;
188
+ }
189
+ return { total, byOwner };
190
+ }
191
+ /**
192
+ * Check if cleanup is needed
193
+ */
194
+ isCleanupNeeded() {
195
+ const usage = this.getDiskUsage();
196
+ // Check disk usage
197
+ const maxDisk = this.config.maxDiskUsage ?? DEFAULT_CONFIG.maxDiskUsage;
198
+ if (usage.total > maxDisk) {
199
+ return true;
200
+ }
201
+ // Check for old workspaces
202
+ const cutoff = new Date();
203
+ const maxAge = this.config.maxAgeDays ?? DEFAULT_CONFIG.maxAgeDays;
204
+ if (maxAge) {
205
+ cutoff.setDate(cutoff.getDate() - maxAge);
206
+ }
207
+ for (const workspace of Array.from(this.workspaces.values())) {
208
+ if (new Date(workspace.lastAccessedAt) < cutoff) {
209
+ return true;
210
+ }
211
+ }
212
+ return false;
213
+ }
214
+ /**
215
+ * Run cleanup
216
+ */
217
+ cleanup(options) {
218
+ const olderThan = new Date();
219
+ const daysToSubtract = options?.olderThanDays ?? this.config.maxAgeDays;
220
+ if (daysToSubtract) {
221
+ olderThan.setDate(olderThan.getDate() - daysToSubtract);
222
+ }
223
+ const toDelete = this.list({
224
+ owner: options?.owner,
225
+ isActive: false,
226
+ olderThan,
227
+ });
228
+ let deleted = 0;
229
+ let freedBytes = 0;
230
+ const deletedIds = [];
231
+ for (const workspace of Array.from(toDelete)) {
232
+ if (options?.dryRun) {
233
+ deletedIds.push(workspace.id);
234
+ freedBytes += workspace.sizeBytes;
235
+ deleted++;
236
+ }
237
+ else {
238
+ if (this.delete(workspace.id, true)) {
239
+ deletedIds.push(workspace.id);
240
+ freedBytes += workspace.sizeBytes;
241
+ deleted++;
242
+ this.emit("workspace", {
243
+ workspaceId: workspace.id,
244
+ timestamp: new Date().toISOString(),
245
+ type: "cleaned",
246
+ details: `Cleaned up workspace (${freedBytes} bytes freed)`,
247
+ });
248
+ }
249
+ }
250
+ }
251
+ return { deleted, freedBytes, workspaces: deletedIds };
252
+ }
253
+ /**
254
+ * Create a worktree from a workspace
255
+ */
256
+ createWorktree(workspaceId, branchName) {
257
+ const workspace = this.workspaces.get(workspaceId);
258
+ if (!workspace) {
259
+ return null;
260
+ }
261
+ const worktreePath = join(this.rootDir, `${workspaceId}-${branchName}`);
262
+ // This would typically use git worktree add
263
+ // For now, create a symlink-style directory
264
+ try {
265
+ cpSync(workspace.path, worktreePath, { recursive: true });
266
+ workspace.worktree = worktreePath;
267
+ this.saveManifest();
268
+ return worktreePath;
269
+ }
270
+ catch {
271
+ return null;
272
+ }
273
+ }
274
+ /**
275
+ * Start automatic cleanup timer
276
+ */
277
+ startAutoCleanup() {
278
+ if (this.cleanupTimer) {
279
+ return;
280
+ }
281
+ this.cleanupTimer = setInterval(() => {
282
+ if (this.isCleanupNeeded()) {
283
+ this.cleanup();
284
+ }
285
+ }, this.config.cleanupIntervalMs);
286
+ }
287
+ /**
288
+ * Stop automatic cleanup timer
289
+ */
290
+ stopAutoCleanup() {
291
+ if (this.cleanupTimer) {
292
+ clearInterval(this.cleanupTimer);
293
+ this.cleanupTimer = null;
294
+ }
295
+ }
296
+ /**
297
+ * Snapshot a workspace
298
+ */
299
+ snapshot(workspaceId, name) {
300
+ const workspace = this.workspaces.get(workspaceId);
301
+ if (!workspace) {
302
+ return null;
303
+ }
304
+ const snapshotDir = join(this.rootDir, ".snapshots", workspaceId);
305
+ const snapshotPath = join(snapshotDir, `${name}-${Date.now()}.tar.gz`);
306
+ try {
307
+ mkdirSync(snapshotDir, { recursive: true });
308
+ // In a real implementation, we'd use tar or a proper archive library
309
+ // For now, just copy the directory
310
+ cpSync(workspace.path, snapshotPath, { recursive: true });
311
+ return snapshotPath;
312
+ }
313
+ catch {
314
+ return null;
315
+ }
316
+ }
317
+ /**
318
+ * Get workspace statistics
319
+ */
320
+ getStats() {
321
+ let total = 0;
322
+ let active = 0;
323
+ let totalSize = 0;
324
+ let oldest = null;
325
+ let newest = null;
326
+ let oldestDate = new Date(0);
327
+ let newestDate = new Date(0);
328
+ for (const workspace of Array.from(this.workspaces.values())) {
329
+ total++;
330
+ totalSize += workspace.sizeBytes;
331
+ if (workspace.isActive)
332
+ active++;
333
+ const created = new Date(workspace.createdAt);
334
+ if (created > newestDate) {
335
+ newestDate = created;
336
+ newest = workspace.id;
337
+ }
338
+ if (created < oldestDate) {
339
+ oldestDate = created;
340
+ oldest = workspace.id;
341
+ }
342
+ }
343
+ return { total, active, totalSize, oldest, newest };
344
+ }
345
+ /**
346
+ * Verify workspace integrity
347
+ */
348
+ verify(id) {
349
+ const workspace = this.workspaces.get(id);
350
+ if (!workspace) {
351
+ return { exists: false, size: 0, isAccessible: false };
352
+ }
353
+ const exists = existsSync(workspace.path);
354
+ let size = 0;
355
+ let isAccessible = false;
356
+ if (exists) {
357
+ try {
358
+ size = this.calculateDirSize(workspace.path);
359
+ isAccessible = true;
360
+ // Update stored size
361
+ this.update(id, { sizeBytes: size });
362
+ }
363
+ catch {
364
+ isAccessible = false;
365
+ }
366
+ }
367
+ return { exists, size, isAccessible };
368
+ }
369
+ // --- Private Methods ------------------------------------------------
370
+ ensureRootDir() {
371
+ if (!existsSync(this.rootDir)) {
372
+ mkdirSync(this.rootDir, { recursive: true });
373
+ }
374
+ }
375
+ generateId() {
376
+ const timestamp = Date.now().toString(36);
377
+ const random = Math.random().toString(36).substring(2, 8);
378
+ return `${this.config.prefix}${timestamp}-${random}`;
379
+ }
380
+ calculateDirSize(dirPath) {
381
+ if (!existsSync(dirPath)) {
382
+ return 0;
383
+ }
384
+ let size = 0;
385
+ try {
386
+ const entries = readdirSync(dirPath, { withFileTypes: true });
387
+ for (const entry of entries) {
388
+ const fullPath = join(dirPath, entry.name);
389
+ if (entry.isDirectory()) {
390
+ size += this.calculateDirSize(fullPath);
391
+ }
392
+ else if (entry.isFile()) {
393
+ try {
394
+ size += statSync(fullPath).size;
395
+ }
396
+ catch {
397
+ // Skip inaccessible files
398
+ }
399
+ }
400
+ }
401
+ }
402
+ catch {
403
+ // Skip inaccessible directories
404
+ }
405
+ return size;
406
+ }
407
+ copyDirectory(src, dest) {
408
+ if (!existsSync(src)) {
409
+ return;
410
+ }
411
+ mkdirSync(dest, { recursive: true });
412
+ cpSync(src, dest, { recursive: true });
413
+ }
414
+ loadManifest() {
415
+ if (!existsSync(this.manifestPath)) {
416
+ return;
417
+ }
418
+ try {
419
+ const data = readFileSync(this.manifestPath, "utf-8");
420
+ const workspaces = JSON.parse(data);
421
+ for (const workspace of workspaces) {
422
+ this.workspaces.set(workspace.id, workspace);
423
+ }
424
+ }
425
+ catch {
426
+ // Ignore corrupt manifest
427
+ }
428
+ }
429
+ saveManifest() {
430
+ const workspaces = Array.from(this.workspaces.values());
431
+ try {
432
+ writeFileSync(this.manifestPath, JSON.stringify(workspaces, null, 2), "utf-8");
433
+ }
434
+ catch {
435
+ // Ignore save errors
436
+ }
437
+ }
438
+ }
439
+ /**
440
+ * Create a WorkspaceManager with default config for harness runtime
441
+ */
442
+ export function createHarnessWorkspaceManager() {
443
+ return new WorkspaceManager({
444
+ rootDir: join(homedir(), ".pi", "harness", "workspaces"),
445
+ maxAgeDays: 7,
446
+ maxDiskUsage: 10 * 1024 * 1024 * 1024, // 10GB
447
+ autoCleanup: true,
448
+ cleanupIntervalMs: 3600000, // 1 hour
449
+ });
450
+ }
451
+ //# sourceMappingURL=workspace-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-manager.js","sourceRoot":"","sources":["../src/workspace-manager.ts"],"names":[],"mappings":"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"}