@posthog/agent 1.24.2 → 1.26.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.
- package/dist/_virtual/_commonjsHelpers.js +6 -0
- package/dist/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/_virtual/_tslib.js +74 -0
- package/dist/_virtual/_tslib.js.map +1 -0
- package/dist/_virtual/additionalItems.js +4 -0
- package/dist/_virtual/additionalItems.js.map +1 -0
- package/dist/_virtual/additionalProperties.js +4 -0
- package/dist/_virtual/additionalProperties.js.map +1 -0
- package/dist/_virtual/ajv.js +4 -0
- package/dist/_virtual/ajv.js.map +1 -0
- package/dist/_virtual/allOf.js +4 -0
- package/dist/_virtual/allOf.js.map +1 -0
- package/dist/_virtual/anyOf.js +4 -0
- package/dist/_virtual/anyOf.js.map +1 -0
- package/dist/_virtual/applicability.js +4 -0
- package/dist/_virtual/applicability.js.map +1 -0
- package/dist/_virtual/boolSchema.js +4 -0
- package/dist/_virtual/boolSchema.js.map +1 -0
- package/dist/_virtual/code.js +4 -0
- package/dist/_virtual/code.js.map +1 -0
- package/dist/_virtual/code2.js +4 -0
- package/dist/_virtual/code2.js.map +1 -0
- package/dist/_virtual/const.js +4 -0
- package/dist/_virtual/const.js.map +1 -0
- package/dist/_virtual/contains.js +4 -0
- package/dist/_virtual/contains.js.map +1 -0
- package/dist/_virtual/core.js +4 -0
- package/dist/_virtual/core.js.map +1 -0
- package/dist/_virtual/dataType.js +4 -0
- package/dist/_virtual/dataType.js.map +1 -0
- package/dist/_virtual/defaults.js +4 -0
- package/dist/_virtual/defaults.js.map +1 -0
- package/dist/_virtual/dependencies.js +4 -0
- package/dist/_virtual/dependencies.js.map +1 -0
- package/dist/_virtual/draft7.js +4 -0
- package/dist/_virtual/draft7.js.map +1 -0
- package/dist/_virtual/enum.js +4 -0
- package/dist/_virtual/enum.js.map +1 -0
- package/dist/_virtual/equal.js +4 -0
- package/dist/_virtual/equal.js.map +1 -0
- package/dist/_virtual/errors.js +4 -0
- package/dist/_virtual/errors.js.map +1 -0
- package/dist/_virtual/format.js +4 -0
- package/dist/_virtual/format.js.map +1 -0
- package/dist/_virtual/formats.js +4 -0
- package/dist/_virtual/formats.js.map +1 -0
- package/dist/_virtual/id.js +4 -0
- package/dist/_virtual/id.js.map +1 -0
- package/dist/_virtual/if.js +4 -0
- package/dist/_virtual/if.js.map +1 -0
- package/dist/_virtual/index.js +4 -0
- package/dist/_virtual/index.js.map +1 -0
- package/dist/_virtual/index10.js +4 -0
- package/dist/_virtual/index10.js.map +1 -0
- package/dist/_virtual/index11.js +4 -0
- package/dist/_virtual/index11.js.map +1 -0
- package/dist/_virtual/index2.js +4 -0
- package/dist/_virtual/index2.js.map +1 -0
- package/dist/_virtual/index3.js +4 -0
- package/dist/_virtual/index3.js.map +1 -0
- package/dist/_virtual/index4.js +4 -0
- package/dist/_virtual/index4.js.map +1 -0
- package/dist/_virtual/index5.js +4 -0
- package/dist/_virtual/index5.js.map +1 -0
- package/dist/_virtual/index6.js +4 -0
- package/dist/_virtual/index6.js.map +1 -0
- package/dist/_virtual/index7.js +4 -0
- package/dist/_virtual/index7.js.map +1 -0
- package/dist/_virtual/index8.js +4 -0
- package/dist/_virtual/index8.js.map +1 -0
- package/dist/_virtual/index9.js +4 -0
- package/dist/_virtual/index9.js.map +1 -0
- package/dist/_virtual/items.js +4 -0
- package/dist/_virtual/items.js.map +1 -0
- package/dist/_virtual/items2020.js +4 -0
- package/dist/_virtual/items2020.js.map +1 -0
- package/dist/_virtual/keyword.js +4 -0
- package/dist/_virtual/keyword.js.map +1 -0
- package/dist/_virtual/limit.js +4 -0
- package/dist/_virtual/limit.js.map +1 -0
- package/dist/_virtual/limitItems.js +4 -0
- package/dist/_virtual/limitItems.js.map +1 -0
- package/dist/_virtual/limitLength.js +4 -0
- package/dist/_virtual/limitLength.js.map +1 -0
- package/dist/_virtual/limitNumber.js +4 -0
- package/dist/_virtual/limitNumber.js.map +1 -0
- package/dist/_virtual/limitProperties.js +4 -0
- package/dist/_virtual/limitProperties.js.map +1 -0
- package/dist/_virtual/metadata.js +4 -0
- package/dist/_virtual/metadata.js.map +1 -0
- package/dist/_virtual/multipleOf.js +4 -0
- package/dist/_virtual/multipleOf.js.map +1 -0
- package/dist/_virtual/names.js +4 -0
- package/dist/_virtual/names.js.map +1 -0
- package/dist/_virtual/not.js +4 -0
- package/dist/_virtual/not.js.map +1 -0
- package/dist/_virtual/oneOf.js +4 -0
- package/dist/_virtual/oneOf.js.map +1 -0
- package/dist/_virtual/pattern.js +4 -0
- package/dist/_virtual/pattern.js.map +1 -0
- package/dist/_virtual/patternProperties.js +4 -0
- package/dist/_virtual/patternProperties.js.map +1 -0
- package/dist/_virtual/prefixItems.js +4 -0
- package/dist/_virtual/prefixItems.js.map +1 -0
- package/dist/_virtual/properties.js +4 -0
- package/dist/_virtual/properties.js.map +1 -0
- package/dist/_virtual/propertyNames.js +4 -0
- package/dist/_virtual/propertyNames.js.map +1 -0
- package/dist/_virtual/ref.js +4 -0
- package/dist/_virtual/ref.js.map +1 -0
- package/dist/_virtual/ref_error.js +4 -0
- package/dist/_virtual/ref_error.js.map +1 -0
- package/dist/_virtual/required.js +4 -0
- package/dist/_virtual/required.js.map +1 -0
- package/dist/_virtual/resolve.js +4 -0
- package/dist/_virtual/resolve.js.map +1 -0
- package/dist/_virtual/rules.js +4 -0
- package/dist/_virtual/rules.js.map +1 -0
- package/dist/_virtual/scope.js +4 -0
- package/dist/_virtual/scope.js.map +1 -0
- package/dist/_virtual/subschema.js +4 -0
- package/dist/_virtual/subschema.js.map +1 -0
- package/dist/_virtual/thenElse.js +4 -0
- package/dist/_virtual/thenElse.js.map +1 -0
- package/dist/_virtual/types.js +4 -0
- package/dist/_virtual/types.js.map +1 -0
- package/dist/_virtual/ucs2length.js +4 -0
- package/dist/_virtual/ucs2length.js.map +1 -0
- package/dist/_virtual/uniqueItems.js +4 -0
- package/dist/_virtual/uniqueItems.js.map +1 -0
- package/dist/_virtual/uri.js +4 -0
- package/dist/_virtual/uri.js.map +1 -0
- package/dist/_virtual/util.js +4 -0
- package/dist/_virtual/util.js.map +1 -0
- package/dist/_virtual/validation_error.js +4 -0
- package/dist/_virtual/validation_error.js.map +1 -0
- package/dist/claude-cli/cli.js +2294 -2146
- package/dist/example-client.d.ts +3 -0
- package/dist/example-client.d.ts.map +1 -0
- package/dist/index.d.ts +19 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/node_modules/@agentclientprotocol/sdk/dist/acp.js +891 -0
- package/dist/node_modules/@agentclientprotocol/sdk/dist/acp.js.map +1 -0
- package/dist/node_modules/@agentclientprotocol/sdk/dist/schema.js +876 -0
- package/dist/node_modules/@agentclientprotocol/sdk/dist/schema.js.map +1 -0
- package/dist/node_modules/@agentclientprotocol/sdk/dist/stream.js +66 -0
- package/dist/node_modules/@agentclientprotocol/sdk/dist/stream.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js +23 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +331 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +717 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +221 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +56 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +440 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js +94 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1610 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +91 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/ZodError.js +133 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/ZodError.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/errors.js +9 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/errors.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/errorUtil.js +9 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/errorUtil.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/parseUtil.js +112 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/parseUtil.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/util.js +136 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/helpers/util.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/locales/en.js +112 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/locales/en.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/types.js +3297 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v3/types.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/errors.js +44 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/errors.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/iso.js +36 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/iso.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/parse.js +10 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/parse.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/schemas.js +657 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/classic/schemas.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/api.js +449 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/api.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/checks.js +413 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/checks.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/core.js +57 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/core.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/doc.js +38 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/doc.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/errors.js +86 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/errors.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/parse.js +61 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/parse.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/regexes.js +80 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/regexes.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/registries.js +52 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/registries.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/schemas.js +1307 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/schemas.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/to-json-schema.js +842 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/to-json-schema.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/util.js +335 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/util.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/versions.js +8 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/core/versions.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/schemas.js +51 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/zod/v4/mini/schemas.js.map +1 -0
- package/dist/node_modules/ajv/dist/ajv.js +69 -0
- package/dist/node_modules/ajv/dist/ajv.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/codegen/code.js +169 -0
- package/dist/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/codegen/index.js +712 -0
- package/dist/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/codegen/scope.js +157 -0
- package/dist/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/errors.js +140 -0
- package/dist/node_modules/ajv/dist/compile/errors.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/index.js +253 -0
- package/dist/node_modules/ajv/dist/compile/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/names.js +40 -0
- package/dist/node_modules/ajv/dist/compile/names.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/ref_error.js +25 -0
- package/dist/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/resolve.js +162 -0
- package/dist/node_modules/ajv/dist/compile/resolve.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/rules.js +29 -0
- package/dist/node_modules/ajv/dist/compile/rules.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/util.js +183 -0
- package/dist/node_modules/ajv/dist/compile/util.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/applicability.js +30 -0
- package/dist/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +64 -0
- package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/dataType.js +213 -0
- package/dist/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/defaults.js +49 -0
- package/dist/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/index.js +544 -0
- package/dist/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/keyword.js +139 -0
- package/dist/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/subschema.js +95 -0
- package/dist/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
- package/dist/node_modules/ajv/dist/core.js +639 -0
- package/dist/node_modules/ajv/dist/core.js.map +1 -0
- package/dist/node_modules/ajv/dist/refs/data.json.js +31 -0
- package/dist/node_modules/ajv/dist/refs/data.json.js.map +1 -0
- package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +254 -0
- package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/equal.js +9 -0
- package/dist/node_modules/ajv/dist/runtime/equal.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/ucs2length.js +25 -0
- package/dist/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/uri.js +8 -0
- package/dist/node_modules/ajv/dist/runtime/uri.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/validation_error.js +22 -0
- package/dist/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +53 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +112 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +26 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +14 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +99 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +93 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +70 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +77 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +57 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +37 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +29 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +64 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +80 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +15 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +61 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +42 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +16 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/code.js +146 -0
- package/dist/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/id.js +11 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/index.js +21 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +131 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +113 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +12 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/draft7.js +28 -0
- package/dist/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/format.js +94 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/index.js +9 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/metadata.js +21 -0
- package/dist/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +31 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +54 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +54 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +26 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +33 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +29 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +26 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +28 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +27 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +84 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +72 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
- package/dist/node_modules/ajv-formats/dist/formats.js +212 -0
- package/dist/node_modules/ajv-formats/dist/formats.js.map +1 -0
- package/dist/node_modules/ajv-formats/dist/index.js +52 -0
- package/dist/node_modules/ajv-formats/dist/index.js.map +1 -0
- package/dist/node_modules/ajv-formats/dist/limit.js +75 -0
- package/dist/node_modules/ajv-formats/dist/limit.js.map +1 -0
- package/dist/node_modules/diff/libesm/diff/base.js +256 -0
- package/dist/node_modules/diff/libesm/diff/base.js.map +1 -0
- package/dist/node_modules/diff/libesm/diff/line.js +64 -0
- package/dist/node_modules/diff/libesm/diff/line.js.map +1 -0
- package/dist/node_modules/diff/libesm/patch/create.js +185 -0
- package/dist/node_modules/diff/libesm/patch/create.js.map +1 -0
- package/dist/node_modules/fast-deep-equal/index.js +47 -0
- package/dist/node_modules/fast-deep-equal/index.js.map +1 -0
- package/dist/node_modules/fast-uri/index.js +347 -0
- package/dist/node_modules/fast-uri/index.js.map +1 -0
- package/dist/node_modules/fast-uri/lib/schemes.js +255 -0
- package/dist/node_modules/fast-uri/lib/schemes.js.map +1 -0
- package/dist/node_modules/fast-uri/lib/utils.js +334 -0
- package/dist/node_modules/fast-uri/lib/utils.js.map +1 -0
- package/dist/node_modules/json-schema-traverse/index.js +98 -0
- package/dist/node_modules/json-schema-traverse/index.js.map +1 -0
- package/dist/node_modules/uuid/dist/rng.js +14 -0
- package/dist/node_modules/uuid/dist/rng.js.map +1 -0
- package/dist/node_modules/uuid/dist/stringify.js +29 -0
- package/dist/node_modules/uuid/dist/stringify.js.map +1 -0
- package/dist/node_modules/uuid/dist/v7.js +65 -0
- package/dist/node_modules/uuid/dist/v7.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js +37 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js +26 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +17 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +11 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js +66 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +21 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +30 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +53 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +8 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +8 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +8 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +50 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +11 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +11 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +9 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +56 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +24 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +30 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +19 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +15 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +13 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +37 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +56 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +76 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +25 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +24 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +8 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +8 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +65 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +24 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +350 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +36 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +10 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +84 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +8 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js +109 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +90 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/node_modules/zod/v3/types.js +42 -0
- package/dist/node_modules/zod-to-json-schema/node_modules/zod/v3/types.js.map +1 -0
- package/dist/package.json.js +8 -0
- package/dist/package.json.js.map +1 -0
- package/dist/src/acp-extensions.d.ts +91 -0
- package/dist/src/acp-extensions.d.ts.map +1 -0
- package/dist/src/acp-extensions.js +38 -0
- package/dist/src/acp-extensions.js.map +1 -0
- package/dist/src/adapters/claude/claude.d.ts +136 -0
- package/dist/src/adapters/claude/claude.d.ts.map +1 -0
- package/dist/src/adapters/claude/claude.js +1128 -0
- package/dist/src/adapters/claude/claude.js.map +1 -0
- package/dist/src/adapters/claude/mcp-server.d.ts +30 -0
- package/dist/src/adapters/claude/mcp-server.d.ts.map +1 -0
- package/dist/src/adapters/claude/mcp-server.js +668 -0
- package/dist/src/adapters/claude/mcp-server.js.map +1 -0
- package/dist/src/adapters/claude/tools.d.ts +35 -0
- package/dist/src/adapters/claude/tools.d.ts.map +1 -0
- package/dist/src/adapters/claude/tools.js +473 -0
- package/dist/src/adapters/claude/tools.js.map +1 -0
- package/dist/src/adapters/claude/utils.d.ts +48 -0
- package/dist/src/adapters/claude/utils.d.ts.map +1 -0
- package/dist/src/adapters/claude/utils.js +158 -0
- package/dist/src/adapters/claude/utils.js.map +1 -0
- package/dist/src/agent.d.ts +24 -28
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +343 -172
- package/dist/src/agent.js.map +1 -1
- package/dist/src/agents/execution.js.map +1 -1
- package/dist/src/agents/planning.js.map +1 -1
- package/dist/src/agents/research.js.map +1 -1
- package/dist/src/file-manager.d.ts +6 -6
- package/dist/src/file-manager.d.ts.map +1 -1
- package/dist/src/file-manager.js +72 -63
- package/dist/src/file-manager.js.map +1 -1
- package/dist/src/git-manager.d.ts +2 -1
- package/dist/src/git-manager.d.ts.map +1 -1
- package/dist/src/git-manager.js +105 -70
- package/dist/src/git-manager.js.map +1 -1
- package/dist/src/posthog-api.d.ts +8 -14
- package/dist/src/posthog-api.d.ts.map +1 -1
- package/dist/src/posthog-api.js +35 -23
- package/dist/src/posthog-api.js.map +1 -1
- package/dist/src/prompt-builder.d.ts +4 -4
- package/dist/src/prompt-builder.d.ts.map +1 -1
- package/dist/src/prompt-builder.js +129 -99
- package/dist/src/prompt-builder.js.map +1 -1
- package/dist/src/schemas.d.ts +980 -0
- package/dist/src/schemas.d.ts.map +1 -0
- package/dist/src/schemas.js +196 -0
- package/dist/src/schemas.js.map +1 -0
- package/dist/src/session-store.d.ts +58 -0
- package/dist/src/session-store.d.ts.map +1 -0
- package/dist/src/session-store.js +206 -0
- package/dist/src/session-store.js.map +1 -0
- package/dist/src/task-manager.d.ts +7 -7
- package/dist/src/task-manager.d.ts.map +1 -1
- package/dist/src/task-manager.js +19 -18
- package/dist/src/task-manager.js.map +1 -1
- package/dist/src/template-manager.d.ts +1 -1
- package/dist/src/template-manager.d.ts.map +1 -1
- package/dist/src/template-manager.js +30 -28
- package/dist/src/template-manager.js.map +1 -1
- package/dist/src/todo-manager.d.ts +5 -5
- package/dist/src/todo-manager.d.ts.map +1 -1
- package/dist/src/todo-manager.js +33 -24
- package/dist/src/todo-manager.js.map +1 -1
- package/dist/src/tools/registry.d.ts +1 -1
- package/dist/src/tools/registry.js +60 -60
- package/dist/src/tools/registry.js.map +1 -1
- package/dist/src/tools/types.d.ts +31 -31
- package/dist/src/types.d.ts +62 -167
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +1 -0
- package/dist/src/types.js.map +1 -1
- package/dist/src/utils/logger.d.ts +14 -6
- package/dist/src/utils/logger.d.ts.map +1 -1
- package/dist/src/utils/logger.js +37 -22
- package/dist/src/utils/logger.js.map +1 -1
- package/dist/src/utils/tapped-stream.d.ts +17 -0
- package/dist/src/utils/tapped-stream.d.ts.map +1 -0
- package/dist/src/utils/tapped-stream.js +45 -0
- package/dist/src/utils/tapped-stream.js.map +1 -0
- package/dist/src/workflow/config.d.ts +1 -1
- package/dist/src/workflow/config.d.ts.map +1 -1
- package/dist/src/workflow/config.js +18 -18
- package/dist/src/workflow/config.js.map +1 -1
- package/dist/src/workflow/steps/build.d.ts +1 -1
- package/dist/src/workflow/steps/build.d.ts.map +1 -1
- package/dist/src/workflow/steps/build.js +53 -39
- package/dist/src/workflow/steps/build.js.map +1 -1
- package/dist/src/workflow/steps/finalize.d.ts +1 -1
- package/dist/src/workflow/steps/finalize.d.ts.map +1 -1
- package/dist/src/workflow/steps/finalize.js +58 -52
- package/dist/src/workflow/steps/finalize.js.map +1 -1
- package/dist/src/workflow/steps/plan.d.ts +1 -1
- package/dist/src/workflow/steps/plan.d.ts.map +1 -1
- package/dist/src/workflow/steps/plan.js +69 -47
- package/dist/src/workflow/steps/plan.js.map +1 -1
- package/dist/src/workflow/steps/research.d.ts +1 -1
- package/dist/src/workflow/steps/research.d.ts.map +1 -1
- package/dist/src/workflow/steps/research.js +86 -67
- package/dist/src/workflow/steps/research.js.map +1 -1
- package/dist/src/workflow/types.d.ts +19 -14
- package/dist/src/workflow/types.d.ts.map +1 -1
- package/dist/src/workflow/utils.d.ts +1 -1
- package/dist/src/workflow/utils.d.ts.map +1 -1
- package/dist/src/workflow/utils.js +7 -4
- package/dist/src/workflow/utils.js.map +1 -1
- package/dist/src/worktree-manager.d.ts +39 -0
- package/dist/src/worktree-manager.d.ts.map +1 -0
- package/dist/src/worktree-manager.js +808 -0
- package/dist/src/worktree-manager.js.map +1 -0
- package/package.json +20 -16
- package/src/acp-extensions.ts +117 -0
- package/src/adapters/claude/claude.ts +1514 -0
- package/src/adapters/claude/mcp-server.ts +810 -0
- package/src/adapters/claude/tools.ts +616 -0
- package/src/adapters/claude/utils.ts +267 -0
- package/src/agent.ts +717 -441
- package/src/agents/execution.ts +1 -1
- package/src/agents/planning.ts +1 -1
- package/src/agents/research.ts +0 -1
- package/src/file-manager.ts +80 -70
- package/src/git-manager.ts +164 -88
- package/src/posthog-api.ts +155 -94
- package/src/prompt-builder.ts +196 -143
- package/src/schemas.ts +241 -0
- package/src/session-store.ts +259 -0
- package/src/task-manager.ts +41 -33
- package/src/template-manager.ts +98 -45
- package/src/todo-manager.ts +43 -32
- package/src/tools/registry.ts +62 -62
- package/src/tools/types.ts +36 -36
- package/src/types.ts +130 -239
- package/src/utils/logger.ts +89 -58
- package/src/utils/tapped-stream.ts +60 -0
- package/src/workflow/config.ts +48 -48
- package/src/workflow/steps/build.ts +127 -113
- package/src/workflow/steps/finalize.ts +207 -182
- package/src/workflow/steps/plan.ts +155 -130
- package/src/workflow/steps/research.ts +207 -187
- package/src/workflow/types.ts +47 -36
- package/src/workflow/utils.ts +37 -34
- package/src/worktree-manager.ts +881 -0
- package/dist/src/adapters/claude/claude-adapter.d.ts +0 -18
- package/dist/src/adapters/claude/claude-adapter.d.ts.map +0 -1
- package/dist/src/adapters/claude/claude-adapter.js +0 -311
- package/dist/src/adapters/claude/claude-adapter.js.map +0 -1
- package/dist/src/adapters/claude/tool-mapper.d.ts +0 -19
- package/dist/src/adapters/claude/tool-mapper.d.ts.map +0 -1
- package/dist/src/adapters/claude/tool-mapper.js +0 -44
- package/dist/src/adapters/claude/tool-mapper.js.map +0 -1
- package/dist/src/adapters/types.d.ts +0 -33
- package/dist/src/adapters/types.d.ts.map +0 -1
- package/dist/src/task-progress-reporter.d.ts +0 -43
- package/dist/src/task-progress-reporter.d.ts.map +0 -1
- package/dist/src/task-progress-reporter.js +0 -393
- package/dist/src/task-progress-reporter.js.map +0 -1
- package/src/adapters/claude/claude-adapter.ts +0 -338
- package/src/adapters/claude/tool-mapper.ts +0 -46
- package/src/adapters/types.ts +0 -37
- package/src/task-progress-reporter.ts +0 -443
package/src/prompt-builder.ts
CHANGED
|
@@ -1,27 +1,36 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
1
|
+
import { promises as fs } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import type { TemplateVariables } from "./template-manager.js";
|
|
4
|
+
import type {
|
|
5
|
+
PostHogResource,
|
|
6
|
+
ResourceType,
|
|
7
|
+
SupportingFile,
|
|
8
|
+
Task,
|
|
9
|
+
UrlMention,
|
|
10
|
+
} from "./types.js";
|
|
11
|
+
import { Logger } from "./utils/logger.js";
|
|
6
12
|
|
|
7
13
|
export interface PromptBuilderDeps {
|
|
8
|
-
getTaskFiles: (taskId: string) => Promise<
|
|
14
|
+
getTaskFiles: (taskId: string) => Promise<SupportingFile[]>;
|
|
9
15
|
generatePlanTemplate: (vars: TemplateVariables) => Promise<string>;
|
|
10
|
-
posthogClient?: {
|
|
16
|
+
posthogClient?: {
|
|
17
|
+
fetchResourceByUrl: (mention: UrlMention) => Promise<PostHogResource>;
|
|
18
|
+
};
|
|
11
19
|
logger?: Logger;
|
|
12
20
|
}
|
|
13
21
|
|
|
14
22
|
export class PromptBuilder {
|
|
15
|
-
private getTaskFiles: PromptBuilderDeps[
|
|
16
|
-
private generatePlanTemplate: PromptBuilderDeps[
|
|
17
|
-
private posthogClient?: PromptBuilderDeps[
|
|
23
|
+
private getTaskFiles: PromptBuilderDeps["getTaskFiles"];
|
|
24
|
+
private generatePlanTemplate: PromptBuilderDeps["generatePlanTemplate"];
|
|
25
|
+
private posthogClient?: PromptBuilderDeps["posthogClient"];
|
|
18
26
|
private logger: Logger;
|
|
19
27
|
|
|
20
28
|
constructor(deps: PromptBuilderDeps) {
|
|
21
29
|
this.getTaskFiles = deps.getTaskFiles;
|
|
22
30
|
this.generatePlanTemplate = deps.generatePlanTemplate;
|
|
23
31
|
this.posthogClient = deps.posthogClient;
|
|
24
|
-
this.logger =
|
|
32
|
+
this.logger =
|
|
33
|
+
deps.logger || new Logger({ debug: false, prefix: "[PromptBuilder]" });
|
|
25
34
|
}
|
|
26
35
|
|
|
27
36
|
/**
|
|
@@ -33,8 +42,10 @@ export class PromptBuilder {
|
|
|
33
42
|
const paths: string[] = [];
|
|
34
43
|
let match: RegExpExecArray | null;
|
|
35
44
|
|
|
36
|
-
|
|
45
|
+
match = fileTagRegex.exec(description);
|
|
46
|
+
while (match !== null) {
|
|
37
47
|
paths.push(match[1]);
|
|
48
|
+
match = fileTagRegex.exec(description);
|
|
38
49
|
}
|
|
39
50
|
|
|
40
51
|
return paths;
|
|
@@ -43,13 +54,18 @@ export class PromptBuilder {
|
|
|
43
54
|
/**
|
|
44
55
|
* Read file contents from repository
|
|
45
56
|
*/
|
|
46
|
-
private async readFileContent(
|
|
57
|
+
private async readFileContent(
|
|
58
|
+
repositoryPath: string,
|
|
59
|
+
filePath: string,
|
|
60
|
+
): Promise<string | null> {
|
|
47
61
|
try {
|
|
48
62
|
const fullPath = join(repositoryPath, filePath);
|
|
49
|
-
const content = await fs.readFile(fullPath,
|
|
63
|
+
const content = await fs.readFile(fullPath, "utf8");
|
|
50
64
|
return content;
|
|
51
65
|
} catch (error) {
|
|
52
|
-
this.logger.warn(`Failed to read referenced file: ${filePath}`, {
|
|
66
|
+
this.logger.warn(`Failed to read referenced file: ${filePath}`, {
|
|
67
|
+
error,
|
|
68
|
+
});
|
|
53
69
|
return null;
|
|
54
70
|
}
|
|
55
71
|
}
|
|
@@ -60,30 +76,35 @@ export class PromptBuilder {
|
|
|
60
76
|
*/
|
|
61
77
|
private extractUrlMentions(description: string): UrlMention[] {
|
|
62
78
|
const mentions: UrlMention[] = [];
|
|
63
|
-
|
|
79
|
+
|
|
64
80
|
// PostHog resource mentions: <error id="..." />, <experiment id="..." />, etc.
|
|
65
|
-
const resourceRegex =
|
|
81
|
+
const resourceRegex =
|
|
82
|
+
/<(error|experiment|insight|feature_flag)\s+id="([^"]+)"\s*\/>/g;
|
|
66
83
|
let match: RegExpExecArray | null;
|
|
67
84
|
|
|
68
|
-
|
|
85
|
+
match = resourceRegex.exec(description);
|
|
86
|
+
while (match !== null) {
|
|
69
87
|
const [, type, id] = match;
|
|
70
88
|
mentions.push({
|
|
71
|
-
url:
|
|
72
|
-
type: type as
|
|
89
|
+
url: "", // Will be reconstructed if needed
|
|
90
|
+
type: type as ResourceType,
|
|
73
91
|
id,
|
|
74
|
-
label: this.generateUrlLabel(
|
|
92
|
+
label: this.generateUrlLabel("", type as ResourceType),
|
|
75
93
|
});
|
|
94
|
+
match = resourceRegex.exec(description);
|
|
76
95
|
}
|
|
77
96
|
|
|
78
97
|
// Generic URL mentions: <url href="..." />
|
|
79
98
|
const urlRegex = /<url\s+href="([^"]+)"\s*\/>/g;
|
|
80
|
-
|
|
99
|
+
match = urlRegex.exec(description);
|
|
100
|
+
while (match !== null) {
|
|
81
101
|
const [, url] = match;
|
|
82
102
|
mentions.push({
|
|
83
103
|
url,
|
|
84
|
-
type:
|
|
85
|
-
label: this.generateUrlLabel(url,
|
|
104
|
+
type: "generic",
|
|
105
|
+
label: this.generateUrlLabel(url, "generic"),
|
|
86
106
|
});
|
|
107
|
+
match = urlRegex.exec(description);
|
|
87
108
|
}
|
|
88
109
|
|
|
89
110
|
return mentions;
|
|
@@ -96,21 +117,23 @@ export class PromptBuilder {
|
|
|
96
117
|
try {
|
|
97
118
|
const urlObj = new URL(url);
|
|
98
119
|
switch (type) {
|
|
99
|
-
case
|
|
120
|
+
case "error": {
|
|
100
121
|
const errorMatch = url.match(/error_tracking\/([a-f0-9-]+)/);
|
|
101
|
-
return errorMatch ? `Error ${errorMatch[1].slice(0, 8)}...` :
|
|
102
|
-
|
|
122
|
+
return errorMatch ? `Error ${errorMatch[1].slice(0, 8)}...` : "Error";
|
|
123
|
+
}
|
|
124
|
+
case "experiment": {
|
|
103
125
|
const expMatch = url.match(/experiments\/(\d+)/);
|
|
104
|
-
return expMatch ? `Experiment #${expMatch[1]}` :
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
126
|
+
return expMatch ? `Experiment #${expMatch[1]}` : "Experiment";
|
|
127
|
+
}
|
|
128
|
+
case "insight":
|
|
129
|
+
return "Insight";
|
|
130
|
+
case "feature_flag":
|
|
131
|
+
return "Feature Flag";
|
|
109
132
|
default:
|
|
110
133
|
return urlObj.hostname;
|
|
111
134
|
}
|
|
112
135
|
} catch {
|
|
113
|
-
return
|
|
136
|
+
return "URL";
|
|
114
137
|
}
|
|
115
138
|
}
|
|
116
139
|
|
|
@@ -118,7 +141,7 @@ export class PromptBuilder {
|
|
|
118
141
|
* Process URL references and fetch their content
|
|
119
142
|
*/
|
|
120
143
|
private async processUrlReferences(
|
|
121
|
-
description: string
|
|
144
|
+
description: string,
|
|
122
145
|
): Promise<{ description: string; referencedResources: PostHogResource[] }> {
|
|
123
146
|
const urlMentions = this.extractUrlMentions(description);
|
|
124
147
|
const referencedResources: PostHogResource[] = [];
|
|
@@ -133,13 +156,15 @@ export class PromptBuilder {
|
|
|
133
156
|
const resource = await this.posthogClient.fetchResourceByUrl(mention);
|
|
134
157
|
referencedResources.push(resource);
|
|
135
158
|
} catch (error) {
|
|
136
|
-
this.logger.warn(`Failed to fetch resource from URL: ${mention.url}`, {
|
|
159
|
+
this.logger.warn(`Failed to fetch resource from URL: ${mention.url}`, {
|
|
160
|
+
error,
|
|
161
|
+
});
|
|
137
162
|
// Add a placeholder resource for failed fetches
|
|
138
163
|
referencedResources.push({
|
|
139
164
|
type: mention.type,
|
|
140
|
-
id: mention.id ||
|
|
165
|
+
id: mention.id || "",
|
|
141
166
|
url: mention.url,
|
|
142
|
-
title: mention.label ||
|
|
167
|
+
title: mention.label || "Unknown Resource",
|
|
143
168
|
content: `Failed to fetch resource from ${mention.url}: ${error}`,
|
|
144
169
|
metadata: {},
|
|
145
170
|
});
|
|
@@ -149,20 +174,22 @@ export class PromptBuilder {
|
|
|
149
174
|
// Replace URL tags with just the label for readability
|
|
150
175
|
let processedDescription = description;
|
|
151
176
|
for (const mention of urlMentions) {
|
|
152
|
-
if (mention.type ===
|
|
177
|
+
if (mention.type === "generic") {
|
|
153
178
|
// Generic URLs: <url href="..." />
|
|
154
|
-
const escapedUrl = mention.url.replace(/[.*+?^${}()|[\]\\]/g,
|
|
179
|
+
const escapedUrl = mention.url.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
155
180
|
processedDescription = processedDescription.replace(
|
|
156
|
-
new RegExp(`<url\\s+href="${escapedUrl}"\\s*/>`,
|
|
157
|
-
`@${mention.label}
|
|
181
|
+
new RegExp(`<url\\s+href="${escapedUrl}"\\s*/>`, "g"),
|
|
182
|
+
`@${mention.label}`,
|
|
158
183
|
);
|
|
159
184
|
} else {
|
|
160
185
|
// PostHog resources: <error id="..." />, <experiment id="..." />, etc.
|
|
161
|
-
const escapedType = mention.type.replace(/[.*+?^${}()|[\]\\]/g,
|
|
162
|
-
const escapedId = mention.id
|
|
186
|
+
const escapedType = mention.type.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
187
|
+
const escapedId = mention.id
|
|
188
|
+
? mention.id.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
|
|
189
|
+
: "";
|
|
163
190
|
processedDescription = processedDescription.replace(
|
|
164
|
-
new RegExp(`<${escapedType}\\s+id="${escapedId}"\\s*/>`,
|
|
165
|
-
`@${mention.label}
|
|
191
|
+
new RegExp(`<${escapedType}\\s+id="${escapedId}"\\s*/>`, "g"),
|
|
192
|
+
`@${mention.label}`,
|
|
166
193
|
);
|
|
167
194
|
}
|
|
168
195
|
}
|
|
@@ -176,8 +203,11 @@ export class PromptBuilder {
|
|
|
176
203
|
*/
|
|
177
204
|
private async processFileReferences(
|
|
178
205
|
description: string,
|
|
179
|
-
repositoryPath?: string
|
|
180
|
-
): Promise<{
|
|
206
|
+
repositoryPath?: string,
|
|
207
|
+
): Promise<{
|
|
208
|
+
description: string;
|
|
209
|
+
referencedFiles: Array<{ path: string; content: string }>;
|
|
210
|
+
}> {
|
|
181
211
|
const filePaths = this.extractFilePaths(description);
|
|
182
212
|
const referencedFiles: Array<{ path: string; content: string }> = [];
|
|
183
213
|
|
|
@@ -196,211 +226,223 @@ export class PromptBuilder {
|
|
|
196
226
|
// Replace file tags with just the filename for readability
|
|
197
227
|
let processedDescription = description;
|
|
198
228
|
for (const filePath of filePaths) {
|
|
199
|
-
const fileName = filePath.split(
|
|
229
|
+
const fileName = filePath.split("/").pop() || filePath;
|
|
200
230
|
processedDescription = processedDescription.replace(
|
|
201
|
-
new RegExp(
|
|
202
|
-
|
|
231
|
+
new RegExp(
|
|
232
|
+
`<file\\s+path="${filePath.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}"\\s*/>`,
|
|
233
|
+
"g",
|
|
234
|
+
),
|
|
235
|
+
`@${fileName}`,
|
|
203
236
|
);
|
|
204
237
|
}
|
|
205
238
|
|
|
206
239
|
return { description: processedDescription, referencedFiles };
|
|
207
240
|
}
|
|
208
241
|
|
|
209
|
-
async buildResearchPrompt(
|
|
242
|
+
async buildResearchPrompt(
|
|
243
|
+
task: Task,
|
|
244
|
+
repositoryPath?: string,
|
|
245
|
+
): Promise<string> {
|
|
210
246
|
// Process file references in description
|
|
211
|
-
const { description: descriptionAfterFiles, referencedFiles } =
|
|
212
|
-
task.description,
|
|
213
|
-
repositoryPath
|
|
214
|
-
);
|
|
247
|
+
const { description: descriptionAfterFiles, referencedFiles } =
|
|
248
|
+
await this.processFileReferences(task.description, repositoryPath);
|
|
215
249
|
|
|
216
250
|
// Process URL references in description
|
|
217
|
-
const { description: processedDescription, referencedResources } =
|
|
218
|
-
descriptionAfterFiles
|
|
219
|
-
);
|
|
251
|
+
const { description: processedDescription, referencedResources } =
|
|
252
|
+
await this.processUrlReferences(descriptionAfterFiles);
|
|
220
253
|
|
|
221
|
-
let prompt =
|
|
254
|
+
let prompt = "<task>\n";
|
|
222
255
|
prompt += `<title>${task.title}</title>\n`;
|
|
223
256
|
prompt += `<description>${processedDescription}</description>\n`;
|
|
224
257
|
|
|
225
|
-
if (
|
|
226
|
-
prompt += `<repository>${
|
|
258
|
+
if (task.repository) {
|
|
259
|
+
prompt += `<repository>${task.repository}</repository>\n`;
|
|
227
260
|
}
|
|
228
|
-
prompt +=
|
|
261
|
+
prompt += "</task>\n";
|
|
229
262
|
|
|
230
263
|
// Add referenced files from @ mentions
|
|
231
264
|
if (referencedFiles.length > 0) {
|
|
232
|
-
prompt +=
|
|
265
|
+
prompt += "\n<referenced_files>\n";
|
|
233
266
|
for (const file of referencedFiles) {
|
|
234
267
|
prompt += `<file path="${file.path}">\n\`\`\`\n${file.content}\n\`\`\`\n</file>\n`;
|
|
235
268
|
}
|
|
236
|
-
prompt +=
|
|
269
|
+
prompt += "</referenced_files>\n";
|
|
237
270
|
}
|
|
238
271
|
|
|
239
272
|
// Add referenced resources from URL mentions
|
|
240
273
|
if (referencedResources.length > 0) {
|
|
241
|
-
prompt +=
|
|
274
|
+
prompt += "\n<referenced_resources>\n";
|
|
242
275
|
for (const resource of referencedResources) {
|
|
243
276
|
prompt += `<resource type="${resource.type}" url="${resource.url}">\n`;
|
|
244
277
|
prompt += `<title>${resource.title}</title>\n`;
|
|
245
278
|
prompt += `<content>${resource.content}</content>\n`;
|
|
246
|
-
prompt +=
|
|
279
|
+
prompt += "</resource>\n";
|
|
247
280
|
}
|
|
248
|
-
prompt +=
|
|
281
|
+
prompt += "</referenced_resources>\n";
|
|
249
282
|
}
|
|
250
283
|
|
|
251
284
|
try {
|
|
252
285
|
const taskFiles = await this.getTaskFiles(task.id);
|
|
253
|
-
const contextFiles = taskFiles.filter(
|
|
286
|
+
const contextFiles = taskFiles.filter(
|
|
287
|
+
(f: SupportingFile) => f.type === "context" || f.type === "reference",
|
|
288
|
+
);
|
|
254
289
|
if (contextFiles.length > 0) {
|
|
255
|
-
prompt +=
|
|
290
|
+
prompt += "\n<supporting_files>\n";
|
|
256
291
|
for (const file of contextFiles) {
|
|
257
292
|
prompt += `<file name="${file.name}" type="${file.type}">\n${file.content}\n</file>\n`;
|
|
258
293
|
}
|
|
259
|
-
prompt +=
|
|
294
|
+
prompt += "</supporting_files>\n";
|
|
260
295
|
}
|
|
261
|
-
} catch (
|
|
262
|
-
this.logger.debug(
|
|
296
|
+
} catch (_error) {
|
|
297
|
+
this.logger.debug("No existing task files found for research", {
|
|
298
|
+
taskId: task.id,
|
|
299
|
+
});
|
|
263
300
|
}
|
|
264
301
|
|
|
265
302
|
return prompt;
|
|
266
303
|
}
|
|
267
304
|
|
|
268
|
-
async buildPlanningPrompt(
|
|
305
|
+
async buildPlanningPrompt(
|
|
306
|
+
task: Task,
|
|
307
|
+
repositoryPath?: string,
|
|
308
|
+
): Promise<string> {
|
|
269
309
|
// Process file references in description
|
|
270
|
-
const { description: descriptionAfterFiles, referencedFiles } =
|
|
271
|
-
task.description,
|
|
272
|
-
repositoryPath
|
|
273
|
-
);
|
|
310
|
+
const { description: descriptionAfterFiles, referencedFiles } =
|
|
311
|
+
await this.processFileReferences(task.description, repositoryPath);
|
|
274
312
|
|
|
275
313
|
// Process URL references in description
|
|
276
|
-
const { description: processedDescription, referencedResources } =
|
|
277
|
-
descriptionAfterFiles
|
|
278
|
-
);
|
|
314
|
+
const { description: processedDescription, referencedResources } =
|
|
315
|
+
await this.processUrlReferences(descriptionAfterFiles);
|
|
279
316
|
|
|
280
|
-
let prompt =
|
|
317
|
+
let prompt = "<task>\n";
|
|
281
318
|
prompt += `<title>${task.title}</title>\n`;
|
|
282
319
|
prompt += `<description>${processedDescription}</description>\n`;
|
|
283
320
|
|
|
284
|
-
if (
|
|
285
|
-
prompt += `<repository>${
|
|
321
|
+
if (task.repository) {
|
|
322
|
+
prompt += `<repository>${task.repository}</repository>\n`;
|
|
286
323
|
}
|
|
287
|
-
prompt +=
|
|
324
|
+
prompt += "</task>\n";
|
|
288
325
|
|
|
289
326
|
// Add referenced files from @ mentions
|
|
290
327
|
if (referencedFiles.length > 0) {
|
|
291
|
-
prompt +=
|
|
328
|
+
prompt += "\n<referenced_files>\n";
|
|
292
329
|
for (const file of referencedFiles) {
|
|
293
330
|
prompt += `<file path="${file.path}">\n\`\`\`\n${file.content}\n\`\`\`\n</file>\n`;
|
|
294
331
|
}
|
|
295
|
-
prompt +=
|
|
332
|
+
prompt += "</referenced_files>\n";
|
|
296
333
|
}
|
|
297
334
|
|
|
298
335
|
// Add referenced resources from URL mentions
|
|
299
336
|
if (referencedResources.length > 0) {
|
|
300
|
-
prompt +=
|
|
337
|
+
prompt += "\n<referenced_resources>\n";
|
|
301
338
|
for (const resource of referencedResources) {
|
|
302
339
|
prompt += `<resource type="${resource.type}" url="${resource.url}">\n`;
|
|
303
340
|
prompt += `<title>${resource.title}</title>\n`;
|
|
304
341
|
prompt += `<content>${resource.content}</content>\n`;
|
|
305
|
-
prompt +=
|
|
342
|
+
prompt += "</resource>\n";
|
|
306
343
|
}
|
|
307
|
-
prompt +=
|
|
344
|
+
prompt += "</referenced_resources>\n";
|
|
308
345
|
}
|
|
309
346
|
|
|
310
347
|
try {
|
|
311
348
|
const taskFiles = await this.getTaskFiles(task.id);
|
|
312
|
-
const contextFiles = taskFiles.filter(
|
|
349
|
+
const contextFiles = taskFiles.filter(
|
|
350
|
+
(f: SupportingFile) => f.type === "context" || f.type === "reference",
|
|
351
|
+
);
|
|
313
352
|
if (contextFiles.length > 0) {
|
|
314
|
-
prompt +=
|
|
353
|
+
prompt += "\n<supporting_files>\n";
|
|
315
354
|
for (const file of contextFiles) {
|
|
316
355
|
prompt += `<file name="${file.name}" type="${file.type}">\n${file.content}\n</file>\n`;
|
|
317
356
|
}
|
|
318
|
-
prompt +=
|
|
357
|
+
prompt += "</supporting_files>\n";
|
|
319
358
|
}
|
|
320
|
-
} catch (
|
|
321
|
-
this.logger.debug(
|
|
359
|
+
} catch (_error) {
|
|
360
|
+
this.logger.debug("No existing task files found for planning", {
|
|
361
|
+
taskId: task.id,
|
|
362
|
+
});
|
|
322
363
|
}
|
|
323
364
|
|
|
324
365
|
const templateVariables = {
|
|
325
366
|
task_id: task.id,
|
|
326
367
|
task_title: task.title,
|
|
327
368
|
task_description: processedDescription,
|
|
328
|
-
date: new Date().toISOString().split(
|
|
329
|
-
repository:
|
|
369
|
+
date: new Date().toISOString().split("T")[0],
|
|
370
|
+
repository: task.repository || "",
|
|
330
371
|
};
|
|
331
372
|
|
|
332
373
|
const planTemplate = await this.generatePlanTemplate(templateVariables);
|
|
333
374
|
|
|
334
|
-
prompt +=
|
|
335
|
-
prompt +=
|
|
336
|
-
|
|
337
|
-
prompt +=
|
|
375
|
+
prompt += "\n<instructions>\n";
|
|
376
|
+
prompt +=
|
|
377
|
+
"Analyze the codebase and create a detailed implementation plan. Use the template structure below, filling each section with specific, actionable information.\n";
|
|
378
|
+
prompt += "</instructions>\n\n";
|
|
379
|
+
prompt += "<plan_template>\n";
|
|
338
380
|
prompt += planTemplate;
|
|
339
|
-
prompt +=
|
|
381
|
+
prompt += "\n</plan_template>";
|
|
340
382
|
|
|
341
383
|
return prompt;
|
|
342
384
|
}
|
|
343
385
|
|
|
344
|
-
async buildExecutionPrompt(
|
|
386
|
+
async buildExecutionPrompt(
|
|
387
|
+
task: Task,
|
|
388
|
+
repositoryPath?: string,
|
|
389
|
+
): Promise<string> {
|
|
345
390
|
// Process file references in description
|
|
346
|
-
const { description: descriptionAfterFiles, referencedFiles } =
|
|
347
|
-
task.description,
|
|
348
|
-
repositoryPath
|
|
349
|
-
);
|
|
391
|
+
const { description: descriptionAfterFiles, referencedFiles } =
|
|
392
|
+
await this.processFileReferences(task.description, repositoryPath);
|
|
350
393
|
|
|
351
394
|
// Process URL references in description
|
|
352
|
-
const { description: processedDescription, referencedResources } =
|
|
353
|
-
descriptionAfterFiles
|
|
354
|
-
);
|
|
395
|
+
const { description: processedDescription, referencedResources } =
|
|
396
|
+
await this.processUrlReferences(descriptionAfterFiles);
|
|
355
397
|
|
|
356
|
-
let prompt =
|
|
398
|
+
let prompt = "<task>\n";
|
|
357
399
|
prompt += `<title>${task.title}</title>\n`;
|
|
358
400
|
prompt += `<description>${processedDescription}</description>\n`;
|
|
359
401
|
|
|
360
|
-
if (
|
|
361
|
-
prompt += `<repository>${
|
|
402
|
+
if (task.repository) {
|
|
403
|
+
prompt += `<repository>${task.repository}</repository>\n`;
|
|
362
404
|
}
|
|
363
|
-
prompt +=
|
|
405
|
+
prompt += "</task>\n";
|
|
364
406
|
|
|
365
407
|
// Add referenced files from @ mentions
|
|
366
408
|
if (referencedFiles.length > 0) {
|
|
367
|
-
prompt +=
|
|
409
|
+
prompt += "\n<referenced_files>\n";
|
|
368
410
|
for (const file of referencedFiles) {
|
|
369
411
|
prompt += `<file path="${file.path}">\n\`\`\`\n${file.content}\n\`\`\`\n</file>\n`;
|
|
370
412
|
}
|
|
371
|
-
prompt +=
|
|
413
|
+
prompt += "</referenced_files>\n";
|
|
372
414
|
}
|
|
373
415
|
|
|
374
416
|
// Add referenced resources from URL mentions
|
|
375
417
|
if (referencedResources.length > 0) {
|
|
376
|
-
prompt +=
|
|
418
|
+
prompt += "\n<referenced_resources>\n";
|
|
377
419
|
for (const resource of referencedResources) {
|
|
378
420
|
prompt += `<resource type="${resource.type}" url="${resource.url}">\n`;
|
|
379
421
|
prompt += `<title>${resource.title}</title>\n`;
|
|
380
422
|
prompt += `<content>${resource.content}</content>\n`;
|
|
381
|
-
prompt +=
|
|
423
|
+
prompt += "</resource>\n";
|
|
382
424
|
}
|
|
383
|
-
prompt +=
|
|
425
|
+
prompt += "</referenced_resources>\n";
|
|
384
426
|
}
|
|
385
427
|
|
|
386
428
|
try {
|
|
387
429
|
const taskFiles = await this.getTaskFiles(task.id);
|
|
388
|
-
const hasPlan = taskFiles.some((f:
|
|
389
|
-
const todosFile = taskFiles.find(
|
|
430
|
+
const hasPlan = taskFiles.some((f: SupportingFile) => f.type === "plan");
|
|
431
|
+
const todosFile = taskFiles.find(
|
|
432
|
+
(f: SupportingFile) => f.name === "todos.json",
|
|
433
|
+
);
|
|
390
434
|
|
|
391
435
|
if (taskFiles.length > 0) {
|
|
392
|
-
prompt +=
|
|
436
|
+
prompt += "\n<context>\n";
|
|
393
437
|
for (const file of taskFiles) {
|
|
394
|
-
if (file.type ===
|
|
438
|
+
if (file.type === "plan") {
|
|
395
439
|
prompt += `<plan>\n${file.content}\n</plan>\n`;
|
|
396
|
-
} else if (file.name ===
|
|
397
|
-
// skip - we do this below
|
|
398
|
-
continue;
|
|
440
|
+
} else if (file.name === "todos.json") {
|
|
399
441
|
} else {
|
|
400
442
|
prompt += `<file name="${file.name}" type="${file.type}">\n${file.content}\n</file>\n`;
|
|
401
443
|
}
|
|
402
444
|
}
|
|
403
|
-
prompt +=
|
|
445
|
+
prompt += "</context>\n";
|
|
404
446
|
}
|
|
405
447
|
|
|
406
448
|
// Add todos context if resuming work
|
|
@@ -408,37 +450,48 @@ export class PromptBuilder {
|
|
|
408
450
|
try {
|
|
409
451
|
const todos = JSON.parse(todosFile.content);
|
|
410
452
|
if (todos.items && todos.items.length > 0) {
|
|
411
|
-
prompt +=
|
|
412
|
-
prompt +=
|
|
453
|
+
prompt += "\n<previous_todos>\n";
|
|
454
|
+
prompt +=
|
|
455
|
+
"You previously created the following todo list for this task:\n\n";
|
|
413
456
|
for (const item of todos.items) {
|
|
414
|
-
const statusIcon =
|
|
457
|
+
const statusIcon =
|
|
458
|
+
item.status === "completed"
|
|
459
|
+
? "✓"
|
|
460
|
+
: item.status === "in_progress"
|
|
461
|
+
? "▶"
|
|
462
|
+
: "○";
|
|
415
463
|
prompt += `${statusIcon} [${item.status}] ${item.content}\n`;
|
|
416
464
|
}
|
|
417
465
|
prompt += `\nProgress: ${todos.metadata.completed}/${todos.metadata.total} completed\n`;
|
|
418
|
-
prompt +=
|
|
419
|
-
|
|
466
|
+
prompt +=
|
|
467
|
+
"\nYou can reference this list when resuming work or create an updated list as needed.\n";
|
|
468
|
+
prompt += "</previous_todos>\n";
|
|
420
469
|
}
|
|
421
470
|
} catch (error) {
|
|
422
|
-
this.logger.debug(
|
|
471
|
+
this.logger.debug("Failed to parse todos.json for context", {
|
|
472
|
+
error,
|
|
473
|
+
});
|
|
423
474
|
}
|
|
424
475
|
}
|
|
425
476
|
|
|
426
|
-
prompt +=
|
|
477
|
+
prompt += "\n<instructions>\n";
|
|
427
478
|
if (hasPlan) {
|
|
428
|
-
prompt +=
|
|
479
|
+
prompt +=
|
|
480
|
+
"Implement the changes described in the execution plan. Follow the plan step-by-step and make the necessary file modifications.\n";
|
|
429
481
|
} else {
|
|
430
|
-
prompt +=
|
|
482
|
+
prompt +=
|
|
483
|
+
"Implement the changes described in the task. Make the necessary file modifications to complete the task.\n";
|
|
431
484
|
}
|
|
432
|
-
prompt +=
|
|
433
|
-
} catch (
|
|
434
|
-
this.logger.debug(
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
prompt +=
|
|
485
|
+
prompt += "</instructions>";
|
|
486
|
+
} catch (_error) {
|
|
487
|
+
this.logger.debug("No supporting files found for execution", {
|
|
488
|
+
taskId: task.id,
|
|
489
|
+
});
|
|
490
|
+
prompt += "\n<instructions>\n";
|
|
491
|
+
prompt += "Implement the changes described in the task.\n";
|
|
492
|
+
prompt += "</instructions>";
|
|
438
493
|
}
|
|
439
494
|
|
|
440
495
|
return prompt;
|
|
441
496
|
}
|
|
442
497
|
}
|
|
443
|
-
|
|
444
|
-
|