@posthog/agent 1.24.2 → 1.25.0

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 (604) hide show
  1. package/dist/_virtual/_commonjsHelpers.js +6 -0
  2. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  3. package/dist/_virtual/additionalItems.js +4 -0
  4. package/dist/_virtual/additionalItems.js.map +1 -0
  5. package/dist/_virtual/additionalProperties.js +4 -0
  6. package/dist/_virtual/additionalProperties.js.map +1 -0
  7. package/dist/_virtual/ajv.js +4 -0
  8. package/dist/_virtual/ajv.js.map +1 -0
  9. package/dist/_virtual/allOf.js +4 -0
  10. package/dist/_virtual/allOf.js.map +1 -0
  11. package/dist/_virtual/anyOf.js +4 -0
  12. package/dist/_virtual/anyOf.js.map +1 -0
  13. package/dist/_virtual/applicability.js +4 -0
  14. package/dist/_virtual/applicability.js.map +1 -0
  15. package/dist/_virtual/boolSchema.js +4 -0
  16. package/dist/_virtual/boolSchema.js.map +1 -0
  17. package/dist/_virtual/code.js +4 -0
  18. package/dist/_virtual/code.js.map +1 -0
  19. package/dist/_virtual/code2.js +4 -0
  20. package/dist/_virtual/code2.js.map +1 -0
  21. package/dist/_virtual/const.js +4 -0
  22. package/dist/_virtual/const.js.map +1 -0
  23. package/dist/_virtual/contains.js +4 -0
  24. package/dist/_virtual/contains.js.map +1 -0
  25. package/dist/_virtual/core.js +4 -0
  26. package/dist/_virtual/core.js.map +1 -0
  27. package/dist/_virtual/dataType.js +4 -0
  28. package/dist/_virtual/dataType.js.map +1 -0
  29. package/dist/_virtual/defaults.js +4 -0
  30. package/dist/_virtual/defaults.js.map +1 -0
  31. package/dist/_virtual/dependencies.js +4 -0
  32. package/dist/_virtual/dependencies.js.map +1 -0
  33. package/dist/_virtual/draft7.js +4 -0
  34. package/dist/_virtual/draft7.js.map +1 -0
  35. package/dist/_virtual/enum.js +4 -0
  36. package/dist/_virtual/enum.js.map +1 -0
  37. package/dist/_virtual/equal.js +4 -0
  38. package/dist/_virtual/equal.js.map +1 -0
  39. package/dist/_virtual/errors.js +4 -0
  40. package/dist/_virtual/errors.js.map +1 -0
  41. package/dist/_virtual/format.js +4 -0
  42. package/dist/_virtual/format.js.map +1 -0
  43. package/dist/_virtual/formats.js +4 -0
  44. package/dist/_virtual/formats.js.map +1 -0
  45. package/dist/_virtual/id.js +4 -0
  46. package/dist/_virtual/id.js.map +1 -0
  47. package/dist/_virtual/if.js +4 -0
  48. package/dist/_virtual/if.js.map +1 -0
  49. package/dist/_virtual/index.js +4 -0
  50. package/dist/_virtual/index.js.map +1 -0
  51. package/dist/_virtual/index10.js +4 -0
  52. package/dist/_virtual/index10.js.map +1 -0
  53. package/dist/_virtual/index11.js +4 -0
  54. package/dist/_virtual/index11.js.map +1 -0
  55. package/dist/_virtual/index2.js +4 -0
  56. package/dist/_virtual/index2.js.map +1 -0
  57. package/dist/_virtual/index3.js +4 -0
  58. package/dist/_virtual/index3.js.map +1 -0
  59. package/dist/_virtual/index4.js +4 -0
  60. package/dist/_virtual/index4.js.map +1 -0
  61. package/dist/_virtual/index5.js +4 -0
  62. package/dist/_virtual/index5.js.map +1 -0
  63. package/dist/_virtual/index6.js +4 -0
  64. package/dist/_virtual/index6.js.map +1 -0
  65. package/dist/_virtual/index7.js +4 -0
  66. package/dist/_virtual/index7.js.map +1 -0
  67. package/dist/_virtual/index8.js +4 -0
  68. package/dist/_virtual/index8.js.map +1 -0
  69. package/dist/_virtual/index9.js +4 -0
  70. package/dist/_virtual/index9.js.map +1 -0
  71. package/dist/_virtual/items.js +4 -0
  72. package/dist/_virtual/items.js.map +1 -0
  73. package/dist/_virtual/items2020.js +4 -0
  74. package/dist/_virtual/items2020.js.map +1 -0
  75. package/dist/_virtual/keyword.js +4 -0
  76. package/dist/_virtual/keyword.js.map +1 -0
  77. package/dist/_virtual/limit.js +4 -0
  78. package/dist/_virtual/limit.js.map +1 -0
  79. package/dist/_virtual/limitItems.js +4 -0
  80. package/dist/_virtual/limitItems.js.map +1 -0
  81. package/dist/_virtual/limitLength.js +4 -0
  82. package/dist/_virtual/limitLength.js.map +1 -0
  83. package/dist/_virtual/limitNumber.js +4 -0
  84. package/dist/_virtual/limitNumber.js.map +1 -0
  85. package/dist/_virtual/limitProperties.js +4 -0
  86. package/dist/_virtual/limitProperties.js.map +1 -0
  87. package/dist/_virtual/metadata.js +4 -0
  88. package/dist/_virtual/metadata.js.map +1 -0
  89. package/dist/_virtual/multipleOf.js +4 -0
  90. package/dist/_virtual/multipleOf.js.map +1 -0
  91. package/dist/_virtual/names.js +4 -0
  92. package/dist/_virtual/names.js.map +1 -0
  93. package/dist/_virtual/not.js +4 -0
  94. package/dist/_virtual/not.js.map +1 -0
  95. package/dist/_virtual/oneOf.js +4 -0
  96. package/dist/_virtual/oneOf.js.map +1 -0
  97. package/dist/_virtual/pattern.js +4 -0
  98. package/dist/_virtual/pattern.js.map +1 -0
  99. package/dist/_virtual/patternProperties.js +4 -0
  100. package/dist/_virtual/patternProperties.js.map +1 -0
  101. package/dist/_virtual/prefixItems.js +4 -0
  102. package/dist/_virtual/prefixItems.js.map +1 -0
  103. package/dist/_virtual/properties.js +4 -0
  104. package/dist/_virtual/properties.js.map +1 -0
  105. package/dist/_virtual/propertyNames.js +4 -0
  106. package/dist/_virtual/propertyNames.js.map +1 -0
  107. package/dist/_virtual/ref.js +4 -0
  108. package/dist/_virtual/ref.js.map +1 -0
  109. package/dist/_virtual/ref_error.js +4 -0
  110. package/dist/_virtual/ref_error.js.map +1 -0
  111. package/dist/_virtual/required.js +4 -0
  112. package/dist/_virtual/required.js.map +1 -0
  113. package/dist/_virtual/resolve.js +4 -0
  114. package/dist/_virtual/resolve.js.map +1 -0
  115. package/dist/_virtual/rules.js +4 -0
  116. package/dist/_virtual/rules.js.map +1 -0
  117. package/dist/_virtual/scope.js +4 -0
  118. package/dist/_virtual/scope.js.map +1 -0
  119. package/dist/_virtual/subschema.js +4 -0
  120. package/dist/_virtual/subschema.js.map +1 -0
  121. package/dist/_virtual/thenElse.js +4 -0
  122. package/dist/_virtual/thenElse.js.map +1 -0
  123. package/dist/_virtual/types.js +4 -0
  124. package/dist/_virtual/types.js.map +1 -0
  125. package/dist/_virtual/ucs2length.js +4 -0
  126. package/dist/_virtual/ucs2length.js.map +1 -0
  127. package/dist/_virtual/uniqueItems.js +4 -0
  128. package/dist/_virtual/uniqueItems.js.map +1 -0
  129. package/dist/_virtual/uri.js +4 -0
  130. package/dist/_virtual/uri.js.map +1 -0
  131. package/dist/_virtual/util.js +4 -0
  132. package/dist/_virtual/util.js.map +1 -0
  133. package/dist/_virtual/validation_error.js +4 -0
  134. package/dist/_virtual/validation_error.js.map +1 -0
  135. package/dist/claude-cli/cli.js +2294 -2146
  136. package/dist/example-client.d.ts +3 -0
  137. package/dist/example-client.d.ts.map +1 -0
  138. package/dist/index.d.ts +19 -11
  139. package/dist/index.d.ts.map +1 -1
  140. package/dist/index.js +7 -3
  141. package/dist/index.js.map +1 -1
  142. package/dist/node_modules/@agentclientprotocol/sdk/dist/acp.js +610 -0
  143. package/dist/node_modules/@agentclientprotocol/sdk/dist/acp.js.map +1 -0
  144. package/dist/node_modules/@agentclientprotocol/sdk/dist/schema.js +875 -0
  145. package/dist/node_modules/@agentclientprotocol/sdk/dist/schema.js.map +1 -0
  146. package/dist/node_modules/@agentclientprotocol/sdk/dist/stream.js +66 -0
  147. package/dist/node_modules/@agentclientprotocol/sdk/dist/stream.js.map +1 -0
  148. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js +23 -0
  149. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js.map +1 -0
  150. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +331 -0
  151. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
  152. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +717 -0
  153. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +1 -0
  154. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +221 -0
  155. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -0
  156. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +56 -0
  157. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +1 -0
  158. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +440 -0
  159. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
  160. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js +94 -0
  161. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js.map +1 -0
  162. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1610 -0
  163. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
  164. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +91 -0
  165. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +1 -0
  166. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/ZodError.js +133 -0
  167. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/ZodError.js.map +1 -0
  168. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/errors.js +9 -0
  169. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/errors.js.map +1 -0
  170. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/errorUtil.js +9 -0
  171. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/errorUtil.js.map +1 -0
  172. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/parseUtil.js +112 -0
  173. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/parseUtil.js.map +1 -0
  174. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/util.js +136 -0
  175. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/util.js.map +1 -0
  176. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/locales/en.js +112 -0
  177. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/locales/en.js.map +1 -0
  178. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/types.js +3297 -0
  179. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/types.js.map +1 -0
  180. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/errors.js +44 -0
  181. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/errors.js.map +1 -0
  182. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/iso.js +36 -0
  183. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/iso.js.map +1 -0
  184. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/parse.js +10 -0
  185. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/parse.js.map +1 -0
  186. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/schemas.js +657 -0
  187. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/schemas.js.map +1 -0
  188. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/api.js +449 -0
  189. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/api.js.map +1 -0
  190. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/checks.js +413 -0
  191. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/checks.js.map +1 -0
  192. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/core.js +57 -0
  193. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/core.js.map +1 -0
  194. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/doc.js +38 -0
  195. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/doc.js.map +1 -0
  196. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/errors.js +86 -0
  197. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/errors.js.map +1 -0
  198. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/parse.js +61 -0
  199. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/parse.js.map +1 -0
  200. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/regexes.js +80 -0
  201. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/regexes.js.map +1 -0
  202. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/registries.js +52 -0
  203. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/registries.js.map +1 -0
  204. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/schemas.js +1307 -0
  205. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/schemas.js.map +1 -0
  206. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/to-json-schema.js +842 -0
  207. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/to-json-schema.js.map +1 -0
  208. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/util.js +335 -0
  209. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/util.js.map +1 -0
  210. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/versions.js +8 -0
  211. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/versions.js.map +1 -0
  212. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/schemas.js +51 -0
  213. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/schemas.js.map +1 -0
  214. package/dist/node_modules/ajv/dist/ajv.js +69 -0
  215. package/dist/node_modules/ajv/dist/ajv.js.map +1 -0
  216. package/dist/node_modules/ajv/dist/compile/codegen/code.js +169 -0
  217. package/dist/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
  218. package/dist/node_modules/ajv/dist/compile/codegen/index.js +712 -0
  219. package/dist/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
  220. package/dist/node_modules/ajv/dist/compile/codegen/scope.js +157 -0
  221. package/dist/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
  222. package/dist/node_modules/ajv/dist/compile/errors.js +140 -0
  223. package/dist/node_modules/ajv/dist/compile/errors.js.map +1 -0
  224. package/dist/node_modules/ajv/dist/compile/index.js +253 -0
  225. package/dist/node_modules/ajv/dist/compile/index.js.map +1 -0
  226. package/dist/node_modules/ajv/dist/compile/names.js +40 -0
  227. package/dist/node_modules/ajv/dist/compile/names.js.map +1 -0
  228. package/dist/node_modules/ajv/dist/compile/ref_error.js +25 -0
  229. package/dist/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
  230. package/dist/node_modules/ajv/dist/compile/resolve.js +162 -0
  231. package/dist/node_modules/ajv/dist/compile/resolve.js.map +1 -0
  232. package/dist/node_modules/ajv/dist/compile/rules.js +29 -0
  233. package/dist/node_modules/ajv/dist/compile/rules.js.map +1 -0
  234. package/dist/node_modules/ajv/dist/compile/util.js +183 -0
  235. package/dist/node_modules/ajv/dist/compile/util.js.map +1 -0
  236. package/dist/node_modules/ajv/dist/compile/validate/applicability.js +30 -0
  237. package/dist/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
  238. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +64 -0
  239. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
  240. package/dist/node_modules/ajv/dist/compile/validate/dataType.js +213 -0
  241. package/dist/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
  242. package/dist/node_modules/ajv/dist/compile/validate/defaults.js +49 -0
  243. package/dist/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
  244. package/dist/node_modules/ajv/dist/compile/validate/index.js +544 -0
  245. package/dist/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
  246. package/dist/node_modules/ajv/dist/compile/validate/keyword.js +139 -0
  247. package/dist/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
  248. package/dist/node_modules/ajv/dist/compile/validate/subschema.js +95 -0
  249. package/dist/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
  250. package/dist/node_modules/ajv/dist/core.js +639 -0
  251. package/dist/node_modules/ajv/dist/core.js.map +1 -0
  252. package/dist/node_modules/ajv/dist/refs/data.json.js +31 -0
  253. package/dist/node_modules/ajv/dist/refs/data.json.js.map +1 -0
  254. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +254 -0
  255. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +1 -0
  256. package/dist/node_modules/ajv/dist/runtime/equal.js +9 -0
  257. package/dist/node_modules/ajv/dist/runtime/equal.js.map +1 -0
  258. package/dist/node_modules/ajv/dist/runtime/ucs2length.js +25 -0
  259. package/dist/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
  260. package/dist/node_modules/ajv/dist/runtime/uri.js +8 -0
  261. package/dist/node_modules/ajv/dist/runtime/uri.js.map +1 -0
  262. package/dist/node_modules/ajv/dist/runtime/validation_error.js +22 -0
  263. package/dist/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
  264. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +53 -0
  265. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
  266. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +112 -0
  267. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
  268. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +26 -0
  269. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
  270. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +14 -0
  271. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
  272. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +99 -0
  273. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
  274. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +93 -0
  275. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
  276. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +70 -0
  277. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
  278. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +77 -0
  279. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
  280. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +57 -0
  281. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
  282. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +37 -0
  283. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
  284. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +29 -0
  285. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
  286. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +64 -0
  287. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
  288. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +80 -0
  289. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
  290. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +15 -0
  291. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
  292. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +61 -0
  293. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
  294. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +42 -0
  295. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
  296. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +16 -0
  297. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
  298. package/dist/node_modules/ajv/dist/vocabularies/code.js +146 -0
  299. package/dist/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
  300. package/dist/node_modules/ajv/dist/vocabularies/core/id.js +11 -0
  301. package/dist/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
  302. package/dist/node_modules/ajv/dist/vocabularies/core/index.js +21 -0
  303. package/dist/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
  304. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +131 -0
  305. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
  306. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +113 -0
  307. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
  308. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +12 -0
  309. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
  310. package/dist/node_modules/ajv/dist/vocabularies/draft7.js +28 -0
  311. package/dist/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
  312. package/dist/node_modules/ajv/dist/vocabularies/format/format.js +94 -0
  313. package/dist/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
  314. package/dist/node_modules/ajv/dist/vocabularies/format/index.js +9 -0
  315. package/dist/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
  316. package/dist/node_modules/ajv/dist/vocabularies/metadata.js +21 -0
  317. package/dist/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
  318. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +31 -0
  319. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
  320. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +54 -0
  321. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
  322. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +54 -0
  323. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
  324. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +26 -0
  325. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
  326. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +33 -0
  327. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
  328. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +29 -0
  329. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
  330. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +26 -0
  331. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
  332. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +28 -0
  333. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
  334. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +27 -0
  335. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
  336. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +84 -0
  337. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
  338. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +72 -0
  339. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
  340. package/dist/node_modules/ajv-formats/dist/formats.js +212 -0
  341. package/dist/node_modules/ajv-formats/dist/formats.js.map +1 -0
  342. package/dist/node_modules/ajv-formats/dist/index.js +52 -0
  343. package/dist/node_modules/ajv-formats/dist/index.js.map +1 -0
  344. package/dist/node_modules/ajv-formats/dist/limit.js +75 -0
  345. package/dist/node_modules/ajv-formats/dist/limit.js.map +1 -0
  346. package/dist/node_modules/diff/libesm/diff/base.js +256 -0
  347. package/dist/node_modules/diff/libesm/diff/base.js.map +1 -0
  348. package/dist/node_modules/diff/libesm/diff/line.js +64 -0
  349. package/dist/node_modules/diff/libesm/diff/line.js.map +1 -0
  350. package/dist/node_modules/diff/libesm/patch/create.js +185 -0
  351. package/dist/node_modules/diff/libesm/patch/create.js.map +1 -0
  352. package/dist/node_modules/fast-deep-equal/index.js +47 -0
  353. package/dist/node_modules/fast-deep-equal/index.js.map +1 -0
  354. package/dist/node_modules/fast-uri/index.js +347 -0
  355. package/dist/node_modules/fast-uri/index.js.map +1 -0
  356. package/dist/node_modules/fast-uri/lib/schemes.js +255 -0
  357. package/dist/node_modules/fast-uri/lib/schemes.js.map +1 -0
  358. package/dist/node_modules/fast-uri/lib/utils.js +334 -0
  359. package/dist/node_modules/fast-uri/lib/utils.js.map +1 -0
  360. package/dist/node_modules/json-schema-traverse/index.js +98 -0
  361. package/dist/node_modules/json-schema-traverse/index.js.map +1 -0
  362. package/dist/node_modules/uuid/dist/rng.js +14 -0
  363. package/dist/node_modules/uuid/dist/rng.js.map +1 -0
  364. package/dist/node_modules/uuid/dist/stringify.js +29 -0
  365. package/dist/node_modules/uuid/dist/stringify.js.map +1 -0
  366. package/dist/node_modules/uuid/dist/v7.js +65 -0
  367. package/dist/node_modules/uuid/dist/v7.js.map +1 -0
  368. package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js +37 -0
  369. package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js.map +1 -0
  370. package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js +26 -0
  371. package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js.map +1 -0
  372. package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +17 -0
  373. package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js.map +1 -0
  374. package/dist/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +11 -0
  375. package/dist/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js.map +1 -0
  376. package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js +66 -0
  377. package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js.map +1 -0
  378. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +21 -0
  379. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js.map +1 -0
  380. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +30 -0
  381. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js.map +1 -0
  382. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +53 -0
  383. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js.map +1 -0
  384. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +8 -0
  385. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js.map +1 -0
  386. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +8 -0
  387. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js.map +1 -0
  388. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +8 -0
  389. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js.map +1 -0
  390. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +50 -0
  391. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js.map +1 -0
  392. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +11 -0
  393. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js.map +1 -0
  394. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +11 -0
  395. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js.map +1 -0
  396. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +9 -0
  397. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js.map +1 -0
  398. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +56 -0
  399. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js.map +1 -0
  400. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +24 -0
  401. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js.map +1 -0
  402. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +30 -0
  403. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js.map +1 -0
  404. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +19 -0
  405. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js.map +1 -0
  406. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +15 -0
  407. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js.map +1 -0
  408. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +13 -0
  409. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js.map +1 -0
  410. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +37 -0
  411. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js.map +1 -0
  412. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +56 -0
  413. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js.map +1 -0
  414. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +76 -0
  415. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js.map +1 -0
  416. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +25 -0
  417. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js.map +1 -0
  418. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +24 -0
  419. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js.map +1 -0
  420. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +8 -0
  421. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js.map +1 -0
  422. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +8 -0
  423. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js.map +1 -0
  424. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +65 -0
  425. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js.map +1 -0
  426. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +24 -0
  427. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js.map +1 -0
  428. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +350 -0
  429. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
  430. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +36 -0
  431. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js.map +1 -0
  432. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +10 -0
  433. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js.map +1 -0
  434. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +84 -0
  435. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js.map +1 -0
  436. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +8 -0
  437. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js.map +1 -0
  438. package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js +109 -0
  439. package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js.map +1 -0
  440. package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +90 -0
  441. package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js.map +1 -0
  442. package/dist/node_modules/zod-to-json-schema/node_modules/zod/v3/types.js +42 -0
  443. package/dist/node_modules/zod-to-json-schema/node_modules/zod/v3/types.js.map +1 -0
  444. package/dist/package.json.js +8 -0
  445. package/dist/package.json.js.map +1 -0
  446. package/dist/src/acp-extensions.d.ts +91 -0
  447. package/dist/src/acp-extensions.d.ts.map +1 -0
  448. package/dist/src/acp-extensions.js +38 -0
  449. package/dist/src/acp-extensions.js.map +1 -0
  450. package/dist/src/adapters/claude/claude.d.ts +136 -0
  451. package/dist/src/adapters/claude/claude.d.ts.map +1 -0
  452. package/dist/src/adapters/claude/claude.js +1112 -0
  453. package/dist/src/adapters/claude/claude.js.map +1 -0
  454. package/dist/src/adapters/claude/mcp-server.d.ts +30 -0
  455. package/dist/src/adapters/claude/mcp-server.d.ts.map +1 -0
  456. package/dist/src/adapters/claude/mcp-server.js +655 -0
  457. package/dist/src/adapters/claude/mcp-server.js.map +1 -0
  458. package/dist/src/adapters/claude/tools.d.ts +35 -0
  459. package/dist/src/adapters/claude/tools.d.ts.map +1 -0
  460. package/dist/src/adapters/claude/tools.js +466 -0
  461. package/dist/src/adapters/claude/tools.js.map +1 -0
  462. package/dist/src/adapters/claude/utils.d.ts +48 -0
  463. package/dist/src/adapters/claude/utils.d.ts.map +1 -0
  464. package/dist/src/adapters/claude/utils.js +158 -0
  465. package/dist/src/adapters/claude/utils.js.map +1 -0
  466. package/dist/src/agent.d.ts +18 -28
  467. package/dist/src/agent.d.ts.map +1 -1
  468. package/dist/src/agent.js +195 -175
  469. package/dist/src/agent.js.map +1 -1
  470. package/dist/src/agents/execution.js.map +1 -1
  471. package/dist/src/agents/planning.js.map +1 -1
  472. package/dist/src/agents/research.js.map +1 -1
  473. package/dist/src/file-manager.d.ts +6 -6
  474. package/dist/src/file-manager.d.ts.map +1 -1
  475. package/dist/src/file-manager.js +72 -63
  476. package/dist/src/file-manager.js.map +1 -1
  477. package/dist/src/git-manager.d.ts +2 -1
  478. package/dist/src/git-manager.d.ts.map +1 -1
  479. package/dist/src/git-manager.js +105 -70
  480. package/dist/src/git-manager.js.map +1 -1
  481. package/dist/src/posthog-api.d.ts +8 -14
  482. package/dist/src/posthog-api.d.ts.map +1 -1
  483. package/dist/src/posthog-api.js +35 -23
  484. package/dist/src/posthog-api.js.map +1 -1
  485. package/dist/src/prompt-builder.d.ts +4 -4
  486. package/dist/src/prompt-builder.d.ts.map +1 -1
  487. package/dist/src/prompt-builder.js +129 -99
  488. package/dist/src/prompt-builder.js.map +1 -1
  489. package/dist/src/schemas.d.ts +980 -0
  490. package/dist/src/schemas.d.ts.map +1 -0
  491. package/dist/src/schemas.js +196 -0
  492. package/dist/src/schemas.js.map +1 -0
  493. package/dist/src/session-store.d.ts +53 -0
  494. package/dist/src/session-store.d.ts.map +1 -0
  495. package/dist/src/session-store.js +195 -0
  496. package/dist/src/session-store.js.map +1 -0
  497. package/dist/src/task-manager.d.ts +7 -7
  498. package/dist/src/task-manager.d.ts.map +1 -1
  499. package/dist/src/task-manager.js +19 -18
  500. package/dist/src/task-manager.js.map +1 -1
  501. package/dist/src/template-manager.d.ts +1 -1
  502. package/dist/src/template-manager.d.ts.map +1 -1
  503. package/dist/src/template-manager.js +30 -28
  504. package/dist/src/template-manager.js.map +1 -1
  505. package/dist/src/todo-manager.d.ts +5 -5
  506. package/dist/src/todo-manager.d.ts.map +1 -1
  507. package/dist/src/todo-manager.js +33 -24
  508. package/dist/src/todo-manager.js.map +1 -1
  509. package/dist/src/tools/registry.d.ts +1 -1
  510. package/dist/src/tools/registry.js +60 -60
  511. package/dist/src/tools/registry.js.map +1 -1
  512. package/dist/src/tools/types.d.ts +31 -31
  513. package/dist/src/types.d.ts +62 -167
  514. package/dist/src/types.d.ts.map +1 -1
  515. package/dist/src/types.js +1 -0
  516. package/dist/src/types.js.map +1 -1
  517. package/dist/src/utils/logger.d.ts +14 -6
  518. package/dist/src/utils/logger.d.ts.map +1 -1
  519. package/dist/src/utils/logger.js +37 -22
  520. package/dist/src/utils/logger.js.map +1 -1
  521. package/dist/src/utils/tapped-stream.d.ts +17 -0
  522. package/dist/src/utils/tapped-stream.d.ts.map +1 -0
  523. package/dist/src/utils/tapped-stream.js +45 -0
  524. package/dist/src/utils/tapped-stream.js.map +1 -0
  525. package/dist/src/workflow/config.d.ts +1 -1
  526. package/dist/src/workflow/config.d.ts.map +1 -1
  527. package/dist/src/workflow/config.js +18 -18
  528. package/dist/src/workflow/config.js.map +1 -1
  529. package/dist/src/workflow/steps/build.d.ts +1 -1
  530. package/dist/src/workflow/steps/build.d.ts.map +1 -1
  531. package/dist/src/workflow/steps/build.js +53 -39
  532. package/dist/src/workflow/steps/build.js.map +1 -1
  533. package/dist/src/workflow/steps/finalize.d.ts +1 -1
  534. package/dist/src/workflow/steps/finalize.d.ts.map +1 -1
  535. package/dist/src/workflow/steps/finalize.js +58 -52
  536. package/dist/src/workflow/steps/finalize.js.map +1 -1
  537. package/dist/src/workflow/steps/plan.d.ts +1 -1
  538. package/dist/src/workflow/steps/plan.d.ts.map +1 -1
  539. package/dist/src/workflow/steps/plan.js +69 -47
  540. package/dist/src/workflow/steps/plan.js.map +1 -1
  541. package/dist/src/workflow/steps/research.d.ts +1 -1
  542. package/dist/src/workflow/steps/research.d.ts.map +1 -1
  543. package/dist/src/workflow/steps/research.js +86 -67
  544. package/dist/src/workflow/steps/research.js.map +1 -1
  545. package/dist/src/workflow/types.d.ts +19 -14
  546. package/dist/src/workflow/types.d.ts.map +1 -1
  547. package/dist/src/workflow/utils.d.ts +1 -1
  548. package/dist/src/workflow/utils.d.ts.map +1 -1
  549. package/dist/src/workflow/utils.js +7 -4
  550. package/dist/src/workflow/utils.js.map +1 -1
  551. package/dist/src/worktree-manager.d.ts +39 -0
  552. package/dist/src/worktree-manager.d.ts.map +1 -0
  553. package/dist/src/worktree-manager.js +810 -0
  554. package/dist/src/worktree-manager.js.map +1 -0
  555. package/package.json +20 -16
  556. package/src/acp-extensions.ts +117 -0
  557. package/src/adapters/claude/claude.ts +1498 -0
  558. package/src/adapters/claude/mcp-server.ts +810 -0
  559. package/src/adapters/claude/tools.ts +609 -0
  560. package/src/adapters/claude/utils.ts +267 -0
  561. package/src/agent.ts +511 -447
  562. package/src/agents/execution.ts +1 -1
  563. package/src/agents/planning.ts +1 -1
  564. package/src/agents/research.ts +0 -1
  565. package/src/file-manager.ts +80 -70
  566. package/src/git-manager.ts +164 -88
  567. package/src/posthog-api.ts +155 -94
  568. package/src/prompt-builder.ts +196 -143
  569. package/src/schemas.ts +241 -0
  570. package/src/session-store.ts +244 -0
  571. package/src/task-manager.ts +41 -33
  572. package/src/template-manager.ts +98 -45
  573. package/src/todo-manager.ts +43 -32
  574. package/src/tools/registry.ts +62 -62
  575. package/src/tools/types.ts +36 -36
  576. package/src/types.ts +130 -239
  577. package/src/utils/logger.ts +89 -58
  578. package/src/utils/tapped-stream.ts +60 -0
  579. package/src/workflow/config.ts +48 -48
  580. package/src/workflow/steps/build.ts +127 -113
  581. package/src/workflow/steps/finalize.ts +207 -182
  582. package/src/workflow/steps/plan.ts +155 -130
  583. package/src/workflow/steps/research.ts +207 -187
  584. package/src/workflow/types.ts +47 -36
  585. package/src/workflow/utils.ts +37 -34
  586. package/src/worktree-manager.ts +884 -0
  587. package/dist/src/adapters/claude/claude-adapter.d.ts +0 -18
  588. package/dist/src/adapters/claude/claude-adapter.d.ts.map +0 -1
  589. package/dist/src/adapters/claude/claude-adapter.js +0 -311
  590. package/dist/src/adapters/claude/claude-adapter.js.map +0 -1
  591. package/dist/src/adapters/claude/tool-mapper.d.ts +0 -19
  592. package/dist/src/adapters/claude/tool-mapper.d.ts.map +0 -1
  593. package/dist/src/adapters/claude/tool-mapper.js +0 -44
  594. package/dist/src/adapters/claude/tool-mapper.js.map +0 -1
  595. package/dist/src/adapters/types.d.ts +0 -33
  596. package/dist/src/adapters/types.d.ts.map +0 -1
  597. package/dist/src/task-progress-reporter.d.ts +0 -43
  598. package/dist/src/task-progress-reporter.d.ts.map +0 -1
  599. package/dist/src/task-progress-reporter.js +0 -393
  600. package/dist/src/task-progress-reporter.js.map +0 -1
  601. package/src/adapters/claude/claude-adapter.ts +0 -338
  602. package/src/adapters/claude/tool-mapper.ts +0 -46
  603. package/src/adapters/types.ts +0 -37
  604. package/src/task-progress-reporter.ts +0 -443
