@posthog/agent 1.26.0 → 1.28.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 (572) hide show
  1. package/dist/index.d.ts +1274 -20
  2. package/dist/index.js +7327 -11
  3. package/dist/index.js.map +1 -1
  4. package/package.json +6 -12
  5. package/src/agent.ts +42 -5
  6. package/src/types.ts +1 -1
  7. package/src/worktree-manager.ts +45 -0
  8. package/dist/_virtual/_commonjsHelpers.js +0 -6
  9. package/dist/_virtual/_commonjsHelpers.js.map +0 -1
  10. package/dist/_virtual/_tslib.js +0 -74
  11. package/dist/_virtual/_tslib.js.map +0 -1
  12. package/dist/_virtual/additionalItems.js +0 -4
  13. package/dist/_virtual/additionalItems.js.map +0 -1
  14. package/dist/_virtual/additionalProperties.js +0 -4
  15. package/dist/_virtual/additionalProperties.js.map +0 -1
  16. package/dist/_virtual/ajv.js +0 -4
  17. package/dist/_virtual/ajv.js.map +0 -1
  18. package/dist/_virtual/allOf.js +0 -4
  19. package/dist/_virtual/allOf.js.map +0 -1
  20. package/dist/_virtual/anyOf.js +0 -4
  21. package/dist/_virtual/anyOf.js.map +0 -1
  22. package/dist/_virtual/applicability.js +0 -4
  23. package/dist/_virtual/applicability.js.map +0 -1
  24. package/dist/_virtual/boolSchema.js +0 -4
  25. package/dist/_virtual/boolSchema.js.map +0 -1
  26. package/dist/_virtual/code.js +0 -4
  27. package/dist/_virtual/code.js.map +0 -1
  28. package/dist/_virtual/code2.js +0 -4
  29. package/dist/_virtual/code2.js.map +0 -1
  30. package/dist/_virtual/const.js +0 -4
  31. package/dist/_virtual/const.js.map +0 -1
  32. package/dist/_virtual/contains.js +0 -4
  33. package/dist/_virtual/contains.js.map +0 -1
  34. package/dist/_virtual/core.js +0 -4
  35. package/dist/_virtual/core.js.map +0 -1
  36. package/dist/_virtual/dataType.js +0 -4
  37. package/dist/_virtual/dataType.js.map +0 -1
  38. package/dist/_virtual/defaults.js +0 -4
  39. package/dist/_virtual/defaults.js.map +0 -1
  40. package/dist/_virtual/dependencies.js +0 -4
  41. package/dist/_virtual/dependencies.js.map +0 -1
  42. package/dist/_virtual/draft7.js +0 -4
  43. package/dist/_virtual/draft7.js.map +0 -1
  44. package/dist/_virtual/enum.js +0 -4
  45. package/dist/_virtual/enum.js.map +0 -1
  46. package/dist/_virtual/equal.js +0 -4
  47. package/dist/_virtual/equal.js.map +0 -1
  48. package/dist/_virtual/errors.js +0 -4
  49. package/dist/_virtual/errors.js.map +0 -1
  50. package/dist/_virtual/format.js +0 -4
  51. package/dist/_virtual/format.js.map +0 -1
  52. package/dist/_virtual/formats.js +0 -4
  53. package/dist/_virtual/formats.js.map +0 -1
  54. package/dist/_virtual/id.js +0 -4
  55. package/dist/_virtual/id.js.map +0 -1
  56. package/dist/_virtual/if.js +0 -4
  57. package/dist/_virtual/if.js.map +0 -1
  58. package/dist/_virtual/index.js +0 -4
  59. package/dist/_virtual/index.js.map +0 -1
  60. package/dist/_virtual/index10.js +0 -4
  61. package/dist/_virtual/index10.js.map +0 -1
  62. package/dist/_virtual/index11.js +0 -4
  63. package/dist/_virtual/index11.js.map +0 -1
  64. package/dist/_virtual/index2.js +0 -4
  65. package/dist/_virtual/index2.js.map +0 -1
  66. package/dist/_virtual/index3.js +0 -4
  67. package/dist/_virtual/index3.js.map +0 -1
  68. package/dist/_virtual/index4.js +0 -4
  69. package/dist/_virtual/index4.js.map +0 -1
  70. package/dist/_virtual/index5.js +0 -4
  71. package/dist/_virtual/index5.js.map +0 -1
  72. package/dist/_virtual/index6.js +0 -4
  73. package/dist/_virtual/index6.js.map +0 -1
  74. package/dist/_virtual/index7.js +0 -4
  75. package/dist/_virtual/index7.js.map +0 -1
  76. package/dist/_virtual/index8.js +0 -4
  77. package/dist/_virtual/index8.js.map +0 -1
  78. package/dist/_virtual/index9.js +0 -4
  79. package/dist/_virtual/index9.js.map +0 -1
  80. package/dist/_virtual/items.js +0 -4
  81. package/dist/_virtual/items.js.map +0 -1
  82. package/dist/_virtual/items2020.js +0 -4
  83. package/dist/_virtual/items2020.js.map +0 -1
  84. package/dist/_virtual/keyword.js +0 -4
  85. package/dist/_virtual/keyword.js.map +0 -1
  86. package/dist/_virtual/limit.js +0 -4
  87. package/dist/_virtual/limit.js.map +0 -1
  88. package/dist/_virtual/limitItems.js +0 -4
  89. package/dist/_virtual/limitItems.js.map +0 -1
  90. package/dist/_virtual/limitLength.js +0 -4
  91. package/dist/_virtual/limitLength.js.map +0 -1
  92. package/dist/_virtual/limitNumber.js +0 -4
  93. package/dist/_virtual/limitNumber.js.map +0 -1
  94. package/dist/_virtual/limitProperties.js +0 -4
  95. package/dist/_virtual/limitProperties.js.map +0 -1
  96. package/dist/_virtual/metadata.js +0 -4
  97. package/dist/_virtual/metadata.js.map +0 -1
  98. package/dist/_virtual/multipleOf.js +0 -4
  99. package/dist/_virtual/multipleOf.js.map +0 -1
  100. package/dist/_virtual/names.js +0 -4
  101. package/dist/_virtual/names.js.map +0 -1
  102. package/dist/_virtual/not.js +0 -4
  103. package/dist/_virtual/not.js.map +0 -1
  104. package/dist/_virtual/oneOf.js +0 -4
  105. package/dist/_virtual/oneOf.js.map +0 -1
  106. package/dist/_virtual/pattern.js +0 -4
  107. package/dist/_virtual/pattern.js.map +0 -1
  108. package/dist/_virtual/patternProperties.js +0 -4
  109. package/dist/_virtual/patternProperties.js.map +0 -1
  110. package/dist/_virtual/prefixItems.js +0 -4
  111. package/dist/_virtual/prefixItems.js.map +0 -1
  112. package/dist/_virtual/properties.js +0 -4
  113. package/dist/_virtual/properties.js.map +0 -1
  114. package/dist/_virtual/propertyNames.js +0 -4
  115. package/dist/_virtual/propertyNames.js.map +0 -1
  116. package/dist/_virtual/ref.js +0 -4
  117. package/dist/_virtual/ref.js.map +0 -1
  118. package/dist/_virtual/ref_error.js +0 -4
  119. package/dist/_virtual/ref_error.js.map +0 -1
  120. package/dist/_virtual/required.js +0 -4
  121. package/dist/_virtual/required.js.map +0 -1
  122. package/dist/_virtual/resolve.js +0 -4
  123. package/dist/_virtual/resolve.js.map +0 -1
  124. package/dist/_virtual/rules.js +0 -4
  125. package/dist/_virtual/rules.js.map +0 -1
  126. package/dist/_virtual/scope.js +0 -4
  127. package/dist/_virtual/scope.js.map +0 -1
  128. package/dist/_virtual/subschema.js +0 -4
  129. package/dist/_virtual/subschema.js.map +0 -1
  130. package/dist/_virtual/thenElse.js +0 -4
  131. package/dist/_virtual/thenElse.js.map +0 -1
  132. package/dist/_virtual/types.js +0 -4
  133. package/dist/_virtual/types.js.map +0 -1
  134. package/dist/_virtual/ucs2length.js +0 -4
  135. package/dist/_virtual/ucs2length.js.map +0 -1
  136. package/dist/_virtual/uniqueItems.js +0 -4
  137. package/dist/_virtual/uniqueItems.js.map +0 -1
  138. package/dist/_virtual/uri.js +0 -4
  139. package/dist/_virtual/uri.js.map +0 -1
  140. package/dist/_virtual/util.js +0 -4
  141. package/dist/_virtual/util.js.map +0 -1
  142. package/dist/_virtual/validation_error.js +0 -4
  143. package/dist/_virtual/validation_error.js.map +0 -1
  144. package/dist/example-client.d.ts +0 -3
  145. package/dist/example-client.d.ts.map +0 -1
  146. package/dist/example.d.ts +0 -3
  147. package/dist/example.d.ts.map +0 -1
  148. package/dist/index.d.ts.map +0 -1
  149. package/dist/node_modules/@agentclientprotocol/sdk/dist/acp.js +0 -891
  150. package/dist/node_modules/@agentclientprotocol/sdk/dist/acp.js.map +0 -1
  151. package/dist/node_modules/@agentclientprotocol/sdk/dist/schema.js +0 -876
  152. package/dist/node_modules/@agentclientprotocol/sdk/dist/schema.js.map +0 -1
  153. package/dist/node_modules/@agentclientprotocol/sdk/dist/stream.js +0 -66
  154. package/dist/node_modules/@agentclientprotocol/sdk/dist/stream.js.map +0 -1
  155. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js +0 -23
  156. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js.map +0 -1
  157. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +0 -331
  158. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +0 -1
  159. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +0 -717
  160. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +0 -1
  161. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +0 -221
  162. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +0 -1
  163. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +0 -56
  164. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +0 -1
  165. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +0 -440
  166. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +0 -1
  167. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js +0 -94
  168. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js.map +0 -1
  169. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +0 -1610
  170. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +0 -1
  171. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +0 -91
  172. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +0 -1
  173. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/ZodError.js +0 -133
  174. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/ZodError.js.map +0 -1
  175. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/errors.js +0 -9
  176. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/errors.js.map +0 -1
  177. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/errorUtil.js +0 -9
  178. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/errorUtil.js.map +0 -1
  179. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/parseUtil.js +0 -112
  180. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/parseUtil.js.map +0 -1
  181. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/util.js +0 -136
  182. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/util.js.map +0 -1
  183. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/locales/en.js +0 -112
  184. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/locales/en.js.map +0 -1
  185. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/types.js +0 -3297
  186. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/types.js.map +0 -1
  187. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/errors.js +0 -44
  188. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/errors.js.map +0 -1
  189. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/iso.js +0 -36
  190. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/iso.js.map +0 -1
  191. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/parse.js +0 -10
  192. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/parse.js.map +0 -1
  193. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/schemas.js +0 -657
  194. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/schemas.js.map +0 -1
  195. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/api.js +0 -449
  196. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/api.js.map +0 -1
  197. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/checks.js +0 -413
  198. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/checks.js.map +0 -1
  199. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/core.js +0 -57
  200. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/core.js.map +0 -1
  201. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/doc.js +0 -38
  202. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/doc.js.map +0 -1
  203. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/errors.js +0 -86
  204. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/errors.js.map +0 -1
  205. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/parse.js +0 -61
  206. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/parse.js.map +0 -1
  207. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/regexes.js +0 -80
  208. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/regexes.js.map +0 -1
  209. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/registries.js +0 -52
  210. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/registries.js.map +0 -1
  211. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/schemas.js +0 -1307
  212. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/schemas.js.map +0 -1
  213. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/to-json-schema.js +0 -842
  214. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/to-json-schema.js.map +0 -1
  215. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/util.js +0 -335
  216. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/util.js.map +0 -1
  217. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/versions.js +0 -8
  218. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/versions.js.map +0 -1
  219. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/schemas.js +0 -51
  220. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/schemas.js.map +0 -1
  221. package/dist/node_modules/ajv/dist/ajv.js +0 -69
  222. package/dist/node_modules/ajv/dist/ajv.js.map +0 -1
  223. package/dist/node_modules/ajv/dist/compile/codegen/code.js +0 -169
  224. package/dist/node_modules/ajv/dist/compile/codegen/code.js.map +0 -1
  225. package/dist/node_modules/ajv/dist/compile/codegen/index.js +0 -712
  226. package/dist/node_modules/ajv/dist/compile/codegen/index.js.map +0 -1
  227. package/dist/node_modules/ajv/dist/compile/codegen/scope.js +0 -157
  228. package/dist/node_modules/ajv/dist/compile/codegen/scope.js.map +0 -1
  229. package/dist/node_modules/ajv/dist/compile/errors.js +0 -140
  230. package/dist/node_modules/ajv/dist/compile/errors.js.map +0 -1
  231. package/dist/node_modules/ajv/dist/compile/index.js +0 -253
  232. package/dist/node_modules/ajv/dist/compile/index.js.map +0 -1
  233. package/dist/node_modules/ajv/dist/compile/names.js +0 -40
  234. package/dist/node_modules/ajv/dist/compile/names.js.map +0 -1
  235. package/dist/node_modules/ajv/dist/compile/ref_error.js +0 -25
  236. package/dist/node_modules/ajv/dist/compile/ref_error.js.map +0 -1
  237. package/dist/node_modules/ajv/dist/compile/resolve.js +0 -162
  238. package/dist/node_modules/ajv/dist/compile/resolve.js.map +0 -1
  239. package/dist/node_modules/ajv/dist/compile/rules.js +0 -29
  240. package/dist/node_modules/ajv/dist/compile/rules.js.map +0 -1
  241. package/dist/node_modules/ajv/dist/compile/util.js +0 -183
  242. package/dist/node_modules/ajv/dist/compile/util.js.map +0 -1
  243. package/dist/node_modules/ajv/dist/compile/validate/applicability.js +0 -30
  244. package/dist/node_modules/ajv/dist/compile/validate/applicability.js.map +0 -1
  245. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +0 -64
  246. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js.map +0 -1
  247. package/dist/node_modules/ajv/dist/compile/validate/dataType.js +0 -213
  248. package/dist/node_modules/ajv/dist/compile/validate/dataType.js.map +0 -1
  249. package/dist/node_modules/ajv/dist/compile/validate/defaults.js +0 -49
  250. package/dist/node_modules/ajv/dist/compile/validate/defaults.js.map +0 -1
  251. package/dist/node_modules/ajv/dist/compile/validate/index.js +0 -544
  252. package/dist/node_modules/ajv/dist/compile/validate/index.js.map +0 -1
  253. package/dist/node_modules/ajv/dist/compile/validate/keyword.js +0 -139
  254. package/dist/node_modules/ajv/dist/compile/validate/keyword.js.map +0 -1
  255. package/dist/node_modules/ajv/dist/compile/validate/subschema.js +0 -95
  256. package/dist/node_modules/ajv/dist/compile/validate/subschema.js.map +0 -1
  257. package/dist/node_modules/ajv/dist/core.js +0 -639
  258. package/dist/node_modules/ajv/dist/core.js.map +0 -1
  259. package/dist/node_modules/ajv/dist/refs/data.json.js +0 -31
  260. package/dist/node_modules/ajv/dist/refs/data.json.js.map +0 -1
  261. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +0 -254
  262. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +0 -1
  263. package/dist/node_modules/ajv/dist/runtime/equal.js +0 -9
  264. package/dist/node_modules/ajv/dist/runtime/equal.js.map +0 -1
  265. package/dist/node_modules/ajv/dist/runtime/ucs2length.js +0 -25
  266. package/dist/node_modules/ajv/dist/runtime/ucs2length.js.map +0 -1
  267. package/dist/node_modules/ajv/dist/runtime/uri.js +0 -8
  268. package/dist/node_modules/ajv/dist/runtime/uri.js.map +0 -1
  269. package/dist/node_modules/ajv/dist/runtime/validation_error.js +0 -22
  270. package/dist/node_modules/ajv/dist/runtime/validation_error.js.map +0 -1
  271. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +0 -53
  272. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +0 -1
  273. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +0 -112
  274. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +0 -1
  275. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +0 -26
  276. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +0 -1
  277. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +0 -14
  278. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +0 -1
  279. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +0 -99
  280. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +0 -1
  281. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +0 -93
  282. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +0 -1
  283. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +0 -70
  284. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js.map +0 -1
  285. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +0 -77
  286. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js.map +0 -1
  287. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +0 -57
  288. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js.map +0 -1
  289. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +0 -37
  290. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +0 -1
  291. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +0 -29
  292. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js.map +0 -1
  293. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +0 -64
  294. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +0 -1
  295. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +0 -80
  296. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +0 -1
  297. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +0 -15
  298. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +0 -1
  299. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +0 -61
  300. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +0 -1
  301. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +0 -42
  302. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +0 -1
  303. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +0 -16
  304. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +0 -1
  305. package/dist/node_modules/ajv/dist/vocabularies/code.js +0 -146
  306. package/dist/node_modules/ajv/dist/vocabularies/code.js.map +0 -1
  307. package/dist/node_modules/ajv/dist/vocabularies/core/id.js +0 -11
  308. package/dist/node_modules/ajv/dist/vocabularies/core/id.js.map +0 -1
  309. package/dist/node_modules/ajv/dist/vocabularies/core/index.js +0 -21
  310. package/dist/node_modules/ajv/dist/vocabularies/core/index.js.map +0 -1
  311. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +0 -131
  312. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js.map +0 -1
  313. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +0 -113
  314. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +0 -1
  315. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +0 -12
  316. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +0 -1
  317. package/dist/node_modules/ajv/dist/vocabularies/draft7.js +0 -28
  318. package/dist/node_modules/ajv/dist/vocabularies/draft7.js.map +0 -1
  319. package/dist/node_modules/ajv/dist/vocabularies/format/format.js +0 -94
  320. package/dist/node_modules/ajv/dist/vocabularies/format/format.js.map +0 -1
  321. package/dist/node_modules/ajv/dist/vocabularies/format/index.js +0 -9
  322. package/dist/node_modules/ajv/dist/vocabularies/format/index.js.map +0 -1
  323. package/dist/node_modules/ajv/dist/vocabularies/metadata.js +0 -21
  324. package/dist/node_modules/ajv/dist/vocabularies/metadata.js.map +0 -1
  325. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +0 -31
  326. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js.map +0 -1
  327. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +0 -54
  328. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js.map +0 -1
  329. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +0 -54
  330. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js.map +0 -1
  331. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +0 -26
  332. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +0 -1
  333. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +0 -33
  334. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +0 -1
  335. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +0 -29
  336. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +0 -1
  337. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +0 -26
  338. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +0 -1
  339. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +0 -28
  340. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +0 -1
  341. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +0 -27
  342. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +0 -1
  343. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +0 -84
  344. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js.map +0 -1
  345. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +0 -72
  346. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +0 -1
  347. package/dist/node_modules/ajv-formats/dist/formats.js +0 -212
  348. package/dist/node_modules/ajv-formats/dist/formats.js.map +0 -1
  349. package/dist/node_modules/ajv-formats/dist/index.js +0 -52
  350. package/dist/node_modules/ajv-formats/dist/index.js.map +0 -1
  351. package/dist/node_modules/ajv-formats/dist/limit.js +0 -75
  352. package/dist/node_modules/ajv-formats/dist/limit.js.map +0 -1
  353. package/dist/node_modules/diff/libesm/diff/base.js +0 -256
  354. package/dist/node_modules/diff/libesm/diff/base.js.map +0 -1
  355. package/dist/node_modules/diff/libesm/diff/line.js +0 -64
  356. package/dist/node_modules/diff/libesm/diff/line.js.map +0 -1
  357. package/dist/node_modules/diff/libesm/patch/create.js +0 -185
  358. package/dist/node_modules/diff/libesm/patch/create.js.map +0 -1
  359. package/dist/node_modules/fast-deep-equal/index.js +0 -47
  360. package/dist/node_modules/fast-deep-equal/index.js.map +0 -1
  361. package/dist/node_modules/fast-uri/index.js +0 -347
  362. package/dist/node_modules/fast-uri/index.js.map +0 -1
  363. package/dist/node_modules/fast-uri/lib/schemes.js +0 -255
  364. package/dist/node_modules/fast-uri/lib/schemes.js.map +0 -1
  365. package/dist/node_modules/fast-uri/lib/utils.js +0 -334
  366. package/dist/node_modules/fast-uri/lib/utils.js.map +0 -1
  367. package/dist/node_modules/json-schema-traverse/index.js +0 -98
  368. package/dist/node_modules/json-schema-traverse/index.js.map +0 -1
  369. package/dist/node_modules/uuid/dist/rng.js +0 -14
  370. package/dist/node_modules/uuid/dist/rng.js.map +0 -1
  371. package/dist/node_modules/uuid/dist/stringify.js +0 -29
  372. package/dist/node_modules/uuid/dist/stringify.js.map +0 -1
  373. package/dist/node_modules/uuid/dist/v7.js +0 -65
  374. package/dist/node_modules/uuid/dist/v7.js.map +0 -1
  375. package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js +0 -37
  376. package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js.map +0 -1
  377. package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js +0 -26
  378. package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js.map +0 -1
  379. package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +0 -17
  380. package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js.map +0 -1
  381. package/dist/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +0 -11
  382. package/dist/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js.map +0 -1
  383. package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js +0 -66
  384. package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js.map +0 -1
  385. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +0 -21
  386. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js.map +0 -1
  387. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +0 -30
  388. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js.map +0 -1
  389. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +0 -53
  390. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js.map +0 -1
  391. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +0 -8
  392. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js.map +0 -1
  393. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +0 -8
  394. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js.map +0 -1
  395. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +0 -8
  396. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js.map +0 -1
  397. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +0 -50
  398. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js.map +0 -1
  399. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +0 -11
  400. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js.map +0 -1
  401. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +0 -11
  402. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js.map +0 -1
  403. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +0 -9
  404. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js.map +0 -1
  405. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +0 -56
  406. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js.map +0 -1
  407. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +0 -24
  408. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js.map +0 -1
  409. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +0 -30
  410. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js.map +0 -1
  411. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +0 -19
  412. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js.map +0 -1
  413. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +0 -15
  414. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js.map +0 -1
  415. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +0 -13
  416. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js.map +0 -1
  417. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +0 -37
  418. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js.map +0 -1
  419. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +0 -56
  420. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js.map +0 -1
  421. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +0 -76
  422. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js.map +0 -1
  423. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +0 -25
  424. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js.map +0 -1
  425. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +0 -24
  426. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js.map +0 -1
  427. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +0 -8
  428. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js.map +0 -1
  429. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +0 -8
  430. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js.map +0 -1
  431. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +0 -65
  432. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js.map +0 -1
  433. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +0 -24
  434. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js.map +0 -1
  435. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +0 -350
  436. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +0 -1
  437. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +0 -36
  438. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js.map +0 -1
  439. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +0 -10
  440. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js.map +0 -1
  441. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +0 -84
  442. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js.map +0 -1
  443. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +0 -8
  444. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js.map +0 -1
  445. package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js +0 -109
  446. package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js.map +0 -1
  447. package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +0 -90
  448. package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js.map +0 -1
  449. package/dist/node_modules/zod-to-json-schema/node_modules/zod/v3/types.js +0 -42
  450. package/dist/node_modules/zod-to-json-schema/node_modules/zod/v3/types.js.map +0 -1
  451. package/dist/package.json.js +0 -8
  452. package/dist/package.json.js.map +0 -1
  453. package/dist/src/acp-extensions.d.ts +0 -91
  454. package/dist/src/acp-extensions.d.ts.map +0 -1
  455. package/dist/src/acp-extensions.js +0 -38
  456. package/dist/src/acp-extensions.js.map +0 -1
  457. package/dist/src/adapters/claude/claude.d.ts +0 -136
  458. package/dist/src/adapters/claude/claude.d.ts.map +0 -1
  459. package/dist/src/adapters/claude/claude.js +0 -1128
  460. package/dist/src/adapters/claude/claude.js.map +0 -1
  461. package/dist/src/adapters/claude/mcp-server.d.ts +0 -30
  462. package/dist/src/adapters/claude/mcp-server.d.ts.map +0 -1
  463. package/dist/src/adapters/claude/mcp-server.js +0 -668
  464. package/dist/src/adapters/claude/mcp-server.js.map +0 -1
  465. package/dist/src/adapters/claude/tools.d.ts +0 -35
  466. package/dist/src/adapters/claude/tools.d.ts.map +0 -1
  467. package/dist/src/adapters/claude/tools.js +0 -473
  468. package/dist/src/adapters/claude/tools.js.map +0 -1
  469. package/dist/src/adapters/claude/utils.d.ts +0 -48
  470. package/dist/src/adapters/claude/utils.d.ts.map +0 -1
  471. package/dist/src/adapters/claude/utils.js +0 -158
  472. package/dist/src/adapters/claude/utils.js.map +0 -1
  473. package/dist/src/agent.d.ts +0 -58
  474. package/dist/src/agent.d.ts.map +0 -1
  475. package/dist/src/agent.js +0 -576
  476. package/dist/src/agent.js.map +0 -1
  477. package/dist/src/agents/execution.d.ts +0 -2
  478. package/dist/src/agents/execution.d.ts.map +0 -1
  479. package/dist/src/agents/execution.js +0 -40
  480. package/dist/src/agents/execution.js.map +0 -1
  481. package/dist/src/agents/planning.d.ts +0 -2
  482. package/dist/src/agents/planning.d.ts.map +0 -1
  483. package/dist/src/agents/planning.js +0 -63
  484. package/dist/src/agents/planning.js.map +0 -1
  485. package/dist/src/agents/research.d.ts +0 -2
  486. package/dist/src/agents/research.d.ts.map +0 -1
  487. package/dist/src/agents/research.js +0 -163
  488. package/dist/src/agents/research.js.map +0 -1
  489. package/dist/src/file-manager.d.ts +0 -43
  490. package/dist/src/file-manager.d.ts.map +0 -1
  491. package/dist/src/file-manager.js +0 -266
  492. package/dist/src/file-manager.js.map +0 -1
  493. package/dist/src/git-manager.d.ts +0 -79
  494. package/dist/src/git-manager.d.ts.map +0 -1
  495. package/dist/src/git-manager.js +0 -454
  496. package/dist/src/git-manager.js.map +0 -1
  497. package/dist/src/posthog-api.d.ts +0 -48
  498. package/dist/src/posthog-api.d.ts.map +0 -1
  499. package/dist/src/posthog-api.js +0 -260
  500. package/dist/src/posthog-api.js.map +0 -1
  501. package/dist/src/prompt-builder.d.ts +0 -49
  502. package/dist/src/prompt-builder.d.ts.map +0 -1
  503. package/dist/src/prompt-builder.js +0 -397
  504. package/dist/src/prompt-builder.js.map +0 -1
  505. package/dist/src/schemas.d.ts +0 -980
  506. package/dist/src/schemas.d.ts.map +0 -1
  507. package/dist/src/schemas.js +0 -196
  508. package/dist/src/schemas.js.map +0 -1
  509. package/dist/src/session-store.d.ts +0 -58
  510. package/dist/src/session-store.d.ts.map +0 -1
  511. package/dist/src/session-store.js +0 -206
  512. package/dist/src/session-store.js.map +0 -1
  513. package/dist/src/task-manager.d.ts +0 -25
  514. package/dist/src/task-manager.d.ts.map +0 -1
  515. package/dist/src/task-manager.js +0 -123
  516. package/dist/src/task-manager.js.map +0 -1
  517. package/dist/src/template-manager.d.ts +0 -30
  518. package/dist/src/template-manager.d.ts.map +0 -1
  519. package/dist/src/template-manager.js +0 -152
  520. package/dist/src/template-manager.js.map +0 -1
  521. package/dist/src/todo-manager.d.ts +0 -29
  522. package/dist/src/todo-manager.d.ts.map +0 -1
  523. package/dist/src/todo-manager.js +0 -135
  524. package/dist/src/todo-manager.js.map +0 -1
  525. package/dist/src/tools/registry.d.ts +0 -25
  526. package/dist/src/tools/registry.d.ts.map +0 -1
  527. package/dist/src/tools/registry.js +0 -120
  528. package/dist/src/tools/registry.js.map +0 -1
  529. package/dist/src/tools/types.d.ts +0 -80
  530. package/dist/src/tools/types.d.ts.map +0 -1
  531. package/dist/src/types.d.ts +0 -193
  532. package/dist/src/types.d.ts.map +0 -1
  533. package/dist/src/types.js +0 -11
  534. package/dist/src/types.js.map +0 -1
  535. package/dist/src/utils/logger.d.ts +0 -37
  536. package/dist/src/utils/logger.d.ts.map +0 -1
  537. package/dist/src/utils/logger.js +0 -83
  538. package/dist/src/utils/logger.js.map +0 -1
  539. package/dist/src/utils/tapped-stream.d.ts +0 -17
  540. package/dist/src/utils/tapped-stream.d.ts.map +0 -1
  541. package/dist/src/utils/tapped-stream.js +0 -45
  542. package/dist/src/utils/tapped-stream.js.map +0 -1
  543. package/dist/src/workflow/config.d.ts +0 -3
  544. package/dist/src/workflow/config.d.ts.map +0 -1
  545. package/dist/src/workflow/config.js +0 -54
  546. package/dist/src/workflow/config.js.map +0 -1
  547. package/dist/src/workflow/steps/build.d.ts +0 -3
  548. package/dist/src/workflow/steps/build.d.ts.map +0 -1
  549. package/dist/src/workflow/steps/build.js +0 -108
  550. package/dist/src/workflow/steps/build.js.map +0 -1
  551. package/dist/src/workflow/steps/finalize.d.ts +0 -3
  552. package/dist/src/workflow/steps/finalize.d.ts.map +0 -1
  553. package/dist/src/workflow/steps/finalize.js +0 -188
  554. package/dist/src/workflow/steps/finalize.js.map +0 -1
  555. package/dist/src/workflow/steps/plan.d.ts +0 -3
  556. package/dist/src/workflow/steps/plan.d.ts.map +0 -1
  557. package/dist/src/workflow/steps/plan.js +0 -136
  558. package/dist/src/workflow/steps/plan.js.map +0 -1
  559. package/dist/src/workflow/steps/research.d.ts +0 -3
  560. package/dist/src/workflow/steps/research.d.ts.map +0 -1
  561. package/dist/src/workflow/steps/research.js +0 -189
  562. package/dist/src/workflow/steps/research.js.map +0 -1
  563. package/dist/src/workflow/types.d.ts +0 -51
  564. package/dist/src/workflow/types.d.ts.map +0 -1
  565. package/dist/src/workflow/utils.d.ts +0 -12
  566. package/dist/src/workflow/utils.d.ts.map +0 -1
  567. package/dist/src/workflow/utils.js +0 -41
  568. package/dist/src/workflow/utils.js.map +0 -1
  569. package/dist/src/worktree-manager.d.ts +0 -39
  570. package/dist/src/worktree-manager.d.ts.map +0 -1
  571. package/dist/src/worktree-manager.js +0 -808
  572. package/dist/src/worktree-manager.js.map +0 -1
