@posthog/agent 1.24.0 → 1.25.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 (577) hide show
  1. package/LICENSE +33 -0
  2. package/dist/_virtual/_commonjsHelpers.js +6 -0
  3. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  4. package/dist/_virtual/additionalItems.js +4 -0
  5. package/dist/_virtual/additionalItems.js.map +1 -0
  6. package/dist/_virtual/additionalProperties.js +4 -0
  7. package/dist/_virtual/additionalProperties.js.map +1 -0
  8. package/dist/_virtual/ajv.js +4 -0
  9. package/dist/_virtual/ajv.js.map +1 -0
  10. package/dist/_virtual/allOf.js +4 -0
  11. package/dist/_virtual/allOf.js.map +1 -0
  12. package/dist/_virtual/anyOf.js +4 -0
  13. package/dist/_virtual/anyOf.js.map +1 -0
  14. package/dist/_virtual/applicability.js +4 -0
  15. package/dist/_virtual/applicability.js.map +1 -0
  16. package/dist/_virtual/boolSchema.js +4 -0
  17. package/dist/_virtual/boolSchema.js.map +1 -0
  18. package/dist/_virtual/code.js +4 -0
  19. package/dist/_virtual/code.js.map +1 -0
  20. package/dist/_virtual/code2.js +4 -0
  21. package/dist/_virtual/code2.js.map +1 -0
  22. package/dist/_virtual/const.js +4 -0
  23. package/dist/_virtual/const.js.map +1 -0
  24. package/dist/_virtual/contains.js +4 -0
  25. package/dist/_virtual/contains.js.map +1 -0
  26. package/dist/_virtual/core.js +4 -0
  27. package/dist/_virtual/core.js.map +1 -0
  28. package/dist/_virtual/dataType.js +4 -0
  29. package/dist/_virtual/dataType.js.map +1 -0
  30. package/dist/_virtual/defaults.js +4 -0
  31. package/dist/_virtual/defaults.js.map +1 -0
  32. package/dist/_virtual/dependencies.js +4 -0
  33. package/dist/_virtual/dependencies.js.map +1 -0
  34. package/dist/_virtual/draft7.js +4 -0
  35. package/dist/_virtual/draft7.js.map +1 -0
  36. package/dist/_virtual/enum.js +4 -0
  37. package/dist/_virtual/enum.js.map +1 -0
  38. package/dist/_virtual/equal.js +4 -0
  39. package/dist/_virtual/equal.js.map +1 -0
  40. package/dist/_virtual/errors.js +4 -0
  41. package/dist/_virtual/errors.js.map +1 -0
  42. package/dist/_virtual/format.js +4 -0
  43. package/dist/_virtual/format.js.map +1 -0
  44. package/dist/_virtual/formats.js +4 -0
  45. package/dist/_virtual/formats.js.map +1 -0
  46. package/dist/_virtual/id.js +4 -0
  47. package/dist/_virtual/id.js.map +1 -0
  48. package/dist/_virtual/if.js +4 -0
  49. package/dist/_virtual/if.js.map +1 -0
  50. package/dist/_virtual/index.js +4 -0
  51. package/dist/_virtual/index.js.map +1 -0
  52. package/dist/_virtual/index10.js +4 -0
  53. package/dist/_virtual/index10.js.map +1 -0
  54. package/dist/_virtual/index11.js +4 -0
  55. package/dist/_virtual/index11.js.map +1 -0
  56. package/dist/_virtual/index2.js +4 -0
  57. package/dist/_virtual/index2.js.map +1 -0
  58. package/dist/_virtual/index3.js +4 -0
  59. package/dist/_virtual/index3.js.map +1 -0
  60. package/dist/_virtual/index4.js +4 -0
  61. package/dist/_virtual/index4.js.map +1 -0
  62. package/dist/_virtual/index5.js +4 -0
  63. package/dist/_virtual/index5.js.map +1 -0
  64. package/dist/_virtual/index6.js +4 -0
  65. package/dist/_virtual/index6.js.map +1 -0
  66. package/dist/_virtual/index7.js +4 -0
  67. package/dist/_virtual/index7.js.map +1 -0
  68. package/dist/_virtual/index8.js +4 -0
  69. package/dist/_virtual/index8.js.map +1 -0
  70. package/dist/_virtual/index9.js +4 -0
  71. package/dist/_virtual/index9.js.map +1 -0
  72. package/dist/_virtual/items.js +4 -0
  73. package/dist/_virtual/items.js.map +1 -0
  74. package/dist/_virtual/items2020.js +4 -0
  75. package/dist/_virtual/items2020.js.map +1 -0
  76. package/dist/_virtual/keyword.js +4 -0
  77. package/dist/_virtual/keyword.js.map +1 -0
  78. package/dist/_virtual/limit.js +4 -0
  79. package/dist/_virtual/limit.js.map +1 -0
  80. package/dist/_virtual/limitItems.js +4 -0
  81. package/dist/_virtual/limitItems.js.map +1 -0
  82. package/dist/_virtual/limitLength.js +4 -0
  83. package/dist/_virtual/limitLength.js.map +1 -0
  84. package/dist/_virtual/limitNumber.js +4 -0
  85. package/dist/_virtual/limitNumber.js.map +1 -0
  86. package/dist/_virtual/limitProperties.js +4 -0
  87. package/dist/_virtual/limitProperties.js.map +1 -0
  88. package/dist/_virtual/metadata.js +4 -0
  89. package/dist/_virtual/metadata.js.map +1 -0
  90. package/dist/_virtual/multipleOf.js +4 -0
  91. package/dist/_virtual/multipleOf.js.map +1 -0
  92. package/dist/_virtual/names.js +4 -0
  93. package/dist/_virtual/names.js.map +1 -0
  94. package/dist/_virtual/not.js +4 -0
  95. package/dist/_virtual/not.js.map +1 -0
  96. package/dist/_virtual/oneOf.js +4 -0
  97. package/dist/_virtual/oneOf.js.map +1 -0
  98. package/dist/_virtual/pattern.js +4 -0
  99. package/dist/_virtual/pattern.js.map +1 -0
  100. package/dist/_virtual/patternProperties.js +4 -0
  101. package/dist/_virtual/patternProperties.js.map +1 -0
  102. package/dist/_virtual/prefixItems.js +4 -0
  103. package/dist/_virtual/prefixItems.js.map +1 -0
  104. package/dist/_virtual/properties.js +4 -0
  105. package/dist/_virtual/properties.js.map +1 -0
  106. package/dist/_virtual/propertyNames.js +4 -0
  107. package/dist/_virtual/propertyNames.js.map +1 -0
  108. package/dist/_virtual/ref.js +4 -0
  109. package/dist/_virtual/ref.js.map +1 -0
  110. package/dist/_virtual/ref_error.js +4 -0
  111. package/dist/_virtual/ref_error.js.map +1 -0
  112. package/dist/_virtual/required.js +4 -0
  113. package/dist/_virtual/required.js.map +1 -0
  114. package/dist/_virtual/resolve.js +4 -0
  115. package/dist/_virtual/resolve.js.map +1 -0
  116. package/dist/_virtual/rules.js +4 -0
  117. package/dist/_virtual/rules.js.map +1 -0
  118. package/dist/_virtual/scope.js +4 -0
  119. package/dist/_virtual/scope.js.map +1 -0
  120. package/dist/_virtual/subschema.js +4 -0
  121. package/dist/_virtual/subschema.js.map +1 -0
  122. package/dist/_virtual/thenElse.js +4 -0
  123. package/dist/_virtual/thenElse.js.map +1 -0
  124. package/dist/_virtual/types.js +4 -0
  125. package/dist/_virtual/types.js.map +1 -0
  126. package/dist/_virtual/ucs2length.js +4 -0
  127. package/dist/_virtual/ucs2length.js.map +1 -0
  128. package/dist/_virtual/uniqueItems.js +4 -0
  129. package/dist/_virtual/uniqueItems.js.map +1 -0
  130. package/dist/_virtual/uri.js +4 -0
  131. package/dist/_virtual/uri.js.map +1 -0
  132. package/dist/_virtual/util.js +4 -0
  133. package/dist/_virtual/util.js.map +1 -0
  134. package/dist/_virtual/validation_error.js +4 -0
  135. package/dist/_virtual/validation_error.js.map +1 -0
  136. package/dist/claude-cli/cli.js +2294 -2146
  137. package/dist/example-client.d.ts +3 -0
  138. package/dist/example-client.d.ts.map +1 -0
  139. package/dist/index.d.ts +12 -4
  140. package/dist/index.d.ts.map +1 -1
  141. package/dist/index.js +5 -1
  142. package/dist/index.js.map +1 -1
  143. package/dist/node_modules/@agentclientprotocol/sdk/dist/acp.js +610 -0
  144. package/dist/node_modules/@agentclientprotocol/sdk/dist/acp.js.map +1 -0
  145. package/dist/node_modules/@agentclientprotocol/sdk/dist/schema.js +875 -0
  146. package/dist/node_modules/@agentclientprotocol/sdk/dist/schema.js.map +1 -0
  147. package/dist/node_modules/@agentclientprotocol/sdk/dist/stream.js +66 -0
  148. package/dist/node_modules/@agentclientprotocol/sdk/dist/stream.js.map +1 -0
  149. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js +23 -0
  150. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js.map +1 -0
  151. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +331 -0
  152. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
  153. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +717 -0
  154. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +1 -0
  155. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +221 -0
  156. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -0
  157. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +56 -0
  158. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +1 -0
  159. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +440 -0
  160. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
  161. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js +94 -0
  162. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js.map +1 -0
  163. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1610 -0
  164. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
  165. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +91 -0
  166. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +1 -0
  167. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/ZodError.js +133 -0
  168. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/ZodError.js.map +1 -0
  169. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/errors.js +9 -0
  170. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/errors.js.map +1 -0
  171. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/errorUtil.js +9 -0
  172. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/errorUtil.js.map +1 -0
  173. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/parseUtil.js +112 -0
  174. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/parseUtil.js.map +1 -0
  175. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/util.js +136 -0
  176. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/util.js.map +1 -0
  177. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/locales/en.js +112 -0
  178. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/locales/en.js.map +1 -0
  179. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/types.js +3297 -0
  180. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/types.js.map +1 -0
  181. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/errors.js +44 -0
  182. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/errors.js.map +1 -0
  183. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/iso.js +36 -0
  184. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/iso.js.map +1 -0
  185. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/parse.js +10 -0
  186. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/parse.js.map +1 -0
  187. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/schemas.js +657 -0
  188. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/schemas.js.map +1 -0
  189. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/api.js +449 -0
  190. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/api.js.map +1 -0
  191. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/checks.js +413 -0
  192. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/checks.js.map +1 -0
  193. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/core.js +57 -0
  194. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/core.js.map +1 -0
  195. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/doc.js +38 -0
  196. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/doc.js.map +1 -0
  197. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/errors.js +86 -0
  198. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/errors.js.map +1 -0
  199. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/parse.js +61 -0
  200. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/parse.js.map +1 -0
  201. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/regexes.js +80 -0
  202. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/regexes.js.map +1 -0
  203. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/registries.js +52 -0
  204. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/registries.js.map +1 -0
  205. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/schemas.js +1307 -0
  206. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/schemas.js.map +1 -0
  207. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/to-json-schema.js +842 -0
  208. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/to-json-schema.js.map +1 -0
  209. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/util.js +335 -0
  210. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/util.js.map +1 -0
  211. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/versions.js +8 -0
  212. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/versions.js.map +1 -0
  213. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/schemas.js +51 -0
  214. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/schemas.js.map +1 -0
  215. package/dist/node_modules/ajv/dist/ajv.js +69 -0
  216. package/dist/node_modules/ajv/dist/ajv.js.map +1 -0
  217. package/dist/node_modules/ajv/dist/compile/codegen/code.js +169 -0
  218. package/dist/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
  219. package/dist/node_modules/ajv/dist/compile/codegen/index.js +712 -0
  220. package/dist/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
  221. package/dist/node_modules/ajv/dist/compile/codegen/scope.js +157 -0
  222. package/dist/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
  223. package/dist/node_modules/ajv/dist/compile/errors.js +140 -0
  224. package/dist/node_modules/ajv/dist/compile/errors.js.map +1 -0
  225. package/dist/node_modules/ajv/dist/compile/index.js +253 -0
  226. package/dist/node_modules/ajv/dist/compile/index.js.map +1 -0
  227. package/dist/node_modules/ajv/dist/compile/names.js +40 -0
  228. package/dist/node_modules/ajv/dist/compile/names.js.map +1 -0
  229. package/dist/node_modules/ajv/dist/compile/ref_error.js +25 -0
  230. package/dist/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
  231. package/dist/node_modules/ajv/dist/compile/resolve.js +162 -0
  232. package/dist/node_modules/ajv/dist/compile/resolve.js.map +1 -0
  233. package/dist/node_modules/ajv/dist/compile/rules.js +29 -0
  234. package/dist/node_modules/ajv/dist/compile/rules.js.map +1 -0
  235. package/dist/node_modules/ajv/dist/compile/util.js +183 -0
  236. package/dist/node_modules/ajv/dist/compile/util.js.map +1 -0
  237. package/dist/node_modules/ajv/dist/compile/validate/applicability.js +30 -0
  238. package/dist/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
  239. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +64 -0
  240. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
  241. package/dist/node_modules/ajv/dist/compile/validate/dataType.js +213 -0
  242. package/dist/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
  243. package/dist/node_modules/ajv/dist/compile/validate/defaults.js +49 -0
  244. package/dist/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
  245. package/dist/node_modules/ajv/dist/compile/validate/index.js +544 -0
  246. package/dist/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
  247. package/dist/node_modules/ajv/dist/compile/validate/keyword.js +139 -0
  248. package/dist/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
  249. package/dist/node_modules/ajv/dist/compile/validate/subschema.js +95 -0
  250. package/dist/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
  251. package/dist/node_modules/ajv/dist/core.js +639 -0
  252. package/dist/node_modules/ajv/dist/core.js.map +1 -0
  253. package/dist/node_modules/ajv/dist/refs/data.json.js +31 -0
  254. package/dist/node_modules/ajv/dist/refs/data.json.js.map +1 -0
  255. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +254 -0
  256. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +1 -0
  257. package/dist/node_modules/ajv/dist/runtime/equal.js +9 -0
  258. package/dist/node_modules/ajv/dist/runtime/equal.js.map +1 -0
  259. package/dist/node_modules/ajv/dist/runtime/ucs2length.js +25 -0
  260. package/dist/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
  261. package/dist/node_modules/ajv/dist/runtime/uri.js +8 -0
  262. package/dist/node_modules/ajv/dist/runtime/uri.js.map +1 -0
  263. package/dist/node_modules/ajv/dist/runtime/validation_error.js +22 -0
  264. package/dist/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
  265. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +53 -0
  266. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
  267. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +112 -0
  268. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
  269. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +26 -0
  270. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
  271. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +14 -0
  272. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
  273. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +99 -0
  274. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
  275. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +93 -0
  276. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
  277. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +70 -0
  278. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
  279. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +77 -0
  280. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
  281. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +57 -0
  282. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
  283. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +37 -0
  284. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
  285. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +29 -0
  286. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
  287. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +64 -0
  288. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
  289. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +80 -0
  290. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
  291. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +15 -0
  292. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
  293. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +61 -0
  294. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
  295. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +42 -0
  296. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
  297. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +16 -0
  298. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
  299. package/dist/node_modules/ajv/dist/vocabularies/code.js +146 -0
  300. package/dist/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
  301. package/dist/node_modules/ajv/dist/vocabularies/core/id.js +11 -0
  302. package/dist/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
  303. package/dist/node_modules/ajv/dist/vocabularies/core/index.js +21 -0
  304. package/dist/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
  305. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +131 -0
  306. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
  307. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +113 -0
  308. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
  309. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +12 -0
  310. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
  311. package/dist/node_modules/ajv/dist/vocabularies/draft7.js +28 -0
  312. package/dist/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
  313. package/dist/node_modules/ajv/dist/vocabularies/format/format.js +94 -0
  314. package/dist/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
  315. package/dist/node_modules/ajv/dist/vocabularies/format/index.js +9 -0
  316. package/dist/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
  317. package/dist/node_modules/ajv/dist/vocabularies/metadata.js +21 -0
  318. package/dist/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
  319. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +31 -0
  320. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
  321. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +54 -0
  322. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
  323. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +54 -0
  324. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
  325. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +26 -0
  326. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
  327. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +33 -0
  328. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
  329. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +29 -0
  330. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
  331. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +26 -0
  332. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
  333. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +28 -0
  334. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
  335. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +27 -0
  336. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
  337. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +84 -0
  338. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
  339. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +72 -0
  340. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
  341. package/dist/node_modules/ajv-formats/dist/formats.js +212 -0
  342. package/dist/node_modules/ajv-formats/dist/formats.js.map +1 -0
  343. package/dist/node_modules/ajv-formats/dist/index.js +52 -0
  344. package/dist/node_modules/ajv-formats/dist/index.js.map +1 -0
  345. package/dist/node_modules/ajv-formats/dist/limit.js +75 -0
  346. package/dist/node_modules/ajv-formats/dist/limit.js.map +1 -0
  347. package/dist/node_modules/diff/libesm/diff/base.js +256 -0
  348. package/dist/node_modules/diff/libesm/diff/base.js.map +1 -0
  349. package/dist/node_modules/diff/libesm/diff/line.js +64 -0
  350. package/dist/node_modules/diff/libesm/diff/line.js.map +1 -0
  351. package/dist/node_modules/diff/libesm/patch/create.js +185 -0
  352. package/dist/node_modules/diff/libesm/patch/create.js.map +1 -0
  353. package/dist/node_modules/fast-deep-equal/index.js +47 -0
  354. package/dist/node_modules/fast-deep-equal/index.js.map +1 -0
  355. package/dist/node_modules/fast-uri/index.js +347 -0
  356. package/dist/node_modules/fast-uri/index.js.map +1 -0
  357. package/dist/node_modules/fast-uri/lib/schemes.js +255 -0
  358. package/dist/node_modules/fast-uri/lib/schemes.js.map +1 -0
  359. package/dist/node_modules/fast-uri/lib/utils.js +334 -0
  360. package/dist/node_modules/fast-uri/lib/utils.js.map +1 -0
  361. package/dist/node_modules/json-schema-traverse/index.js +98 -0
  362. package/dist/node_modules/json-schema-traverse/index.js.map +1 -0
  363. package/dist/node_modules/uuid/dist/rng.js +14 -0
  364. package/dist/node_modules/uuid/dist/rng.js.map +1 -0
  365. package/dist/node_modules/uuid/dist/stringify.js +29 -0
  366. package/dist/node_modules/uuid/dist/stringify.js.map +1 -0
  367. package/dist/node_modules/uuid/dist/v7.js +65 -0
  368. package/dist/node_modules/uuid/dist/v7.js.map +1 -0
  369. package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js +37 -0
  370. package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js.map +1 -0
  371. package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js +26 -0
  372. package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js.map +1 -0
  373. package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +17 -0
  374. package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js.map +1 -0
  375. package/dist/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +11 -0
  376. package/dist/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js.map +1 -0
  377. package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js +66 -0
  378. package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js.map +1 -0
  379. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +21 -0
  380. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js.map +1 -0
  381. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +30 -0
  382. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js.map +1 -0
  383. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +53 -0
  384. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js.map +1 -0
  385. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +8 -0
  386. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js.map +1 -0
  387. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +8 -0
  388. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js.map +1 -0
  389. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +8 -0
  390. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js.map +1 -0
  391. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +50 -0
  392. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js.map +1 -0
  393. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +11 -0
  394. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js.map +1 -0
  395. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +11 -0
  396. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js.map +1 -0
  397. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +9 -0
  398. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js.map +1 -0
  399. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +56 -0
  400. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js.map +1 -0
  401. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +24 -0
  402. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js.map +1 -0
  403. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +30 -0
  404. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js.map +1 -0
  405. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +19 -0
  406. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js.map +1 -0
  407. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +15 -0
  408. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js.map +1 -0
  409. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +13 -0
  410. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js.map +1 -0
  411. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +37 -0
  412. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js.map +1 -0
  413. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +56 -0
  414. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js.map +1 -0
  415. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +76 -0
  416. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js.map +1 -0
  417. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +25 -0
  418. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js.map +1 -0
  419. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +24 -0
  420. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js.map +1 -0
  421. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +8 -0
  422. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js.map +1 -0
  423. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +8 -0
  424. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js.map +1 -0
  425. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +65 -0
  426. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js.map +1 -0
  427. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +24 -0
  428. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js.map +1 -0
  429. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +350 -0
  430. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
  431. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +36 -0
  432. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js.map +1 -0
  433. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +10 -0
  434. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js.map +1 -0
  435. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +84 -0
  436. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js.map +1 -0
  437. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +8 -0
  438. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js.map +1 -0
  439. package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js +109 -0
  440. package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js.map +1 -0
  441. package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +90 -0
  442. package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js.map +1 -0
  443. package/dist/node_modules/zod-to-json-schema/node_modules/zod/v3/types.js +42 -0
  444. package/dist/node_modules/zod-to-json-schema/node_modules/zod/v3/types.js.map +1 -0
  445. package/dist/package.json.js +8 -0
  446. package/dist/package.json.js.map +1 -0
  447. package/dist/src/acp-extensions.d.ts +91 -0
  448. package/dist/src/acp-extensions.d.ts.map +1 -0
  449. package/dist/src/acp-extensions.js +38 -0
  450. package/dist/src/acp-extensions.js.map +1 -0
  451. package/dist/src/adapters/claude/claude.d.ts +136 -0
  452. package/dist/src/adapters/claude/claude.d.ts.map +1 -0
  453. package/dist/src/adapters/claude/claude.js +1112 -0
  454. package/dist/src/adapters/claude/claude.js.map +1 -0
  455. package/dist/src/adapters/claude/mcp-server.d.ts +30 -0
  456. package/dist/src/adapters/claude/mcp-server.d.ts.map +1 -0
  457. package/dist/src/adapters/claude/mcp-server.js +655 -0
  458. package/dist/src/adapters/claude/mcp-server.js.map +1 -0
  459. package/dist/src/adapters/claude/tools.d.ts +35 -0
  460. package/dist/src/adapters/claude/tools.d.ts.map +1 -0
  461. package/dist/src/adapters/claude/tools.js +466 -0
  462. package/dist/src/adapters/claude/tools.js.map +1 -0
  463. package/dist/src/adapters/claude/utils.d.ts +48 -0
  464. package/dist/src/adapters/claude/utils.d.ts.map +1 -0
  465. package/dist/src/adapters/claude/utils.js +158 -0
  466. package/dist/src/adapters/claude/utils.js.map +1 -0
  467. package/dist/src/agent.d.ts +15 -25
  468. package/dist/src/agent.d.ts.map +1 -1
  469. package/dist/src/agent.js +118 -156
  470. package/dist/src/agent.js.map +1 -1
  471. package/dist/src/file-manager.d.ts +2 -2
  472. package/dist/src/file-manager.d.ts.map +1 -1
  473. package/dist/src/file-manager.js +13 -5
  474. package/dist/src/file-manager.js.map +1 -1
  475. package/dist/src/git-manager.d.ts +1 -0
  476. package/dist/src/git-manager.d.ts.map +1 -1
  477. package/dist/src/git-manager.js +18 -0
  478. package/dist/src/git-manager.js.map +1 -1
  479. package/dist/src/posthog-api.d.ts +8 -13
  480. package/dist/src/posthog-api.d.ts.map +1 -1
  481. package/dist/src/posthog-api.js +14 -2
  482. package/dist/src/posthog-api.js.map +1 -1
  483. package/dist/src/prompt-builder.d.ts +2 -2
  484. package/dist/src/prompt-builder.d.ts.map +1 -1
  485. package/dist/src/prompt-builder.js +7 -7
  486. package/dist/src/prompt-builder.js.map +1 -1
  487. package/dist/src/schemas.d.ts +980 -0
  488. package/dist/src/schemas.d.ts.map +1 -0
  489. package/dist/src/schemas.js +196 -0
  490. package/dist/src/schemas.js.map +1 -0
  491. package/dist/src/session-store.d.ts +53 -0
  492. package/dist/src/session-store.d.ts.map +1 -0
  493. package/dist/src/session-store.js +195 -0
  494. package/dist/src/session-store.js.map +1 -0
  495. package/dist/src/task-manager.d.ts +3 -3
  496. package/dist/src/task-manager.d.ts.map +1 -1
  497. package/dist/src/task-manager.js.map +1 -1
  498. package/dist/src/template-manager.d.ts.map +1 -1
  499. package/dist/src/template-manager.js +6 -6
  500. package/dist/src/template-manager.js.map +1 -1
  501. package/dist/src/todo-manager.d.ts +2 -2
  502. package/dist/src/todo-manager.d.ts.map +1 -1
  503. package/dist/src/todo-manager.js +5 -1
  504. package/dist/src/todo-manager.js.map +1 -1
  505. package/dist/src/types.d.ts +54 -159
  506. package/dist/src/types.d.ts.map +1 -1
  507. package/dist/src/types.js +1 -0
  508. package/dist/src/types.js.map +1 -1
  509. package/dist/src/utils/logger.d.ts +10 -2
  510. package/dist/src/utils/logger.d.ts.map +1 -1
  511. package/dist/src/utils/logger.js +35 -20
  512. package/dist/src/utils/logger.js.map +1 -1
  513. package/dist/src/utils/tapped-stream.d.ts +17 -0
  514. package/dist/src/utils/tapped-stream.d.ts.map +1 -0
  515. package/dist/src/utils/tapped-stream.js +45 -0
  516. package/dist/src/utils/tapped-stream.js.map +1 -0
  517. package/dist/src/workflow/steps/build.d.ts.map +1 -1
  518. package/dist/src/workflow/steps/build.js +15 -9
  519. package/dist/src/workflow/steps/build.js.map +1 -1
  520. package/dist/src/workflow/steps/finalize.d.ts.map +1 -1
  521. package/dist/src/workflow/steps/finalize.js +4 -4
  522. package/dist/src/workflow/steps/finalize.js.map +1 -1
  523. package/dist/src/workflow/steps/plan.d.ts.map +1 -1
  524. package/dist/src/workflow/steps/plan.js +22 -12
  525. package/dist/src/workflow/steps/plan.js.map +1 -1
  526. package/dist/src/workflow/steps/research.d.ts.map +1 -1
  527. package/dist/src/workflow/steps/research.js +33 -26
  528. package/dist/src/workflow/steps/research.js.map +1 -1
  529. package/dist/src/workflow/types.d.ts +10 -5
  530. package/dist/src/workflow/types.d.ts.map +1 -1
  531. package/dist/src/worktree-manager.d.ts +39 -0
  532. package/dist/src/worktree-manager.d.ts.map +1 -0
  533. package/dist/src/worktree-manager.js +810 -0
  534. package/dist/src/worktree-manager.js.map +1 -0
  535. package/package.json +19 -15
  536. package/src/acp-extensions.ts +117 -0
  537. package/src/adapters/claude/claude.ts +1498 -0
  538. package/src/adapters/claude/mcp-server.ts +810 -0
  539. package/src/adapters/claude/tools.ts +609 -0
  540. package/src/adapters/claude/utils.ts +267 -0
  541. package/src/agent.ts +151 -222
  542. package/src/file-manager.ts +16 -7
  543. package/src/git-manager.ts +20 -0
  544. package/src/posthog-api.ts +38 -17
  545. package/src/prompt-builder.ts +23 -15
  546. package/src/schemas.ts +241 -0
  547. package/src/session-store.ts +244 -0
  548. package/src/task-manager.ts +3 -3
  549. package/src/template-manager.ts +8 -8
  550. package/src/todo-manager.ts +9 -3
  551. package/src/types.ts +79 -210
  552. package/src/utils/logger.ts +47 -22
  553. package/src/utils/tapped-stream.ts +60 -0
  554. package/src/workflow/steps/build.ts +16 -11
  555. package/src/workflow/steps/finalize.ts +4 -11
  556. package/src/workflow/steps/plan.ts +24 -19
  557. package/src/workflow/steps/research.ts +34 -33
  558. package/src/workflow/types.ts +14 -5
  559. package/src/worktree-manager.ts +884 -0
  560. package/dist/src/adapters/claude/claude-adapter.d.ts +0 -18
  561. package/dist/src/adapters/claude/claude-adapter.d.ts.map +0 -1
  562. package/dist/src/adapters/claude/claude-adapter.js +0 -356
  563. package/dist/src/adapters/claude/claude-adapter.js.map +0 -1
  564. package/dist/src/adapters/claude/tool-mapper.d.ts +0 -19
  565. package/dist/src/adapters/claude/tool-mapper.d.ts.map +0 -1
  566. package/dist/src/adapters/claude/tool-mapper.js +0 -44
  567. package/dist/src/adapters/claude/tool-mapper.js.map +0 -1
  568. package/dist/src/adapters/types.d.ts +0 -33
  569. package/dist/src/adapters/types.d.ts.map +0 -1
  570. package/dist/src/task-progress-reporter.d.ts +0 -42
  571. package/dist/src/task-progress-reporter.d.ts.map +0 -1
  572. package/dist/src/task-progress-reporter.js +0 -398
  573. package/dist/src/task-progress-reporter.js.map +0 -1
  574. package/src/adapters/claude/claude-adapter.ts +0 -390
  575. package/src/adapters/claude/tool-mapper.ts +0 -46
  576. package/src/adapters/types.ts +0 -37
  577. package/src/task-progress-reporter.ts +0 -454
