@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,397 +0,0 @@
1
- import { promises } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { Logger } from './utils/logger.js';
4
-
5
- class PromptBuilder {
6
- getTaskFiles;
7
- generatePlanTemplate;
8
- posthogClient;
9
- logger;
10
- constructor(deps) {
11
- this.getTaskFiles = deps.getTaskFiles;
12
- this.generatePlanTemplate = deps.generatePlanTemplate;
13
- this.posthogClient = deps.posthogClient;
14
- this.logger =
15
- deps.logger || new Logger({ debug: false, prefix: "[PromptBuilder]" });
16
- }
17
- /**
18
- * Extract file paths from XML tags in description
19
- * Format: <file path="relative/path.ts" />
20
- */
21
- extractFilePaths(description) {
22
- const fileTagRegex = /<file\s+path="([^"]+)"\s*\/>/g;
23
- const paths = [];
24
- let match;
25
- match = fileTagRegex.exec(description);
26
- while (match !== null) {
27
- paths.push(match[1]);
28
- match = fileTagRegex.exec(description);
29
- }
30
- return paths;
31
- }
32
- /**
33
- * Read file contents from repository
34
- */
35
- async readFileContent(repositoryPath, filePath) {
36
- try {
37
- const fullPath = join(repositoryPath, filePath);
38
- const content = await promises.readFile(fullPath, "utf8");
39
- return content;
40
- }
41
- catch (error) {
42
- this.logger.warn(`Failed to read referenced file: ${filePath}`, {
43
- error,
44
- });
45
- return null;
46
- }
47
- }
48
- /**
49
- * Extract URL mentions from XML tags in description
50
- * Formats: <error id="..." />, <experiment id="..." />, <url href="..." />
51
- */
52
- extractUrlMentions(description) {
53
- const mentions = [];
54
- // PostHog resource mentions: <error id="..." />, <experiment id="..." />, etc.
55
- const resourceRegex = /<(error|experiment|insight|feature_flag)\s+id="([^"]+)"\s*\/>/g;
56
- let match;
57
- match = resourceRegex.exec(description);
58
- while (match !== null) {
59
- const [, type, id] = match;
60
- mentions.push({
61
- url: "", // Will be reconstructed if needed
62
- type: type,
63
- id,
64
- label: this.generateUrlLabel("", type),
65
- });
66
- match = resourceRegex.exec(description);
67
- }
68
- // Generic URL mentions: <url href="..." />
69
- const urlRegex = /<url\s+href="([^"]+)"\s*\/>/g;
70
- match = urlRegex.exec(description);
71
- while (match !== null) {
72
- const [, url] = match;
73
- mentions.push({
74
- url,
75
- type: "generic",
76
- label: this.generateUrlLabel(url, "generic"),
77
- });
78
- match = urlRegex.exec(description);
79
- }
80
- return mentions;
81
- }
82
- /**
83
- * Generate a display label for a URL mention
84
- */
85
- generateUrlLabel(url, type) {
86
- try {
87
- const urlObj = new URL(url);
88
- switch (type) {
89
- case "error": {
90
- const errorMatch = url.match(/error_tracking\/([a-f0-9-]+)/);
91
- return errorMatch ? `Error ${errorMatch[1].slice(0, 8)}...` : "Error";
92
- }
93
- case "experiment": {
94
- const expMatch = url.match(/experiments\/(\d+)/);
95
- return expMatch ? `Experiment #${expMatch[1]}` : "Experiment";
96
- }
97
- case "insight":
98
- return "Insight";
99
- case "feature_flag":
100
- return "Feature Flag";
101
- default:
102
- return urlObj.hostname;
103
- }
104
- }
105
- catch {
106
- return "URL";
107
- }
108
- }
109
- /**
110
- * Process URL references and fetch their content
111
- */
112
- async processUrlReferences(description) {
113
- const urlMentions = this.extractUrlMentions(description);
114
- const referencedResources = [];
115
- if (urlMentions.length === 0 || !this.posthogClient) {
116
- return { description, referencedResources };
117
- }
118
- // Fetch all referenced resources
119
- for (const mention of urlMentions) {
120
- try {
121
- const resource = await this.posthogClient.fetchResourceByUrl(mention);
122
- referencedResources.push(resource);
123
- }
124
- catch (error) {
125
- this.logger.warn(`Failed to fetch resource from URL: ${mention.url}`, {
126
- error,
127
- });
128
- // Add a placeholder resource for failed fetches
129
- referencedResources.push({
130
- type: mention.type,
131
- id: mention.id || "",
132
- url: mention.url,
133
- title: mention.label || "Unknown Resource",
134
- content: `Failed to fetch resource from ${mention.url}: ${error}`,
135
- metadata: {},
136
- });
137
- }
138
- }
139
- // Replace URL tags with just the label for readability
140
- let processedDescription = description;
141
- for (const mention of urlMentions) {
142
- if (mention.type === "generic") {
143
- // Generic URLs: <url href="..." />
144
- const escapedUrl = mention.url.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
145
- processedDescription = processedDescription.replace(new RegExp(`<url\\s+href="${escapedUrl}"\\s*/>`, "g"), `@${mention.label}`);
146
- }
147
- else {
148
- // PostHog resources: <error id="..." />, <experiment id="..." />, etc.
149
- const escapedType = mention.type.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
150
- const escapedId = mention.id
151
- ? mention.id.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
152
- : "";
153
- processedDescription = processedDescription.replace(new RegExp(`<${escapedType}\\s+id="${escapedId}"\\s*/>`, "g"), `@${mention.label}`);
154
- }
155
- }
156
- return { description: processedDescription, referencedResources };
157
- }
158
- /**
159
- * Process description to extract file tags and read contents
160
- * Returns processed description and referenced file contents
161
- */
162
- async processFileReferences(description, repositoryPath) {
163
- const filePaths = this.extractFilePaths(description);
164
- const referencedFiles = [];
165
- if (filePaths.length === 0 || !repositoryPath) {
166
- return { description, referencedFiles };
167
- }
168
- // Read all referenced files
169
- for (const filePath of filePaths) {
170
- const content = await this.readFileContent(repositoryPath, filePath);
171
- if (content !== null) {
172
- referencedFiles.push({ path: filePath, content });
173
- }
174
- }
175
- // Replace file tags with just the filename for readability
176
- let processedDescription = description;
177
- for (const filePath of filePaths) {
178
- const fileName = filePath.split("/").pop() || filePath;
179
- processedDescription = processedDescription.replace(new RegExp(`<file\\s+path="${filePath.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}"\\s*/>`, "g"), `@${fileName}`);
180
- }
181
- return { description: processedDescription, referencedFiles };
182
- }
183
- async buildResearchPrompt(task, repositoryPath) {
184
- // Process file references in description
185
- const { description: descriptionAfterFiles, referencedFiles } = await this.processFileReferences(task.description, repositoryPath);
186
- // Process URL references in description
187
- const { description: processedDescription, referencedResources } = await this.processUrlReferences(descriptionAfterFiles);
188
- let prompt = "<task>\n";
189
- prompt += `<title>${task.title}</title>\n`;
190
- prompt += `<description>${processedDescription}</description>\n`;
191
- if (task.repository) {
192
- prompt += `<repository>${task.repository}</repository>\n`;
193
- }
194
- prompt += "</task>\n";
195
- // Add referenced files from @ mentions
196
- if (referencedFiles.length > 0) {
197
- prompt += "\n<referenced_files>\n";
198
- for (const file of referencedFiles) {
199
- prompt += `<file path="${file.path}">\n\`\`\`\n${file.content}\n\`\`\`\n</file>\n`;
200
- }
201
- prompt += "</referenced_files>\n";
202
- }
203
- // Add referenced resources from URL mentions
204
- if (referencedResources.length > 0) {
205
- prompt += "\n<referenced_resources>\n";
206
- for (const resource of referencedResources) {
207
- prompt += `<resource type="${resource.type}" url="${resource.url}">\n`;
208
- prompt += `<title>${resource.title}</title>\n`;
209
- prompt += `<content>${resource.content}</content>\n`;
210
- prompt += "</resource>\n";
211
- }
212
- prompt += "</referenced_resources>\n";
213
- }
214
- try {
215
- const taskFiles = await this.getTaskFiles(task.id);
216
- const contextFiles = taskFiles.filter((f) => f.type === "context" || f.type === "reference");
217
- if (contextFiles.length > 0) {
218
- prompt += "\n<supporting_files>\n";
219
- for (const file of contextFiles) {
220
- prompt += `<file name="${file.name}" type="${file.type}">\n${file.content}\n</file>\n`;
221
- }
222
- prompt += "</supporting_files>\n";
223
- }
224
- }
225
- catch (_error) {
226
- this.logger.debug("No existing task files found for research", {
227
- taskId: task.id,
228
- });
229
- }
230
- return prompt;
231
- }
232
- async buildPlanningPrompt(task, repositoryPath) {
233
- // Process file references in description
234
- const { description: descriptionAfterFiles, referencedFiles } = await this.processFileReferences(task.description, repositoryPath);
235
- // Process URL references in description
236
- const { description: processedDescription, referencedResources } = await this.processUrlReferences(descriptionAfterFiles);
237
- let prompt = "<task>\n";
238
- prompt += `<title>${task.title}</title>\n`;
239
- prompt += `<description>${processedDescription}</description>\n`;
240
- if (task.repository) {
241
- prompt += `<repository>${task.repository}</repository>\n`;
242
- }
243
- prompt += "</task>\n";
244
- // Add referenced files from @ mentions
245
- if (referencedFiles.length > 0) {
246
- prompt += "\n<referenced_files>\n";
247
- for (const file of referencedFiles) {
248
- prompt += `<file path="${file.path}">\n\`\`\`\n${file.content}\n\`\`\`\n</file>\n`;
249
- }
250
- prompt += "</referenced_files>\n";
251
- }
252
- // Add referenced resources from URL mentions
253
- if (referencedResources.length > 0) {
254
- prompt += "\n<referenced_resources>\n";
255
- for (const resource of referencedResources) {
256
- prompt += `<resource type="${resource.type}" url="${resource.url}">\n`;
257
- prompt += `<title>${resource.title}</title>\n`;
258
- prompt += `<content>${resource.content}</content>\n`;
259
- prompt += "</resource>\n";
260
- }
261
- prompt += "</referenced_resources>\n";
262
- }
263
- try {
264
- const taskFiles = await this.getTaskFiles(task.id);
265
- const contextFiles = taskFiles.filter((f) => f.type === "context" || f.type === "reference");
266
- if (contextFiles.length > 0) {
267
- prompt += "\n<supporting_files>\n";
268
- for (const file of contextFiles) {
269
- prompt += `<file name="${file.name}" type="${file.type}">\n${file.content}\n</file>\n`;
270
- }
271
- prompt += "</supporting_files>\n";
272
- }
273
- }
274
- catch (_error) {
275
- this.logger.debug("No existing task files found for planning", {
276
- taskId: task.id,
277
- });
278
- }
279
- const templateVariables = {
280
- task_id: task.id,
281
- task_title: task.title,
282
- task_description: processedDescription,
283
- date: new Date().toISOString().split("T")[0],
284
- repository: task.repository || "",
285
- };
286
- const planTemplate = await this.generatePlanTemplate(templateVariables);
287
- prompt += "\n<instructions>\n";
288
- prompt +=
289
- "Analyze the codebase and create a detailed implementation plan. Use the template structure below, filling each section with specific, actionable information.\n";
290
- prompt += "</instructions>\n\n";
291
- prompt += "<plan_template>\n";
292
- prompt += planTemplate;
293
- prompt += "\n</plan_template>";
294
- return prompt;
295
- }
296
- async buildExecutionPrompt(task, repositoryPath) {
297
- // Process file references in description
298
- const { description: descriptionAfterFiles, referencedFiles } = await this.processFileReferences(task.description, repositoryPath);
299
- // Process URL references in description
300
- const { description: processedDescription, referencedResources } = await this.processUrlReferences(descriptionAfterFiles);
301
- let prompt = "<task>\n";
302
- prompt += `<title>${task.title}</title>\n`;
303
- prompt += `<description>${processedDescription}</description>\n`;
304
- if (task.repository) {
305
- prompt += `<repository>${task.repository}</repository>\n`;
306
- }
307
- prompt += "</task>\n";
308
- // Add referenced files from @ mentions
309
- if (referencedFiles.length > 0) {
310
- prompt += "\n<referenced_files>\n";
311
- for (const file of referencedFiles) {
312
- prompt += `<file path="${file.path}">\n\`\`\`\n${file.content}\n\`\`\`\n</file>\n`;
313
- }
314
- prompt += "</referenced_files>\n";
315
- }
316
- // Add referenced resources from URL mentions
317
- if (referencedResources.length > 0) {
318
- prompt += "\n<referenced_resources>\n";
319
- for (const resource of referencedResources) {
320
- prompt += `<resource type="${resource.type}" url="${resource.url}">\n`;
321
- prompt += `<title>${resource.title}</title>\n`;
322
- prompt += `<content>${resource.content}</content>\n`;
323
- prompt += "</resource>\n";
324
- }
325
- prompt += "</referenced_resources>\n";
326
- }
327
- try {
328
- const taskFiles = await this.getTaskFiles(task.id);
329
- const hasPlan = taskFiles.some((f) => f.type === "plan");
330
- const todosFile = taskFiles.find((f) => f.name === "todos.json");
331
- if (taskFiles.length > 0) {
332
- prompt += "\n<context>\n";
333
- for (const file of taskFiles) {
334
- if (file.type === "plan") {
335
- prompt += `<plan>\n${file.content}\n</plan>\n`;
336
- }
337
- else if (file.name === "todos.json") {
338
- }
339
- else {
340
- prompt += `<file name="${file.name}" type="${file.type}">\n${file.content}\n</file>\n`;
341
- }
342
- }
343
- prompt += "</context>\n";
344
- }
345
- // Add todos context if resuming work
346
- if (todosFile) {
347
- try {
348
- const todos = JSON.parse(todosFile.content);
349
- if (todos.items && todos.items.length > 0) {
350
- prompt += "\n<previous_todos>\n";
351
- prompt +=
352
- "You previously created the following todo list for this task:\n\n";
353
- for (const item of todos.items) {
354
- const statusIcon = item.status === "completed"
355
- ? "✓"
356
- : item.status === "in_progress"
357
- ? "▶"
358
- : "○";
359
- prompt += `${statusIcon} [${item.status}] ${item.content}\n`;
360
- }
361
- prompt += `\nProgress: ${todos.metadata.completed}/${todos.metadata.total} completed\n`;
362
- prompt +=
363
- "\nYou can reference this list when resuming work or create an updated list as needed.\n";
364
- prompt += "</previous_todos>\n";
365
- }
366
- }
367
- catch (error) {
368
- this.logger.debug("Failed to parse todos.json for context", {
369
- error,
370
- });
371
- }
372
- }
373
- prompt += "\n<instructions>\n";
374
- if (hasPlan) {
375
- prompt +=
376
- "Implement the changes described in the execution plan. Follow the plan step-by-step and make the necessary file modifications.\n";
377
- }
378
- else {
379
- prompt +=
380
- "Implement the changes described in the task. Make the necessary file modifications to complete the task.\n";
381
- }
382
- prompt += "</instructions>";
383
- }
384
- catch (_error) {
385
- this.logger.debug("No supporting files found for execution", {
386
- taskId: task.id,
387
- });
388
- prompt += "\n<instructions>\n";
389
- prompt += "Implement the changes described in the task.\n";
390
- prompt += "</instructions>";
391
- }
392
- return prompt;
393
- }
394
- }
395
-
396
- export { PromptBuilder };
397
- //# sourceMappingURL=prompt-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt-builder.js","sources":["../../src/prompt-builder.ts"],"sourcesContent":["import { promises as fs } from \"node:fs\";\nimport { join } from \"node:path\";\nimport type { TemplateVariables } from \"./template-manager.js\";\nimport type {\n PostHogResource,\n ResourceType,\n SupportingFile,\n Task,\n UrlMention,\n} from \"./types.js\";\nimport { Logger } from \"./utils/logger.js\";\n\nexport interface PromptBuilderDeps {\n getTaskFiles: (taskId: string) => Promise<SupportingFile[]>;\n generatePlanTemplate: (vars: TemplateVariables) => Promise<string>;\n posthogClient?: {\n fetchResourceByUrl: (mention: UrlMention) => Promise<PostHogResource>;\n };\n logger?: Logger;\n}\n\nexport class PromptBuilder {\n private getTaskFiles: PromptBuilderDeps[\"getTaskFiles\"];\n private generatePlanTemplate: PromptBuilderDeps[\"generatePlanTemplate\"];\n private posthogClient?: PromptBuilderDeps[\"posthogClient\"];\n private logger: Logger;\n\n constructor(deps: PromptBuilderDeps) {\n this.getTaskFiles = deps.getTaskFiles;\n this.generatePlanTemplate = deps.generatePlanTemplate;\n this.posthogClient = deps.posthogClient;\n this.logger =\n deps.logger || new Logger({ debug: false, prefix: \"[PromptBuilder]\" });\n }\n\n /**\n * Extract file paths from XML tags in description\n * Format: <file path=\"relative/path.ts\" />\n */\n private extractFilePaths(description: string): string[] {\n const fileTagRegex = /<file\\s+path=\"([^\"]+)\"\\s*\\/>/g;\n const paths: string[] = [];\n let match: RegExpExecArray | null;\n\n match = fileTagRegex.exec(description);\n while (match !== null) {\n paths.push(match[1]);\n match = fileTagRegex.exec(description);\n }\n\n return paths;\n }\n\n /**\n * Read file contents from repository\n */\n private async readFileContent(\n repositoryPath: string,\n filePath: string,\n ): Promise<string | null> {\n try {\n const fullPath = join(repositoryPath, filePath);\n const content = await fs.readFile(fullPath, \"utf8\");\n return content;\n } catch (error) {\n this.logger.warn(`Failed to read referenced file: ${filePath}`, {\n error,\n });\n return null;\n }\n }\n\n /**\n * Extract URL mentions from XML tags in description\n * Formats: <error id=\"...\" />, <experiment id=\"...\" />, <url href=\"...\" />\n */\n private extractUrlMentions(description: string): UrlMention[] {\n const mentions: UrlMention[] = [];\n\n // PostHog resource mentions: <error id=\"...\" />, <experiment id=\"...\" />, etc.\n const resourceRegex =\n /<(error|experiment|insight|feature_flag)\\s+id=\"([^\"]+)\"\\s*\\/>/g;\n let match: RegExpExecArray | null;\n\n match = resourceRegex.exec(description);\n while (match !== null) {\n const [, type, id] = match;\n mentions.push({\n url: \"\", // Will be reconstructed if needed\n type: type as ResourceType,\n id,\n label: this.generateUrlLabel(\"\", type as ResourceType),\n });\n match = resourceRegex.exec(description);\n }\n\n // Generic URL mentions: <url href=\"...\" />\n const urlRegex = /<url\\s+href=\"([^\"]+)\"\\s*\\/>/g;\n match = urlRegex.exec(description);\n while (match !== null) {\n const [, url] = match;\n mentions.push({\n url,\n type: \"generic\",\n label: this.generateUrlLabel(url, \"generic\"),\n });\n match = urlRegex.exec(description);\n }\n\n return mentions;\n }\n\n /**\n * Generate a display label for a URL mention\n */\n private generateUrlLabel(url: string, type: string): string {\n try {\n const urlObj = new URL(url);\n switch (type) {\n case \"error\": {\n const errorMatch = url.match(/error_tracking\\/([a-f0-9-]+)/);\n return errorMatch ? `Error ${errorMatch[1].slice(0, 8)}...` : \"Error\";\n }\n case \"experiment\": {\n const expMatch = url.match(/experiments\\/(\\d+)/);\n return expMatch ? `Experiment #${expMatch[1]}` : \"Experiment\";\n }\n case \"insight\":\n return \"Insight\";\n case \"feature_flag\":\n return \"Feature Flag\";\n default:\n return urlObj.hostname;\n }\n } catch {\n return \"URL\";\n }\n }\n\n /**\n * Process URL references and fetch their content\n */\n private async processUrlReferences(\n description: string,\n ): Promise<{ description: string; referencedResources: PostHogResource[] }> {\n const urlMentions = this.extractUrlMentions(description);\n const referencedResources: PostHogResource[] = [];\n\n if (urlMentions.length === 0 || !this.posthogClient) {\n return { description, referencedResources };\n }\n\n // Fetch all referenced resources\n for (const mention of urlMentions) {\n try {\n const resource = await this.posthogClient.fetchResourceByUrl(mention);\n referencedResources.push(resource);\n } catch (error) {\n this.logger.warn(`Failed to fetch resource from URL: ${mention.url}`, {\n error,\n });\n // Add a placeholder resource for failed fetches\n referencedResources.push({\n type: mention.type,\n id: mention.id || \"\",\n url: mention.url,\n title: mention.label || \"Unknown Resource\",\n content: `Failed to fetch resource from ${mention.url}: ${error}`,\n metadata: {},\n });\n }\n }\n\n // Replace URL tags with just the label for readability\n let processedDescription = description;\n for (const mention of urlMentions) {\n if (mention.type === \"generic\") {\n // Generic URLs: <url href=\"...\" />\n const escapedUrl = mention.url.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n processedDescription = processedDescription.replace(\n new RegExp(`<url\\\\s+href=\"${escapedUrl}\"\\\\s*/>`, \"g\"),\n `@${mention.label}`,\n );\n } else {\n // PostHog resources: <error id=\"...\" />, <experiment id=\"...\" />, etc.\n const escapedType = mention.type.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n const escapedId = mention.id\n ? mention.id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n : \"\";\n processedDescription = processedDescription.replace(\n new RegExp(`<${escapedType}\\\\s+id=\"${escapedId}\"\\\\s*/>`, \"g\"),\n `@${mention.label}`,\n );\n }\n }\n\n return { description: processedDescription, referencedResources };\n }\n\n /**\n * Process description to extract file tags and read contents\n * Returns processed description and referenced file contents\n */\n private async processFileReferences(\n description: string,\n repositoryPath?: string,\n ): Promise<{\n description: string;\n referencedFiles: Array<{ path: string; content: string }>;\n }> {\n const filePaths = this.extractFilePaths(description);\n const referencedFiles: Array<{ path: string; content: string }> = [];\n\n if (filePaths.length === 0 || !repositoryPath) {\n return { description, referencedFiles };\n }\n\n // Read all referenced files\n for (const filePath of filePaths) {\n const content = await this.readFileContent(repositoryPath, filePath);\n if (content !== null) {\n referencedFiles.push({ path: filePath, content });\n }\n }\n\n // Replace file tags with just the filename for readability\n let processedDescription = description;\n for (const filePath of filePaths) {\n const fileName = filePath.split(\"/\").pop() || filePath;\n processedDescription = processedDescription.replace(\n new RegExp(\n `<file\\\\s+path=\"${filePath.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")}\"\\\\s*/>`,\n \"g\",\n ),\n `@${fileName}`,\n );\n }\n\n return { description: processedDescription, referencedFiles };\n }\n\n async buildResearchPrompt(\n task: Task,\n repositoryPath?: string,\n ): Promise<string> {\n // Process file references in description\n const { description: descriptionAfterFiles, referencedFiles } =\n await this.processFileReferences(task.description, repositoryPath);\n\n // Process URL references in description\n const { description: processedDescription, referencedResources } =\n await this.processUrlReferences(descriptionAfterFiles);\n\n let prompt = \"<task>\\n\";\n prompt += `<title>${task.title}</title>\\n`;\n prompt += `<description>${processedDescription}</description>\\n`;\n\n if (task.repository) {\n prompt += `<repository>${task.repository}</repository>\\n`;\n }\n prompt += \"</task>\\n\";\n\n // Add referenced files from @ mentions\n if (referencedFiles.length > 0) {\n prompt += \"\\n<referenced_files>\\n\";\n for (const file of referencedFiles) {\n prompt += `<file path=\"${file.path}\">\\n\\`\\`\\`\\n${file.content}\\n\\`\\`\\`\\n</file>\\n`;\n }\n prompt += \"</referenced_files>\\n\";\n }\n\n // Add referenced resources from URL mentions\n if (referencedResources.length > 0) {\n prompt += \"\\n<referenced_resources>\\n\";\n for (const resource of referencedResources) {\n prompt += `<resource type=\"${resource.type}\" url=\"${resource.url}\">\\n`;\n prompt += `<title>${resource.title}</title>\\n`;\n prompt += `<content>${resource.content}</content>\\n`;\n prompt += \"</resource>\\n\";\n }\n prompt += \"</referenced_resources>\\n\";\n }\n\n try {\n const taskFiles = await this.getTaskFiles(task.id);\n const contextFiles = taskFiles.filter(\n (f: SupportingFile) => f.type === \"context\" || f.type === \"reference\",\n );\n if (contextFiles.length > 0) {\n prompt += \"\\n<supporting_files>\\n\";\n for (const file of contextFiles) {\n prompt += `<file name=\"${file.name}\" type=\"${file.type}\">\\n${file.content}\\n</file>\\n`;\n }\n prompt += \"</supporting_files>\\n\";\n }\n } catch (_error) {\n this.logger.debug(\"No existing task files found for research\", {\n taskId: task.id,\n });\n }\n\n return prompt;\n }\n\n async buildPlanningPrompt(\n task: Task,\n repositoryPath?: string,\n ): Promise<string> {\n // Process file references in description\n const { description: descriptionAfterFiles, referencedFiles } =\n await this.processFileReferences(task.description, repositoryPath);\n\n // Process URL references in description\n const { description: processedDescription, referencedResources } =\n await this.processUrlReferences(descriptionAfterFiles);\n\n let prompt = \"<task>\\n\";\n prompt += `<title>${task.title}</title>\\n`;\n prompt += `<description>${processedDescription}</description>\\n`;\n\n if (task.repository) {\n prompt += `<repository>${task.repository}</repository>\\n`;\n }\n prompt += \"</task>\\n\";\n\n // Add referenced files from @ mentions\n if (referencedFiles.length > 0) {\n prompt += \"\\n<referenced_files>\\n\";\n for (const file of referencedFiles) {\n prompt += `<file path=\"${file.path}\">\\n\\`\\`\\`\\n${file.content}\\n\\`\\`\\`\\n</file>\\n`;\n }\n prompt += \"</referenced_files>\\n\";\n }\n\n // Add referenced resources from URL mentions\n if (referencedResources.length > 0) {\n prompt += \"\\n<referenced_resources>\\n\";\n for (const resource of referencedResources) {\n prompt += `<resource type=\"${resource.type}\" url=\"${resource.url}\">\\n`;\n prompt += `<title>${resource.title}</title>\\n`;\n prompt += `<content>${resource.content}</content>\\n`;\n prompt += \"</resource>\\n\";\n }\n prompt += \"</referenced_resources>\\n\";\n }\n\n try {\n const taskFiles = await this.getTaskFiles(task.id);\n const contextFiles = taskFiles.filter(\n (f: SupportingFile) => f.type === \"context\" || f.type === \"reference\",\n );\n if (contextFiles.length > 0) {\n prompt += \"\\n<supporting_files>\\n\";\n for (const file of contextFiles) {\n prompt += `<file name=\"${file.name}\" type=\"${file.type}\">\\n${file.content}\\n</file>\\n`;\n }\n prompt += \"</supporting_files>\\n\";\n }\n } catch (_error) {\n this.logger.debug(\"No existing task files found for planning\", {\n taskId: task.id,\n });\n }\n\n const templateVariables = {\n task_id: task.id,\n task_title: task.title,\n task_description: processedDescription,\n date: new Date().toISOString().split(\"T\")[0],\n repository: task.repository || \"\",\n };\n\n const planTemplate = await this.generatePlanTemplate(templateVariables);\n\n prompt += \"\\n<instructions>\\n\";\n prompt +=\n \"Analyze the codebase and create a detailed implementation plan. Use the template structure below, filling each section with specific, actionable information.\\n\";\n prompt += \"</instructions>\\n\\n\";\n prompt += \"<plan_template>\\n\";\n prompt += planTemplate;\n prompt += \"\\n</plan_template>\";\n\n return prompt;\n }\n\n async buildExecutionPrompt(\n task: Task,\n repositoryPath?: string,\n ): Promise<string> {\n // Process file references in description\n const { description: descriptionAfterFiles, referencedFiles } =\n await this.processFileReferences(task.description, repositoryPath);\n\n // Process URL references in description\n const { description: processedDescription, referencedResources } =\n await this.processUrlReferences(descriptionAfterFiles);\n\n let prompt = \"<task>\\n\";\n prompt += `<title>${task.title}</title>\\n`;\n prompt += `<description>${processedDescription}</description>\\n`;\n\n if (task.repository) {\n prompt += `<repository>${task.repository}</repository>\\n`;\n }\n prompt += \"</task>\\n\";\n\n // Add referenced files from @ mentions\n if (referencedFiles.length > 0) {\n prompt += \"\\n<referenced_files>\\n\";\n for (const file of referencedFiles) {\n prompt += `<file path=\"${file.path}\">\\n\\`\\`\\`\\n${file.content}\\n\\`\\`\\`\\n</file>\\n`;\n }\n prompt += \"</referenced_files>\\n\";\n }\n\n // Add referenced resources from URL mentions\n if (referencedResources.length > 0) {\n prompt += \"\\n<referenced_resources>\\n\";\n for (const resource of referencedResources) {\n prompt += `<resource type=\"${resource.type}\" url=\"${resource.url}\">\\n`;\n prompt += `<title>${resource.title}</title>\\n`;\n prompt += `<content>${resource.content}</content>\\n`;\n prompt += \"</resource>\\n\";\n }\n prompt += \"</referenced_resources>\\n\";\n }\n\n try {\n const taskFiles = await this.getTaskFiles(task.id);\n const hasPlan = taskFiles.some((f: SupportingFile) => f.type === \"plan\");\n const todosFile = taskFiles.find(\n (f: SupportingFile) => f.name === \"todos.json\",\n );\n\n if (taskFiles.length > 0) {\n prompt += \"\\n<context>\\n\";\n for (const file of taskFiles) {\n if (file.type === \"plan\") {\n prompt += `<plan>\\n${file.content}\\n</plan>\\n`;\n } else if (file.name === \"todos.json\") {\n } else {\n prompt += `<file name=\"${file.name}\" type=\"${file.type}\">\\n${file.content}\\n</file>\\n`;\n }\n }\n prompt += \"</context>\\n\";\n }\n\n // Add todos context if resuming work\n if (todosFile) {\n try {\n const todos = JSON.parse(todosFile.content);\n if (todos.items && todos.items.length > 0) {\n prompt += \"\\n<previous_todos>\\n\";\n prompt +=\n \"You previously created the following todo list for this task:\\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 prompt += `${statusIcon} [${item.status}] ${item.content}\\n`;\n }\n prompt += `\\nProgress: ${todos.metadata.completed}/${todos.metadata.total} completed\\n`;\n prompt +=\n \"\\nYou can reference this list when resuming work or create an updated list as needed.\\n\";\n prompt += \"</previous_todos>\\n\";\n }\n } catch (error) {\n this.logger.debug(\"Failed to parse todos.json for context\", {\n error,\n });\n }\n }\n\n prompt += \"\\n<instructions>\\n\";\n if (hasPlan) {\n prompt +=\n \"Implement the changes described in the execution plan. Follow the plan step-by-step and make the necessary file modifications.\\n\";\n } else {\n prompt +=\n \"Implement the changes described in the task. Make the necessary file modifications to complete the task.\\n\";\n }\n prompt += \"</instructions>\";\n } catch (_error) {\n this.logger.debug(\"No supporting files found for execution\", {\n taskId: task.id,\n });\n prompt += \"\\n<instructions>\\n\";\n prompt += \"Implement the changes described in the task.\\n\";\n prompt += \"</instructions>\";\n }\n\n return prompt;\n }\n}\n"],"names":["fs"],"mappings":"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"}