@@ -1,123 +0,0 @@
1
- import { randomBytes } from 'node:crypto';
2
-
3
- class TaskManager {
4
- executionStates = new Map();
5
- defaultTimeout = 10 * 60 * 1000; // 10 minutes
6
- generateExecutionId() {
7
- return randomBytes(16).toString("hex");
8
- }
9
- startExecution(taskId, mode, executionId = this.generateExecutionId()) {
10
- const executionState = {
11
- taskId,
12
- status: "running",
13
- mode,
14
- startedAt: Date.now(),
15
- abortController: new AbortController(),
16
- };
17
- this.executionStates.set(executionId, executionState);
18
- this.scheduleTimeout(executionId);
19
- return executionState;
20
- }
21
- async waitForCompletion(executionId) {
22
- const execution = this.executionStates.get(executionId);
23
- if (!execution) {
24
- throw new Error(`Execution ${executionId} not found`);
25
- }
26
- if (execution.result && execution.status === "completed") {
27
- return execution.result;
28
- }
29
- return new Promise((resolve, reject) => {
30
- const checkInterval = setInterval(() => {
31
- const currentExecution = this.executionStates.get(executionId);
32
- if (!currentExecution) {
33
- clearInterval(checkInterval);
34
- reject(new Error(`Execution ${executionId} disappeared`));
35
- return;
36
- }
37
- if (currentExecution.status === "completed" &&
38
- currentExecution.result) {
39
- clearInterval(checkInterval);
40
- resolve(currentExecution.result);
41
- }
42
- else if (currentExecution.status === "failed" ||
43
- currentExecution.status === "canceled" ||
44
- currentExecution.status === "timeout") {
45
- clearInterval(checkInterval);
46
- reject(new Error(`Execution ${executionId} ${currentExecution.status}`));
47
- }
48
- }, 100);
49
- });
50
- }
51
- completeExecution(executionId, result) {
52
- const execution = this.executionStates.get(executionId);
53
- if (!execution) {
54
- throw new Error(`Execution ${executionId} not found`);
55
- }
56
- execution.status = "completed";
57
- execution.result = result;
58
- execution.completedAt = Date.now();
59
- }
60
- failExecution(executionId, error) {
61
- const execution = this.executionStates.get(executionId);
62
- if (!execution) {
63
- throw new Error(`Execution ${executionId} not found`);
64
- }
65
- execution.status = "failed";
66
- execution.completedAt = Date.now();
67
- execution.result = {
68
- error: error.message,
69
- status: "failed",
70
- };
71
- }
72
- cancelExecution(executionId) {
73
- const execution = this.executionStates.get(executionId);
74
- if (!execution) {
75
- throw new Error(`Execution ${executionId} not found`);
76
- }
77
- execution.status = "canceled";
78
- execution.completedAt = Date.now();
79
- execution.abortController?.abort();
80
- if (!execution.result) {
81
- execution.result = {
82
- status: "canceled",
83
- message: "Execution was canceled",
84
- };
85
- }
86
- }
87
- getExecution(executionId) {
88
- return this.executionStates.get(executionId);
89
- }
90
- getAbortSignal(executionId) {
91
- return this.executionStates.get(executionId)?.abortController?.signal;
92
- }
93
- getAbortController(executionId) {
94
- return this.executionStates.get(executionId)?.abortController;
95
- }
96
- scheduleTimeout(executionId, timeout = this.defaultTimeout) {
97
- setTimeout(() => {
98
- const execution = this.executionStates.get(executionId);
99
- if (execution && execution.status === "running") {
100
- execution.status = "timeout";
101
- execution.completedAt = Date.now();
102
- execution.abortController?.abort();
103
- if (!execution.result) {
104
- execution.result = {
105
- status: "timeout",
106
- message: "Execution timed out",
107
- };
108
- }
109
- }
110
- }, timeout);
111
- }
112
- cleanup(olderThan = 60 * 60 * 1000) {
113
- const cutoff = Date.now() - olderThan;
114
- for (const [executionId, execution] of this.executionStates) {
115
- if (execution.completedAt && execution.completedAt < cutoff) {
116
- this.executionStates.delete(executionId);
117
- }
118
- }
119
- }
120
- }
121
-
122
- export { TaskManager };
123
- //# sourceMappingURL=task-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-manager.js","sources":["../../src/task-manager.ts"],"sourcesContent":["import { randomBytes } from \"node:crypto\";\n\nexport interface TaskExecutionState {\n taskId: string;\n status: \"running\" | \"completed\" | \"failed\" | \"canceled\" | \"timeout\";\n mode: \"plan_only\" | \"plan_and_build\" | \"build_only\";\n result?: unknown;\n startedAt: number;\n completedAt?: number;\n abortController?: AbortController;\n}\n\nexport class TaskManager {\n public executionStates = new Map<string, TaskExecutionState>();\n private defaultTimeout = 10 * 60 * 1000; // 10 minutes\n\n generateExecutionId(): string {\n return randomBytes(16).toString(\"hex\");\n }\n\n startExecution(\n taskId: string,\n mode: \"plan_only\" | \"plan_and_build\" | \"build_only\",\n executionId: string = this.generateExecutionId(),\n ): TaskExecutionState {\n const executionState: TaskExecutionState = {\n taskId,\n status: \"running\",\n mode,\n startedAt: Date.now(),\n abortController: new AbortController(),\n };\n\n this.executionStates.set(executionId, executionState);\n this.scheduleTimeout(executionId);\n\n return executionState;\n }\n\n async waitForCompletion(executionId: string): Promise<unknown> {\n const execution = this.executionStates.get(executionId);\n if (!execution) {\n throw new Error(`Execution ${executionId} not found`);\n }\n\n if (execution.result && execution.status === \"completed\") {\n return execution.result;\n }\n\n return new Promise((resolve, reject) => {\n const checkInterval = setInterval(() => {\n const currentExecution = this.executionStates.get(executionId);\n if (!currentExecution) {\n clearInterval(checkInterval);\n reject(new Error(`Execution ${executionId} disappeared`));\n return;\n }\n\n if (\n currentExecution.status === \"completed\" &&\n currentExecution.result\n ) {\n clearInterval(checkInterval);\n resolve(currentExecution.result);\n } else if (\n currentExecution.status === \"failed\" ||\n currentExecution.status === \"canceled\" ||\n currentExecution.status === \"timeout\"\n ) {\n clearInterval(checkInterval);\n reject(\n new Error(`Execution ${executionId} ${currentExecution.status}`),\n );\n }\n }, 100);\n });\n }\n\n completeExecution(executionId: string, result: unknown): void {\n const execution = this.executionStates.get(executionId);\n if (!execution) {\n throw new Error(`Execution ${executionId} not found`);\n }\n\n execution.status = \"completed\";\n execution.result = result;\n execution.completedAt = Date.now();\n }\n\n failExecution(executionId: string, error: Error): void {\n const execution = this.executionStates.get(executionId);\n if (!execution) {\n throw new Error(`Execution ${executionId} not found`);\n }\n\n execution.status = \"failed\";\n execution.completedAt = Date.now();\n execution.result = {\n error: error.message,\n status: \"failed\",\n };\n }\n\n cancelExecution(executionId: string): void {\n const execution = this.executionStates.get(executionId);\n if (!execution) {\n throw new Error(`Execution ${executionId} not found`);\n }\n\n execution.status = \"canceled\";\n execution.completedAt = Date.now();\n execution.abortController?.abort();\n\n if (!execution.result) {\n execution.result = {\n status: \"canceled\",\n message: \"Execution was canceled\",\n };\n }\n }\n\n getExecution(executionId: string): TaskExecutionState | undefined {\n return this.executionStates.get(executionId);\n }\n\n getAbortSignal(executionId: string): AbortSignal | undefined {\n return this.executionStates.get(executionId)?.abortController?.signal;\n }\n\n getAbortController(executionId: string): AbortController | undefined {\n return this.executionStates.get(executionId)?.abortController;\n }\n\n private scheduleTimeout(\n executionId: string,\n timeout: number = this.defaultTimeout,\n ): void {\n setTimeout(() => {\n const execution = this.executionStates.get(executionId);\n if (execution && execution.status === \"running\") {\n execution.status = \"timeout\";\n execution.completedAt = Date.now();\n execution.abortController?.abort();\n\n if (!execution.result) {\n execution.result = {\n status: \"timeout\",\n message: \"Execution timed out\",\n };\n }\n }\n }, timeout);\n }\n\n cleanup(olderThan: number = 60 * 60 * 1000): void {\n const cutoff = Date.now() - olderThan;\n for (const [executionId, execution] of this.executionStates) {\n if (execution.completedAt && execution.completedAt < cutoff) {\n this.executionStates.delete(executionId);\n }\n }\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- export interface TemplateVariables {
2
- task_id: string;
3
- task_title: string;
4
- task_description?: string;
5
- date: string;
6
- repository?: string;
7
- [key: string]: string | undefined;
8
- }
9
- export declare class TemplateManager {
10
- private templatesDir;
11
- constructor();
12
- private loadTemplate;
13
- private substituteVariables;
14
- generatePlan(variables: TemplateVariables): Promise<string>;
15
- generateCustomFile(templateName: string, variables: TemplateVariables): Promise<string>;
16
- createTaskStructure(taskId: string, taskTitle: string, options?: {
17
- includePlan?: boolean;
18
- additionalFiles?: Array<{
19
- name: string;
20
- template?: string;
21
- content?: string;
22
- }>;
23
- }): Promise<Array<{
24
- name: string;
25
- content: string;
26
- type: "plan" | "context" | "reference" | "output";
27
- }>>;
28
- generatePostHogReadme(): string;
29
- }
30
- //# sourceMappingURL=template-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-manager.d.ts","sourceRoot":"","sources":["../../src/template-manager.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAS;;YA4Ef,YAAY;IAW1B,OAAO,CAAC,mBAAmB;IAkBrB,YAAY,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ3D,kBAAkB,CACtB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,MAAM,CAAC;IAQZ,mBAAmB,CACvB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,eAAe,CAAC,EAAE,KAAK,CAAC;YACtB,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC,CAAC;KACJ,GACA,OAAO,CACR,KAAK,CAAC;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;KACnD,CAAC,CACH;IA8CD,qBAAqB,IAAI,MAAM;CAmChC"}
@@ -1,152 +0,0 @@
1
- import { existsSync, promises } from 'node:fs';
2
- import { dirname, join } from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
- import { Logger } from './utils/logger.js';
5
-
6
- const logger = new Logger({ prefix: "[TemplateManager]" });
7
- class TemplateManager {
8
- templatesDir;
9
- constructor() {
10
- const __filename = fileURLToPath(import.meta.url);
11
- const __dirname = dirname(__filename);
12
- // Exhaustive list of possible template locations
13
- const candidateDirs = [
14
- // Standard build output (dist/src/template-manager.js -> dist/templates)
15
- join(__dirname, "..", "templates"),
16
- // If preserveModules creates nested structure (dist/src/template-manager.js -> dist/src/templates)
17
- join(__dirname, "templates"),
18
- // Development scenarios (src/template-manager.ts -> src/templates)
19
- join(__dirname, "..", "..", "src", "templates"),
20
- // Package root templates directory
21
- join(__dirname, "..", "..", "templates"),
22
- // When node_modules symlink or installed (node_modules/@posthog/agent/dist/src/... -> node_modules/@posthog/agent/dist/templates)
23
- join(__dirname, "..", "..", "dist", "templates"),
24
- // When consumed from node_modules deep in tree
25
- join(__dirname, "..", "..", "..", "templates"),
26
- join(__dirname, "..", "..", "..", "dist", "templates"),
27
- join(__dirname, "..", "..", "..", "src", "templates"),
28
- // When bundled by Vite/Webpack (e.g., .vite/build/index.js -> node_modules/@posthog/agent/dist/templates)
29
- // Try to find node_modules from current location
30
- join(__dirname, "..", "node_modules", "@posthog", "agent", "dist", "templates"),
31
- join(__dirname, "..", "..", "node_modules", "@posthog", "agent", "dist", "templates"),
32
- join(__dirname, "..", "..", "..", "node_modules", "@posthog", "agent", "dist", "templates"),
33
- ];
34
- const resolvedDir = candidateDirs.find((dir) => existsSync(dir));
35
- if (!resolvedDir) {
36
- logger.error("Could not find templates directory.");
37
- logger.error(`Current file: ${__filename}`);
38
- logger.error(`Current dir: ${__dirname}`);
39
- logger.error(`Tried: ${candidateDirs.map((d) => `\n - ${d} (exists: ${existsSync(d)})`).join("")}`);
40
- }
41
- this.templatesDir = resolvedDir ?? candidateDirs[0];
42
- }
43
- async loadTemplate(templateName) {
44
- try {
45
- const templatePath = join(this.templatesDir, templateName);
46
- return await promises.readFile(templatePath, "utf8");
47
- }
48
- catch (error) {
49
- throw new Error(`Failed to load template ${templateName} from ${this.templatesDir}: ${error}`);
50
- }
51
- }
52
- substituteVariables(template, variables) {
53
- let result = template;
54
- for (const [key, value] of Object.entries(variables)) {
55
- if (value !== undefined) {
56
- const placeholder = new RegExp(`{{${key}}}`, "g");
57
- result = result.replace(placeholder, value);
58
- }
59
- }
60
- result = result.replace(/{{[^}]+}}/g, "[PLACEHOLDER]");
61
- return result;
62
- }
63
- async generatePlan(variables) {
64
- const template = await this.loadTemplate("plan-template.md");
65
- return this.substituteVariables(template, {
66
- ...variables,
67
- date: variables.date || new Date().toISOString().split("T")[0],
68
- });
69
- }
70
- async generateCustomFile(templateName, variables) {
71
- const template = await this.loadTemplate(templateName);
72
- return this.substituteVariables(template, {
73
- ...variables,
74
- date: variables.date || new Date().toISOString().split("T")[0],
75
- });
76
- }
77
- async createTaskStructure(taskId, taskTitle, options) {
78
- const files = [];
79
- const variables = {
80
- task_id: taskId,
81
- task_title: taskTitle,
82
- date: new Date().toISOString().split("T")[0],
83
- };
84
- // Generate plan file if requested
85
- if (options?.includePlan !== false) {
86
- const planContent = await this.generatePlan(variables);
87
- files.push({
88
- name: "plan.md",
89
- content: planContent,
90
- type: "plan",
91
- });
92
- }
93
- if (options?.additionalFiles) {
94
- for (const file of options.additionalFiles) {
95
- let content;
96
- if (file.template) {
97
- content = await this.generateCustomFile(file.template, variables);
98
- }
99
- else if (file.content) {
100
- content = this.substituteVariables(file.content, variables);
101
- }
102
- else {
103
- content = `# ${file.name}\n\nPlaceholder content for ${file.name}`;
104
- }
105
- files.push({
106
- name: file.name,
107
- content,
108
- type: file.name.includes("context") ? "context" : "reference",
109
- });
110
- }
111
- }
112
- return files;
113
- }
114
- generatePostHogReadme() {
115
- return `# PostHog Task Files
116
-
117
- This directory contains task-related files generated by the PostHog Agent.
118
-
119
- ## Structure
120
-
121
- Each task has its own subdirectory: \`.posthog/{task-id}/\`
122
-
123
- ### Common Files
124
-
125
- - **plan.md** - Implementation plan generated during planning phase
126
- - **Supporting files** - Any additional files added for task context
127
- - **artifacts/** - Generated files, outputs, and temporary artifacts
128
-
129
- ### Usage
130
-
131
- These files are:
132
- - Version controlled alongside your code
133
- - Used by the PostHog Agent for context
134
- - Available for review in pull requests
135
- - Organized by task ID for easy reference
136
-
137
- ### Gitignore
138
-
139
- Customize \`.posthog/.gitignore\` to control which files are committed:
140
- - Include plans and documentation by default
141
- - Exclude temporary files and sensitive data
142
- - Customize based on your team's needs
143
-
144
- ---
145
-
146
- *Generated by PostHog Agent*
147
- `;
148
- }
149
- }
150
-
151
- export { TemplateManager };
152
- //# sourceMappingURL=template-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-manager.js","sources":["../../src/template-manager.ts"],"sourcesContent":["import { existsSync, promises as fs } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { Logger } from \"./utils/logger\";\n\nconst logger = new Logger({ prefix: \"[TemplateManager]\" });\n\nexport interface TemplateVariables {\n task_id: string;\n task_title: string;\n task_description?: string;\n date: string;\n repository?: string;\n [key: string]: string | undefined;\n}\n\nexport class TemplateManager {\n private templatesDir: string;\n\n constructor() {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n // Exhaustive list of possible template locations\n const candidateDirs = [\n // Standard build output (dist/src/template-manager.js -> dist/templates)\n join(__dirname, \"..\", \"templates\"),\n\n // If preserveModules creates nested structure (dist/src/template-manager.js -> dist/src/templates)\n join(__dirname, \"templates\"),\n\n // Development scenarios (src/template-manager.ts -> src/templates)\n join(__dirname, \"..\", \"..\", \"src\", \"templates\"),\n\n // Package root templates directory\n join(__dirname, \"..\", \"..\", \"templates\"),\n\n // When node_modules symlink or installed (node_modules/@posthog/agent/dist/src/... -> node_modules/@posthog/agent/dist/templates)\n join(__dirname, \"..\", \"..\", \"dist\", \"templates\"),\n\n // When consumed from node_modules deep in tree\n join(__dirname, \"..\", \"..\", \"..\", \"templates\"),\n join(__dirname, \"..\", \"..\", \"..\", \"dist\", \"templates\"),\n join(__dirname, \"..\", \"..\", \"..\", \"src\", \"templates\"),\n\n // When bundled by Vite/Webpack (e.g., .vite/build/index.js -> node_modules/@posthog/agent/dist/templates)\n // Try to find node_modules from current location\n join(\n __dirname,\n \"..\",\n \"node_modules\",\n \"@posthog\",\n \"agent\",\n \"dist\",\n \"templates\",\n ),\n join(\n __dirname,\n \"..\",\n \"..\",\n \"node_modules\",\n \"@posthog\",\n \"agent\",\n \"dist\",\n \"templates\",\n ),\n join(\n __dirname,\n \"..\",\n \"..\",\n \"..\",\n \"node_modules\",\n \"@posthog\",\n \"agent\",\n \"dist\",\n \"templates\",\n ),\n ];\n\n const resolvedDir = candidateDirs.find((dir) => existsSync(dir));\n\n if (!resolvedDir) {\n logger.error(\"Could not find templates directory.\");\n logger.error(`Current file: ${__filename}`);\n logger.error(`Current dir: ${__dirname}`);\n logger.error(\n `Tried: ${candidateDirs.map((d) => `\\n - ${d} (exists: ${existsSync(d)})`).join(\"\")}`,\n );\n }\n\n this.templatesDir = resolvedDir ?? candidateDirs[0];\n }\n\n private async loadTemplate(templateName: string): Promise<string> {\n try {\n const templatePath = join(this.templatesDir, templateName);\n return await fs.readFile(templatePath, \"utf8\");\n } catch (error) {\n throw new Error(\n `Failed to load template ${templateName} from ${this.templatesDir}: ${error}`,\n );\n }\n }\n\n private substituteVariables(\n template: string,\n variables: TemplateVariables,\n ): string {\n let result = template;\n\n for (const [key, value] of Object.entries(variables)) {\n if (value !== undefined) {\n const placeholder = new RegExp(`{{${key}}}`, \"g\");\n result = result.replace(placeholder, value);\n }\n }\n\n result = result.replace(/{{[^}]+}}/g, \"[PLACEHOLDER]\");\n\n return result;\n }\n\n async generatePlan(variables: TemplateVariables): Promise<string> {\n const template = await this.loadTemplate(\"plan-template.md\");\n return this.substituteVariables(template, {\n ...variables,\n date: variables.date || new Date().toISOString().split(\"T\")[0],\n });\n }\n\n async generateCustomFile(\n templateName: string,\n variables: TemplateVariables,\n ): Promise<string> {\n const template = await this.loadTemplate(templateName);\n return this.substituteVariables(template, {\n ...variables,\n date: variables.date || new Date().toISOString().split(\"T\")[0],\n });\n }\n\n async createTaskStructure(\n taskId: string,\n taskTitle: string,\n options?: {\n includePlan?: boolean;\n additionalFiles?: Array<{\n name: string;\n template?: string;\n content?: string;\n }>;\n },\n ): Promise<\n Array<{\n name: string;\n content: string;\n type: \"plan\" | \"context\" | \"reference\" | \"output\";\n }>\n > {\n const files: Array<{\n name: string;\n content: string;\n type: \"plan\" | \"context\" | \"reference\" | \"output\";\n }> = [];\n\n const variables: TemplateVariables = {\n task_id: taskId,\n task_title: taskTitle,\n date: new Date().toISOString().split(\"T\")[0],\n };\n\n // Generate plan file if requested\n if (options?.includePlan !== false) {\n const planContent = await this.generatePlan(variables);\n files.push({\n name: \"plan.md\",\n content: planContent,\n type: \"plan\",\n });\n }\n\n if (options?.additionalFiles) {\n for (const file of options.additionalFiles) {\n let content: string;\n\n if (file.template) {\n content = await this.generateCustomFile(file.template, variables);\n } else if (file.content) {\n content = this.substituteVariables(file.content, variables);\n } else {\n content = `# ${file.name}\\n\\nPlaceholder content for ${file.name}`;\n }\n\n files.push({\n name: file.name,\n content,\n type: file.name.includes(\"context\") ? \"context\" : \"reference\",\n });\n }\n }\n\n return files;\n }\n\n generatePostHogReadme(): string {\n return `# PostHog Task Files\n\nThis directory contains task-related files generated by the PostHog Agent.\n\n## Structure\n\nEach task has its own subdirectory: \\`.posthog/{task-id}/\\`\n\n### Common Files\n\n- **plan.md** - Implementation plan generated during planning phase\n- **Supporting files** - Any additional files added for task context\n- **artifacts/** - Generated files, outputs, and temporary artifacts\n\n### Usage\n\nThese files are:\n- Version controlled alongside your code\n- Used by the PostHog Agent for context\n- Available for review in pull requests\n- Organized by task ID for easy reference\n\n### Gitignore\n\nCustomize \\`.posthog/.gitignore\\` to control which files are committed:\n- Include plans and documentation by default\n- Exclude temporary files and sensitive data\n- Customize based on your team's needs\n\n---\n\n*Generated by PostHog Agent*\n`;\n }\n}\n"],"names":["fs"],"mappings":";;;;;AAKA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;MAW7C,eAAe,CAAA;AAClB,IAAA,YAAY;AAEpB,IAAA,WAAA,GAAA;QACE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACjD,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;;AAGrC,QAAA,MAAM,aAAa,GAAG;;AAEpB,YAAA,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC;;AAGlC,YAAA,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;;YAG5B,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC;;YAG/C,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC;;YAGxC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC;;YAGhD,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC;AAC9C,YAAA,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC;AACtD,YAAA,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC;;;AAIrD,YAAA,IAAI,CACF,SAAS,EACT,IAAI,EACJ,cAAc,EACd,UAAU,EACV,OAAO,EACP,MAAM,EACN,WAAW,CACZ;AACD,YAAA,IAAI,CACF,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,UAAU,EACV,OAAO,EACP,MAAM,EACN,WAAW,CACZ;AACD,YAAA,IAAI,CACF,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,UAAU,EACV,OAAO,EACP,MAAM,EACN,WAAW,CACZ;SACF;AAED,QAAA,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;QAEhE,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC;AACnD,YAAA,MAAM,CAAC,KAAK,CAAC,iBAAiB,UAAU,CAAA,CAAE,CAAC;AAC3C,YAAA,MAAM,CAAC,KAAK,CAAC,gBAAgB,SAAS,CAAA,CAAE,CAAC;AACzC,YAAA,MAAM,CAAC,KAAK,CACV,CAAA,OAAA,EAAU,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA,MAAA,EAAS,CAAC,CAAA,UAAA,EAAa,UAAU,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,CAAE,CACvF;QACH;QAEA,IAAI,CAAC,YAAY,GAAG,WAAW,IAAI,aAAa,CAAC,CAAC,CAAC;IACrD;IAEQ,MAAM,YAAY,CAAC,YAAoB,EAAA;AAC7C,QAAA,IAAI;YACF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC;YAC1D,OAAO,MAAMA,QAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAChD;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,MAAM,IAAI,KAAK,CACb,CAAA,wBAAA,EAA2B,YAAY,CAAA,MAAA,EAAS,IAAI,CAAC,YAAY,CAAA,EAAA,EAAK,KAAK,CAAA,CAAE,CAC9E;QACH;IACF;IAEQ,mBAAmB,CACzB,QAAgB,EAChB,SAA4B,EAAA;QAE5B,IAAI,MAAM,GAAG,QAAQ;AAErB,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACpD,YAAA,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,CAAA,EAAA,EAAK,GAAG,CAAA,EAAA,CAAI,EAAE,GAAG,CAAC;gBACjD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC;YAC7C;QACF;QAEA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC;AAEtD,QAAA,OAAO,MAAM;IACf;IAEA,MAAM,YAAY,CAAC,SAA4B,EAAA;QAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC;AAC5D,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;AACxC,YAAA,GAAG,SAAS;AACZ,YAAA,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/D,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,kBAAkB,CACtB,YAAoB,EACpB,SAA4B,EAAA;QAE5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;AACtD,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;AACxC,YAAA,GAAG,SAAS;AACZ,YAAA,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/D,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,mBAAmB,CACvB,MAAc,EACd,SAAiB,EACjB,OAOC,EAAA;QAQD,MAAM,KAAK,GAIN,EAAE;AAEP,QAAA,MAAM,SAAS,GAAsB;AACnC,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC7C;;AAGD,QAAA,IAAI,OAAO,EAAE,WAAW,KAAK,KAAK,EAAE;YAClC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC;AACT,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,IAAI,EAAE,MAAM;AACb,aAAA,CAAC;QACJ;AAEA,QAAA,IAAI,OAAO,EAAE,eAAe,EAAE;AAC5B,YAAA,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE;AAC1C,gBAAA,IAAI,OAAe;AAEnB,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,oBAAA,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;gBACnE;AAAO,qBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;oBACvB,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;gBAC7D;qBAAO;oBACL,OAAO,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,+BAA+B,IAAI,CAAC,IAAI,CAAA,CAAE;gBACpE;gBAEA,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO;AACP,oBAAA,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,WAAW;AAC9D,iBAAA,CAAC;YACJ;QACF;AAEA,QAAA,OAAO,KAAK;IACd;IAEA,qBAAqB,GAAA;QACnB,OAAO,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCV;IACC;AACD;;;;"}
@@ -1,29 +0,0 @@
1
- import type { PostHogFileManager } from "./file-manager.js";
2
- import { Logger } from "./utils/logger.js";
3
- export interface TodoItem {
4
- content: string;
5
- status: "pending" | "in_progress" | "completed";
6
- activeForm: string;
7
- }
8
- export interface TodoList {
9
- items: TodoItem[];
10
- metadata: {
11
- total: number;
12
- pending: number;
13
- in_progress: number;
14
- completed: number;
15
- last_updated: string;
16
- };
17
- }
18
- export declare class TodoManager {
19
- private fileManager;
20
- private logger;
21
- constructor(fileManager: PostHogFileManager, logger?: Logger);
22
- readTodos(taskId: string): Promise<TodoList | null>;
23
- writeTodos(taskId: string, todos: TodoList): Promise<void>;
24
- parseTodoWriteInput(toolInput: Record<string, unknown>): TodoList;
25
- private calculateMetadata;
26
- getTodoContext(taskId: string): Promise<string>;
27
- checkAndPersistFromMessage(message: Record<string, unknown>, taskId: string): Promise<TodoList | null>;
28
- }
29
- //# sourceMappingURL=todo-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"todo-manager.d.ts","sourceRoot":"","sources":["../../src/todo-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,MAAM,CAAS;gBAEX,WAAW,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,MAAM;IAMtD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IA0BnD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBhE,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;IAkBjE,OAAO,CAAC,iBAAiB;IAenB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2B/C,0BAA0B,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAsC5B"}
@@ -1,135 +0,0 @@
1
- import { Logger } from './utils/logger.js';
2
-
3
- class TodoManager {
4
- fileManager;
5
- logger;
6
- constructor(fileManager, logger) {
7
- this.fileManager = fileManager;
8
- this.logger =
9
- logger || new Logger({ debug: false, prefix: "[TodoManager]" });
10
- }
11
- async readTodos(taskId) {
12
- try {
13
- const content = await this.fileManager.readTaskFile(taskId, "todos.json");
14
- if (!content) {
15
- return null;
16
- }
17
- const parsed = JSON.parse(content);
18
- this.logger.debug("Loaded todos", {
19
- taskId,
20
- total: parsed.metadata.total,
21
- pending: parsed.metadata.pending,
22
- in_progress: parsed.metadata.in_progress,
23
- completed: parsed.metadata.completed,
24
- });
25
- return parsed;
26
- }
27
- catch (error) {
28
- this.logger.debug("Failed to read todos.json", {
29
- taskId,
30
- error: error instanceof Error ? error.message : String(error),
31
- });
32
- return null;
33
- }
34
- }
35
- async writeTodos(taskId, todos) {
36
- this.logger.debug("Writing todos", {
37
- taskId,
38
- total: todos.metadata.total,
39
- pending: todos.metadata.pending,
40
- in_progress: todos.metadata.in_progress,
41
- completed: todos.metadata.completed,
42
- });
43
- await this.fileManager.writeTaskFile(taskId, {
44
- name: "todos.json",
45
- content: JSON.stringify(todos, null, 2),
46
- type: "artifact",
47
- });
48
- this.logger.info("Todos saved", {
49
- taskId,
50
- total: todos.metadata.total,
51
- completed: todos.metadata.completed,
52
- });
53
- }
54
- parseTodoWriteInput(toolInput) {
55
- const items = [];
56
- if (toolInput.todos && Array.isArray(toolInput.todos)) {
57
- for (const todo of toolInput.todos) {
58
- items.push({
59
- content: todo.content || "",
60
- status: todo.status || "pending",
61
- activeForm: todo.activeForm || todo.content || "",
62
- });
63
- }
64
- }
65
- const metadata = this.calculateMetadata(items);
66
- return { items, metadata };
67
- }
68
- calculateMetadata(items) {
69
- const total = items.length;
70
- const pending = items.filter((t) => t.status === "pending").length;
71
- const in_progress = items.filter((t) => t.status === "in_progress").length;
72
- const completed = items.filter((t) => t.status === "completed").length;
73
- return {
74
- total,
75
- pending,
76
- in_progress,
77
- completed,
78
- last_updated: new Date().toISOString(),
79
- };
80
- }
81
- async getTodoContext(taskId) {
82
- const todos = await this.readTodos(taskId);
83
- if (!todos || todos.items.length === 0) {
84
- return "";
85
- }
86
- const lines = ["## Previous Todo List\n"];
87
- lines.push("You previously created the following todo list:\n");
88
- for (const item of todos.items) {
89
- const statusIcon = item.status === "completed"
90
- ? "✓"
91
- : item.status === "in_progress"
92
- ? "▶"
93
- : "○";
94
- lines.push(`${statusIcon} [${item.status}] ${item.content}`);
95
- }
96
- lines.push(`\nProgress: ${todos.metadata.completed}/${todos.metadata.total} completed\n`);
97
- return lines.join("\n");
98
- }
99
- // check for TodoWrite tool call and persist if found
100
- async checkAndPersistFromMessage(message, taskId) {
101
- if (message.type !== "assistant" ||
102
- typeof message.message !== "object" ||
103
- !message.message ||
104
- !("content" in message.message) ||
105
- !Array.isArray(message.message.content)) {
106
- return null;
107
- }
108
- for (const block of message.message.content) {
109
- if (block.type === "tool_use" && block.name === "TodoWrite") {
110
- try {
111
- this.logger.info("TodoWrite detected, persisting todos", { taskId });
112
- const todoList = this.parseTodoWriteInput(block.input);
113
- await this.writeTodos(taskId, todoList);
114
- this.logger.info("Persisted todos successfully", {
115
- taskId,
116
- total: todoList.metadata.total,
117
- completed: todoList.metadata.completed,
118
- });
119
- return todoList;
120
- }
121
- catch (error) {
122
- this.logger.error("Failed to persist todos", {
123
- taskId,
124
- error: error instanceof Error ? error.message : String(error),
125
- });
126
- return null;
127
- }
128
- }
129
- }
130
- return null;
131
- }
132
- }
133
-
134
- export { TodoManager };
135
- //# sourceMappingURL=todo-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"todo-manager.js","sources":["../../src/todo-manager.ts"],"sourcesContent":["import type { PostHogFileManager } from \"./file-manager.js\";\nimport { Logger } from \"./utils/logger.js\";\n\nexport interface TodoItem {\n content: string;\n status: \"pending\" | \"in_progress\" | \"completed\";\n activeForm: string;\n}\n\nexport interface TodoList {\n items: TodoItem[];\n metadata: {\n total: number;\n pending: number;\n in_progress: number;\n completed: number;\n last_updated: string;\n };\n}\n\nexport class TodoManager {\n private fileManager: PostHogFileManager;\n private logger: Logger;\n\n constructor(fileManager: PostHogFileManager, logger?: Logger) {\n this.fileManager = fileManager;\n this.logger =\n logger || new Logger({ debug: false, prefix: \"[TodoManager]\" });\n }\n\n async readTodos(taskId: string): Promise<TodoList | null> {\n try {\n const content = await this.fileManager.readTaskFile(taskId, \"todos.json\");\n if (!content) {\n return null;\n }\n\n const parsed = JSON.parse(content) as TodoList;\n this.logger.debug(\"Loaded todos\", {\n taskId,\n total: parsed.metadata.total,\n pending: parsed.metadata.pending,\n in_progress: parsed.metadata.in_progress,\n completed: parsed.metadata.completed,\n });\n\n return parsed;\n } catch (error) {\n this.logger.debug(\"Failed to read todos.json\", {\n taskId,\n error: error instanceof Error ? error.message : String(error),\n });\n return null;\n }\n }\n\n async writeTodos(taskId: string, todos: TodoList): Promise<void> {\n this.logger.debug(\"Writing todos\", {\n taskId,\n total: todos.metadata.total,\n pending: todos.metadata.pending,\n in_progress: todos.metadata.in_progress,\n completed: todos.metadata.completed,\n });\n\n await this.fileManager.writeTaskFile(taskId, {\n name: \"todos.json\",\n content: JSON.stringify(todos, null, 2),\n type: \"artifact\",\n });\n\n this.logger.info(\"Todos saved\", {\n taskId,\n total: todos.metadata.total,\n completed: todos.metadata.completed,\n });\n }\n\n parseTodoWriteInput(toolInput: Record<string, unknown>): TodoList {\n const items: TodoItem[] = [];\n\n if (toolInput.todos && Array.isArray(toolInput.todos)) {\n for (const todo of toolInput.todos) {\n items.push({\n content: todo.content || \"\",\n status: todo.status || \"pending\",\n activeForm: todo.activeForm || todo.content || \"\",\n });\n }\n }\n\n const metadata = this.calculateMetadata(items);\n\n return { items, metadata };\n }\n\n private calculateMetadata(items: TodoItem[]): TodoList[\"metadata\"] {\n const total = items.length;\n const pending = items.filter((t) => t.status === \"pending\").length;\n const in_progress = items.filter((t) => t.status === \"in_progress\").length;\n const completed = items.filter((t) => t.status === \"completed\").length;\n\n return {\n total,\n pending,\n in_progress,\n completed,\n last_updated: new Date().toISOString(),\n };\n }\n\n async getTodoContext(taskId: string): Promise<string> {\n const todos = await this.readTodos(taskId);\n if (!todos || todos.items.length === 0) {\n return \"\";\n }\n\n const lines: string[] = [\"## Previous Todo List\\n\"];\n lines.push(\"You previously created the following todo list:\\n\");\n\n for (const item of todos.items) {\n const statusIcon =\n item.status === \"completed\"\n ? \"✓\"\n : item.status === \"in_progress\"\n ? \"▶\"\n : \"○\";\n lines.push(`${statusIcon} [${item.status}] ${item.content}`);\n }\n\n lines.push(\n `\\nProgress: ${todos.metadata.completed}/${todos.metadata.total} completed\\n`,\n );\n\n return lines.join(\"\\n\");\n }\n\n // check for TodoWrite tool call and persist if found\n async checkAndPersistFromMessage(\n message: Record<string, unknown>,\n taskId: string,\n ): Promise<TodoList | null> {\n if (\n message.type !== \"assistant\" ||\n typeof message.message !== \"object\" ||\n !message.message ||\n !(\"content\" in message.message) ||\n !Array.isArray(message.message.content)\n ) {\n return null;\n }\n\n for (const block of message.message.content) {\n if (block.type === \"tool_use\" && block.name === \"TodoWrite\") {\n try {\n this.logger.info(\"TodoWrite detected, persisting todos\", { taskId });\n\n const todoList = this.parseTodoWriteInput(block.input);\n await this.writeTodos(taskId, todoList);\n\n this.logger.info(\"Persisted todos successfully\", {\n taskId,\n total: todoList.metadata.total,\n completed: todoList.metadata.completed,\n });\n\n return todoList;\n } catch (error) {\n this.logger.error(\"Failed to persist todos\", {\n taskId,\n error: error instanceof Error ? error.message : String(error),\n });\n return null;\n }\n }\n }\n\n return null;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import type { Tool } from "./types.js";
2
- /**
3
- * Tool registry for looking up tool definitions by name.
4
- * Provides metadata about tools for UI consumption.
5
- */
6
- export declare class ToolRegistry {
7
- /**
8
- * Get tool definition by name.
9
- * Returns undefined if tool is not recognized.
10
- */
11
- get(name: string): Tool | undefined;
12
- /**
13
- * Get all registered tools.
14
- */
15
- getAll(): Tool[];
16
- /**
17
- * Check if a tool name is registered.
18
- */
19
- has(name: string): boolean;
20
- /**
21
- * Get all tools in a specific category.
22
- */
23
- getByCategory(category: string): Tool[];
24
- }
25
- //# sourceMappingURL=registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AA6FvC;;;GAGG;AACH,qBAAa,YAAY;IACvB;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAInC;;OAEG;IACH,MAAM,IAAI,IAAI,EAAE;IAIhB;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE;CAKxC"}