@@ -0,0 +1,884 @@
1
+ import { exec, execFile } from "node:child_process";
2
+ import * as crypto from "node:crypto";
3
+ import * as fs from "node:fs/promises";
4
+ import * as path from "node:path";
5
+ import { promisify } from "node:util";
6
+ import type { WorktreeInfo } from "./types.js";
7
+ import { Logger } from "./utils/logger.js";
8
+
9
+ const execAsync = promisify(exec);
10
+ const execFileAsync = promisify(execFile);
11
+
12
+ export interface WorktreeConfig {
13
+ mainRepoPath: string;
14
+ worktreeBasePath?: string;
15
+ logger?: Logger;
16
+ }
17
+
18
+ const ADJECTIVES = [
19
+ "swift",
20
+ "bright",
21
+ "calm",
22
+ "bold",
23
+ "gentle",
24
+ "quick",
25
+ "soft",
26
+ "warm",
27
+ "cool",
28
+ "wise",
29
+ "keen",
30
+ "brave",
31
+ "clear",
32
+ "crisp",
33
+ "deep",
34
+ "fair",
35
+ "fine",
36
+ "free",
37
+ "glad",
38
+ "good",
39
+ "grand",
40
+ "great",
41
+ "happy",
42
+ "kind",
43
+ "light",
44
+ "lively",
45
+ "neat",
46
+ "nice",
47
+ "plain",
48
+ "proud",
49
+ "pure",
50
+ "rare",
51
+ "rich",
52
+ "safe",
53
+ "sharp",
54
+ "shy",
55
+ "simple",
56
+ "slim",
57
+ "smart",
58
+ "smooth",
59
+ "solid",
60
+ "sound",
61
+ "spare",
62
+ "stable",
63
+ "steady",
64
+ "still",
65
+ "strong",
66
+ "sure",
67
+ "sweet",
68
+ "tall",
69
+ "agile",
70
+ "ancient",
71
+ "autumn",
72
+ "azure",
73
+ "cosmic",
74
+ "daring",
75
+ "dawn",
76
+ "dusty",
77
+ "eager",
78
+ "early",
79
+ "endless",
80
+ "fading",
81
+ "fallen",
82
+ "famous",
83
+ "feral",
84
+ "fierce",
85
+ "fleet",
86
+ "foggy",
87
+ "forest",
88
+ "frozen",
89
+ "gleeful",
90
+ "golden",
91
+ "hazy",
92
+ "hidden",
93
+ "hollow",
94
+ "humble",
95
+ "hushed",
96
+ "icy",
97
+ "inner",
98
+ "late",
99
+ "lazy",
100
+ "little",
101
+ "lone",
102
+ "long",
103
+ "lost",
104
+ "lucky",
105
+ "lunar",
106
+ "magic",
107
+ "mellow",
108
+ "mighty",
109
+ "misty",
110
+ "modest",
111
+ "mossy",
112
+ "mystic",
113
+ "nimble",
114
+ "noble",
115
+ "ocean",
116
+ "outer",
117
+ "pale",
118
+ "paper",
119
+ "patient",
120
+ "peaceful",
121
+ "phantom",
122
+ "polite",
123
+ "primal",
124
+ "quiet",
125
+ "rapid",
126
+ "restless",
127
+ "rising",
128
+ "roaming",
129
+ "rocky",
130
+ "rustic",
131
+ "sacred",
132
+ "sandy",
133
+ "secret",
134
+ "serene",
135
+ "shadow",
136
+ "shining",
137
+ "silent",
138
+ "silky",
139
+ "silver",
140
+ "sleek",
141
+ "snowy",
142
+ "solar",
143
+ "solemn",
144
+ "spring",
145
+ "starry",
146
+ "stormy",
147
+ "summer",
148
+ "sunny",
149
+ "tender",
150
+ "thorny",
151
+ "tiny",
152
+ "tranquil",
153
+ "twilight",
154
+ "upward",
155
+ "velvet",
156
+ "vivid",
157
+ "wandering",
158
+ "wary",
159
+ "wild",
160
+ "windy",
161
+ "winter",
162
+ "wispy",
163
+ "young",
164
+ ];
165
+
166
+ const COLORS = [
167
+ "blue",
168
+ "red",
169
+ "green",
170
+ "amber",
171
+ "coral",
172
+ "jade",
173
+ "pearl",
174
+ "ruby",
175
+ "sage",
176
+ "teal",
177
+ "gold",
178
+ "silver",
179
+ "bronze",
180
+ "copper",
181
+ "ivory",
182
+ "onyx",
183
+ "opal",
184
+ "rose",
185
+ "slate",
186
+ "violet",
187
+ "aqua",
188
+ "azure",
189
+ "beige",
190
+ "black",
191
+ "brass",
192
+ "brick",
193
+ "brown",
194
+ "cedar",
195
+ "charcoal",
196
+ "cherry",
197
+ "chestnut",
198
+ "chrome",
199
+ "cider",
200
+ "cinnamon",
201
+ "citrus",
202
+ "clay",
203
+ "cloud",
204
+ "cobalt",
205
+ "cocoa",
206
+ "cream",
207
+ "crimson",
208
+ "crystal",
209
+ "cyan",
210
+ "denim",
211
+ "dusk",
212
+ "ebony",
213
+ "ember",
214
+ "emerald",
215
+ "fern",
216
+ "flame",
217
+ "flint",
218
+ "forest",
219
+ "frost",
220
+ "garnet",
221
+ "ginger",
222
+ "glacier",
223
+ "granite",
224
+ "grape",
225
+ "gray",
226
+ "hazel",
227
+ "honey",
228
+ "indigo",
229
+ "iron",
230
+ "lapis",
231
+ "lava",
232
+ "lavender",
233
+ "lemon",
234
+ "lilac",
235
+ "lime",
236
+ "magenta",
237
+ "mahogany",
238
+ "maple",
239
+ "marble",
240
+ "maroon",
241
+ "mauve",
242
+ "midnight",
243
+ "mint",
244
+ "mocha",
245
+ "moss",
246
+ "mustard",
247
+ "navy",
248
+ "nickel",
249
+ "obsidian",
250
+ "ochre",
251
+ "olive",
252
+ "orange",
253
+ "orchid",
254
+ "peach",
255
+ "pine",
256
+ "pink",
257
+ "plum",
258
+ "porcelain",
259
+ "purple",
260
+ "quartz",
261
+ "rust",
262
+ "saffron",
263
+ "salmon",
264
+ "sand",
265
+ "sapphire",
266
+ "scarlet",
267
+ "sepia",
268
+ "shadow",
269
+ "sienna",
270
+ "smoke",
271
+ "snow",
272
+ "steel",
273
+ "stone",
274
+ "storm",
275
+ "sunset",
276
+ "tan",
277
+ "tangerine",
278
+ "taupe",
279
+ "terra",
280
+ "timber",
281
+ "topaz",
282
+ "turquoise",
283
+ "umber",
284
+ "vanilla",
285
+ "walnut",
286
+ "wheat",
287
+ "white",
288
+ "wine",
289
+ "yellow",
290
+ ];
291
+
292
+ const ANIMALS = [
293
+ "fox",
294
+ "owl",
295
+ "bear",
296
+ "wolf",
297
+ "hawk",
298
+ "deer",
299
+ "lynx",
300
+ "otter",
301
+ "raven",
302
+ "falcon",
303
+ "badger",
304
+ "beaver",
305
+ "bison",
306
+ "bobcat",
307
+ "crane",
308
+ "eagle",
309
+ "ferret",
310
+ "finch",
311
+ "gopher",
312
+ "heron",
313
+ "jaguar",
314
+ "koala",
315
+ "lemur",
316
+ "marten",
317
+ "mink",
318
+ "moose",
319
+ "newt",
320
+ "ocelot",
321
+ "osprey",
322
+ "panda",
323
+ "parrot",
324
+ "pelican",
325
+ "puma",
326
+ "quail",
327
+ "rabbit",
328
+ "raccoon",
329
+ "salmon",
330
+ "seal",
331
+ "shark",
332
+ "shrew",
333
+ "sloth",
334
+ "snake",
335
+ "spider",
336
+ "squid",
337
+ "stork",
338
+ "swan",
339
+ "tiger",
340
+ "toucan",
341
+ "turtle",
342
+ "whale",
343
+ "albatross",
344
+ "ant",
345
+ "antelope",
346
+ "armadillo",
347
+ "baboon",
348
+ "bat",
349
+ "bee",
350
+ "beetle",
351
+ "buffalo",
352
+ "butterfly",
353
+ "camel",
354
+ "cardinal",
355
+ "caribou",
356
+ "catfish",
357
+ "cheetah",
358
+ "chipmunk",
359
+ "cicada",
360
+ "clam",
361
+ "cobra",
362
+ "condor",
363
+ "corgi",
364
+ "cougar",
365
+ "coyote",
366
+ "crab",
367
+ "cricket",
368
+ "crow",
369
+ "dolphin",
370
+ "donkey",
371
+ "dove",
372
+ "dragonfly",
373
+ "duck",
374
+ "eel",
375
+ "egret",
376
+ "elephant",
377
+ "elk",
378
+ "emu",
379
+ "firefly",
380
+ "flamingo",
381
+ "frog",
382
+ "gazelle",
383
+ "gecko",
384
+ "gibbon",
385
+ "giraffe",
386
+ "goat",
387
+ "goose",
388
+ "gorilla",
389
+ "grasshopper",
390
+ "grouse",
391
+ "gull",
392
+ "hamster",
393
+ "hare",
394
+ "hedgehog",
395
+ "hippo",
396
+ "hornet",
397
+ "horse",
398
+ "hound",
399
+ "hummingbird",
400
+ "hyena",
401
+ "ibis",
402
+ "iguana",
403
+ "impala",
404
+ "jackal",
405
+ "jay",
406
+ "jellyfish",
407
+ "kangaroo",
408
+ "kestrel",
409
+ "kingfisher",
410
+ "kite",
411
+ "kiwi",
412
+ "lark",
413
+ "leopard",
414
+ "lion",
415
+ "lizard",
416
+ "llama",
417
+ "lobster",
418
+ "loon",
419
+ "macaw",
420
+ "magpie",
421
+ "mallard",
422
+ "mammoth",
423
+ "manatee",
424
+ "mantis",
425
+ "marlin",
426
+ "marmot",
427
+ "meerkat",
428
+ "mockingbird",
429
+ "mole",
430
+ "mongoose",
431
+ "monkey",
432
+ "moth",
433
+ "mouse",
434
+ "mule",
435
+ "narwhal",
436
+ "nightingale",
437
+ "octopus",
438
+ "opossum",
439
+ "orangutan",
440
+ "oriole",
441
+ "ostrich",
442
+ "oyster",
443
+ "panther",
444
+ "peacock",
445
+ "penguin",
446
+ "pheasant",
447
+ "pig",
448
+ "pigeon",
449
+ "pike",
450
+ "piranha",
451
+ "platypus",
452
+ "pony",
453
+ "porcupine",
454
+ "porpoise",
455
+ "python",
456
+ "raven",
457
+ "ray",
458
+ "reindeer",
459
+ "rhino",
460
+ "robin",
461
+ "rooster",
462
+ "salamander",
463
+ "sandpiper",
464
+ "sardine",
465
+ "scorpion",
466
+ "seagull",
467
+ "seahorse",
468
+ "skunk",
469
+ "snail",
470
+ "sparrow",
471
+ "squirrel",
472
+ "starfish",
473
+ "starling",
474
+ "stingray",
475
+ "swallow",
476
+ "tapir",
477
+ "termite",
478
+ "tern",
479
+ "toad",
480
+ "trout",
481
+ "tuna",
482
+ "viper",
483
+ "vulture",
484
+ "walrus",
485
+ "wasp",
486
+ "weasel",
487
+ "wombat",
488
+ "woodpecker",
489
+ "wren",
490
+ "yak",
491
+ "zebra",
492
+ ];
493
+
494
+ const WORKTREE_FOLDER_NAME = ".array";
495
+
496
+ export class WorktreeManager {
497
+ private mainRepoPath: string;
498
+ private worktreeBasePath: string | null;
499
+ private repoName: string;
500
+ private logger: Logger;
501
+
502
+ constructor(config: WorktreeConfig) {
503
+ this.mainRepoPath = config.mainRepoPath;
504
+ this.worktreeBasePath = config.worktreeBasePath || null;
505
+ this.repoName = path.basename(config.mainRepoPath);
506
+ this.logger =
507
+ config.logger ||
508
+ new Logger({ debug: false, prefix: "[WorktreeManager]" });
509
+ }
510
+
511
+ private usesExternalPath(): boolean {
512
+ return this.worktreeBasePath !== null;
513
+ }
514
+
515
+ private async runGitCommand(command: string): Promise<string> {
516
+ try {
517
+ const { stdout } = await execAsync(`git ${command}`, {
518
+ cwd: this.mainRepoPath,
519
+ });
520
+ return stdout.trim();
521
+ } catch (error) {
522
+ throw new Error(`Git command failed: ${command}\n${error}`);
523
+ }
524
+ }
525
+
526
+ private randomElement<T>(array: T[]): T {
527
+ return array[crypto.randomInt(array.length)];
528
+ }
529
+
530
+ generateWorktreeName(): string {
531
+ const adjective = this.randomElement(ADJECTIVES);
532
+ const color = this.randomElement(COLORS);
533
+ const animal = this.randomElement(ANIMALS);
534
+ return `${adjective}-${color}-${animal}`;
535
+ }
536
+
537
+ private getWorktreeFolderPath(): string {
538
+ if (this.worktreeBasePath) {
539
+ return path.join(this.worktreeBasePath, this.repoName);
540
+ }
541
+ return path.join(this.mainRepoPath, WORKTREE_FOLDER_NAME);
542
+ }
543
+
544
+ private getWorktreePath(name: string): string {
545
+ return path.join(this.getWorktreeFolderPath(), name);
546
+ }
547
+
548
+ async worktreeExists(name: string): Promise<boolean> {
549
+ const worktreePath = this.getWorktreePath(name);
550
+ try {
551
+ await fs.access(worktreePath);
552
+ return true;
553
+ } catch {
554
+ return false;
555
+ }
556
+ }
557
+
558
+ async ensureArrayDirIgnored(): Promise<void> {
559
+ // Use .git/info/exclude instead of .gitignore to avoid modifying tracked files
560
+ const excludePath = path.join(this.mainRepoPath, ".git", "info", "exclude");
561
+ const ignorePattern = `/${WORKTREE_FOLDER_NAME}/`;
562
+
563
+ let content = "";
564
+ try {
565
+ content = await fs.readFile(excludePath, "utf-8");
566
+ } catch {
567
+ // File doesn't exist or .git/info doesn't exist
568
+ }
569
+
570
+ // Check if pattern is already present
571
+ if (
572
+ content.includes(`/${WORKTREE_FOLDER_NAME}/`) ||
573
+ content.includes(`/${WORKTREE_FOLDER_NAME}`)
574
+ ) {
575
+ this.logger.debug("Exclude file already contains .array folder pattern");
576
+ return;
577
+ }
578
+
579
+ // Ensure .git/info directory exists
580
+ const infoDir = path.join(this.mainRepoPath, ".git", "info");
581
+ await fs.mkdir(infoDir, { recursive: true });
582
+
583
+ // Append the pattern
584
+ const newContent = `${content.trimEnd()}\n\n# Array worktrees\n${ignorePattern}\n`;
585
+ await fs.writeFile(excludePath, newContent);
586
+ this.logger.info("Added .array folder to .git/info/exclude");
587
+ }
588
+
589
+ private async generateUniqueWorktreeName(): Promise<string> {
590
+ let name = this.generateWorktreeName();
591
+ let attempts = 0;
592
+ const maxAttempts = 100;
593
+
594
+ while ((await this.worktreeExists(name)) && attempts < maxAttempts) {
595
+ name = this.generateWorktreeName();
596
+ attempts++;
597
+ }
598
+
599
+ if (attempts >= maxAttempts) {
600
+ // Fallback: append timestamp
601
+ name = `${this.generateWorktreeName()}-${Date.now()}`;
602
+ }
603
+
604
+ return name;
605
+ }
606
+
607
+ private async getDefaultBranch(): Promise<string> {
608
+ try {
609
+ const remoteBranch = await this.runGitCommand(
610
+ "symbolic-ref refs/remotes/origin/HEAD",
611
+ );
612
+ return remoteBranch.replace("refs/remotes/origin/", "");
613
+ } catch {
614
+ // Fallback: check if main exists, otherwise use master
615
+ try {
616
+ await this.runGitCommand("rev-parse --verify main");
617
+ return "main";
618
+ } catch {
619
+ try {
620
+ await this.runGitCommand("rev-parse --verify master");
621
+ return "master";
622
+ } catch {
623
+ throw new Error(
624
+ "Cannot determine default branch. No main or master branch found.",
625
+ );
626
+ }
627
+ }
628
+ }
629
+ }
630
+
631
+ async createWorktree(): Promise<WorktreeInfo> {
632
+ // Only modify .git/info/exclude when using in-repo storage
633
+ if (!this.usesExternalPath()) {
634
+ await this.ensureArrayDirIgnored();
635
+ }
636
+
637
+ // Ensure the worktree folder exists when using external path
638
+ if (this.usesExternalPath()) {
639
+ const folderPath = this.getWorktreeFolderPath();
640
+ await fs.mkdir(folderPath, { recursive: true });
641
+ }
642
+
643
+ // Generate unique worktree name
644
+ const worktreeName = await this.generateUniqueWorktreeName();
645
+ const worktreePath = this.getWorktreePath(worktreeName);
646
+ const branchName = `posthog/${worktreeName}`;
647
+ const baseBranch = await this.getDefaultBranch();
648
+
649
+ this.logger.info("Creating worktree", {
650
+ worktreeName,
651
+ worktreePath,
652
+ branchName,
653
+ baseBranch,
654
+ external: this.usesExternalPath(),
655
+ });
656
+
657
+ // Create the worktree with a new branch
658
+ if (this.usesExternalPath()) {
659
+ // Use absolute path for external worktrees
660
+ await this.runGitCommand(
661
+ `worktree add -b "${branchName}" "${worktreePath}" "${baseBranch}"`,
662
+ );
663
+ } else {
664
+ // Use relative path from repo root for in-repo worktrees
665
+ const relativePath = `${WORKTREE_FOLDER_NAME}/${worktreeName}`;
666
+ await this.runGitCommand(
667
+ `worktree add -b "${branchName}" "./${relativePath}" "${baseBranch}"`,
668
+ );
669
+ }
670
+
671
+ const createdAt = new Date().toISOString();
672
+
673
+ this.logger.info("Worktree created successfully", {
674
+ worktreeName,
675
+ worktreePath,
676
+ branchName,
677
+ });
678
+
679
+ return {
680
+ worktreePath,
681
+ worktreeName,
682
+ branchName,
683
+ baseBranch,
684
+ createdAt,
685
+ };
686
+ }
687
+
688
+ async deleteWorktree(worktreePath: string): Promise<void> {
689
+ this.logger.info("Deleting worktree", { worktreePath });
690
+
691
+ try {
692
+ // First, try to remove the worktree via git using execFileAsync for safety
693
+ await execFileAsync(
694
+ "git",
695
+ ["worktree", "remove", worktreePath, "--force"],
696
+ {
697
+ cwd: this.mainRepoPath,
698
+ },
699
+ );
700
+ this.logger.info("Worktree deleted successfully", { worktreePath });
701
+ } catch (error) {
702
+ this.logger.warn(
703
+ "Git worktree remove failed, attempting manual cleanup",
704
+ {
705
+ worktreePath,
706
+ error,
707
+ },
708
+ );
709
+
710
+ // Manual cleanup if git command fails
711
+ try {
712
+ await fs.rm(worktreePath, { recursive: true, force: true });
713
+ // Also prune the worktree list
714
+ await this.runGitCommand("worktree prune");
715
+ this.logger.info("Worktree cleaned up manually", { worktreePath });
716
+ } catch (cleanupError) {
717
+ this.logger.error("Failed to cleanup worktree", {
718
+ worktreePath,
719
+ cleanupError,
720
+ });
721
+ throw cleanupError;
722
+ }
723
+ }
724
+ }
725
+
726
+ async getWorktreeInfo(worktreePath: string): Promise<WorktreeInfo | null> {
727
+ try {
728
+ // Parse the worktree list to find info about this worktree
729
+ const output = await this.runGitCommand("worktree list --porcelain");
730
+ const worktrees = this.parseWorktreeList(output);
731
+
732
+ const worktree = worktrees.find((w) => w.worktreePath === worktreePath);
733
+ return worktree || null;
734
+ } catch (error) {
735
+ this.logger.debug("Failed to get worktree info", { worktreePath, error });
736
+ return null;
737
+ }
738
+ }
739
+
740
+ async listWorktrees(): Promise<WorktreeInfo[]> {
741
+ try {
742
+ const output = await this.runGitCommand("worktree list --porcelain");
743
+ return this.parseWorktreeList(output);
744
+ } catch (error) {
745
+ this.logger.debug("Failed to list worktrees", { error });
746
+ return [];
747
+ }
748
+ }
749
+
750
+ private parseWorktreeList(output: string): WorktreeInfo[] {
751
+ const worktrees: WorktreeInfo[] = [];
752
+ const entries = output.split("\n\n").filter((e) => e.trim());
753
+ const worktreeFolderPath = this.getWorktreeFolderPath();
754
+
755
+ for (const entry of entries) {
756
+ const lines = entry.split("\n");
757
+ let worktreePath = "";
758
+ let branchName = "";
759
+
760
+ for (const line of lines) {
761
+ if (line.startsWith("worktree ")) {
762
+ worktreePath = line.replace("worktree ", "");
763
+ } else if (line.startsWith("branch refs/heads/")) {
764
+ branchName = line.replace("branch refs/heads/", "");
765
+ }
766
+ }
767
+
768
+ // Include worktrees that:
769
+ // 1. Are in our worktree folder (external or in-repo)
770
+ // 2. Have a posthog/ branch prefix (our naming convention)
771
+ const isInWorktreeFolder = worktreePath?.startsWith(worktreeFolderPath);
772
+ const isPosthogBranch = branchName?.startsWith("posthog/");
773
+
774
+ if (
775
+ worktreePath &&
776
+ branchName &&
777
+ (isInWorktreeFolder || isPosthogBranch)
778
+ ) {
779
+ const worktreeName = path.basename(worktreePath);
780
+ worktrees.push({
781
+ worktreePath,
782
+ worktreeName,
783
+ branchName,
784
+ baseBranch: "",
785
+ createdAt: "",
786
+ });
787
+ }
788
+ }
789
+
790
+ return worktrees;
791
+ }
792
+
793
+ async isWorktree(repoPath: string): Promise<boolean> {
794
+ try {
795
+ const { stdout } = await execAsync(
796
+ "git rev-parse --is-inside-work-tree",
797
+ { cwd: repoPath },
798
+ );
799
+ if (stdout.trim() !== "true") {
800
+ return false;
801
+ }
802
+
803
+ // Check if there's a .git file (worktrees have a .git file, not a .git directory)
804
+ const gitPath = path.join(repoPath, ".git");
805
+ const stat = await fs.stat(gitPath);
806
+ return stat.isFile(); // Worktrees have .git as a file, main repos have .git as a directory
807
+ } catch {
808
+ return false;
809
+ }
810
+ }
811
+
812
+ async getMainRepoPathFromWorktree(
813
+ worktreePath: string,
814
+ ): Promise<string | null> {
815
+ try {
816
+ const gitFilePath = path.join(worktreePath, ".git");
817
+ const content = await fs.readFile(gitFilePath, "utf-8");
818
+
819
+ // The .git file in a worktree contains: gitdir: /path/to/main/.git/worktrees/name
820
+ const match = content.match(/gitdir:\s*(.+)/);
821
+ if (match) {
822
+ const gitDir = match[1].trim();
823
+ // Go up from .git/worktrees/name to get the main repo path
824
+ // The gitdir points to something like: /main/repo/.git/worktrees/worktree-name
825
+ const mainGitDir = path.resolve(gitDir, "..", "..", "..");
826
+ return mainGitDir;
827
+ }
828
+ return null;
829
+ } catch {
830
+ return null;
831
+ }
832
+ }
833
+
834
+ async cleanupOrphanedWorktrees(associatedWorktreePaths: string[]): Promise<{
835
+ deleted: string[];
836
+ errors: Array<{ path: string; error: string }>;
837
+ }> {
838
+ this.logger.info("Starting cleanup of orphaned worktrees");
839
+
840
+ const allWorktrees = await this.listWorktrees();
841
+ const deleted: string[] = [];
842
+ const errors: Array<{ path: string; error: string }> = [];
843
+
844
+ const associatedPathsSet = new Set(
845
+ associatedWorktreePaths.map((p) => path.resolve(p)),
846
+ );
847
+
848
+ for (const worktree of allWorktrees) {
849
+ const resolvedPath = path.resolve(worktree.worktreePath);
850
+
851
+ if (!associatedPathsSet.has(resolvedPath)) {
852
+ this.logger.info("Found orphaned worktree", {
853
+ path: worktree.worktreePath,
854
+ });
855
+
856
+ try {
857
+ await this.deleteWorktree(worktree.worktreePath);
858
+ deleted.push(worktree.worktreePath);
859
+ this.logger.info("Deleted orphaned worktree", {
860
+ path: worktree.worktreePath,
861
+ });
862
+ } catch (error) {
863
+ const errorMessage =
864
+ error instanceof Error ? error.message : String(error);
865
+ errors.push({
866
+ path: worktree.worktreePath,
867
+ error: errorMessage,
868
+ });
869
+ this.logger.error("Failed to delete orphaned worktree", {
870
+ path: worktree.worktreePath,
871
+ error: errorMessage,
872
+ });
873
+ }
874
+ }
875
+ }
876
+
877
+ this.logger.info("Cleanup completed", {
878
+ deleted: deleted.length,
879
+ errors: errors.length,
880
+ });
881
+
882
+ return { deleted, errors };
883
+ }
884
+ }