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