@posthog/agent 1.25.0 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (573) hide show
  1. package/dist/index.d.ts +1274 -20
  2. package/dist/index.js +7296 -11
  3. package/dist/index.js.map +1 -1
  4. package/package.json +6 -12
  5. package/src/adapters/claude/claude.ts +21 -5
  6. package/src/adapters/claude/tools.ts +8 -1
  7. package/src/agent.ts +250 -1
  8. package/src/session-store.ts +18 -3
  9. package/src/types.ts +1 -1
  10. package/src/worktree-manager.ts +4 -7
  11. package/dist/_virtual/_commonjsHelpers.js +0 -6
  12. package/dist/_virtual/_commonjsHelpers.js.map +0 -1
  13. package/dist/_virtual/additionalItems.js +0 -4
  14. package/dist/_virtual/additionalItems.js.map +0 -1
  15. package/dist/_virtual/additionalProperties.js +0 -4
  16. package/dist/_virtual/additionalProperties.js.map +0 -1
  17. package/dist/_virtual/ajv.js +0 -4
  18. package/dist/_virtual/ajv.js.map +0 -1
  19. package/dist/_virtual/allOf.js +0 -4
  20. package/dist/_virtual/allOf.js.map +0 -1
  21. package/dist/_virtual/anyOf.js +0 -4
  22. package/dist/_virtual/anyOf.js.map +0 -1
  23. package/dist/_virtual/applicability.js +0 -4
  24. package/dist/_virtual/applicability.js.map +0 -1
  25. package/dist/_virtual/boolSchema.js +0 -4
  26. package/dist/_virtual/boolSchema.js.map +0 -1
  27. package/dist/_virtual/code.js +0 -4
  28. package/dist/_virtual/code.js.map +0 -1
  29. package/dist/_virtual/code2.js +0 -4
  30. package/dist/_virtual/code2.js.map +0 -1
  31. package/dist/_virtual/const.js +0 -4
  32. package/dist/_virtual/const.js.map +0 -1
  33. package/dist/_virtual/contains.js +0 -4
  34. package/dist/_virtual/contains.js.map +0 -1
  35. package/dist/_virtual/core.js +0 -4
  36. package/dist/_virtual/core.js.map +0 -1
  37. package/dist/_virtual/dataType.js +0 -4
  38. package/dist/_virtual/dataType.js.map +0 -1
  39. package/dist/_virtual/defaults.js +0 -4
  40. package/dist/_virtual/defaults.js.map +0 -1
  41. package/dist/_virtual/dependencies.js +0 -4
  42. package/dist/_virtual/dependencies.js.map +0 -1
  43. package/dist/_virtual/draft7.js +0 -4
  44. package/dist/_virtual/draft7.js.map +0 -1
  45. package/dist/_virtual/enum.js +0 -4
  46. package/dist/_virtual/enum.js.map +0 -1
  47. package/dist/_virtual/equal.js +0 -4
  48. package/dist/_virtual/equal.js.map +0 -1
  49. package/dist/_virtual/errors.js +0 -4
  50. package/dist/_virtual/errors.js.map +0 -1
  51. package/dist/_virtual/format.js +0 -4
  52. package/dist/_virtual/format.js.map +0 -1
  53. package/dist/_virtual/formats.js +0 -4
  54. package/dist/_virtual/formats.js.map +0 -1
  55. package/dist/_virtual/id.js +0 -4
  56. package/dist/_virtual/id.js.map +0 -1
  57. package/dist/_virtual/if.js +0 -4
  58. package/dist/_virtual/if.js.map +0 -1
  59. package/dist/_virtual/index.js +0 -4
  60. package/dist/_virtual/index.js.map +0 -1
  61. package/dist/_virtual/index10.js +0 -4
  62. package/dist/_virtual/index10.js.map +0 -1
  63. package/dist/_virtual/index11.js +0 -4
  64. package/dist/_virtual/index11.js.map +0 -1
  65. package/dist/_virtual/index2.js +0 -4
  66. package/dist/_virtual/index2.js.map +0 -1
  67. package/dist/_virtual/index3.js +0 -4
  68. package/dist/_virtual/index3.js.map +0 -1
  69. package/dist/_virtual/index4.js +0 -4
  70. package/dist/_virtual/index4.js.map +0 -1
  71. package/dist/_virtual/index5.js +0 -4
  72. package/dist/_virtual/index5.js.map +0 -1
  73. package/dist/_virtual/index6.js +0 -4
  74. package/dist/_virtual/index6.js.map +0 -1
  75. package/dist/_virtual/index7.js +0 -4
  76. package/dist/_virtual/index7.js.map +0 -1
  77. package/dist/_virtual/index8.js +0 -4
  78. package/dist/_virtual/index8.js.map +0 -1
  79. package/dist/_virtual/index9.js +0 -4
  80. package/dist/_virtual/index9.js.map +0 -1
  81. package/dist/_virtual/items.js +0 -4
  82. package/dist/_virtual/items.js.map +0 -1
  83. package/dist/_virtual/items2020.js +0 -4
  84. package/dist/_virtual/items2020.js.map +0 -1
  85. package/dist/_virtual/keyword.js +0 -4
  86. package/dist/_virtual/keyword.js.map +0 -1
  87. package/dist/_virtual/limit.js +0 -4
  88. package/dist/_virtual/limit.js.map +0 -1
  89. package/dist/_virtual/limitItems.js +0 -4
  90. package/dist/_virtual/limitItems.js.map +0 -1
  91. package/dist/_virtual/limitLength.js +0 -4
  92. package/dist/_virtual/limitLength.js.map +0 -1
  93. package/dist/_virtual/limitNumber.js +0 -4
  94. package/dist/_virtual/limitNumber.js.map +0 -1
  95. package/dist/_virtual/limitProperties.js +0 -4
  96. package/dist/_virtual/limitProperties.js.map +0 -1
  97. package/dist/_virtual/metadata.js +0 -4
  98. package/dist/_virtual/metadata.js.map +0 -1
  99. package/dist/_virtual/multipleOf.js +0 -4
  100. package/dist/_virtual/multipleOf.js.map +0 -1
  101. package/dist/_virtual/names.js +0 -4
  102. package/dist/_virtual/names.js.map +0 -1
  103. package/dist/_virtual/not.js +0 -4
  104. package/dist/_virtual/not.js.map +0 -1
  105. package/dist/_virtual/oneOf.js +0 -4
  106. package/dist/_virtual/oneOf.js.map +0 -1
  107. package/dist/_virtual/pattern.js +0 -4
  108. package/dist/_virtual/pattern.js.map +0 -1
  109. package/dist/_virtual/patternProperties.js +0 -4
  110. package/dist/_virtual/patternProperties.js.map +0 -1
  111. package/dist/_virtual/prefixItems.js +0 -4
  112. package/dist/_virtual/prefixItems.js.map +0 -1
  113. package/dist/_virtual/properties.js +0 -4
  114. package/dist/_virtual/properties.js.map +0 -1
  115. package/dist/_virtual/propertyNames.js +0 -4
  116. package/dist/_virtual/propertyNames.js.map +0 -1
  117. package/dist/_virtual/ref.js +0 -4
  118. package/dist/_virtual/ref.js.map +0 -1
  119. package/dist/_virtual/ref_error.js +0 -4
  120. package/dist/_virtual/ref_error.js.map +0 -1
  121. package/dist/_virtual/required.js +0 -4
  122. package/dist/_virtual/required.js.map +0 -1
  123. package/dist/_virtual/resolve.js +0 -4
  124. package/dist/_virtual/resolve.js.map +0 -1
  125. package/dist/_virtual/rules.js +0 -4
  126. package/dist/_virtual/rules.js.map +0 -1
  127. package/dist/_virtual/scope.js +0 -4
  128. package/dist/_virtual/scope.js.map +0 -1
  129. package/dist/_virtual/subschema.js +0 -4
  130. package/dist/_virtual/subschema.js.map +0 -1
  131. package/dist/_virtual/thenElse.js +0 -4
  132. package/dist/_virtual/thenElse.js.map +0 -1
  133. package/dist/_virtual/types.js +0 -4
  134. package/dist/_virtual/types.js.map +0 -1
  135. package/dist/_virtual/ucs2length.js +0 -4
  136. package/dist/_virtual/ucs2length.js.map +0 -1
  137. package/dist/_virtual/uniqueItems.js +0 -4
  138. package/dist/_virtual/uniqueItems.js.map +0 -1
  139. package/dist/_virtual/uri.js +0 -4
  140. package/dist/_virtual/uri.js.map +0 -1
  141. package/dist/_virtual/util.js +0 -4
  142. package/dist/_virtual/util.js.map +0 -1
  143. package/dist/_virtual/validation_error.js +0 -4
  144. package/dist/_virtual/validation_error.js.map +0 -1
  145. package/dist/example-client.d.ts +0 -3
  146. package/dist/example-client.d.ts.map +0 -1
  147. package/dist/example.d.ts +0 -3
  148. package/dist/example.d.ts.map +0 -1
  149. package/dist/index.d.ts.map +0 -1
  150. package/dist/node_modules/@agentclientprotocol/sdk/dist/acp.js +0 -610
  151. package/dist/node_modules/@agentclientprotocol/sdk/dist/acp.js.map +0 -1
  152. package/dist/node_modules/@agentclientprotocol/sdk/dist/schema.js +0 -875
  153. package/dist/node_modules/@agentclientprotocol/sdk/dist/schema.js.map +0 -1
  154. package/dist/node_modules/@agentclientprotocol/sdk/dist/stream.js +0 -66
  155. package/dist/node_modules/@agentclientprotocol/sdk/dist/stream.js.map +0 -1
  156. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js +0 -23
  157. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js.map +0 -1
  158. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +0 -331
  159. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +0 -1
  160. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +0 -717
  161. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +0 -1
  162. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +0 -221
  163. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +0 -1
  164. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +0 -56
  165. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +0 -1
  166. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +0 -440
  167. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +0 -1
  168. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js +0 -94
  169. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js.map +0 -1
  170. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +0 -1610
  171. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +0 -1
  172. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +0 -91
  173. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +0 -1
  174. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/ZodError.js +0 -133
  175. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/ZodError.js.map +0 -1
  176. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/errors.js +0 -9
  177. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/errors.js.map +0 -1
  178. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/errorUtil.js +0 -9
  179. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/errorUtil.js.map +0 -1
  180. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/parseUtil.js +0 -112
  181. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/parseUtil.js.map +0 -1
  182. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/util.js +0 -136
  183. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/util.js.map +0 -1
  184. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/locales/en.js +0 -112
  185. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/locales/en.js.map +0 -1
  186. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/types.js +0 -3297
  187. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/types.js.map +0 -1
  188. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/errors.js +0 -44
  189. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/errors.js.map +0 -1
  190. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/iso.js +0 -36
  191. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/iso.js.map +0 -1
  192. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/parse.js +0 -10
  193. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/parse.js.map +0 -1
  194. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/schemas.js +0 -657
  195. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/schemas.js.map +0 -1
  196. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/api.js +0 -449
  197. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/api.js.map +0 -1
  198. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/checks.js +0 -413
  199. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/checks.js.map +0 -1
  200. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/core.js +0 -57
  201. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/core.js.map +0 -1
  202. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/doc.js +0 -38
  203. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/doc.js.map +0 -1
  204. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/errors.js +0 -86
  205. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/errors.js.map +0 -1
  206. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/parse.js +0 -61
  207. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/parse.js.map +0 -1
  208. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/regexes.js +0 -80
  209. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/regexes.js.map +0 -1
  210. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/registries.js +0 -52
  211. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/registries.js.map +0 -1
  212. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/schemas.js +0 -1307
  213. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/schemas.js.map +0 -1
  214. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/to-json-schema.js +0 -842
  215. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/to-json-schema.js.map +0 -1
  216. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/util.js +0 -335
  217. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/util.js.map +0 -1
  218. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/versions.js +0 -8
  219. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/versions.js.map +0 -1
  220. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/schemas.js +0 -51
  221. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/schemas.js.map +0 -1
  222. package/dist/node_modules/ajv/dist/ajv.js +0 -69
  223. package/dist/node_modules/ajv/dist/ajv.js.map +0 -1
  224. package/dist/node_modules/ajv/dist/compile/codegen/code.js +0 -169
  225. package/dist/node_modules/ajv/dist/compile/codegen/code.js.map +0 -1
  226. package/dist/node_modules/ajv/dist/compile/codegen/index.js +0 -712
  227. package/dist/node_modules/ajv/dist/compile/codegen/index.js.map +0 -1
  228. package/dist/node_modules/ajv/dist/compile/codegen/scope.js +0 -157
  229. package/dist/node_modules/ajv/dist/compile/codegen/scope.js.map +0 -1
  230. package/dist/node_modules/ajv/dist/compile/errors.js +0 -140
  231. package/dist/node_modules/ajv/dist/compile/errors.js.map +0 -1
  232. package/dist/node_modules/ajv/dist/compile/index.js +0 -253
  233. package/dist/node_modules/ajv/dist/compile/index.js.map +0 -1
  234. package/dist/node_modules/ajv/dist/compile/names.js +0 -40
  235. package/dist/node_modules/ajv/dist/compile/names.js.map +0 -1
  236. package/dist/node_modules/ajv/dist/compile/ref_error.js +0 -25
  237. package/dist/node_modules/ajv/dist/compile/ref_error.js.map +0 -1
  238. package/dist/node_modules/ajv/dist/compile/resolve.js +0 -162
  239. package/dist/node_modules/ajv/dist/compile/resolve.js.map +0 -1
  240. package/dist/node_modules/ajv/dist/compile/rules.js +0 -29
  241. package/dist/node_modules/ajv/dist/compile/rules.js.map +0 -1
  242. package/dist/node_modules/ajv/dist/compile/util.js +0 -183
  243. package/dist/node_modules/ajv/dist/compile/util.js.map +0 -1
  244. package/dist/node_modules/ajv/dist/compile/validate/applicability.js +0 -30
  245. package/dist/node_modules/ajv/dist/compile/validate/applicability.js.map +0 -1
  246. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +0 -64
  247. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js.map +0 -1
  248. package/dist/node_modules/ajv/dist/compile/validate/dataType.js +0 -213
  249. package/dist/node_modules/ajv/dist/compile/validate/dataType.js.map +0 -1
  250. package/dist/node_modules/ajv/dist/compile/validate/defaults.js +0 -49
  251. package/dist/node_modules/ajv/dist/compile/validate/defaults.js.map +0 -1
  252. package/dist/node_modules/ajv/dist/compile/validate/index.js +0 -544
  253. package/dist/node_modules/ajv/dist/compile/validate/index.js.map +0 -1
  254. package/dist/node_modules/ajv/dist/compile/validate/keyword.js +0 -139
  255. package/dist/node_modules/ajv/dist/compile/validate/keyword.js.map +0 -1
  256. package/dist/node_modules/ajv/dist/compile/validate/subschema.js +0 -95
  257. package/dist/node_modules/ajv/dist/compile/validate/subschema.js.map +0 -1
  258. package/dist/node_modules/ajv/dist/core.js +0 -639
  259. package/dist/node_modules/ajv/dist/core.js.map +0 -1
  260. package/dist/node_modules/ajv/dist/refs/data.json.js +0 -31
  261. package/dist/node_modules/ajv/dist/refs/data.json.js.map +0 -1
  262. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +0 -254
  263. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +0 -1
  264. package/dist/node_modules/ajv/dist/runtime/equal.js +0 -9
  265. package/dist/node_modules/ajv/dist/runtime/equal.js.map +0 -1
  266. package/dist/node_modules/ajv/dist/runtime/ucs2length.js +0 -25
  267. package/dist/node_modules/ajv/dist/runtime/ucs2length.js.map +0 -1
  268. package/dist/node_modules/ajv/dist/runtime/uri.js +0 -8
  269. package/dist/node_modules/ajv/dist/runtime/uri.js.map +0 -1
  270. package/dist/node_modules/ajv/dist/runtime/validation_error.js +0 -22
  271. package/dist/node_modules/ajv/dist/runtime/validation_error.js.map +0 -1
  272. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +0 -53
  273. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +0 -1
  274. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +0 -112
  275. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +0 -1
  276. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +0 -26
  277. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +0 -1
  278. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +0 -14
  279. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +0 -1
  280. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +0 -99
  281. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +0 -1
  282. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +0 -93
  283. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +0 -1
  284. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +0 -70
  285. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js.map +0 -1
  286. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +0 -77
  287. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js.map +0 -1
  288. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +0 -57
  289. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js.map +0 -1
  290. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +0 -37
  291. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +0 -1
  292. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +0 -29
  293. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js.map +0 -1
  294. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +0 -64
  295. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +0 -1
  296. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +0 -80
  297. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +0 -1
  298. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +0 -15
  299. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +0 -1
  300. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +0 -61
  301. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +0 -1
  302. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +0 -42
  303. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +0 -1
  304. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +0 -16
  305. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +0 -1
  306. package/dist/node_modules/ajv/dist/vocabularies/code.js +0 -146
  307. package/dist/node_modules/ajv/dist/vocabularies/code.js.map +0 -1
  308. package/dist/node_modules/ajv/dist/vocabularies/core/id.js +0 -11
  309. package/dist/node_modules/ajv/dist/vocabularies/core/id.js.map +0 -1
  310. package/dist/node_modules/ajv/dist/vocabularies/core/index.js +0 -21
  311. package/dist/node_modules/ajv/dist/vocabularies/core/index.js.map +0 -1
  312. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +0 -131
  313. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js.map +0 -1
  314. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +0 -113
  315. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +0 -1
  316. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +0 -12
  317. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +0 -1
  318. package/dist/node_modules/ajv/dist/vocabularies/draft7.js +0 -28
  319. package/dist/node_modules/ajv/dist/vocabularies/draft7.js.map +0 -1
  320. package/dist/node_modules/ajv/dist/vocabularies/format/format.js +0 -94
  321. package/dist/node_modules/ajv/dist/vocabularies/format/format.js.map +0 -1
  322. package/dist/node_modules/ajv/dist/vocabularies/format/index.js +0 -9
  323. package/dist/node_modules/ajv/dist/vocabularies/format/index.js.map +0 -1
  324. package/dist/node_modules/ajv/dist/vocabularies/metadata.js +0 -21
  325. package/dist/node_modules/ajv/dist/vocabularies/metadata.js.map +0 -1
  326. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +0 -31
  327. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js.map +0 -1
  328. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +0 -54
  329. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js.map +0 -1
  330. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +0 -54
  331. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js.map +0 -1
  332. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +0 -26
  333. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +0 -1
  334. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +0 -33
  335. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +0 -1
  336. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +0 -29
  337. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +0 -1
  338. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +0 -26
  339. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +0 -1
  340. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +0 -28
  341. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +0 -1
  342. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +0 -27
  343. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +0 -1
  344. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +0 -84
  345. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js.map +0 -1
  346. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +0 -72
  347. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +0 -1
  348. package/dist/node_modules/ajv-formats/dist/formats.js +0 -212
  349. package/dist/node_modules/ajv-formats/dist/formats.js.map +0 -1
  350. package/dist/node_modules/ajv-formats/dist/index.js +0 -52
  351. package/dist/node_modules/ajv-formats/dist/index.js.map +0 -1
  352. package/dist/node_modules/ajv-formats/dist/limit.js +0 -75
  353. package/dist/node_modules/ajv-formats/dist/limit.js.map +0 -1
  354. package/dist/node_modules/diff/libesm/diff/base.js +0 -256
  355. package/dist/node_modules/diff/libesm/diff/base.js.map +0 -1
  356. package/dist/node_modules/diff/libesm/diff/line.js +0 -64
  357. package/dist/node_modules/diff/libesm/diff/line.js.map +0 -1
  358. package/dist/node_modules/diff/libesm/patch/create.js +0 -185
  359. package/dist/node_modules/diff/libesm/patch/create.js.map +0 -1
  360. package/dist/node_modules/fast-deep-equal/index.js +0 -47
  361. package/dist/node_modules/fast-deep-equal/index.js.map +0 -1
  362. package/dist/node_modules/fast-uri/index.js +0 -347
  363. package/dist/node_modules/fast-uri/index.js.map +0 -1
  364. package/dist/node_modules/fast-uri/lib/schemes.js +0 -255
  365. package/dist/node_modules/fast-uri/lib/schemes.js.map +0 -1
  366. package/dist/node_modules/fast-uri/lib/utils.js +0 -334
  367. package/dist/node_modules/fast-uri/lib/utils.js.map +0 -1
  368. package/dist/node_modules/json-schema-traverse/index.js +0 -98
  369. package/dist/node_modules/json-schema-traverse/index.js.map +0 -1
  370. package/dist/node_modules/uuid/dist/rng.js +0 -14
  371. package/dist/node_modules/uuid/dist/rng.js.map +0 -1
  372. package/dist/node_modules/uuid/dist/stringify.js +0 -29
  373. package/dist/node_modules/uuid/dist/stringify.js.map +0 -1
  374. package/dist/node_modules/uuid/dist/v7.js +0 -65
  375. package/dist/node_modules/uuid/dist/v7.js.map +0 -1
  376. package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js +0 -37
  377. package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js.map +0 -1
  378. package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js +0 -26
  379. package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js.map +0 -1
  380. package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +0 -17
  381. package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js.map +0 -1
  382. package/dist/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +0 -11
  383. package/dist/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js.map +0 -1
  384. package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js +0 -66
  385. package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js.map +0 -1
  386. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +0 -21
  387. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js.map +0 -1
  388. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +0 -30
  389. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js.map +0 -1
  390. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +0 -53
  391. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js.map +0 -1
  392. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +0 -8
  393. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js.map +0 -1
  394. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +0 -8
  395. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js.map +0 -1
  396. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +0 -8
  397. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js.map +0 -1
  398. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +0 -50
  399. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js.map +0 -1
  400. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +0 -11
  401. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js.map +0 -1
  402. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +0 -11
  403. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js.map +0 -1
  404. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +0 -9
  405. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js.map +0 -1
  406. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +0 -56
  407. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js.map +0 -1
  408. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +0 -24
  409. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js.map +0 -1
  410. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +0 -30
  411. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js.map +0 -1
  412. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +0 -19
  413. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js.map +0 -1
  414. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +0 -15
  415. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js.map +0 -1
  416. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +0 -13
  417. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js.map +0 -1
  418. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +0 -37
  419. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js.map +0 -1
  420. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +0 -56
  421. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js.map +0 -1
  422. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +0 -76
  423. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js.map +0 -1
  424. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +0 -25
  425. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js.map +0 -1
  426. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +0 -24
  427. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js.map +0 -1
  428. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +0 -8
  429. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js.map +0 -1
  430. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +0 -8
  431. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js.map +0 -1
  432. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +0 -65
  433. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js.map +0 -1
  434. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +0 -24
  435. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js.map +0 -1
  436. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +0 -350
  437. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +0 -1
  438. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +0 -36
  439. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js.map +0 -1
  440. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +0 -10
  441. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js.map +0 -1
  442. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +0 -84
  443. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js.map +0 -1
  444. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +0 -8
  445. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js.map +0 -1
  446. package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js +0 -109
  447. package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js.map +0 -1
  448. package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +0 -90
  449. package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js.map +0 -1
  450. package/dist/node_modules/zod-to-json-schema/node_modules/zod/v3/types.js +0 -42
  451. package/dist/node_modules/zod-to-json-schema/node_modules/zod/v3/types.js.map +0 -1
  452. package/dist/package.json.js +0 -8
  453. package/dist/package.json.js.map +0 -1
  454. package/dist/src/acp-extensions.d.ts +0 -91
  455. package/dist/src/acp-extensions.d.ts.map +0 -1
  456. package/dist/src/acp-extensions.js +0 -38
  457. package/dist/src/acp-extensions.js.map +0 -1
  458. package/dist/src/adapters/claude/claude.d.ts +0 -136
  459. package/dist/src/adapters/claude/claude.d.ts.map +0 -1
  460. package/dist/src/adapters/claude/claude.js +0 -1112
  461. package/dist/src/adapters/claude/claude.js.map +0 -1
  462. package/dist/src/adapters/claude/mcp-server.d.ts +0 -30
  463. package/dist/src/adapters/claude/mcp-server.d.ts.map +0 -1
  464. package/dist/src/adapters/claude/mcp-server.js +0 -655
  465. package/dist/src/adapters/claude/mcp-server.js.map +0 -1
  466. package/dist/src/adapters/claude/tools.d.ts +0 -35
  467. package/dist/src/adapters/claude/tools.d.ts.map +0 -1
  468. package/dist/src/adapters/claude/tools.js +0 -466
  469. package/dist/src/adapters/claude/tools.js.map +0 -1
  470. package/dist/src/adapters/claude/utils.d.ts +0 -48
  471. package/dist/src/adapters/claude/utils.d.ts.map +0 -1
  472. package/dist/src/adapters/claude/utils.js +0 -158
  473. package/dist/src/adapters/claude/utils.js.map +0 -1
  474. package/dist/src/agent.d.ts +0 -52
  475. package/dist/src/agent.d.ts.map +0 -1
  476. package/dist/src/agent.js +0 -425
  477. package/dist/src/agent.js.map +0 -1
  478. package/dist/src/agents/execution.d.ts +0 -2
  479. package/dist/src/agents/execution.d.ts.map +0 -1
  480. package/dist/src/agents/execution.js +0 -40
  481. package/dist/src/agents/execution.js.map +0 -1
  482. package/dist/src/agents/planning.d.ts +0 -2
  483. package/dist/src/agents/planning.d.ts.map +0 -1
  484. package/dist/src/agents/planning.js +0 -63
  485. package/dist/src/agents/planning.js.map +0 -1
  486. package/dist/src/agents/research.d.ts +0 -2
  487. package/dist/src/agents/research.d.ts.map +0 -1
  488. package/dist/src/agents/research.js +0 -163
  489. package/dist/src/agents/research.js.map +0 -1
  490. package/dist/src/file-manager.d.ts +0 -43
  491. package/dist/src/file-manager.d.ts.map +0 -1
  492. package/dist/src/file-manager.js +0 -266
  493. package/dist/src/file-manager.js.map +0 -1
  494. package/dist/src/git-manager.d.ts +0 -79
  495. package/dist/src/git-manager.d.ts.map +0 -1
  496. package/dist/src/git-manager.js +0 -454
  497. package/dist/src/git-manager.js.map +0 -1
  498. package/dist/src/posthog-api.d.ts +0 -48
  499. package/dist/src/posthog-api.d.ts.map +0 -1
  500. package/dist/src/posthog-api.js +0 -260
  501. package/dist/src/posthog-api.js.map +0 -1
  502. package/dist/src/prompt-builder.d.ts +0 -49
  503. package/dist/src/prompt-builder.d.ts.map +0 -1
  504. package/dist/src/prompt-builder.js +0 -397
  505. package/dist/src/prompt-builder.js.map +0 -1
  506. package/dist/src/schemas.d.ts +0 -980
  507. package/dist/src/schemas.d.ts.map +0 -1
  508. package/dist/src/schemas.js +0 -196
  509. package/dist/src/schemas.js.map +0 -1
  510. package/dist/src/session-store.d.ts +0 -53
  511. package/dist/src/session-store.d.ts.map +0 -1
  512. package/dist/src/session-store.js +0 -195
  513. package/dist/src/session-store.js.map +0 -1
  514. package/dist/src/task-manager.d.ts +0 -25
  515. package/dist/src/task-manager.d.ts.map +0 -1
  516. package/dist/src/task-manager.js +0 -123
  517. package/dist/src/task-manager.js.map +0 -1
  518. package/dist/src/template-manager.d.ts +0 -30
  519. package/dist/src/template-manager.d.ts.map +0 -1
  520. package/dist/src/template-manager.js +0 -152
  521. package/dist/src/template-manager.js.map +0 -1
  522. package/dist/src/todo-manager.d.ts +0 -29
  523. package/dist/src/todo-manager.d.ts.map +0 -1
  524. package/dist/src/todo-manager.js +0 -135
  525. package/dist/src/todo-manager.js.map +0 -1
  526. package/dist/src/tools/registry.d.ts +0 -25
  527. package/dist/src/tools/registry.d.ts.map +0 -1
  528. package/dist/src/tools/registry.js +0 -120
  529. package/dist/src/tools/registry.js.map +0 -1
  530. package/dist/src/tools/types.d.ts +0 -80
  531. package/dist/src/tools/types.d.ts.map +0 -1
  532. package/dist/src/types.d.ts +0 -193
  533. package/dist/src/types.d.ts.map +0 -1
  534. package/dist/src/types.js +0 -11
  535. package/dist/src/types.js.map +0 -1
  536. package/dist/src/utils/logger.d.ts +0 -37
  537. package/dist/src/utils/logger.d.ts.map +0 -1
  538. package/dist/src/utils/logger.js +0 -83
  539. package/dist/src/utils/logger.js.map +0 -1
  540. package/dist/src/utils/tapped-stream.d.ts +0 -17
  541. package/dist/src/utils/tapped-stream.d.ts.map +0 -1
  542. package/dist/src/utils/tapped-stream.js +0 -45
  543. package/dist/src/utils/tapped-stream.js.map +0 -1
  544. package/dist/src/workflow/config.d.ts +0 -3
  545. package/dist/src/workflow/config.d.ts.map +0 -1
  546. package/dist/src/workflow/config.js +0 -54
  547. package/dist/src/workflow/config.js.map +0 -1
  548. package/dist/src/workflow/steps/build.d.ts +0 -3
  549. package/dist/src/workflow/steps/build.d.ts.map +0 -1
  550. package/dist/src/workflow/steps/build.js +0 -108
  551. package/dist/src/workflow/steps/build.js.map +0 -1
  552. package/dist/src/workflow/steps/finalize.d.ts +0 -3
  553. package/dist/src/workflow/steps/finalize.d.ts.map +0 -1
  554. package/dist/src/workflow/steps/finalize.js +0 -188
  555. package/dist/src/workflow/steps/finalize.js.map +0 -1
  556. package/dist/src/workflow/steps/plan.d.ts +0 -3
  557. package/dist/src/workflow/steps/plan.d.ts.map +0 -1
  558. package/dist/src/workflow/steps/plan.js +0 -136
  559. package/dist/src/workflow/steps/plan.js.map +0 -1
  560. package/dist/src/workflow/steps/research.d.ts +0 -3
  561. package/dist/src/workflow/steps/research.d.ts.map +0 -1
  562. package/dist/src/workflow/steps/research.js +0 -189
  563. package/dist/src/workflow/steps/research.js.map +0 -1
  564. package/dist/src/workflow/types.d.ts +0 -51
  565. package/dist/src/workflow/types.d.ts.map +0 -1
  566. package/dist/src/workflow/utils.d.ts +0 -12
  567. package/dist/src/workflow/utils.d.ts.map +0 -1
  568. package/dist/src/workflow/utils.js +0 -41
  569. package/dist/src/workflow/utils.js.map +0 -1
  570. package/dist/src/worktree-manager.d.ts +0 -39
  571. package/dist/src/worktree-manager.d.ts.map +0 -1
  572. package/dist/src/worktree-manager.js +0 -810
  573. package/dist/src/worktree-manager.js.map +0 -1
@@ -1,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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"}