@posthog/agent 1.25.0 → 1.27.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 (573) hide show
  1. package/dist/index.d.ts +1274 -20
  2. package/dist/index.js +7296 -11
  3. package/dist/index.js.map +1 -1
  4. package/package.json +6 -12
  5. package/src/adapters/claude/claude.ts +21 -5
  6. package/src/adapters/claude/tools.ts +8 -1
  7. package/src/agent.ts +250 -1
  8. package/src/session-store.ts +18 -3
  9. package/src/types.ts +1 -1
  10. package/src/worktree-manager.ts +4 -7
  11. package/dist/_virtual/_commonjsHelpers.js +0 -6
  12. package/dist/_virtual/_commonjsHelpers.js.map +0 -1
  13. package/dist/_virtual/additionalItems.js +0 -4
  14. package/dist/_virtual/additionalItems.js.map +0 -1
  15. package/dist/_virtual/additionalProperties.js +0 -4
  16. package/dist/_virtual/additionalProperties.js.map +0 -1
  17. package/dist/_virtual/ajv.js +0 -4
  18. package/dist/_virtual/ajv.js.map +0 -1
  19. package/dist/_virtual/allOf.js +0 -4
  20. package/dist/_virtual/allOf.js.map +0 -1
  21. package/dist/_virtual/anyOf.js +0 -4
  22. package/dist/_virtual/anyOf.js.map +0 -1
  23. package/dist/_virtual/applicability.js +0 -4
  24. package/dist/_virtual/applicability.js.map +0 -1
  25. package/dist/_virtual/boolSchema.js +0 -4
  26. package/dist/_virtual/boolSchema.js.map +0 -1
  27. package/dist/_virtual/code.js +0 -4
  28. package/dist/_virtual/code.js.map +0 -1
  29. package/dist/_virtual/code2.js +0 -4
  30. package/dist/_virtual/code2.js.map +0 -1
  31. package/dist/_virtual/const.js +0 -4
  32. package/dist/_virtual/const.js.map +0 -1
  33. package/dist/_virtual/contains.js +0 -4
  34. package/dist/_virtual/contains.js.map +0 -1
  35. package/dist/_virtual/core.js +0 -4
  36. package/dist/_virtual/core.js.map +0 -1
  37. package/dist/_virtual/dataType.js +0 -4
  38. package/dist/_virtual/dataType.js.map +0 -1
  39. package/dist/_virtual/defaults.js +0 -4
  40. package/dist/_virtual/defaults.js.map +0 -1
  41. package/dist/_virtual/dependencies.js +0 -4
  42. package/dist/_virtual/dependencies.js.map +0 -1
  43. package/dist/_virtual/draft7.js +0 -4
  44. package/dist/_virtual/draft7.js.map +0 -1
  45. package/dist/_virtual/enum.js +0 -4
  46. package/dist/_virtual/enum.js.map +0 -1
  47. package/dist/_virtual/equal.js +0 -4
  48. package/dist/_virtual/equal.js.map +0 -1
  49. package/dist/_virtual/errors.js +0 -4
  50. package/dist/_virtual/errors.js.map +0 -1
  51. package/dist/_virtual/format.js +0 -4
  52. package/dist/_virtual/format.js.map +0 -1
  53. package/dist/_virtual/formats.js +0 -4
  54. package/dist/_virtual/formats.js.map +0 -1
  55. package/dist/_virtual/id.js +0 -4
  56. package/dist/_virtual/id.js.map +0 -1
  57. package/dist/_virtual/if.js +0 -4
  58. package/dist/_virtual/if.js.map +0 -1
  59. package/dist/_virtual/index.js +0 -4
  60. package/dist/_virtual/index.js.map +0 -1
  61. package/dist/_virtual/index10.js +0 -4
  62. package/dist/_virtual/index10.js.map +0 -1
  63. package/dist/_virtual/index11.js +0 -4
  64. package/dist/_virtual/index11.js.map +0 -1
  65. package/dist/_virtual/index2.js +0 -4
  66. package/dist/_virtual/index2.js.map +0 -1
  67. package/dist/_virtual/index3.js +0 -4
  68. package/dist/_virtual/index3.js.map +0 -1
  69. package/dist/_virtual/index4.js +0 -4
  70. package/dist/_virtual/index4.js.map +0 -1
  71. package/dist/_virtual/index5.js +0 -4
  72. package/dist/_virtual/index5.js.map +0 -1
  73. package/dist/_virtual/index6.js +0 -4
  74. package/dist/_virtual/index6.js.map +0 -1
  75. package/dist/_virtual/index7.js +0 -4
  76. package/dist/_virtual/index7.js.map +0 -1
  77. package/dist/_virtual/index8.js +0 -4
  78. package/dist/_virtual/index8.js.map +0 -1
  79. package/dist/_virtual/index9.js +0 -4
  80. package/dist/_virtual/index9.js.map +0 -1
  81. package/dist/_virtual/items.js +0 -4
  82. package/dist/_virtual/items.js.map +0 -1
  83. package/dist/_virtual/items2020.js +0 -4
  84. package/dist/_virtual/items2020.js.map +0 -1
  85. package/dist/_virtual/keyword.js +0 -4
  86. package/dist/_virtual/keyword.js.map +0 -1
  87. package/dist/_virtual/limit.js +0 -4
  88. package/dist/_virtual/limit.js.map +0 -1
  89. package/dist/_virtual/limitItems.js +0 -4
  90. package/dist/_virtual/limitItems.js.map +0 -1
  91. package/dist/_virtual/limitLength.js +0 -4
  92. package/dist/_virtual/limitLength.js.map +0 -1
  93. package/dist/_virtual/limitNumber.js +0 -4
  94. package/dist/_virtual/limitNumber.js.map +0 -1
  95. package/dist/_virtual/limitProperties.js +0 -4
  96. package/dist/_virtual/limitProperties.js.map +0 -1
  97. package/dist/_virtual/metadata.js +0 -4
  98. package/dist/_virtual/metadata.js.map +0 -1
  99. package/dist/_virtual/multipleOf.js +0 -4
  100. package/dist/_virtual/multipleOf.js.map +0 -1
  101. package/dist/_virtual/names.js +0 -4
  102. package/dist/_virtual/names.js.map +0 -1
  103. package/dist/_virtual/not.js +0 -4
  104. package/dist/_virtual/not.js.map +0 -1
  105. package/dist/_virtual/oneOf.js +0 -4
  106. package/dist/_virtual/oneOf.js.map +0 -1
  107. package/dist/_virtual/pattern.js +0 -4
  108. package/dist/_virtual/pattern.js.map +0 -1
  109. package/dist/_virtual/patternProperties.js +0 -4
  110. package/dist/_virtual/patternProperties.js.map +0 -1
  111. package/dist/_virtual/prefixItems.js +0 -4
  112. package/dist/_virtual/prefixItems.js.map +0 -1
  113. package/dist/_virtual/properties.js +0 -4
  114. package/dist/_virtual/properties.js.map +0 -1
  115. package/dist/_virtual/propertyNames.js +0 -4
  116. package/dist/_virtual/propertyNames.js.map +0 -1
  117. package/dist/_virtual/ref.js +0 -4
  118. package/dist/_virtual/ref.js.map +0 -1
  119. package/dist/_virtual/ref_error.js +0 -4
  120. package/dist/_virtual/ref_error.js.map +0 -1
  121. package/dist/_virtual/required.js +0 -4
  122. package/dist/_virtual/required.js.map +0 -1
  123. package/dist/_virtual/resolve.js +0 -4
  124. package/dist/_virtual/resolve.js.map +0 -1
  125. package/dist/_virtual/rules.js +0 -4
  126. package/dist/_virtual/rules.js.map +0 -1
  127. package/dist/_virtual/scope.js +0 -4
  128. package/dist/_virtual/scope.js.map +0 -1
  129. package/dist/_virtual/subschema.js +0 -4
  130. package/dist/_virtual/subschema.js.map +0 -1
  131. package/dist/_virtual/thenElse.js +0 -4
  132. package/dist/_virtual/thenElse.js.map +0 -1
  133. package/dist/_virtual/types.js +0 -4
  134. package/dist/_virtual/types.js.map +0 -1
  135. package/dist/_virtual/ucs2length.js +0 -4
  136. package/dist/_virtual/ucs2length.js.map +0 -1
  137. package/dist/_virtual/uniqueItems.js +0 -4
  138. package/dist/_virtual/uniqueItems.js.map +0 -1
  139. package/dist/_virtual/uri.js +0 -4
  140. package/dist/_virtual/uri.js.map +0 -1
  141. package/dist/_virtual/util.js +0 -4
  142. package/dist/_virtual/util.js.map +0 -1
  143. package/dist/_virtual/validation_error.js +0 -4
  144. package/dist/_virtual/validation_error.js.map +0 -1
  145. package/dist/example-client.d.ts +0 -3
  146. package/dist/example-client.d.ts.map +0 -1
  147. package/dist/example.d.ts +0 -3
  148. package/dist/example.d.ts.map +0 -1
  149. package/dist/index.d.ts.map +0 -1
  150. package/dist/node_modules/@agentclientprotocol/sdk/dist/acp.js +0 -610
  151. package/dist/node_modules/@agentclientprotocol/sdk/dist/acp.js.map +0 -1
  152. package/dist/node_modules/@agentclientprotocol/sdk/dist/schema.js +0 -875
  153. package/dist/node_modules/@agentclientprotocol/sdk/dist/schema.js.map +0 -1
  154. package/dist/node_modules/@agentclientprotocol/sdk/dist/stream.js +0 -66
  155. package/dist/node_modules/@agentclientprotocol/sdk/dist/stream.js.map +0 -1
  156. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js +0 -23
  157. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js.map +0 -1
  158. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +0 -331
  159. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +0 -1
  160. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +0 -717
  161. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +0 -1
  162. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +0 -221
  163. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +0 -1
  164. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +0 -56
  165. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +0 -1
  166. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +0 -440
  167. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +0 -1
  168. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js +0 -94
  169. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js.map +0 -1
  170. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +0 -1610
  171. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +0 -1
  172. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +0 -91
  173. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +0 -1
  174. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/ZodError.js +0 -133
  175. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/ZodError.js.map +0 -1
  176. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/errors.js +0 -9
  177. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/errors.js.map +0 -1
  178. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/errorUtil.js +0 -9
  179. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/errorUtil.js.map +0 -1
  180. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/parseUtil.js +0 -112
  181. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/parseUtil.js.map +0 -1
  182. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/util.js +0 -136
  183. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/util.js.map +0 -1
  184. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/locales/en.js +0 -112
  185. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/locales/en.js.map +0 -1
  186. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/types.js +0 -3297
  187. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/types.js.map +0 -1
  188. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/errors.js +0 -44
  189. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/errors.js.map +0 -1
  190. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/iso.js +0 -36
  191. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/iso.js.map +0 -1
  192. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/parse.js +0 -10
  193. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/parse.js.map +0 -1
  194. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/schemas.js +0 -657
  195. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/schemas.js.map +0 -1
  196. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/api.js +0 -449
  197. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/api.js.map +0 -1
  198. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/checks.js +0 -413
  199. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/checks.js.map +0 -1
  200. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/core.js +0 -57
  201. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/core.js.map +0 -1
  202. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/doc.js +0 -38
  203. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/doc.js.map +0 -1
  204. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/errors.js +0 -86
  205. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/errors.js.map +0 -1
  206. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/parse.js +0 -61
  207. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/parse.js.map +0 -1
  208. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/regexes.js +0 -80
  209. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/regexes.js.map +0 -1
  210. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/registries.js +0 -52
  211. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/registries.js.map +0 -1
  212. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/schemas.js +0 -1307
  213. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/schemas.js.map +0 -1
  214. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/to-json-schema.js +0 -842
  215. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/to-json-schema.js.map +0 -1
  216. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/util.js +0 -335
  217. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/util.js.map +0 -1
  218. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/versions.js +0 -8
  219. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/versions.js.map +0 -1
  220. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/schemas.js +0 -51
  221. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/schemas.js.map +0 -1
  222. package/dist/node_modules/ajv/dist/ajv.js +0 -69
  223. package/dist/node_modules/ajv/dist/ajv.js.map +0 -1
  224. package/dist/node_modules/ajv/dist/compile/codegen/code.js +0 -169
  225. package/dist/node_modules/ajv/dist/compile/codegen/code.js.map +0 -1
  226. package/dist/node_modules/ajv/dist/compile/codegen/index.js +0 -712
  227. package/dist/node_modules/ajv/dist/compile/codegen/index.js.map +0 -1
  228. package/dist/node_modules/ajv/dist/compile/codegen/scope.js +0 -157
  229. package/dist/node_modules/ajv/dist/compile/codegen/scope.js.map +0 -1
  230. package/dist/node_modules/ajv/dist/compile/errors.js +0 -140
  231. package/dist/node_modules/ajv/dist/compile/errors.js.map +0 -1
  232. package/dist/node_modules/ajv/dist/compile/index.js +0 -253
  233. package/dist/node_modules/ajv/dist/compile/index.js.map +0 -1
  234. package/dist/node_modules/ajv/dist/compile/names.js +0 -40
  235. package/dist/node_modules/ajv/dist/compile/names.js.map +0 -1
  236. package/dist/node_modules/ajv/dist/compile/ref_error.js +0 -25
  237. package/dist/node_modules/ajv/dist/compile/ref_error.js.map +0 -1
  238. package/dist/node_modules/ajv/dist/compile/resolve.js +0 -162
  239. package/dist/node_modules/ajv/dist/compile/resolve.js.map +0 -1
  240. package/dist/node_modules/ajv/dist/compile/rules.js +0 -29
  241. package/dist/node_modules/ajv/dist/compile/rules.js.map +0 -1
  242. package/dist/node_modules/ajv/dist/compile/util.js +0 -183
  243. package/dist/node_modules/ajv/dist/compile/util.js.map +0 -1
  244. package/dist/node_modules/ajv/dist/compile/validate/applicability.js +0 -30
  245. package/dist/node_modules/ajv/dist/compile/validate/applicability.js.map +0 -1
  246. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +0 -64
  247. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js.map +0 -1
  248. package/dist/node_modules/ajv/dist/compile/validate/dataType.js +0 -213
  249. package/dist/node_modules/ajv/dist/compile/validate/dataType.js.map +0 -1
  250. package/dist/node_modules/ajv/dist/compile/validate/defaults.js +0 -49
  251. package/dist/node_modules/ajv/dist/compile/validate/defaults.js.map +0 -1
  252. package/dist/node_modules/ajv/dist/compile/validate/index.js +0 -544
  253. package/dist/node_modules/ajv/dist/compile/validate/index.js.map +0 -1
  254. package/dist/node_modules/ajv/dist/compile/validate/keyword.js +0 -139
  255. package/dist/node_modules/ajv/dist/compile/validate/keyword.js.map +0 -1
  256. package/dist/node_modules/ajv/dist/compile/validate/subschema.js +0 -95
  257. package/dist/node_modules/ajv/dist/compile/validate/subschema.js.map +0 -1
  258. package/dist/node_modules/ajv/dist/core.js +0 -639
  259. package/dist/node_modules/ajv/dist/core.js.map +0 -1
  260. package/dist/node_modules/ajv/dist/refs/data.json.js +0 -31
  261. package/dist/node_modules/ajv/dist/refs/data.json.js.map +0 -1
  262. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +0 -254
  263. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +0 -1
  264. package/dist/node_modules/ajv/dist/runtime/equal.js +0 -9
  265. package/dist/node_modules/ajv/dist/runtime/equal.js.map +0 -1
  266. package/dist/node_modules/ajv/dist/runtime/ucs2length.js +0 -25
  267. package/dist/node_modules/ajv/dist/runtime/ucs2length.js.map +0 -1
  268. package/dist/node_modules/ajv/dist/runtime/uri.js +0 -8
  269. package/dist/node_modules/ajv/dist/runtime/uri.js.map +0 -1
  270. package/dist/node_modules/ajv/dist/runtime/validation_error.js +0 -22
  271. package/dist/node_modules/ajv/dist/runtime/validation_error.js.map +0 -1
  272. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +0 -53
  273. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +0 -1
  274. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +0 -112
  275. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +0 -1
  276. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +0 -26
  277. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +0 -1
  278. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +0 -14
  279. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +0 -1
  280. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +0 -99
  281. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +0 -1
  282. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +0 -93
  283. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +0 -1
  284. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +0 -70
  285. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js.map +0 -1
  286. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +0 -77
  287. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js.map +0 -1
  288. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +0 -57
  289. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js.map +0 -1
  290. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +0 -37
  291. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +0 -1
  292. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +0 -29
  293. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js.map +0 -1
  294. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +0 -64
  295. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +0 -1
  296. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +0 -80
  297. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +0 -1
  298. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +0 -15
  299. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +0 -1
  300. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +0 -61
  301. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +0 -1
  302. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +0 -42
  303. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +0 -1
  304. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +0 -16
  305. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +0 -1
  306. package/dist/node_modules/ajv/dist/vocabularies/code.js +0 -146
  307. package/dist/node_modules/ajv/dist/vocabularies/code.js.map +0 -1
  308. package/dist/node_modules/ajv/dist/vocabularies/core/id.js +0 -11
  309. package/dist/node_modules/ajv/dist/vocabularies/core/id.js.map +0 -1
  310. package/dist/node_modules/ajv/dist/vocabularies/core/index.js +0 -21
  311. package/dist/node_modules/ajv/dist/vocabularies/core/index.js.map +0 -1
  312. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +0 -131
  313. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js.map +0 -1
  314. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +0 -113
  315. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +0 -1
  316. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +0 -12
  317. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +0 -1
  318. package/dist/node_modules/ajv/dist/vocabularies/draft7.js +0 -28
  319. package/dist/node_modules/ajv/dist/vocabularies/draft7.js.map +0 -1
  320. package/dist/node_modules/ajv/dist/vocabularies/format/format.js +0 -94
  321. package/dist/node_modules/ajv/dist/vocabularies/format/format.js.map +0 -1
  322. package/dist/node_modules/ajv/dist/vocabularies/format/index.js +0 -9
  323. package/dist/node_modules/ajv/dist/vocabularies/format/index.js.map +0 -1
  324. package/dist/node_modules/ajv/dist/vocabularies/metadata.js +0 -21
  325. package/dist/node_modules/ajv/dist/vocabularies/metadata.js.map +0 -1
  326. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +0 -31
  327. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js.map +0 -1
  328. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +0 -54
  329. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js.map +0 -1
  330. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +0 -54
  331. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js.map +0 -1
  332. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +0 -26
  333. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +0 -1
  334. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +0 -33
  335. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +0 -1
  336. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +0 -29
  337. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +0 -1
  338. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +0 -26
  339. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +0 -1
  340. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +0 -28
  341. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +0 -1
  342. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +0 -27
  343. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +0 -1
  344. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +0 -84
  345. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js.map +0 -1
  346. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +0 -72
  347. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +0 -1
  348. package/dist/node_modules/ajv-formats/dist/formats.js +0 -212
  349. package/dist/node_modules/ajv-formats/dist/formats.js.map +0 -1
  350. package/dist/node_modules/ajv-formats/dist/index.js +0 -52
  351. package/dist/node_modules/ajv-formats/dist/index.js.map +0 -1
  352. package/dist/node_modules/ajv-formats/dist/limit.js +0 -75
  353. package/dist/node_modules/ajv-formats/dist/limit.js.map +0 -1
  354. package/dist/node_modules/diff/libesm/diff/base.js +0 -256
  355. package/dist/node_modules/diff/libesm/diff/base.js.map +0 -1
  356. package/dist/node_modules/diff/libesm/diff/line.js +0 -64
  357. package/dist/node_modules/diff/libesm/diff/line.js.map +0 -1
  358. package/dist/node_modules/diff/libesm/patch/create.js +0 -185
  359. package/dist/node_modules/diff/libesm/patch/create.js.map +0 -1
  360. package/dist/node_modules/fast-deep-equal/index.js +0 -47
  361. package/dist/node_modules/fast-deep-equal/index.js.map +0 -1
  362. package/dist/node_modules/fast-uri/index.js +0 -347
  363. package/dist/node_modules/fast-uri/index.js.map +0 -1
  364. package/dist/node_modules/fast-uri/lib/schemes.js +0 -255
  365. package/dist/node_modules/fast-uri/lib/schemes.js.map +0 -1
  366. package/dist/node_modules/fast-uri/lib/utils.js +0 -334
  367. package/dist/node_modules/fast-uri/lib/utils.js.map +0 -1
  368. package/dist/node_modules/json-schema-traverse/index.js +0 -98
  369. package/dist/node_modules/json-schema-traverse/index.js.map +0 -1
  370. package/dist/node_modules/uuid/dist/rng.js +0 -14
  371. package/dist/node_modules/uuid/dist/rng.js.map +0 -1
  372. package/dist/node_modules/uuid/dist/stringify.js +0 -29
  373. package/dist/node_modules/uuid/dist/stringify.js.map +0 -1
  374. package/dist/node_modules/uuid/dist/v7.js +0 -65
  375. package/dist/node_modules/uuid/dist/v7.js.map +0 -1
  376. package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js +0 -37
  377. package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js.map +0 -1
  378. package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js +0 -26
  379. package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js.map +0 -1
  380. package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +0 -17
  381. package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js.map +0 -1
  382. package/dist/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +0 -11
  383. package/dist/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js.map +0 -1
  384. package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js +0 -66
  385. package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js.map +0 -1
  386. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +0 -21
  387. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js.map +0 -1
  388. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +0 -30
  389. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js.map +0 -1
  390. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +0 -53
  391. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js.map +0 -1
  392. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +0 -8
  393. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js.map +0 -1
  394. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +0 -8
  395. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js.map +0 -1
  396. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +0 -8
  397. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js.map +0 -1
  398. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +0 -50
  399. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js.map +0 -1
  400. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +0 -11
  401. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js.map +0 -1
  402. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +0 -11
  403. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js.map +0 -1
  404. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +0 -9
  405. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js.map +0 -1
  406. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +0 -56
  407. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js.map +0 -1
  408. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +0 -24
  409. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js.map +0 -1
  410. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +0 -30
  411. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js.map +0 -1
  412. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +0 -19
  413. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js.map +0 -1
  414. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +0 -15
  415. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js.map +0 -1
  416. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +0 -13
  417. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js.map +0 -1
  418. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +0 -37
  419. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js.map +0 -1
  420. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +0 -56
  421. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js.map +0 -1
  422. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +0 -76
  423. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js.map +0 -1
  424. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +0 -25
  425. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js.map +0 -1
  426. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +0 -24
  427. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js.map +0 -1
  428. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +0 -8
  429. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js.map +0 -1
  430. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +0 -8
  431. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js.map +0 -1
  432. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +0 -65
  433. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js.map +0 -1
  434. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +0 -24
  435. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js.map +0 -1
  436. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +0 -350
  437. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +0 -1
  438. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +0 -36
  439. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js.map +0 -1
  440. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +0 -10
  441. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js.map +0 -1
  442. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +0 -84
  443. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js.map +0 -1
  444. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +0 -8
  445. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js.map +0 -1
  446. package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js +0 -109
  447. package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js.map +0 -1
  448. package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +0 -90
  449. package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js.map +0 -1
  450. package/dist/node_modules/zod-to-json-schema/node_modules/zod/v3/types.js +0 -42
  451. package/dist/node_modules/zod-to-json-schema/node_modules/zod/v3/types.js.map +0 -1
  452. package/dist/package.json.js +0 -8
  453. package/dist/package.json.js.map +0 -1
  454. package/dist/src/acp-extensions.d.ts +0 -91
  455. package/dist/src/acp-extensions.d.ts.map +0 -1
  456. package/dist/src/acp-extensions.js +0 -38
  457. package/dist/src/acp-extensions.js.map +0 -1
  458. package/dist/src/adapters/claude/claude.d.ts +0 -136
  459. package/dist/src/adapters/claude/claude.d.ts.map +0 -1
  460. package/dist/src/adapters/claude/claude.js +0 -1112
  461. package/dist/src/adapters/claude/claude.js.map +0 -1
  462. package/dist/src/adapters/claude/mcp-server.d.ts +0 -30
  463. package/dist/src/adapters/claude/mcp-server.d.ts.map +0 -1
  464. package/dist/src/adapters/claude/mcp-server.js +0 -655
  465. package/dist/src/adapters/claude/mcp-server.js.map +0 -1
  466. package/dist/src/adapters/claude/tools.d.ts +0 -35
  467. package/dist/src/adapters/claude/tools.d.ts.map +0 -1
  468. package/dist/src/adapters/claude/tools.js +0 -466
  469. package/dist/src/adapters/claude/tools.js.map +0 -1
  470. package/dist/src/adapters/claude/utils.d.ts +0 -48
  471. package/dist/src/adapters/claude/utils.d.ts.map +0 -1
  472. package/dist/src/adapters/claude/utils.js +0 -158
  473. package/dist/src/adapters/claude/utils.js.map +0 -1
  474. package/dist/src/agent.d.ts +0 -52
  475. package/dist/src/agent.d.ts.map +0 -1
  476. package/dist/src/agent.js +0 -425
  477. package/dist/src/agent.js.map +0 -1
  478. package/dist/src/agents/execution.d.ts +0 -2
  479. package/dist/src/agents/execution.d.ts.map +0 -1
  480. package/dist/src/agents/execution.js +0 -40
  481. package/dist/src/agents/execution.js.map +0 -1
  482. package/dist/src/agents/planning.d.ts +0 -2
  483. package/dist/src/agents/planning.d.ts.map +0 -1
  484. package/dist/src/agents/planning.js +0 -63
  485. package/dist/src/agents/planning.js.map +0 -1
  486. package/dist/src/agents/research.d.ts +0 -2
  487. package/dist/src/agents/research.d.ts.map +0 -1
  488. package/dist/src/agents/research.js +0 -163
  489. package/dist/src/agents/research.js.map +0 -1
  490. package/dist/src/file-manager.d.ts +0 -43
  491. package/dist/src/file-manager.d.ts.map +0 -1
  492. package/dist/src/file-manager.js +0 -266
  493. package/dist/src/file-manager.js.map +0 -1
  494. package/dist/src/git-manager.d.ts +0 -79
  495. package/dist/src/git-manager.d.ts.map +0 -1
  496. package/dist/src/git-manager.js +0 -454
  497. package/dist/src/git-manager.js.map +0 -1
  498. package/dist/src/posthog-api.d.ts +0 -48
  499. package/dist/src/posthog-api.d.ts.map +0 -1
  500. package/dist/src/posthog-api.js +0 -260
  501. package/dist/src/posthog-api.js.map +0 -1
  502. package/dist/src/prompt-builder.d.ts +0 -49
  503. package/dist/src/prompt-builder.d.ts.map +0 -1
  504. package/dist/src/prompt-builder.js +0 -397
  505. package/dist/src/prompt-builder.js.map +0 -1
  506. package/dist/src/schemas.d.ts +0 -980
  507. package/dist/src/schemas.d.ts.map +0 -1
  508. package/dist/src/schemas.js +0 -196
  509. package/dist/src/schemas.js.map +0 -1
  510. package/dist/src/session-store.d.ts +0 -53
  511. package/dist/src/session-store.d.ts.map +0 -1
  512. package/dist/src/session-store.js +0 -195
  513. package/dist/src/session-store.js.map +0 -1
  514. package/dist/src/task-manager.d.ts +0 -25
  515. package/dist/src/task-manager.d.ts.map +0 -1
  516. package/dist/src/task-manager.js +0 -123
  517. package/dist/src/task-manager.js.map +0 -1
  518. package/dist/src/template-manager.d.ts +0 -30
  519. package/dist/src/template-manager.d.ts.map +0 -1
  520. package/dist/src/template-manager.js +0 -152
  521. package/dist/src/template-manager.js.map +0 -1
  522. package/dist/src/todo-manager.d.ts +0 -29
  523. package/dist/src/todo-manager.d.ts.map +0 -1
  524. package/dist/src/todo-manager.js +0 -135
  525. package/dist/src/todo-manager.js.map +0 -1
  526. package/dist/src/tools/registry.d.ts +0 -25
  527. package/dist/src/tools/registry.d.ts.map +0 -1
  528. package/dist/src/tools/registry.js +0 -120
  529. package/dist/src/tools/registry.js.map +0 -1
  530. package/dist/src/tools/types.d.ts +0 -80
  531. package/dist/src/tools/types.d.ts.map +0 -1
  532. package/dist/src/types.d.ts +0 -193
  533. package/dist/src/types.d.ts.map +0 -1
  534. package/dist/src/types.js +0 -11
  535. package/dist/src/types.js.map +0 -1
  536. package/dist/src/utils/logger.d.ts +0 -37
  537. package/dist/src/utils/logger.d.ts.map +0 -1
  538. package/dist/src/utils/logger.js +0 -83
  539. package/dist/src/utils/logger.js.map +0 -1
  540. package/dist/src/utils/tapped-stream.d.ts +0 -17
  541. package/dist/src/utils/tapped-stream.d.ts.map +0 -1
  542. package/dist/src/utils/tapped-stream.js +0 -45
  543. package/dist/src/utils/tapped-stream.js.map +0 -1
  544. package/dist/src/workflow/config.d.ts +0 -3
  545. package/dist/src/workflow/config.d.ts.map +0 -1
  546. package/dist/src/workflow/config.js +0 -54
  547. package/dist/src/workflow/config.js.map +0 -1
  548. package/dist/src/workflow/steps/build.d.ts +0 -3
  549. package/dist/src/workflow/steps/build.d.ts.map +0 -1
  550. package/dist/src/workflow/steps/build.js +0 -108
  551. package/dist/src/workflow/steps/build.js.map +0 -1
  552. package/dist/src/workflow/steps/finalize.d.ts +0 -3
  553. package/dist/src/workflow/steps/finalize.d.ts.map +0 -1
  554. package/dist/src/workflow/steps/finalize.js +0 -188
  555. package/dist/src/workflow/steps/finalize.js.map +0 -1
  556. package/dist/src/workflow/steps/plan.d.ts +0 -3
  557. package/dist/src/workflow/steps/plan.d.ts.map +0 -1
  558. package/dist/src/workflow/steps/plan.js +0 -136
  559. package/dist/src/workflow/steps/plan.js.map +0 -1
  560. package/dist/src/workflow/steps/research.d.ts +0 -3
  561. package/dist/src/workflow/steps/research.d.ts.map +0 -1
  562. package/dist/src/workflow/steps/research.js +0 -189
  563. package/dist/src/workflow/steps/research.js.map +0 -1
  564. package/dist/src/workflow/types.d.ts +0 -51
  565. package/dist/src/workflow/types.d.ts.map +0 -1
  566. package/dist/src/workflow/utils.d.ts +0 -12
  567. package/dist/src/workflow/utils.d.ts.map +0 -1
  568. package/dist/src/workflow/utils.js +0 -41
  569. package/dist/src/workflow/utils.js.map +0 -1
  570. package/dist/src/worktree-manager.d.ts +0 -39
  571. package/dist/src/worktree-manager.d.ts.map +0 -1
  572. package/dist/src/worktree-manager.js +0 -810
  573. package/dist/src/worktree-manager.js.map +0 -1