@@ -0,0 +1,244 @@
1
+ import type { PostHogAPIClient, TaskRunUpdate } from "./posthog-api.js";
2
+ import type { StoredNotification, TaskRun } from "./types.js";
3
+ import { Logger } from "./utils/logger.js";
4
+
5
+ export interface SessionPersistenceConfig {
6
+ taskId: string;
7
+ runId: string;
8
+ logUrl: string;
9
+ sdkSessionId?: string;
10
+ }
11
+
12
+ export class SessionStore {
13
+ private posthogAPI?: PostHogAPIClient;
14
+ private pendingEntries: Map<string, StoredNotification[]> = new Map();
15
+ private flushTimeouts: Map<string, NodeJS.Timeout> = new Map();
16
+ private configs: Map<string, SessionPersistenceConfig> = new Map();
17
+ private logger: Logger;
18
+
19
+ constructor(posthogAPI?: PostHogAPIClient, logger?: Logger) {
20
+ this.posthogAPI = posthogAPI;
21
+ this.logger =
22
+ logger ?? new Logger({ debug: false, prefix: "[SessionStore]" });
23
+
24
+ // Flush all pending on process exit
25
+ const flushAllAndExit = async () => {
26
+ const flushPromises: Promise<void>[] = [];
27
+ for (const sessionId of this.configs.keys()) {
28
+ flushPromises.push(this.flush(sessionId));
29
+ }
30
+ await Promise.all(flushPromises);
31
+ process.exit(0);
32
+ };
33
+
34
+ process.on("beforeExit", () => {
35
+ flushAllAndExit().catch((e) => this.logger.error("Flush failed:", e));
36
+ });
37
+ process.on("SIGINT", () => {
38
+ flushAllAndExit().catch((e) => this.logger.error("Flush failed:", e));
39
+ });
40
+ process.on("SIGTERM", () => {
41
+ flushAllAndExit().catch((e) => this.logger.error("Flush failed:", e));
42
+ });
43
+ }
44
+
45
+ /** Register a session for persistence */
46
+ register(sessionId: string, config: SessionPersistenceConfig): void {
47
+ this.configs.set(sessionId, config);
48
+ }
49
+
50
+ /** Unregister and flush pending */
51
+ async unregister(sessionId: string): Promise<void> {
52
+ await this.flush(sessionId);
53
+ this.configs.delete(sessionId);
54
+ }
55
+
56
+ /** Check if a session is registered for persistence */
57
+ isRegistered(sessionId: string): boolean {
58
+ return this.configs.has(sessionId);
59
+ }
60
+
61
+ /**
62
+ * Append a raw JSON-RPC line for persistence.
63
+ * Parses and wraps as StoredNotification for the API.
64
+ */
65
+ appendRawLine(sessionId: string, line: string): void {
66
+ const config = this.configs.get(sessionId);
67
+ if (!config) {
68
+ return;
69
+ }
70
+
71
+ try {
72
+ const message = JSON.parse(line);
73
+ const entry: StoredNotification = {
74
+ type: "notification",
75
+ timestamp: new Date().toISOString(),
76
+ notification: message,
77
+ };
78
+
79
+ const pending = this.pendingEntries.get(sessionId) ?? [];
80
+ pending.push(entry);
81
+ this.pendingEntries.set(sessionId, pending);
82
+
83
+ this.scheduleFlush(sessionId);
84
+ } catch {
85
+ this.logger.warn("Failed to parse raw line for persistence", {
86
+ sessionId,
87
+ lineLength: line.length,
88
+ });
89
+ }
90
+ }
91
+
92
+ /** Load raw JSON-RPC messages from S3 */
93
+ async load(logUrl: string): Promise<unknown[]> {
94
+ const response = await fetch(logUrl);
95
+
96
+ if (!response.ok) {
97
+ return [];
98
+ }
99
+
100
+ const content = await response.text();
101
+ if (!content.trim()) return [];
102
+
103
+ return content
104
+ .trim()
105
+ .split("\n")
106
+ .map((line) => {
107
+ try {
108
+ return JSON.parse(line);
109
+ } catch {
110
+ return null;
111
+ }
112
+ })
113
+ .filter((entry): entry is unknown => entry !== null);
114
+ }
115
+
116
+ /** Force flush pending entries */
117
+ async flush(sessionId: string): Promise<void> {
118
+ const config = this.configs.get(sessionId);
119
+ const pending = this.pendingEntries.get(sessionId);
120
+
121
+ if (!config || !pending?.length) return;
122
+
123
+ this.pendingEntries.delete(sessionId);
124
+ const timeout = this.flushTimeouts.get(sessionId);
125
+ if (timeout) {
126
+ clearTimeout(timeout);
127
+ this.flushTimeouts.delete(sessionId);
128
+ }
129
+
130
+ if (!this.posthogAPI) {
131
+ this.logger.debug("No PostHog API configured, skipping flush");
132
+ return;
133
+ }
134
+
135
+ try {
136
+ await this.posthogAPI.appendTaskRunLog(
137
+ config.taskId,
138
+ config.runId,
139
+ pending,
140
+ );
141
+ } catch (error) {
142
+ this.logger.error("Failed to persist session logs:", error);
143
+ }
144
+ }
145
+
146
+ private scheduleFlush(sessionId: string): void {
147
+ const existing = this.flushTimeouts.get(sessionId);
148
+ if (existing) clearTimeout(existing);
149
+ const timeout = setTimeout(() => this.flush(sessionId), 500);
150
+ this.flushTimeouts.set(sessionId, timeout);
151
+ }
152
+
153
+ /** Get the persistence config for a session */
154
+ getConfig(sessionId: string): SessionPersistenceConfig | undefined {
155
+ return this.configs.get(sessionId);
156
+ }
157
+
158
+ /**
159
+ * Start a session for persistence.
160
+ * Loads the task run and updates status to "in_progress".
161
+ */
162
+ async start(
163
+ sessionId: string,
164
+ taskId: string,
165
+ runId: string,
166
+ ): Promise<TaskRun | undefined> {
167
+ if (!this.posthogAPI) {
168
+ this.logger.debug(
169
+ "No PostHog API configured, registering session without persistence",
170
+ );
171
+ this.register(sessionId, {
172
+ taskId,
173
+ runId,
174
+ logUrl: "",
175
+ });
176
+ return undefined;
177
+ }
178
+
179
+ const taskRun = await this.posthogAPI.getTaskRun(taskId, runId);
180
+
181
+ this.register(sessionId, {
182
+ taskId,
183
+ runId,
184
+ logUrl: taskRun.log_url,
185
+ });
186
+
187
+ await this.updateTaskRun(sessionId, { status: "in_progress" });
188
+
189
+ return taskRun;
190
+ }
191
+
192
+ /**
193
+ * Mark a session as completed.
194
+ */
195
+ async complete(sessionId: string): Promise<void> {
196
+ await this.flush(sessionId);
197
+ await this.updateTaskRun(sessionId, { status: "completed" });
198
+ }
199
+
200
+ /**
201
+ * Mark a session as failed.
202
+ */
203
+ async fail(sessionId: string, error: Error | string): Promise<void> {
204
+ await this.flush(sessionId);
205
+ const message = typeof error === "string" ? error : error.message;
206
+ await this.updateTaskRun(sessionId, {
207
+ status: "failed",
208
+ error_message: message,
209
+ });
210
+ this.logger.error("Session failed", { sessionId, error: message });
211
+ }
212
+
213
+ /**
214
+ * Update the task run associated with a session.
215
+ */
216
+ async updateTaskRun(
217
+ sessionId: string,
218
+ update: TaskRunUpdate,
219
+ ): Promise<TaskRun | undefined> {
220
+ const config = this.configs.get(sessionId);
221
+ if (!config) {
222
+ this.logger.error(
223
+ `Cannot update task run: session ${sessionId} not registered`,
224
+ );
225
+ return undefined;
226
+ }
227
+
228
+ if (!this.posthogAPI) {
229
+ this.logger.debug("No PostHog API configured, skipping task run update");
230
+ return undefined;
231
+ }
232
+
233
+ try {
234
+ return await this.posthogAPI.updateTaskRun(
235
+ config.taskId,
236
+ config.runId,
237
+ update,
238
+ );
239
+ } catch (error) {
240
+ this.logger.error("Failed to update task run:", error);
241
+ return undefined;
242
+ }
243
+ }
244
+ }
@@ -4,7 +4,7 @@ export interface TaskExecutionState {
4
4
  taskId: string;
5
5
  status: "running" | "completed" | "failed" | "canceled" | "timeout";
6
6
  mode: "plan_only" | "plan_and_build" | "build_only";
7
- result?: any;
7
+ result?: unknown;
8
8
  startedAt: number;
9
9
  completedAt?: number;
10
10
  abortController?: AbortController;
@@ -37,7 +37,7 @@ export class TaskManager {
37
37
  return executionState;
38
38
  }
39
39
 
40
- async waitForCompletion(executionId: string): Promise<any> {
40
+ async waitForCompletion(executionId: string): Promise<unknown> {
41
41
  const execution = this.executionStates.get(executionId);
42
42
  if (!execution) {
43
43
  throw new Error(`Execution ${executionId} not found`);
@@ -76,7 +76,7 @@ export class TaskManager {
76
76
  });
77
77
  }
78
78
 
79
- completeExecution(executionId: string, result: any): void {
79
+ completeExecution(executionId: string, result: unknown): void {
80
80
  const execution = this.executionStates.get(executionId);
81
81
  if (!execution) {
82
82
  throw new Error(`Execution ${executionId} not found`);
@@ -1,6 +1,9 @@
1
1
  import { existsSync, promises as fs } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
+ import { Logger } from "./utils/logger";
5
+
6
+ const logger = new Logger({ prefix: "[TemplateManager]" });
4
7
 
5
8
  export interface TemplateVariables {
6
9
  task_id: string;
@@ -77,14 +80,11 @@ export class TemplateManager {
77
80
  const resolvedDir = candidateDirs.find((dir) => existsSync(dir));
78
81
 
79
82
  if (!resolvedDir) {
80
- console.error("[TemplateManager] Could not find templates directory.");
81
- console.error("[TemplateManager] Current file:", __filename);
82
- console.error("[TemplateManager] Current dir:", __dirname);
83
- console.error(
84
- "[TemplateManager] Tried:",
85
- candidateDirs
86
- .map((d) => `\n - ${d} (exists: ${existsSync(d)})`)
87
- .join(""),
83
+ logger.error("Could not find templates directory.");
84
+ logger.error(`Current file: ${__filename}`);
85
+ logger.error(`Current dir: ${__dirname}`);
86
+ logger.error(
87
+ `Tried: ${candidateDirs.map((d) => `\n - ${d} (exists: ${existsSync(d)})`).join("")}`,
88
88
  );
89
89
  }
90
90
 
@@ -76,7 +76,7 @@ export class TodoManager {
76
76
  });
77
77
  }
78
78
 
79
- parseTodoWriteInput(toolInput: any): TodoList {
79
+ parseTodoWriteInput(toolInput: Record<string, unknown>): TodoList {
80
80
  const items: TodoItem[] = [];
81
81
 
82
82
  if (toolInput.todos && Array.isArray(toolInput.todos)) {
@@ -137,10 +137,16 @@ export class TodoManager {
137
137
 
138
138
  // check for TodoWrite tool call and persist if found
139
139
  async checkAndPersistFromMessage(
140
- message: any,
140
+ message: Record<string, unknown>,
141
141
  taskId: string,
142
142
  ): Promise<TodoList | null> {
143
- if (message.type !== "assistant" || !message.message?.content) {
143
+ if (
144
+ message.type !== "assistant" ||
145
+ typeof message.message !== "object" ||
146
+ !message.message ||
147
+ !("content" in message.message) ||
148
+ !Array.isArray(message.message.content)
149
+ ) {
144
150
  return null;
145
151
  }
146
152
 
package/src/types.ts CHANGED
@@ -1,13 +1,39 @@
1
1
  // import and export to keep a single type file
2
+
3
+ import type { SessionNotification } from "@agentclientprotocol/sdk";
2
4
  import type {
3
5
  CanUseTool,
4
6
  PermissionResult,
5
7
  } from "@anthropic-ai/claude-agent-sdk";
6
- export type { CanUseTool, PermissionResult };
8
+ export type { CanUseTool, PermissionResult, SessionNotification };
9
+
10
+ /**
11
+ * Stored custom notification following ACP extensibility model.
12
+ * Custom notifications use underscore-prefixed methods (e.g., `_posthog/phase_start`).
13
+ * See: https://agentclientprotocol.com/docs/extensibility
14
+ */
15
+ export interface StoredNotification {
16
+ type: "notification";
17
+ /** When this notification was stored */
18
+ timestamp: string;
19
+ /** JSON-RPC 2.0 notification (no id field = notification, not request) */
20
+ notification: {
21
+ jsonrpc: "2.0";
22
+ method: string;
23
+ params?: Record<string, unknown>;
24
+ };
25
+ }
26
+
27
+ /**
28
+ * Type alias for stored log entries.
29
+ */
30
+ export type StoredEntry = StoredNotification;
7
31
 
8
32
  // PostHog Task model (matches Array's OpenAPI schema)
9
33
  export interface Task {
10
34
  id: string;
35
+ task_number?: number;
36
+ slug?: string;
11
37
  title: string;
12
38
  description: string;
13
39
  origin_product:
@@ -16,28 +42,22 @@ export interface Task {
16
42
  | "user_created"
17
43
  | "support_queue"
18
44
  | "session_summaries";
19
- position?: number;
20
45
  github_integration?: number | null;
21
- repository_config?: unknown; // JSONField
22
- repository_list: string;
23
- primary_repository: string;
46
+ repository: string; // Format: "organization/repository" (e.g., "posthog/posthog-js")
47
+ json_schema?: Record<string, unknown> | null; // JSON schema for task output validation
24
48
  created_at: string;
25
49
  updated_at: string;
26
-
27
- // DEPRECATED: These fields have been moved to TaskRun
28
- // Use task.latest_run instead
29
- current_stage?: string | null;
30
- github_branch?: string | null;
31
- github_pr_url?: string | null;
50
+ created_by?: {
51
+ id: number;
52
+ uuid: string;
53
+ distinct_id: string;
54
+ first_name: string;
55
+ email: string;
56
+ };
32
57
  latest_run?: TaskRun;
33
58
  }
34
59
 
35
60
  // Log entry structure for TaskRun.log
36
- export interface LogEntry {
37
- type: string; // e.g., "info", "warning", "error", "success", "debug"
38
- message: string;
39
- [key: string]: unknown; // Allow additional fields
40
- }
41
61
 
42
62
  export type ArtifactType =
43
63
  | "plan"
@@ -55,14 +75,26 @@ export interface TaskRunArtifact {
55
75
  uploaded_at?: string;
56
76
  }
57
77
 
78
+ export type TaskRunStatus =
79
+ | "not_started"
80
+ | "queued"
81
+ | "in_progress"
82
+ | "completed"
83
+ | "failed"
84
+ | "cancelled";
85
+
86
+ export type TaskRunEnvironment = "local" | "cloud";
87
+
58
88
  // TaskRun model - represents individual execution runs of tasks
59
89
  export interface TaskRun {
60
90
  id: string;
61
91
  task: string; // Task ID
62
92
  team: number;
63
93
  branch: string | null;
64
- status: "started" | "in_progress" | "completed" | "failed";
65
- log_url?: string; // Presigned S3 URL for log access (valid for 1 hour)
94
+ stage: string | null; // Current stage (e.g., 'research', 'plan', 'build')
95
+ environment: TaskRunEnvironment;
96
+ status: TaskRunStatus;
97
+ log_url: string;
66
98
  error_message: string | null;
67
99
  output: Record<string, unknown> | null; // Structured output (PR URL, commit SHA, etc.)
68
100
  state: Record<string, unknown>; // Intermediate run state (defaults to {}, never null)
@@ -104,198 +136,15 @@ export interface TaskExecutionOptions {
104
136
  isCloudMode?: boolean; // Determines local vs cloud behavior (local pauses after each phase)
105
137
  createPR?: boolean; // Whether to create PR after build (defaults to false if local. This setting has no effect if isCloudMode is true.)
106
138
  autoProgress?: boolean;
107
- queryOverrides?: Record<string, any>;
139
+ queryOverrides?: Record<string, unknown>;
108
140
  // Fine-grained permission control (only applied to build phase)
109
141
  // See: https://docs.claude.com/en/api/agent-sdk/permissions
110
142
  canUseTool?: CanUseTool;
143
+ skipGitBranch?: boolean; // Skip creating a task-specific git branch
111
144
  }
112
145
 
113
- // Base event with timestamp
114
- interface BaseEvent {
115
- ts: number;
116
- }
117
-
118
- // Streaming content events
119
- export interface TokenEvent extends BaseEvent {
120
- type: "token";
121
- content: string;
122
- contentType?: "text" | "thinking" | "tool_input";
123
- }
124
-
125
- export interface ContentBlockStartEvent extends BaseEvent {
126
- type: "content_block_start";
127
- index: number;
128
- contentType: "text" | "tool_use" | "thinking";
129
- toolName?: string;
130
- toolId?: string;
131
- }
132
-
133
- export interface ContentBlockStopEvent extends BaseEvent {
134
- type: "content_block_stop";
135
- index: number;
136
- }
137
-
138
- // Tool events
139
- export interface ToolCallEvent extends BaseEvent {
140
- type: "tool_call";
141
- toolName: string;
142
- callId: string;
143
- args: Record<string, any>;
144
- parentToolUseId?: string | null; // For nested tool calls (subagents)
145
- // Tool metadata (enriched by adapter for UI consumption)
146
- tool?: import("./tools/types.js").Tool;
147
- category?: import("./tools/types.js").ToolCategory;
148
- }
149
-
150
- export interface ToolResultEvent extends BaseEvent {
151
- type: "tool_result";
152
- toolName: string;
153
- callId: string;
154
- result: any;
155
- isError?: boolean; // Whether the tool execution failed
156
- parentToolUseId?: string | null; // For nested tool calls (subagents)
157
- // Tool metadata (enriched by adapter for UI consumption)
158
- tool?: import("./tools/types.js").Tool;
159
- category?: import("./tools/types.js").ToolCategory;
160
- }
161
-
162
- // Message lifecycle events
163
- export interface MessageStartEvent extends BaseEvent {
164
- type: "message_start";
165
- messageId?: string;
166
- model?: string;
167
- }
168
-
169
- export interface MessageDeltaEvent extends BaseEvent {
170
- type: "message_delta";
171
- stopReason?: string;
172
- stopSequence?: string;
173
- usage?: {
174
- outputTokens: number;
175
- };
176
- }
177
-
178
- export interface MessageStopEvent extends BaseEvent {
179
- type: "message_stop";
180
- }
181
-
182
- // User message events
183
- export interface UserMessageEvent extends BaseEvent {
184
- type: "user_message";
185
- content: string;
186
- isSynthetic?: boolean;
187
- }
188
-
189
- // System events
190
- export interface StatusEvent extends BaseEvent {
191
- type: "status";
192
- phase: string;
193
- // Common optional fields (varies by phase):
194
- kind?: string; // Kind of status (plan, implementation)
195
- branch?: string; // Git branch name
196
- prUrl?: string; // Pull request URL
197
- taskId?: string; // Task identifier
198
- messageId?: string; // Claude message ID
199
- model?: string; // Model name
200
- [key: string]: any; // Allow additional fields
201
- }
202
-
203
- export interface InitEvent extends BaseEvent {
204
- type: "init";
205
- model: string;
206
- tools: string[];
207
- permissionMode: string;
208
- cwd: string;
209
- apiKeySource: string;
210
- agents?: string[];
211
- slashCommands?: string[];
212
- outputStyle?: string;
213
- mcpServers?: Array<{ name: string; status: string }>;
214
- }
215
-
216
- export interface CompactBoundaryEvent extends BaseEvent {
217
- type: "compact_boundary";
218
- trigger: "manual" | "auto";
219
- preTokens: number;
220
- }
221
-
222
- // Result events
223
- export interface DoneEvent extends BaseEvent {
224
- type: "done";
225
- result?: string; // Final summary text from Claude
226
- durationMs?: number;
227
- durationApiMs?: number; // API-only duration (excluding local processing)
228
- numTurns?: number;
229
- totalCostUsd?: number;
230
- usage?: any;
231
- modelUsage?: {
232
- // Per-model usage breakdown
233
- [modelName: string]: {
234
- inputTokens: number;
235
- outputTokens: number;
236
- cacheReadInputTokens: number;
237
- cacheCreationInputTokens: number;
238
- webSearchRequests: number;
239
- costUSD: number;
240
- contextWindow: number;
241
- };
242
- };
243
- permissionDenials?: Array<{
244
- // Tools that were denied by permissions
245
- tool_name: string;
246
- tool_use_id: string;
247
- tool_input: Record<string, unknown>;
248
- }>;
249
- }
250
-
251
- export interface ErrorEvent extends BaseEvent {
252
- type: "error";
253
- message: string;
254
- error?: any;
255
- errorType?: string;
256
- context?: Record<string, any>; // Partial error context for debugging
257
- sdkError?: any; // Original SDK error object
258
- }
259
-
260
- // Metric and artifact events (general purpose, not tool-specific)
261
- export interface MetricEvent extends BaseEvent {
262
- type: "metric";
263
- key: string;
264
- value: number;
265
- unit?: string;
266
- }
267
-
268
- export interface ArtifactEvent extends BaseEvent {
269
- type: "artifact";
270
- kind: string;
271
- content: any;
272
- }
273
-
274
- export interface RawSDKEvent extends BaseEvent {
275
- type: "raw_sdk_event";
276
- sdkMessage: any; // Full SDK message for debugging
277
- }
278
-
279
- export type AgentEvent =
280
- | TokenEvent
281
- | ContentBlockStartEvent
282
- | ContentBlockStopEvent
283
- | ToolCallEvent
284
- | ToolResultEvent
285
- | MessageStartEvent
286
- | MessageDeltaEvent
287
- | MessageStopEvent
288
- | UserMessageEvent
289
- | StatusEvent
290
- | InitEvent
291
- | CompactBoundaryEvent
292
- | DoneEvent
293
- | ErrorEvent
294
- | MetricEvent
295
- | ArtifactEvent
296
- | RawSDKEvent;
297
-
298
146
  export interface ExecutionResult {
147
+ // biome-ignore lint/suspicious/noExplicitAny: Results array contains varying SDK response types
299
148
  results: any[];
300
149
  }
301
150
 
@@ -330,17 +179,26 @@ export type McpServerConfig =
330
179
  | {
331
180
  type: "sdk";
332
181
  name: string;
333
- instance?: any; // McpServer instance
182
+ // biome-ignore lint/suspicious/noExplicitAny: McpServer instance type from external SDK
183
+ instance?: any;
334
184
  };
335
185
 
186
+ export type LogLevel = "debug" | "info" | "warn" | "error";
187
+
188
+ export type OnLogCallback = (
189
+ level: LogLevel,
190
+ scope: string,
191
+ message: string,
192
+ data?: unknown,
193
+ ) => void;
194
+
336
195
  export interface AgentConfig {
337
196
  workingDirectory?: string;
338
- onEvent?: (event: AgentEvent) => void;
339
197
 
340
- // PostHog API configuration
341
- posthogApiUrl: string;
342
- posthogApiKey: string;
343
- posthogProjectId: number;
198
+ // PostHog API configuration (optional - enables PostHog integration when provided)
199
+ posthogApiUrl?: string;
200
+ posthogApiKey?: string;
201
+ posthogProjectId?: number;
344
202
 
345
203
  // PostHog MCP configuration
346
204
  posthogMcpUrl?: string;
@@ -352,6 +210,7 @@ export interface AgentConfig {
352
210
 
353
211
  // Logging configuration
354
212
  debug?: boolean;
213
+ onLog?: OnLogCallback;
355
214
 
356
215
  // Fine-grained permission control for direct run() calls
357
216
  // See: https://docs.claude.com/en/api/agent-sdk/permissions
@@ -378,6 +237,7 @@ export interface PostHogResource {
378
237
  url: string;
379
238
  title?: string;
380
239
  content: string;
240
+ // biome-ignore lint/suspicious/noExplicitAny: Metadata contains varying resource-specific fields
381
241
  metadata?: Record<string, any>;
382
242
  }
383
243
 
@@ -410,3 +270,12 @@ export interface ResearchEvaluation {
410
270
  answered?: boolean; // whether questions have been answered
411
271
  answers?: ResearchAnswer[]; // user's answers to questions
412
272
  }
273
+
274
+ // Worktree types for parallel task development
275
+ export interface WorktreeInfo {
276
+ worktreePath: string;
277
+ worktreeName: string;
278
+ branchName: string;
279
+ baseBranch: string;
280
+ createdAt: string;
281
+ }