@@ -1,454 +0,0 @@
1
- import { exec } from 'node:child_process';
2
- import { promisify } from 'node:util';
3
- import { Logger } from './utils/logger.js';
4
-
5
- const execAsync = promisify(exec);
6
- class GitManager {
7
- repositoryPath;
8
- authorName;
9
- authorEmail;
10
- logger;
11
- constructor(config) {
12
- this.repositoryPath = config.repositoryPath;
13
- this.authorName = config.authorName;
14
- this.authorEmail = config.authorEmail;
15
- this.logger =
16
- config.logger || new Logger({ debug: false, prefix: "[GitManager]" });
17
- }
18
- escapeShellArg(str) {
19
- return str
20
- .replace(/\\/g, "\\\\")
21
- .replace(/"/g, '\\"')
22
- .replace(/`/g, "\\`")
23
- .replace(/\$/g, "\\$");
24
- }
25
- async runGitCommand(command) {
26
- try {
27
- const { stdout } = await execAsync(`cd "${this.repositoryPath}" && git ${command}`);
28
- return stdout.trim();
29
- }
30
- catch (error) {
31
- throw new Error(`Git command failed: ${command}\n${error}`);
32
- }
33
- }
34
- async runCommand(command) {
35
- try {
36
- const { stdout } = await execAsync(`cd "${this.repositoryPath}" && ${command}`);
37
- return stdout.trim();
38
- }
39
- catch (error) {
40
- throw new Error(`Command failed: ${command}\n${error}`);
41
- }
42
- }
43
- async isGitRepository() {
44
- try {
45
- await this.runGitCommand("rev-parse --git-dir");
46
- return true;
47
- }
48
- catch {
49
- return false;
50
- }
51
- }
52
- async getCurrentBranch() {
53
- return await this.runGitCommand("branch --show-current");
54
- }
55
- async getDefaultBranch() {
56
- try {
57
- // Try to get the default branch from remote
58
- const remoteBranch = await this.runGitCommand("symbolic-ref refs/remotes/origin/HEAD");
59
- return remoteBranch.replace("refs/remotes/origin/", "");
60
- }
61
- catch {
62
- // Fallback: check if main exists, otherwise use master
63
- if (await this.branchExists("main")) {
64
- return "main";
65
- }
66
- else if (await this.branchExists("master")) {
67
- return "master";
68
- }
69
- else {
70
- throw new Error("Cannot determine default branch. No main or master branch found.");
71
- }
72
- }
73
- }
74
- async branchExists(branchName) {
75
- try {
76
- await this.runGitCommand(`rev-parse --verify ${branchName}`);
77
- return true;
78
- }
79
- catch {
80
- return false;
81
- }
82
- }
83
- async createBranch(branchName, baseBranch) {
84
- const base = baseBranch || (await this.getCurrentBranch());
85
- await this.runGitCommand(`checkout -b ${branchName} ${base}`);
86
- }
87
- async switchToBranch(branchName) {
88
- await this.runGitCommand(`checkout ${branchName}`);
89
- }
90
- async resetToDefaultBranchIfNeeded() {
91
- const currentBranch = await this.getCurrentBranch();
92
- const defaultBranch = await this.getDefaultBranch();
93
- if (currentBranch === defaultBranch) {
94
- this.logger.debug("Already on default branch", { branch: defaultBranch });
95
- return true;
96
- }
97
- if (await this.hasChanges()) {
98
- this.logger.warn("Skipping branch reset - uncommitted changes present", {
99
- currentBranch,
100
- defaultBranch,
101
- });
102
- return false;
103
- }
104
- await this.switchToBranch(defaultBranch);
105
- this.logger.info("Reset to default branch", {
106
- from: currentBranch,
107
- to: defaultBranch,
108
- });
109
- return true;
110
- }
111
- async createOrSwitchToBranch(branchName, baseBranch) {
112
- await this.ensureCleanWorkingDirectory("switching branches");
113
- const exists = await this.branchExists(branchName);
114
- if (exists) {
115
- await this.switchToBranch(branchName);
116
- }
117
- else {
118
- await this.createBranch(branchName, baseBranch);
119
- }
120
- }
121
- async addFiles(paths) {
122
- const pathList = paths.map((p) => `"${this.escapeShellArg(p)}"`).join(" ");
123
- await this.runGitCommand(`add ${pathList}`);
124
- }
125
- async addAllPostHogFiles() {
126
- try {
127
- // Use -A flag to add all changes (including new files) and ignore errors if directory is empty
128
- await this.runGitCommand("add -A .posthog/");
129
- }
130
- catch (error) {
131
- // If the directory doesn't exist or has no files, that's fine - just log and continue
132
- this.logger.debug("No PostHog files to add", { error });
133
- }
134
- }
135
- async commitChanges(message, options) {
136
- const command = this.buildCommitCommand(message, options);
137
- return await this.runGitCommand(command);
138
- }
139
- async hasChanges() {
140
- try {
141
- const status = await this.runGitCommand("status --porcelain");
142
- if (!status || status.trim().length === 0) {
143
- return false;
144
- }
145
- const lines = status.split("\n").filter((line) => {
146
- const trimmed = line.trim();
147
- return trimmed.length > 0 && !trimmed.includes(".posthog/");
148
- });
149
- return lines.length > 0;
150
- }
151
- catch {
152
- return false;
153
- }
154
- }
155
- async hasStagedChanges() {
156
- try {
157
- const status = await this.runGitCommand("diff --cached --name-only");
158
- return status.length > 0;
159
- }
160
- catch {
161
- return false;
162
- }
163
- }
164
- // Helper: Centralized safety check for uncommitted changes
165
- async ensureCleanWorkingDirectory(operation) {
166
- if (await this.hasChanges()) {
167
- throw new Error(`Uncommitted changes detected. Please commit or stash changes before ${operation}.`);
168
- }
169
- }
170
- async generateUniqueBranchName(baseName) {
171
- if (!(await this.branchExists(baseName))) {
172
- return baseName;
173
- }
174
- let counter = 1;
175
- let uniqueName = `${baseName}-${counter}`;
176
- while (await this.branchExists(uniqueName)) {
177
- counter++;
178
- uniqueName = `${baseName}-${counter}`;
179
- }
180
- return uniqueName;
181
- }
182
- async ensureOnDefaultBranch() {
183
- const defaultBranch = await this.getDefaultBranch();
184
- const currentBranch = await this.getCurrentBranch();
185
- if (currentBranch !== defaultBranch) {
186
- await this.ensureCleanWorkingDirectory("switching to default branch");
187
- await this.switchToBranch(defaultBranch);
188
- }
189
- return defaultBranch;
190
- }
191
- buildCommitCommand(message, options) {
192
- let command = `commit -m "${this.escapeShellArg(message)}"`;
193
- if (options?.allowEmpty) {
194
- command += " --allow-empty";
195
- }
196
- const authorName = options?.authorName || this.authorName;
197
- const authorEmail = options?.authorEmail || this.authorEmail;
198
- if (authorName && authorEmail) {
199
- command += ` --author="${authorName} <${authorEmail}>"`;
200
- }
201
- return command;
202
- }
203
- async getRemoteUrl() {
204
- try {
205
- return await this.runGitCommand("remote get-url origin");
206
- }
207
- catch {
208
- return null;
209
- }
210
- }
211
- async pushBranch(branchName, force = false) {
212
- const forceFlag = force ? "--force" : "";
213
- await this.runGitCommand(`push ${forceFlag} -u origin ${branchName}`);
214
- }
215
- /**
216
- * Tracks whether commits were made during an operation by comparing HEAD SHA
217
- * before and after. Returns an object with methods to finalize the operation.
218
- *
219
- * Usage:
220
- * const tracker = await gitManager.trackCommitsDuring();
221
- * // ... do work that might create commits ...
222
- * const result = await tracker.finalize({ commitMessage: 'fallback message', push: true });
223
- */
224
- async trackCommitsDuring() {
225
- const initialSha = await this.getCommitSha("HEAD");
226
- return {
227
- finalize: async (options) => {
228
- const currentSha = await this.getCommitSha("HEAD");
229
- const externalCommitsCreated = initialSha !== currentSha;
230
- const hasUncommittedChanges = await this.hasChanges();
231
- // If no commits and no changes, nothing to do
232
- if (!externalCommitsCreated && !hasUncommittedChanges) {
233
- return { commitCreated: false, pushedBranch: false };
234
- }
235
- let commitCreated = externalCommitsCreated;
236
- // Commit any remaining uncommitted changes
237
- if (hasUncommittedChanges) {
238
- await this.runGitCommand("add .");
239
- const hasStagedChanges = await this.hasStagedChanges();
240
- if (hasStagedChanges) {
241
- await this.commitChanges(options.commitMessage);
242
- commitCreated = true;
243
- }
244
- }
245
- // Push if requested and commits were made
246
- let pushedBranch = false;
247
- if (options.push && commitCreated) {
248
- const currentBranch = await this.getCurrentBranch();
249
- await this.pushBranch(currentBranch);
250
- pushedBranch = true;
251
- this.logger.info("Pushed branch after operation", {
252
- branch: currentBranch,
253
- });
254
- }
255
- return { commitCreated, pushedBranch };
256
- },
257
- };
258
- }
259
- async createTaskBranch(taskSlug) {
260
- const branchName = `posthog/task-${taskSlug}`;
261
- // Ensure we're on default branch before creating task branch
262
- const defaultBranch = await this.ensureOnDefaultBranch();
263
- this.logger.info("Creating task branch from default branch", {
264
- branchName,
265
- taskSlug,
266
- baseBranch: defaultBranch,
267
- });
268
- await this.createOrSwitchToBranch(branchName, defaultBranch);
269
- return branchName;
270
- }
271
- async createTaskPlanningBranch(taskId, baseBranch) {
272
- const baseName = `posthog/task-${taskId}-planning`;
273
- const branchName = await this.generateUniqueBranchName(baseName);
274
- this.logger.debug("Creating unique planning branch", {
275
- branchName,
276
- taskId,
277
- });
278
- const base = baseBranch || (await this.ensureOnDefaultBranch());
279
- await this.createBranch(branchName, base);
280
- return branchName;
281
- }
282
- async createTaskImplementationBranch(taskId, planningBranchName) {
283
- const baseName = `posthog/task-${taskId}-implementation`;
284
- const branchName = await this.generateUniqueBranchName(baseName);
285
- this.logger.debug("Creating unique implementation branch", {
286
- branchName,
287
- taskId,
288
- currentBranch: await this.getCurrentBranch(),
289
- });
290
- // Determine base branch: explicit param > current planning branch > default
291
- let baseBranch = planningBranchName;
292
- if (!baseBranch) {
293
- const currentBranch = await this.getCurrentBranch();
294
- if (currentBranch.includes("-planning")) {
295
- baseBranch = currentBranch;
296
- this.logger.debug("Using current planning branch", { baseBranch });
297
- }
298
- else {
299
- baseBranch = await this.ensureOnDefaultBranch();
300
- this.logger.debug("Using default branch", { baseBranch });
301
- }
302
- }
303
- this.logger.debug("Creating implementation branch from base", {
304
- baseBranch,
305
- branchName,
306
- });
307
- await this.createBranch(branchName, baseBranch);
308
- this.logger.info("Implementation branch created", {
309
- branchName,
310
- currentBranch: await this.getCurrentBranch(),
311
- });
312
- return branchName;
313
- }
314
- async commitPlan(taskId, taskTitle) {
315
- const currentBranch = await this.getCurrentBranch();
316
- this.logger.debug("Committing plan", { taskId, currentBranch });
317
- await this.addAllPostHogFiles();
318
- const hasChanges = await this.hasStagedChanges();
319
- this.logger.debug("Checking for staged changes", { hasChanges });
320
- if (!hasChanges) {
321
- this.logger.info("No plan changes to commit", { taskId });
322
- return "No changes to commit";
323
- }
324
- const message = `📋 Add plan for task: ${taskTitle}
325
-
326
- Task ID: ${taskId}
327
- Generated by PostHog Agent
328
-
329
- This commit contains the implementation plan and supporting documentation
330
- for the task. Review the plan before proceeding with implementation.`;
331
- const result = await this.commitChanges(message);
332
- this.logger.info("Plan committed", { taskId, taskTitle });
333
- return result;
334
- }
335
- async commitImplementation(taskId, taskTitle, planSummary) {
336
- await this.runGitCommand("add .");
337
- const hasChanges = await this.hasStagedChanges();
338
- if (!hasChanges) {
339
- this.logger.warn("No implementation changes to commit", { taskId });
340
- return "No changes to commit";
341
- }
342
- let message = `✨ Implement task: ${taskTitle}
343
-
344
- Task ID: ${taskId}
345
- Generated by PostHog Agent`;
346
- if (planSummary) {
347
- message += `\n\nPlan Summary:\n${planSummary}`;
348
- }
349
- message += `\n\nThis commit implements the changes described in the task plan.`;
350
- const result = await this.commitChanges(message);
351
- this.logger.info("Implementation committed", { taskId, taskTitle });
352
- return result;
353
- }
354
- async deleteBranch(branchName, force = false) {
355
- const forceFlag = force ? "-D" : "-d";
356
- await this.runGitCommand(`branch ${forceFlag} ${branchName}`);
357
- }
358
- async deleteRemoteBranch(branchName) {
359
- await this.runGitCommand(`push origin --delete ${branchName}`);
360
- }
361
- async getBranchInfo(branchName) {
362
- const exists = await this.branchExists(branchName);
363
- const currentBranch = await this.getCurrentBranch();
364
- return {
365
- name: branchName,
366
- exists,
367
- isCurrentBranch: branchName === currentBranch,
368
- };
369
- }
370
- async getCommitSha(ref = "HEAD") {
371
- return await this.runGitCommand(`rev-parse ${ref}`);
372
- }
373
- async getCommitMessage(ref = "HEAD") {
374
- return await this.runGitCommand(`log -1 --pretty=%B ${ref}`);
375
- }
376
- async createPullRequest(branchName, title, body, baseBranch) {
377
- const currentBranch = await this.getCurrentBranch();
378
- if (currentBranch !== branchName) {
379
- await this.ensureCleanWorkingDirectory("creating PR");
380
- await this.switchToBranch(branchName);
381
- }
382
- await this.pushBranch(branchName);
383
- let command = `gh pr create --title "${this.escapeShellArg(title)}" --body "${this.escapeShellArg(body)}"`;
384
- if (baseBranch) {
385
- command += ` --base ${baseBranch}`;
386
- }
387
- try {
388
- const prUrl = await this.runCommand(command);
389
- return prUrl.trim();
390
- }
391
- catch (error) {
392
- throw new Error(`Failed to create PR: ${error}`);
393
- }
394
- }
395
- async getTaskBranch(taskSlug) {
396
- try {
397
- // Get all branches matching the task slug pattern
398
- const branches = await this.runGitCommand("branch --list --all");
399
- const branchPattern = `posthog/task-${taskSlug}`;
400
- // Look for exact match or with counter suffix
401
- const lines = branches
402
- .split("\n")
403
- .map((l) => l.trim().replace(/^\*\s+/, ""));
404
- for (const line of lines) {
405
- const cleanBranch = line.replace("remotes/origin/", "");
406
- if (cleanBranch.startsWith(branchPattern)) {
407
- return cleanBranch;
408
- }
409
- }
410
- return null;
411
- }
412
- catch (error) {
413
- this.logger.debug("Failed to get task branch", { taskSlug, error });
414
- return null;
415
- }
416
- }
417
- async commitAndPush(message, options) {
418
- const hasChanges = await this.hasStagedChanges();
419
- if (!hasChanges && !options?.allowEmpty) {
420
- this.logger.debug("No changes to commit, skipping");
421
- return;
422
- }
423
- const command = this.buildCommitCommand(message, options);
424
- await this.runGitCommand(command);
425
- // Push to origin
426
- const currentBranch = await this.getCurrentBranch();
427
- await this.pushBranch(currentBranch);
428
- this.logger.info("Committed and pushed changes", {
429
- branch: currentBranch,
430
- message,
431
- });
432
- }
433
- async isWorktree() {
434
- try {
435
- // In a worktree, .git is a file pointing to the main repo's .git/worktrees/{name}
436
- // In a normal repo, .git is a directory
437
- const result = await this.runGitCommand("rev-parse --git-common-dir --git-dir");
438
- const lines = result.split("\n");
439
- if (lines.length >= 2) {
440
- const commonDir = lines[0].trim();
441
- const gitDir = lines[1].trim();
442
- // If they're different, we're in a worktree
443
- return commonDir !== gitDir;
444
- }
445
- return false;
446
- }
447
- catch {
448
- return false;
449
- }
450
- }
451
- }
452
-
453
- export { GitManager };
454
- //# sourceMappingURL=git-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-manager.js","sources":["../../src/git-manager.ts"],"sourcesContent":["import { exec } from \"node:child_process\";\nimport { promisify } from \"node:util\";\nimport { Logger } from \"./utils/logger.js\";\n\nconst execAsync = promisify(exec);\n\nexport interface GitConfig {\n repositoryPath: string;\n authorName?: string;\n authorEmail?: string;\n logger?: Logger;\n}\n\nexport interface BranchInfo {\n name: string;\n exists: boolean;\n isCurrentBranch: boolean;\n}\n\nexport class GitManager {\n private repositoryPath: string;\n private authorName?: string;\n private authorEmail?: string;\n private logger: Logger;\n\n constructor(config: GitConfig) {\n this.repositoryPath = config.repositoryPath;\n this.authorName = config.authorName;\n this.authorEmail = config.authorEmail;\n this.logger =\n config.logger || new Logger({ debug: false, prefix: \"[GitManager]\" });\n }\n\n private escapeShellArg(str: string): string {\n return str\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\"/g, '\\\\\"')\n .replace(/`/g, \"\\\\`\")\n .replace(/\\$/g, \"\\\\$\");\n }\n\n private async runGitCommand(command: string): Promise<string> {\n try {\n const { stdout } = await execAsync(\n `cd \"${this.repositoryPath}\" && git ${command}`,\n );\n return stdout.trim();\n } catch (error) {\n throw new Error(`Git command failed: ${command}\\n${error}`);\n }\n }\n\n private async runCommand(command: string): Promise<string> {\n try {\n const { stdout } = await execAsync(\n `cd \"${this.repositoryPath}\" && ${command}`,\n );\n return stdout.trim();\n } catch (error) {\n throw new Error(`Command failed: ${command}\\n${error}`);\n }\n }\n\n async isGitRepository(): Promise<boolean> {\n try {\n await this.runGitCommand(\"rev-parse --git-dir\");\n return true;\n } catch {\n return false;\n }\n }\n\n async getCurrentBranch(): Promise<string> {\n return await this.runGitCommand(\"branch --show-current\");\n }\n\n async getDefaultBranch(): Promise<string> {\n try {\n // Try to get the default branch from remote\n const remoteBranch = await this.runGitCommand(\n \"symbolic-ref refs/remotes/origin/HEAD\",\n );\n return remoteBranch.replace(\"refs/remotes/origin/\", \"\");\n } catch {\n // Fallback: check if main exists, otherwise use master\n if (await this.branchExists(\"main\")) {\n return \"main\";\n } else if (await this.branchExists(\"master\")) {\n return \"master\";\n } else {\n throw new Error(\n \"Cannot determine default branch. No main or master branch found.\",\n );\n }\n }\n }\n\n async branchExists(branchName: string): Promise<boolean> {\n try {\n await this.runGitCommand(`rev-parse --verify ${branchName}`);\n return true;\n } catch {\n return false;\n }\n }\n\n async createBranch(branchName: string, baseBranch?: string): Promise<void> {\n const base = baseBranch || (await this.getCurrentBranch());\n await this.runGitCommand(`checkout -b ${branchName} ${base}`);\n }\n\n async switchToBranch(branchName: string): Promise<void> {\n await this.runGitCommand(`checkout ${branchName}`);\n }\n\n async resetToDefaultBranchIfNeeded(): Promise<boolean> {\n const currentBranch = await this.getCurrentBranch();\n const defaultBranch = await this.getDefaultBranch();\n\n if (currentBranch === defaultBranch) {\n this.logger.debug(\"Already on default branch\", { branch: defaultBranch });\n return true;\n }\n\n if (await this.hasChanges()) {\n this.logger.warn(\"Skipping branch reset - uncommitted changes present\", {\n currentBranch,\n defaultBranch,\n });\n return false;\n }\n\n await this.switchToBranch(defaultBranch);\n this.logger.info(\"Reset to default branch\", {\n from: currentBranch,\n to: defaultBranch,\n });\n return true;\n }\n\n async createOrSwitchToBranch(\n branchName: string,\n baseBranch?: string,\n ): Promise<void> {\n await this.ensureCleanWorkingDirectory(\"switching branches\");\n\n const exists = await this.branchExists(branchName);\n if (exists) {\n await this.switchToBranch(branchName);\n } else {\n await this.createBranch(branchName, baseBranch);\n }\n }\n\n async addFiles(paths: string[]): Promise<void> {\n const pathList = paths.map((p) => `\"${this.escapeShellArg(p)}\"`).join(\" \");\n await this.runGitCommand(`add ${pathList}`);\n }\n\n async addAllPostHogFiles(): Promise<void> {\n try {\n // Use -A flag to add all changes (including new files) and ignore errors if directory is empty\n await this.runGitCommand(\"add -A .posthog/\");\n } catch (error) {\n // If the directory doesn't exist or has no files, that's fine - just log and continue\n this.logger.debug(\"No PostHog files to add\", { error });\n }\n }\n\n async commitChanges(\n message: string,\n options?: {\n authorName?: string;\n authorEmail?: string;\n },\n ): Promise<string> {\n const command = this.buildCommitCommand(message, options);\n return await this.runGitCommand(command);\n }\n\n async hasChanges(): Promise<boolean> {\n try {\n const status = await this.runGitCommand(\"status --porcelain\");\n if (!status || status.trim().length === 0) {\n return false;\n }\n\n const lines = status.split(\"\\n\").filter((line) => {\n const trimmed = line.trim();\n return trimmed.length > 0 && !trimmed.includes(\".posthog/\");\n });\n\n return lines.length > 0;\n } catch {\n return false;\n }\n }\n\n async hasStagedChanges(): Promise<boolean> {\n try {\n const status = await this.runGitCommand(\"diff --cached --name-only\");\n return status.length > 0;\n } catch {\n return false;\n }\n }\n\n // Helper: Centralized safety check for uncommitted changes\n private async ensureCleanWorkingDirectory(operation: string): Promise<void> {\n if (await this.hasChanges()) {\n throw new Error(\n `Uncommitted changes detected. Please commit or stash changes before ${operation}.`,\n );\n }\n }\n\n private async generateUniqueBranchName(baseName: string): Promise<string> {\n if (!(await this.branchExists(baseName))) {\n return baseName;\n }\n\n let counter = 1;\n let uniqueName = `${baseName}-${counter}`;\n while (await this.branchExists(uniqueName)) {\n counter++;\n uniqueName = `${baseName}-${counter}`;\n }\n return uniqueName;\n }\n\n private async ensureOnDefaultBranch(): Promise<string> {\n const defaultBranch = await this.getDefaultBranch();\n const currentBranch = await this.getCurrentBranch();\n\n if (currentBranch !== defaultBranch) {\n await this.ensureCleanWorkingDirectory(\"switching to default branch\");\n await this.switchToBranch(defaultBranch);\n }\n\n return defaultBranch;\n }\n\n private buildCommitCommand(\n message: string,\n options?: {\n allowEmpty?: boolean;\n authorName?: string;\n authorEmail?: string;\n },\n ): string {\n let command = `commit -m \"${this.escapeShellArg(message)}\"`;\n\n if (options?.allowEmpty) {\n command += \" --allow-empty\";\n }\n\n const authorName = options?.authorName || this.authorName;\n const authorEmail = options?.authorEmail || this.authorEmail;\n\n if (authorName && authorEmail) {\n command += ` --author=\"${authorName} <${authorEmail}>\"`;\n }\n\n return command;\n }\n\n async getRemoteUrl(): Promise<string | null> {\n try {\n return await this.runGitCommand(\"remote get-url origin\");\n } catch {\n return null;\n }\n }\n\n async pushBranch(branchName: string, force: boolean = false): Promise<void> {\n const forceFlag = force ? \"--force\" : \"\";\n await this.runGitCommand(`push ${forceFlag} -u origin ${branchName}`);\n }\n\n /**\n * Tracks whether commits were made during an operation by comparing HEAD SHA\n * before and after. Returns an object with methods to finalize the operation.\n *\n * Usage:\n * const tracker = await gitManager.trackCommitsDuring();\n * // ... do work that might create commits ...\n * const result = await tracker.finalize({ commitMessage: 'fallback message', push: true });\n */\n async trackCommitsDuring(): Promise<{\n finalize: (options: {\n commitMessage: string;\n push?: boolean;\n }) => Promise<{ commitCreated: boolean; pushedBranch: boolean }>;\n }> {\n const initialSha = await this.getCommitSha(\"HEAD\");\n\n return {\n finalize: async (options) => {\n const currentSha = await this.getCommitSha(\"HEAD\");\n const externalCommitsCreated = initialSha !== currentSha;\n const hasUncommittedChanges = await this.hasChanges();\n\n // If no commits and no changes, nothing to do\n if (!externalCommitsCreated && !hasUncommittedChanges) {\n return { commitCreated: false, pushedBranch: false };\n }\n\n let commitCreated = externalCommitsCreated;\n\n // Commit any remaining uncommitted changes\n if (hasUncommittedChanges) {\n await this.runGitCommand(\"add .\");\n const hasStagedChanges = await this.hasStagedChanges();\n\n if (hasStagedChanges) {\n await this.commitChanges(options.commitMessage);\n commitCreated = true;\n }\n }\n\n // Push if requested and commits were made\n let pushedBranch = false;\n if (options.push && commitCreated) {\n const currentBranch = await this.getCurrentBranch();\n await this.pushBranch(currentBranch);\n pushedBranch = true;\n this.logger.info(\"Pushed branch after operation\", {\n branch: currentBranch,\n });\n }\n\n return { commitCreated, pushedBranch };\n },\n };\n }\n\n async createTaskBranch(taskSlug: string): Promise<string> {\n const branchName = `posthog/task-${taskSlug}`;\n\n // Ensure we're on default branch before creating task branch\n const defaultBranch = await this.ensureOnDefaultBranch();\n\n this.logger.info(\"Creating task branch from default branch\", {\n branchName,\n taskSlug,\n baseBranch: defaultBranch,\n });\n\n await this.createOrSwitchToBranch(branchName, defaultBranch);\n\n return branchName;\n }\n\n async createTaskPlanningBranch(\n taskId: string,\n baseBranch?: string,\n ): Promise<string> {\n const baseName = `posthog/task-${taskId}-planning`;\n const branchName = await this.generateUniqueBranchName(baseName);\n\n this.logger.debug(\"Creating unique planning branch\", {\n branchName,\n taskId,\n });\n\n const base = baseBranch || (await this.ensureOnDefaultBranch());\n await this.createBranch(branchName, base);\n\n return branchName;\n }\n\n async createTaskImplementationBranch(\n taskId: string,\n planningBranchName?: string,\n ): Promise<string> {\n const baseName = `posthog/task-${taskId}-implementation`;\n const branchName = await this.generateUniqueBranchName(baseName);\n\n this.logger.debug(\"Creating unique implementation branch\", {\n branchName,\n taskId,\n currentBranch: await this.getCurrentBranch(),\n });\n\n // Determine base branch: explicit param > current planning branch > default\n let baseBranch = planningBranchName;\n\n if (!baseBranch) {\n const currentBranch = await this.getCurrentBranch();\n if (currentBranch.includes(\"-planning\")) {\n baseBranch = currentBranch;\n this.logger.debug(\"Using current planning branch\", { baseBranch });\n } else {\n baseBranch = await this.ensureOnDefaultBranch();\n this.logger.debug(\"Using default branch\", { baseBranch });\n }\n }\n\n this.logger.debug(\"Creating implementation branch from base\", {\n baseBranch,\n branchName,\n });\n await this.createBranch(branchName, baseBranch);\n\n this.logger.info(\"Implementation branch created\", {\n branchName,\n currentBranch: await this.getCurrentBranch(),\n });\n\n return branchName;\n }\n\n async commitPlan(taskId: string, taskTitle: string): Promise<string> {\n const currentBranch = await this.getCurrentBranch();\n this.logger.debug(\"Committing plan\", { taskId, currentBranch });\n\n await this.addAllPostHogFiles();\n\n const hasChanges = await this.hasStagedChanges();\n this.logger.debug(\"Checking for staged changes\", { hasChanges });\n\n if (!hasChanges) {\n this.logger.info(\"No plan changes to commit\", { taskId });\n return \"No changes to commit\";\n }\n\n const message = `📋 Add plan for task: ${taskTitle}\n\nTask ID: ${taskId}\nGenerated by PostHog Agent\n\nThis commit contains the implementation plan and supporting documentation\nfor the task. Review the plan before proceeding with implementation.`;\n\n const result = await this.commitChanges(message);\n this.logger.info(\"Plan committed\", { taskId, taskTitle });\n return result;\n }\n\n async commitImplementation(\n taskId: string,\n taskTitle: string,\n planSummary?: string,\n ): Promise<string> {\n await this.runGitCommand(\"add .\");\n\n const hasChanges = await this.hasStagedChanges();\n if (!hasChanges) {\n this.logger.warn(\"No implementation changes to commit\", { taskId });\n return \"No changes to commit\";\n }\n\n let message = `✨ Implement task: ${taskTitle}\n\nTask ID: ${taskId}\nGenerated by PostHog Agent`;\n\n if (planSummary) {\n message += `\\n\\nPlan Summary:\\n${planSummary}`;\n }\n\n message += `\\n\\nThis commit implements the changes described in the task plan.`;\n\n const result = await this.commitChanges(message);\n this.logger.info(\"Implementation committed\", { taskId, taskTitle });\n return result;\n }\n\n async deleteBranch(\n branchName: string,\n force: boolean = false,\n ): Promise<void> {\n const forceFlag = force ? \"-D\" : \"-d\";\n await this.runGitCommand(`branch ${forceFlag} ${branchName}`);\n }\n\n async deleteRemoteBranch(branchName: string): Promise<void> {\n await this.runGitCommand(`push origin --delete ${branchName}`);\n }\n\n async getBranchInfo(branchName: string): Promise<BranchInfo> {\n const exists = await this.branchExists(branchName);\n const currentBranch = await this.getCurrentBranch();\n\n return {\n name: branchName,\n exists,\n isCurrentBranch: branchName === currentBranch,\n };\n }\n\n async getCommitSha(ref: string = \"HEAD\"): Promise<string> {\n return await this.runGitCommand(`rev-parse ${ref}`);\n }\n\n async getCommitMessage(ref: string = \"HEAD\"): Promise<string> {\n return await this.runGitCommand(`log -1 --pretty=%B ${ref}`);\n }\n\n async createPullRequest(\n branchName: string,\n title: string,\n body: string,\n baseBranch?: string,\n ): Promise<string> {\n const currentBranch = await this.getCurrentBranch();\n if (currentBranch !== branchName) {\n await this.ensureCleanWorkingDirectory(\"creating PR\");\n await this.switchToBranch(branchName);\n }\n\n await this.pushBranch(branchName);\n\n let command = `gh pr create --title \"${this.escapeShellArg(title)}\" --body \"${this.escapeShellArg(body)}\"`;\n\n if (baseBranch) {\n command += ` --base ${baseBranch}`;\n }\n\n try {\n const prUrl = await this.runCommand(command);\n return prUrl.trim();\n } catch (error) {\n throw new Error(`Failed to create PR: ${error}`);\n }\n }\n\n async getTaskBranch(taskSlug: string): Promise<string | null> {\n try {\n // Get all branches matching the task slug pattern\n const branches = await this.runGitCommand(\"branch --list --all\");\n const branchPattern = `posthog/task-${taskSlug}`;\n\n // Look for exact match or with counter suffix\n const lines = branches\n .split(\"\\n\")\n .map((l) => l.trim().replace(/^\\*\\s+/, \"\"));\n for (const line of lines) {\n const cleanBranch = line.replace(\"remotes/origin/\", \"\");\n if (cleanBranch.startsWith(branchPattern)) {\n return cleanBranch;\n }\n }\n\n return null;\n } catch (error) {\n this.logger.debug(\"Failed to get task branch\", { taskSlug, error });\n return null;\n }\n }\n\n async commitAndPush(\n message: string,\n options?: { allowEmpty?: boolean },\n ): Promise<void> {\n const hasChanges = await this.hasStagedChanges();\n\n if (!hasChanges && !options?.allowEmpty) {\n this.logger.debug(\"No changes to commit, skipping\");\n return;\n }\n\n const command = this.buildCommitCommand(message, options);\n await this.runGitCommand(command);\n\n // Push to origin\n const currentBranch = await this.getCurrentBranch();\n await this.pushBranch(currentBranch);\n\n this.logger.info(\"Committed and pushed changes\", {\n branch: currentBranch,\n message,\n });\n }\n\n async isWorktree(): Promise<boolean> {\n try {\n // In a worktree, .git is a file pointing to the main repo's .git/worktrees/{name}\n // In a normal repo, .git is a directory\n const result = await this.runGitCommand(\n \"rev-parse --git-common-dir --git-dir\",\n );\n const lines = result.split(\"\\n\");\n if (lines.length >= 2) {\n const commonDir = lines[0].trim();\n const gitDir = lines[1].trim();\n // If they're different, we're in a worktree\n return commonDir !== gitDir;\n }\n return false;\n } catch {\n return false;\n }\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,48 +0,0 @@
1
- import type { PostHogAPIConfig, PostHogResource, StoredEntry, Task, TaskArtifactUploadPayload, TaskRun, TaskRunArtifact, UrlMention } from "./types.js";
2
- export type TaskRunUpdate = Partial<Pick<TaskRun, "status" | "branch" | "stage" | "error_message" | "output" | "state">>;
3
- export type TaskCreatePayload = Pick<Task, "description"> & Partial<Pick<Task, "title" | "repository" | "origin_product">>;
4
- export declare class PostHogAPIClient {
5
- private config;
6
- constructor(config: PostHogAPIConfig);
7
- private get baseUrl();
8
- private get headers();
9
- private apiRequest;
10
- getTeamId(): number;
11
- getBaseUrl(): string;
12
- getApiKey(): string;
13
- getLlmGatewayUrl(): string;
14
- fetchTask(taskId: string): Promise<Task>;
15
- listTasks(filters?: {
16
- repository?: string;
17
- organization?: string;
18
- origin_product?: string;
19
- }): Promise<Task[]>;
20
- updateTask(taskId: string, updates: Partial<Task>): Promise<Task>;
21
- createTask(payload: TaskCreatePayload): Promise<Task>;
22
- listTaskRuns(taskId: string): Promise<TaskRun[]>;
23
- getTaskRun(taskId: string, runId: string): Promise<TaskRun>;
24
- createTaskRun(taskId: string, payload?: Partial<Omit<TaskRun, "id" | "task" | "team" | "created_at" | "updated_at" | "completed_at" | "artifacts">>): Promise<TaskRun>;
25
- updateTaskRun(taskId: string, runId: string, payload: TaskRunUpdate): Promise<TaskRun>;
26
- setTaskRunOutput(taskId: string, runId: string, output: Record<string, unknown>): Promise<TaskRun>;
27
- appendTaskRunLog(taskId: string, runId: string, entries: StoredEntry[]): Promise<TaskRun>;
28
- uploadTaskArtifacts(taskId: string, runId: string, artifacts: TaskArtifactUploadPayload[]): Promise<TaskRunArtifact[]>;
29
- /**
30
- * Fetch logs from S3 using presigned URL from TaskRun
31
- * @param taskRun - The task run containing the log_url
32
- * @returns Array of stored entries, or empty array if no logs available
33
- */
34
- fetchTaskRunLogs(taskRun: TaskRun): Promise<StoredEntry[]>;
35
- /**
36
- * Fetch error details from PostHog error tracking
37
- */
38
- fetchErrorDetails(errorId: string, projectId?: string): Promise<PostHogResource>;
39
- /**
40
- * Generic resource fetcher by URL or ID
41
- */
42
- fetchResourceByUrl(urlMention: UrlMention): Promise<PostHogResource>;
43
- /**
44
- * Format error data for agent consumption
45
- */
46
- private formatErrorContent;
47
- }
48
- //# sourceMappingURL=posthog-api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"posthog-api.d.ts","sourceRoot":"","sources":["../../src/posthog-api.ts"],"names":[],"mappings":"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"}