@posthog/agent 1.24.2 → 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.
- package/dist/_virtual/_commonjsHelpers.js +6 -0
- package/dist/_virtual/_commonjsHelpers.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 +610 -0
- package/dist/node_modules/@agentclientprotocol/sdk/dist/acp.js.map +1 -0
- package/dist/node_modules/@agentclientprotocol/sdk/dist/schema.js +875 -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 +1112 -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 +655 -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 +466 -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 +18 -28
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +195 -175
- 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 +53 -0
- package/dist/src/session-store.d.ts.map +1 -0
- package/dist/src/session-store.js +195 -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 +810 -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 +1498 -0
- package/src/adapters/claude/mcp-server.ts +810 -0
- package/src/adapters/claude/tools.ts +609 -0
- package/src/adapters/claude/utils.ts +267 -0
- package/src/agent.ts +511 -447
- 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 +244 -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 +884 -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/dist/src/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../src/types.ts"],"sourcesContent":["\n// import and export to keep a single type file\nimport type { CanUseTool, PermissionResult } from '@anthropic-ai/claude-agent-sdk';\nexport type { CanUseTool, PermissionResult };\n\n// PostHog Task model (matches Array's OpenAPI schema)\nexport interface Task {\n id: string;\n title: string;\n description: string;\n origin_product: 'error_tracking' | 'eval_clusters' | 'user_created' | 'support_queue' | 'session_summaries';\n position?: number;\n github_integration?: number | null;\n repository_config?: unknown; // JSONField\n repository_list: string;\n primary_repository: string;\n created_at: string;\n updated_at: string;\n\n // DEPRECATED: These fields have been moved to TaskRun\n // Use task.latest_run instead\n current_stage?: string | null;\n github_branch?: string | null;\n github_pr_url?: string | null;\n latest_run?: TaskRun;\n}\n\n// Log entry structure for TaskRun.log\nexport interface LogEntry {\n type: string; // e.g., \"info\", \"warning\", \"error\", \"success\", \"debug\"\n message: string;\n [key: string]: unknown; // Allow additional fields\n}\n\nexport type ArtifactType = 'plan' | 'context' | 'reference' | 'output' | 'artifact';\n\nexport interface TaskRunArtifact {\n name: string;\n type: ArtifactType;\n size?: number;\n content_type?: string;\n storage_path?: string;\n uploaded_at?: string;\n}\n\n// TaskRun model - represents individual execution runs of tasks\nexport interface TaskRun {\n id: string;\n task: string; // Task ID\n team: number;\n branch: string | null;\n status: 'started' | 'in_progress' | 'completed' | 'failed';\n log_url?: string; // Presigned S3 URL for log access (valid for 1 hour)\n error_message: string | null;\n output: Record<string, unknown> | null; // Structured output (PR URL, commit SHA, etc.)\n state: Record<string, unknown>; // Intermediate run state (defaults to {}, never null)\n artifacts?: TaskRunArtifact[];\n created_at: string;\n updated_at: string;\n completed_at: string | null;\n}\n\nexport interface SupportingFile {\n name: string;\n content: string;\n type: ArtifactType;\n created_at: string;\n}\n\nexport interface TaskArtifactUploadPayload {\n name: string;\n type: ArtifactType;\n content: string;\n content_type?: string;\n}\n\nexport enum PermissionMode {\n PLAN = \"plan\",\n DEFAULT = \"default\",\n ACCEPT_EDITS = \"acceptEdits\",\n BYPASS = \"bypassPermissions\"\n}\n\nexport interface ExecutionOptions {\n repositoryPath?: string;\n permissionMode?: PermissionMode;\n}\n\nexport interface TaskExecutionOptions {\n repositoryPath?: string;\n permissionMode?: PermissionMode;\n isCloudMode?: boolean; // Determines local vs cloud behavior (local pauses after each phase)\n createPR?: boolean; // Whether to create PR after build (defaults to false if local. This setting has no effect if isCloudMode is true.)\n autoProgress?: boolean;\n queryOverrides?: Record<string, any>;\n // Fine-grained permission control (only applied to build phase)\n // See: https://docs.claude.com/en/api/agent-sdk/permissions\n canUseTool?: CanUseTool;\n}\n\n// Base event with timestamp\ninterface BaseEvent {\n ts: number;\n}\n\n// Streaming content events\nexport interface TokenEvent extends BaseEvent {\n type: 'token';\n content: string;\n contentType?: 'text' | 'thinking' | 'tool_input';\n}\n\nexport interface ContentBlockStartEvent extends BaseEvent {\n type: 'content_block_start';\n index: number;\n contentType: 'text' | 'tool_use' | 'thinking';\n toolName?: string;\n toolId?: string;\n}\n\nexport interface ContentBlockStopEvent extends BaseEvent {\n type: 'content_block_stop';\n index: number;\n}\n\n// Tool events\nexport interface ToolCallEvent extends BaseEvent {\n type: 'tool_call';\n toolName: string;\n callId: string;\n args: Record<string, any>;\n parentToolUseId?: string | null; // For nested tool calls (subagents)\n // Tool metadata (enriched by adapter for UI consumption)\n tool?: import('./tools/types.js').Tool;\n category?: import('./tools/types.js').ToolCategory;\n}\n\nexport interface ToolResultEvent extends BaseEvent {\n type: 'tool_result';\n toolName: string;\n callId: string;\n result: any;\n isError?: boolean; // Whether the tool execution failed\n parentToolUseId?: string | null; // For nested tool calls (subagents)\n // Tool metadata (enriched by adapter for UI consumption)\n tool?: import('./tools/types.js').Tool;\n category?: import('./tools/types.js').ToolCategory;\n}\n\n// Message lifecycle events\nexport interface MessageStartEvent extends BaseEvent {\n type: 'message_start';\n messageId?: string;\n model?: string;\n}\n\nexport interface MessageDeltaEvent extends BaseEvent {\n type: 'message_delta';\n stopReason?: string;\n stopSequence?: string;\n usage?: {\n outputTokens: number;\n };\n}\n\nexport interface MessageStopEvent extends BaseEvent {\n type: 'message_stop';\n}\n\n// User message events\nexport interface UserMessageEvent extends BaseEvent {\n type: 'user_message';\n content: string;\n isSynthetic?: boolean;\n}\n\n// System events\nexport interface StatusEvent extends BaseEvent {\n type: 'status';\n phase: string;\n // Common optional fields (varies by phase):\n kind?: string; // Kind of status (plan, implementation)\n branch?: string; // Git branch name\n prUrl?: string; // Pull request URL\n taskId?: string; // Task identifier\n messageId?: string; // Claude message ID\n model?: string; // Model name\n [key: string]: any; // Allow additional fields\n}\n\nexport interface InitEvent extends BaseEvent {\n type: 'init';\n model: string;\n tools: string[];\n permissionMode: string;\n cwd: string;\n apiKeySource: string;\n agents?: string[];\n slashCommands?: string[];\n outputStyle?: string;\n mcpServers?: Array<{ name: string; status: string }>;\n}\n\nexport interface CompactBoundaryEvent extends BaseEvent {\n type: 'compact_boundary';\n trigger: 'manual' | 'auto';\n preTokens: number;\n}\n\n// Result events\nexport interface DoneEvent extends BaseEvent {\n type: 'done';\n result?: string; // Final summary text from Claude\n durationMs?: number;\n durationApiMs?: number; // API-only duration (excluding local processing)\n numTurns?: number;\n totalCostUsd?: number;\n usage?: any;\n modelUsage?: { // Per-model usage breakdown\n [modelName: string]: {\n inputTokens: number;\n outputTokens: number;\n cacheReadInputTokens: number;\n cacheCreationInputTokens: number;\n webSearchRequests: number;\n costUSD: number;\n contextWindow: number;\n };\n };\n permissionDenials?: Array<{ // Tools that were denied by permissions\n tool_name: string;\n tool_use_id: string;\n tool_input: Record<string, unknown>;\n }>;\n}\n\nexport interface ErrorEvent extends BaseEvent {\n type: 'error';\n message: string;\n error?: any;\n errorType?: string;\n context?: Record<string, any>; // Partial error context for debugging\n sdkError?: any; // Original SDK error object\n}\n\n// Metric and artifact events (general purpose, not tool-specific)\nexport interface MetricEvent extends BaseEvent {\n type: 'metric';\n key: string;\n value: number;\n unit?: string;\n}\n\nexport interface ArtifactEvent extends BaseEvent {\n type: 'artifact';\n kind: string;\n content: any;\n}\n\nexport interface RawSDKEvent extends BaseEvent {\n type: 'raw_sdk_event';\n sdkMessage: any; // Full SDK message for debugging\n}\n\nexport type AgentEvent =\n | TokenEvent\n | ContentBlockStartEvent\n | ContentBlockStopEvent\n | ToolCallEvent\n | ToolResultEvent\n | MessageStartEvent\n | MessageDeltaEvent\n | MessageStopEvent\n | UserMessageEvent\n | StatusEvent\n | InitEvent\n | CompactBoundaryEvent\n | DoneEvent\n | ErrorEvent\n | MetricEvent\n | ArtifactEvent\n | RawSDKEvent;\n\nexport interface ExecutionResult {\n results: any[];\n}\n\nexport interface PlanResult {\n plan: string;\n}\n\nexport interface TaskExecutionResult {\n task: Task;\n plan?: string;\n executionResult?: ExecutionResult;\n}\n\n// MCP Server configuration types (re-exported from Claude SDK for convenience)\nexport type McpServerConfig = {\n type?: 'stdio';\n command: string;\n args?: string[];\n env?: Record<string, string>;\n} | {\n type: 'sse';\n url: string;\n headers?: Record<string, string>;\n} | {\n type: 'http';\n url: string;\n headers?: Record<string, string>;\n} | {\n type: 'sdk';\n name: string;\n instance?: any; // McpServer instance\n};\n\nexport interface AgentConfig {\n workingDirectory?: string;\n onEvent?: (event: AgentEvent) => void;\n\n // PostHog API configuration\n posthogApiUrl: string;\n posthogApiKey: string;\n posthogProjectId: number;\n\n // PostHog MCP configuration\n posthogMcpUrl?: string;\n\n\n // MCP Server configuration\n // Additional MCP servers (PostHog MCP is always included by default)\n // You can override the PostHog MCP config by providing mcpServers.posthog\n mcpServers?: Record<string, McpServerConfig>;\n\n // Logging configuration\n debug?: boolean;\n\n // Fine-grained permission control for direct run() calls\n // See: https://docs.claude.com/en/api/agent-sdk/permissions\n canUseTool?: CanUseTool;\n}\n\nexport interface PostHogAPIConfig {\n apiUrl: string;\n apiKey: string;\n projectId: number;\n}\n\n// URL mention types\nexport type ResourceType = 'error' | 'experiment' | 'insight' | 'feature_flag' | 'generic';\n\nexport interface PostHogResource {\n type: ResourceType;\n id: string;\n url: string;\n title?: string;\n content: string;\n metadata?: Record<string, any>;\n}\n\nexport interface UrlMention {\n url: string;\n type: ResourceType;\n id?: string;\n label?: string;\n}\n\n// Research evaluation types\nexport interface ResearchQuestion {\n id: string;\n question: string;\n options: string[];\n}\n\nexport interface ResearchAnswer {\n questionId: string;\n selectedOption: string;\n customInput?: string;\n}\n\nexport interface ResearchEvaluation {\n actionabilityScore: number; // 0-1 confidence score\n context: string; // brief summary for planning\n keyFiles: string[]; // files needing modification\n blockers?: string[]; // what's preventing full confidence\n questions?: ResearchQuestion[]; // only if score < 0.7\n answered?: boolean; // whether questions have been answered\n answers?: ResearchAnswer[]; // user's answers to questions\n}"],"names":[],"mappings":"IA4EY;AAAZ,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,cAAA,CAAA,cAAA,CAAA,GAAA,aAA4B;AAC5B,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,mBAA4B;AAC9B,CAAC,EALW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../src/types.ts"],"sourcesContent":["// import and export to keep a single type file\n\nimport type { SessionNotification } from \"@agentclientprotocol/sdk\";\nimport type {\n CanUseTool,\n PermissionResult,\n} from \"@anthropic-ai/claude-agent-sdk\";\nexport type { CanUseTool, PermissionResult, SessionNotification };\n\n/**\n * Stored custom notification following ACP extensibility model.\n * Custom notifications use underscore-prefixed methods (e.g., `_posthog/phase_start`).\n * See: https://agentclientprotocol.com/docs/extensibility\n */\nexport interface StoredNotification {\n type: \"notification\";\n /** When this notification was stored */\n timestamp: string;\n /** JSON-RPC 2.0 notification (no id field = notification, not request) */\n notification: {\n jsonrpc: \"2.0\";\n method: string;\n params?: Record<string, unknown>;\n };\n}\n\n/**\n * Type alias for stored log entries.\n */\nexport type StoredEntry = StoredNotification;\n\n// PostHog Task model (matches Array's OpenAPI schema)\nexport interface Task {\n id: string;\n task_number?: number;\n slug?: string;\n title: string;\n description: string;\n origin_product:\n | \"error_tracking\"\n | \"eval_clusters\"\n | \"user_created\"\n | \"support_queue\"\n | \"session_summaries\";\n github_integration?: number | null;\n repository: string; // Format: \"organization/repository\" (e.g., \"posthog/posthog-js\")\n json_schema?: Record<string, unknown> | null; // JSON schema for task output validation\n created_at: string;\n updated_at: string;\n created_by?: {\n id: number;\n uuid: string;\n distinct_id: string;\n first_name: string;\n email: string;\n };\n latest_run?: TaskRun;\n}\n\n// Log entry structure for TaskRun.log\n\nexport type ArtifactType =\n | \"plan\"\n | \"context\"\n | \"reference\"\n | \"output\"\n | \"artifact\";\n\nexport interface TaskRunArtifact {\n name: string;\n type: ArtifactType;\n size?: number;\n content_type?: string;\n storage_path?: string;\n uploaded_at?: string;\n}\n\nexport type TaskRunStatus =\n | \"not_started\"\n | \"queued\"\n | \"in_progress\"\n | \"completed\"\n | \"failed\"\n | \"cancelled\";\n\nexport type TaskRunEnvironment = \"local\" | \"cloud\";\n\n// TaskRun model - represents individual execution runs of tasks\nexport interface TaskRun {\n id: string;\n task: string; // Task ID\n team: number;\n branch: string | null;\n stage: string | null; // Current stage (e.g., 'research', 'plan', 'build')\n environment: TaskRunEnvironment;\n status: TaskRunStatus;\n log_url: string;\n error_message: string | null;\n output: Record<string, unknown> | null; // Structured output (PR URL, commit SHA, etc.)\n state: Record<string, unknown>; // Intermediate run state (defaults to {}, never null)\n artifacts?: TaskRunArtifact[];\n created_at: string;\n updated_at: string;\n completed_at: string | null;\n}\n\nexport interface SupportingFile {\n name: string;\n content: string;\n type: ArtifactType;\n created_at: string;\n}\n\nexport interface TaskArtifactUploadPayload {\n name: string;\n type: ArtifactType;\n content: string;\n content_type?: string;\n}\n\nexport enum PermissionMode {\n PLAN = \"plan\",\n DEFAULT = \"default\",\n ACCEPT_EDITS = \"acceptEdits\",\n BYPASS = \"bypassPermissions\",\n}\n\nexport interface ExecutionOptions {\n repositoryPath?: string;\n permissionMode?: PermissionMode;\n}\n\nexport interface TaskExecutionOptions {\n repositoryPath?: string;\n permissionMode?: PermissionMode;\n isCloudMode?: boolean; // Determines local vs cloud behavior (local pauses after each phase)\n createPR?: boolean; // Whether to create PR after build (defaults to false if local. This setting has no effect if isCloudMode is true.)\n autoProgress?: boolean;\n queryOverrides?: Record<string, unknown>;\n // Fine-grained permission control (only applied to build phase)\n // See: https://docs.claude.com/en/api/agent-sdk/permissions\n canUseTool?: CanUseTool;\n skipGitBranch?: boolean; // Skip creating a task-specific git branch\n}\n\nexport interface ExecutionResult {\n // biome-ignore lint/suspicious/noExplicitAny: Results array contains varying SDK response types\n results: any[];\n}\n\nexport interface PlanResult {\n plan: string;\n}\n\nexport interface TaskExecutionResult {\n task: Task;\n plan?: string;\n executionResult?: ExecutionResult;\n}\n\n// MCP Server configuration types (re-exported from Claude SDK for convenience)\nexport type McpServerConfig =\n | {\n type?: \"stdio\";\n command: string;\n args?: string[];\n env?: Record<string, string>;\n }\n | {\n type: \"sse\";\n url: string;\n headers?: Record<string, string>;\n }\n | {\n type: \"http\";\n url: string;\n headers?: Record<string, string>;\n }\n | {\n type: \"sdk\";\n name: string;\n // biome-ignore lint/suspicious/noExplicitAny: McpServer instance type from external SDK\n instance?: any;\n };\n\nexport type LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\";\n\nexport type OnLogCallback = (\n level: LogLevel,\n scope: string,\n message: string,\n data?: unknown,\n) => void;\n\nexport interface AgentConfig {\n workingDirectory?: string;\n\n // PostHog API configuration (optional - enables PostHog integration when provided)\n posthogApiUrl?: string;\n posthogApiKey?: string;\n posthogProjectId?: number;\n\n // PostHog MCP configuration\n posthogMcpUrl?: string;\n\n // MCP Server configuration\n // Additional MCP servers (PostHog MCP is always included by default)\n // You can override the PostHog MCP config by providing mcpServers.posthog\n mcpServers?: Record<string, McpServerConfig>;\n\n // Logging configuration\n debug?: boolean;\n onLog?: OnLogCallback;\n\n // Fine-grained permission control for direct run() calls\n // See: https://docs.claude.com/en/api/agent-sdk/permissions\n canUseTool?: CanUseTool;\n}\n\nexport interface PostHogAPIConfig {\n apiUrl: string;\n apiKey: string;\n projectId: number;\n}\n\n// URL mention types\nexport type ResourceType =\n | \"error\"\n | \"experiment\"\n | \"insight\"\n | \"feature_flag\"\n | \"generic\";\n\nexport interface PostHogResource {\n type: ResourceType;\n id: string;\n url: string;\n title?: string;\n content: string;\n // biome-ignore lint/suspicious/noExplicitAny: Metadata contains varying resource-specific fields\n metadata?: Record<string, any>;\n}\n\nexport interface UrlMention {\n url: string;\n type: ResourceType;\n id?: string;\n label?: string;\n}\n\n// Research evaluation types\nexport interface ResearchQuestion {\n id: string;\n question: string;\n options: string[];\n}\n\nexport interface ResearchAnswer {\n questionId: string;\n selectedOption: string;\n customInput?: string;\n}\n\nexport interface ResearchEvaluation {\n actionabilityScore: number; // 0-1 confidence score\n context: string; // brief summary for planning\n keyFiles: string[]; // files needing modification\n blockers?: string[]; // what's preventing full confidence\n questions?: ResearchQuestion[]; // only if score < 0.7\n answered?: boolean; // whether questions have been answered\n answers?: ResearchAnswer[]; // user's answers to questions\n}\n\n// Worktree types for parallel task development\nexport interface WorktreeInfo {\n worktreePath: string;\n worktreeName: string;\n branchName: string;\n baseBranch: string;\n createdAt: string;\n}\n"],"names":[],"mappings":"AAAA;IAwHY;AAAZ,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,cAAA,CAAA,cAAA,CAAA,GAAA,aAA4B;AAC5B,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,mBAA4B;AAC9B,CAAC,EALW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { LogLevel as LogLevelType, OnLogCallback } from "../types.js";
|
|
1
2
|
/**
|
|
2
|
-
* Simple logger utility with configurable debug mode
|
|
3
|
+
* Simple logger utility with configurable debug mode and external log forwarding
|
|
3
4
|
*/
|
|
4
5
|
export declare enum LogLevel {
|
|
5
6
|
ERROR = 0,
|
|
@@ -10,19 +11,26 @@ export declare enum LogLevel {
|
|
|
10
11
|
export interface LoggerConfig {
|
|
11
12
|
debug?: boolean;
|
|
12
13
|
prefix?: string;
|
|
14
|
+
scope?: string;
|
|
15
|
+
onLog?: OnLogCallback;
|
|
13
16
|
}
|
|
14
17
|
export declare class Logger {
|
|
15
18
|
private debugEnabled;
|
|
16
19
|
private prefix;
|
|
20
|
+
private scope;
|
|
21
|
+
private onLog?;
|
|
17
22
|
constructor(config?: LoggerConfig);
|
|
18
23
|
setDebug(enabled: boolean): void;
|
|
24
|
+
setOnLog(onLog: OnLogCallback | undefined): void;
|
|
19
25
|
private formatMessage;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
26
|
+
private emitLog;
|
|
27
|
+
error(message: string, error?: Error | unknown): void;
|
|
28
|
+
warn(message: string, data?: unknown): void;
|
|
29
|
+
info(message: string, data?: unknown): void;
|
|
30
|
+
debug(message: string, data?: unknown): void;
|
|
31
|
+
log(level: LogLevelType, message: string, data?: unknown, scope?: string): void;
|
|
24
32
|
/**
|
|
25
|
-
* Create a child logger with additional prefix
|
|
33
|
+
* Create a child logger with additional prefix and scope
|
|
26
34
|
*/
|
|
27
35
|
child(childPrefix: string): Logger;
|
|
28
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,QAAQ;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE3E;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACV;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAC,CAAgB;gBAElB,MAAM,GAAE,YAAiB;IAOrC,QAAQ,CAAC,OAAO,EAAE,OAAO;IAIzB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS;IAIzC,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,OAAO;IAaf,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO;IAS9C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAIpC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAIpC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAIrC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM;IASxE;;OAEG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;CAQnC"}
|
package/dist/src/utils/logger.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Simple logger utility with configurable debug mode
|
|
2
|
+
* Simple logger utility with configurable debug mode and external log forwarding
|
|
3
3
|
*/
|
|
4
4
|
var LogLevel;
|
|
5
5
|
(function (LogLevel) {
|
|
@@ -11,55 +11,70 @@ var LogLevel;
|
|
|
11
11
|
class Logger {
|
|
12
12
|
debugEnabled;
|
|
13
13
|
prefix;
|
|
14
|
+
scope;
|
|
15
|
+
onLog;
|
|
14
16
|
constructor(config = {}) {
|
|
15
17
|
this.debugEnabled = config.debug ?? false;
|
|
16
|
-
this.prefix = config.prefix ??
|
|
18
|
+
this.prefix = config.prefix ?? "[PostHog Agent]";
|
|
19
|
+
this.scope = config.scope ?? "agent";
|
|
20
|
+
this.onLog = config.onLog;
|
|
17
21
|
}
|
|
18
22
|
setDebug(enabled) {
|
|
19
23
|
this.debugEnabled = enabled;
|
|
20
24
|
}
|
|
25
|
+
setOnLog(onLog) {
|
|
26
|
+
this.onLog = onLog;
|
|
27
|
+
}
|
|
21
28
|
formatMessage(level, message, data) {
|
|
22
29
|
const timestamp = new Date().toISOString();
|
|
23
|
-
const base = `${timestamp} ${this.prefix} ${level} ${message}`;
|
|
30
|
+
const base = `${timestamp} ${this.prefix} [${level}] ${message}`;
|
|
24
31
|
if (data !== undefined) {
|
|
25
32
|
return `${base} ${JSON.stringify(data, null, 2)}`;
|
|
26
33
|
}
|
|
27
34
|
return base;
|
|
28
35
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
message: error.message,
|
|
34
|
-
stack: error.stack
|
|
35
|
-
}));
|
|
36
|
+
emitLog(level, message, data) {
|
|
37
|
+
if (this.onLog) {
|
|
38
|
+
this.onLog(level, this.scope, message, data);
|
|
39
|
+
return;
|
|
36
40
|
}
|
|
37
|
-
|
|
38
|
-
|
|
41
|
+
const shouldLog = this.debugEnabled || level === "error";
|
|
42
|
+
if (shouldLog) {
|
|
43
|
+
console[level](this.formatMessage(level.toLowerCase(), message, data));
|
|
39
44
|
}
|
|
40
45
|
}
|
|
46
|
+
error(message, error) {
|
|
47
|
+
const data = error instanceof Error
|
|
48
|
+
? { message: error.message, stack: error.stack }
|
|
49
|
+
: error;
|
|
50
|
+
this.emitLog("error", message, data);
|
|
51
|
+
}
|
|
41
52
|
warn(message, data) {
|
|
42
|
-
|
|
43
|
-
console.warn(this.formatMessage('[WARN]', message, data));
|
|
44
|
-
}
|
|
53
|
+
this.emitLog("warn", message, data);
|
|
45
54
|
}
|
|
46
55
|
info(message, data) {
|
|
47
|
-
|
|
48
|
-
console.log(this.formatMessage('[INFO]', message, data));
|
|
49
|
-
}
|
|
56
|
+
this.emitLog("info", message, data);
|
|
50
57
|
}
|
|
51
58
|
debug(message, data) {
|
|
52
|
-
|
|
53
|
-
|
|
59
|
+
this.emitLog("debug", message, data);
|
|
60
|
+
}
|
|
61
|
+
log(level, message, data, scope) {
|
|
62
|
+
const originalScope = this.scope;
|
|
63
|
+
if (scope) {
|
|
64
|
+
this.scope = scope;
|
|
54
65
|
}
|
|
66
|
+
this.emitLog(level, message, data);
|
|
67
|
+
this.scope = originalScope;
|
|
55
68
|
}
|
|
56
69
|
/**
|
|
57
|
-
* Create a child logger with additional prefix
|
|
70
|
+
* Create a child logger with additional prefix and scope
|
|
58
71
|
*/
|
|
59
72
|
child(childPrefix) {
|
|
60
73
|
return new Logger({
|
|
61
74
|
debug: this.debugEnabled,
|
|
62
|
-
prefix: `${this.prefix} [${childPrefix}]
|
|
75
|
+
prefix: `${this.prefix} [${childPrefix}]`,
|
|
76
|
+
scope: `${this.scope}:${childPrefix}`,
|
|
77
|
+
onLog: this.onLog,
|
|
63
78
|
});
|
|
64
79
|
}
|
|
65
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sources":["../../../src/utils/logger.ts"],"sourcesContent":["/**\n * Simple logger utility with configurable debug mode\n */\nexport enum LogLevel {\n
|
|
1
|
+
{"version":3,"file":"logger.js","sources":["../../../src/utils/logger.ts"],"sourcesContent":["import type { LogLevel as LogLevelType, OnLogCallback } from \"../types.js\";\n\n/**\n * Simple logger utility with configurable debug mode and external log forwarding\n */\nexport enum LogLevel {\n ERROR = 0,\n WARN = 1,\n INFO = 2,\n DEBUG = 3,\n}\n\nexport interface LoggerConfig {\n debug?: boolean;\n prefix?: string;\n scope?: string;\n onLog?: OnLogCallback;\n}\n\nexport class Logger {\n private debugEnabled: boolean;\n private prefix: string;\n private scope: string;\n private onLog?: OnLogCallback;\n\n constructor(config: LoggerConfig = {}) {\n this.debugEnabled = config.debug ?? false;\n this.prefix = config.prefix ?? \"[PostHog Agent]\";\n this.scope = config.scope ?? \"agent\";\n this.onLog = config.onLog;\n }\n\n setDebug(enabled: boolean) {\n this.debugEnabled = enabled;\n }\n\n setOnLog(onLog: OnLogCallback | undefined) {\n this.onLog = onLog;\n }\n\n private formatMessage(\n level: string,\n message: string,\n data?: unknown,\n ): string {\n const timestamp = new Date().toISOString();\n const base = `${timestamp} ${this.prefix} [${level}] ${message}`;\n\n if (data !== undefined) {\n return `${base} ${JSON.stringify(data, null, 2)}`;\n }\n\n return base;\n }\n\n private emitLog(level: LogLevelType, message: string, data?: unknown) {\n if (this.onLog) {\n this.onLog(level, this.scope, message, data);\n return;\n }\n\n const shouldLog = this.debugEnabled || level === \"error\";\n\n if (shouldLog) {\n console[level](this.formatMessage(level.toLowerCase(), message, data));\n }\n }\n\n error(message: string, error?: Error | unknown) {\n const data =\n error instanceof Error\n ? { message: error.message, stack: error.stack }\n : error;\n\n this.emitLog(\"error\", message, data);\n }\n\n warn(message: string, data?: unknown) {\n this.emitLog(\"warn\", message, data);\n }\n\n info(message: string, data?: unknown) {\n this.emitLog(\"info\", message, data);\n }\n\n debug(message: string, data?: unknown) {\n this.emitLog(\"debug\", message, data);\n }\n\n log(level: LogLevelType, message: string, data?: unknown, scope?: string) {\n const originalScope = this.scope;\n if (scope) {\n this.scope = scope;\n }\n this.emitLog(level, message, data);\n this.scope = originalScope;\n }\n\n /**\n * Create a child logger with additional prefix and scope\n */\n child(childPrefix: string): Logger {\n return new Logger({\n debug: this.debugEnabled,\n prefix: `${this.prefix} [${childPrefix}]`,\n scope: `${this.scope}:${childPrefix}`,\n onLog: this.onLog,\n });\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Logger } from "./logger.js";
|
|
2
|
+
type MessageCallback = (line: string) => void;
|
|
3
|
+
export interface TappedStreamOptions {
|
|
4
|
+
onMessage: MessageCallback;
|
|
5
|
+
logger?: Logger;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Creates a WritableStream wrapper that taps all newline-delimited messages,
|
|
9
|
+
* forwarding each complete line for persistence.
|
|
10
|
+
*
|
|
11
|
+
* This aligns with ACP's transport model - all messages flow through
|
|
12
|
+
* newline-delimited JSON-RPC streams, so we intercept at the transport layer
|
|
13
|
+
* and persist everything.
|
|
14
|
+
*/
|
|
15
|
+
export declare function createTappedWritableStream(underlying: WritableStream<Uint8Array>, options: TappedStreamOptions): WritableStream<Uint8Array>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=tapped-stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tapped-stream.d.ts","sourceRoot":"","sources":["../../../src/utils/tapped-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,KAAK,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAE9C,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,eAAe,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,EACtC,OAAO,EAAE,mBAAmB,GAC3B,cAAc,CAAC,UAAU,CAAC,CAuC5B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a WritableStream wrapper that taps all newline-delimited messages,
|
|
3
|
+
* forwarding each complete line for persistence.
|
|
4
|
+
*
|
|
5
|
+
* This aligns with ACP's transport model - all messages flow through
|
|
6
|
+
* newline-delimited JSON-RPC streams, so we intercept at the transport layer
|
|
7
|
+
* and persist everything.
|
|
8
|
+
*/
|
|
9
|
+
function createTappedWritableStream(underlying, options) {
|
|
10
|
+
const { onMessage, logger } = options;
|
|
11
|
+
const decoder = new TextDecoder();
|
|
12
|
+
let buffer = "";
|
|
13
|
+
return new WritableStream({
|
|
14
|
+
async write(chunk) {
|
|
15
|
+
// Decode and buffer
|
|
16
|
+
buffer += decoder.decode(chunk, { stream: true });
|
|
17
|
+
// Process complete lines (newline-delimited)
|
|
18
|
+
const lines = buffer.split("\n");
|
|
19
|
+
buffer = lines.pop() ?? "";
|
|
20
|
+
for (const line of lines) {
|
|
21
|
+
if (!line.trim())
|
|
22
|
+
continue;
|
|
23
|
+
onMessage(line);
|
|
24
|
+
}
|
|
25
|
+
// Forward to underlying stream
|
|
26
|
+
const writer = underlying.getWriter();
|
|
27
|
+
await writer.write(chunk);
|
|
28
|
+
writer.releaseLock();
|
|
29
|
+
},
|
|
30
|
+
async close() {
|
|
31
|
+
const writer = underlying.getWriter();
|
|
32
|
+
await writer.close();
|
|
33
|
+
writer.releaseLock();
|
|
34
|
+
},
|
|
35
|
+
async abort(reason) {
|
|
36
|
+
logger?.warn("Tapped stream aborted", { reason });
|
|
37
|
+
const writer = underlying.getWriter();
|
|
38
|
+
await writer.abort(reason);
|
|
39
|
+
writer.releaseLock();
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export { createTappedWritableStream };
|
|
45
|
+
//# sourceMappingURL=tapped-stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tapped-stream.js","sources":["../../../src/utils/tapped-stream.ts"],"sourcesContent":["import type { Logger } from \"./logger.js\";\n\ntype MessageCallback = (line: string) => void;\n\nexport interface TappedStreamOptions {\n onMessage: MessageCallback;\n logger?: Logger;\n}\n\n/**\n * Creates a WritableStream wrapper that taps all newline-delimited messages,\n * forwarding each complete line for persistence.\n *\n * This aligns with ACP's transport model - all messages flow through\n * newline-delimited JSON-RPC streams, so we intercept at the transport layer\n * and persist everything.\n */\nexport function createTappedWritableStream(\n underlying: WritableStream<Uint8Array>,\n options: TappedStreamOptions,\n): WritableStream<Uint8Array> {\n const { onMessage, logger } = options;\n const decoder = new TextDecoder();\n let buffer = \"\";\n let _messageCount = 0;\n\n return new WritableStream({\n async write(chunk: Uint8Array) {\n // Decode and buffer\n buffer += decoder.decode(chunk, { stream: true });\n\n // Process complete lines (newline-delimited)\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() ?? \"\";\n\n for (const line of lines) {\n if (!line.trim()) continue;\n _messageCount++;\n\n onMessage(line);\n }\n\n // Forward to underlying stream\n const writer = underlying.getWriter();\n await writer.write(chunk);\n writer.releaseLock();\n },\n async close() {\n const writer = underlying.getWriter();\n await writer.close();\n writer.releaseLock();\n },\n async abort(reason: unknown) {\n logger?.warn(\"Tapped stream aborted\", { reason });\n const writer = underlying.getWriter();\n await writer.abort(reason);\n writer.releaseLock();\n },\n });\n}\n"],"names":[],"mappings":"AASA;;;;;;;AAOG;AACG,SAAU,0BAA0B,CACxC,UAAsC,EACtC,OAA4B,EAAA;AAE5B,IAAA,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO;AACrC,IAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;IACjC,IAAI,MAAM,GAAG,EAAE;IAGf,OAAO,IAAI,cAAc,CAAC;QACxB,MAAM,KAAK,CAAC,KAAiB,EAAA;;AAE3B,YAAA,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;YAGjD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAChC,YAAA,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;AAE1B,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE;gBAGlB,SAAS,CAAC,IAAI,CAAC;YACjB;;AAGA,YAAA,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE;AACrC,YAAA,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YACzB,MAAM,CAAC,WAAW,EAAE;QACtB,CAAC;AACD,QAAA,MAAM,KAAK,GAAA;AACT,YAAA,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE;AACrC,YAAA,MAAM,MAAM,CAAC,KAAK,EAAE;YACpB,MAAM,CAAC,WAAW,EAAE;QACtB,CAAC;QACD,MAAM,KAAK,CAAC,MAAe,EAAA;YACzB,MAAM,EAAE,IAAI,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,CAAC;AACjD,YAAA,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE;AACrC,YAAA,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YAC1B,MAAM,CAAC,WAAW,EAAE;QACtB,CAAC;AACF,KAAA,CAAC;AACJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/workflow/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/workflow/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAOrD,eAAO,MAAM,aAAa,EAAE,kBAyC3B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { researchStep } from './steps/research.js';
|
|
2
|
-
import { planStep } from './steps/plan.js';
|
|
3
1
|
import { buildStep } from './steps/build.js';
|
|
4
2
|
import { finalizeStep } from './steps/finalize.js';
|
|
3
|
+
import { planStep } from './steps/plan.js';
|
|
4
|
+
import { researchStep } from './steps/research.js';
|
|
5
5
|
|
|
6
6
|
const MODELS = {
|
|
7
7
|
SONNET: "claude-sonnet-4-5",
|
|
@@ -9,41 +9,41 @@ const MODELS = {
|
|
|
9
9
|
};
|
|
10
10
|
const TASK_WORKFLOW = [
|
|
11
11
|
{
|
|
12
|
-
id:
|
|
13
|
-
name:
|
|
14
|
-
agent:
|
|
12
|
+
id: "research",
|
|
13
|
+
name: "Research",
|
|
14
|
+
agent: "research",
|
|
15
15
|
model: MODELS.HAIKU,
|
|
16
|
-
permissionMode:
|
|
16
|
+
permissionMode: "plan",
|
|
17
17
|
commit: true,
|
|
18
18
|
push: true,
|
|
19
19
|
run: researchStep,
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
|
-
id:
|
|
23
|
-
name:
|
|
24
|
-
agent:
|
|
22
|
+
id: "plan",
|
|
23
|
+
name: "Plan",
|
|
24
|
+
agent: "planning",
|
|
25
25
|
model: MODELS.SONNET,
|
|
26
|
-
permissionMode:
|
|
26
|
+
permissionMode: "plan",
|
|
27
27
|
commit: true,
|
|
28
28
|
push: true,
|
|
29
29
|
run: planStep,
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
|
-
id:
|
|
33
|
-
name:
|
|
34
|
-
agent:
|
|
32
|
+
id: "build",
|
|
33
|
+
name: "Build",
|
|
34
|
+
agent: "execution",
|
|
35
35
|
model: MODELS.SONNET,
|
|
36
|
-
permissionMode:
|
|
36
|
+
permissionMode: "acceptEdits",
|
|
37
37
|
commit: true,
|
|
38
38
|
push: true,
|
|
39
39
|
run: buildStep,
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
|
-
id:
|
|
43
|
-
name:
|
|
44
|
-
agent:
|
|
42
|
+
id: "finalize",
|
|
43
|
+
name: "Finalize",
|
|
44
|
+
agent: "system", // not used
|
|
45
45
|
model: MODELS.HAIKU, // not used
|
|
46
|
-
permissionMode:
|
|
46
|
+
permissionMode: "plan", // not used
|
|
47
47
|
commit: true,
|
|
48
48
|
push: true,
|
|
49
49
|
run: finalizeStep,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sources":["../../../src/workflow/config.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"config.js","sources":["../../../src/workflow/config.ts"],"sourcesContent":["import { buildStep } from \"./steps/build.js\";\nimport { finalizeStep } from \"./steps/finalize.js\";\nimport { planStep } from \"./steps/plan.js\";\nimport { researchStep } from \"./steps/research.js\";\nimport type { WorkflowDefinition } from \"./types.js\";\n\nconst MODELS = {\n SONNET: \"claude-sonnet-4-5\",\n HAIKU: \"claude-haiku-4-5\",\n};\n\nexport const TASK_WORKFLOW: WorkflowDefinition = [\n {\n id: \"research\",\n name: \"Research\",\n agent: \"research\",\n model: MODELS.HAIKU,\n permissionMode: \"plan\",\n commit: true,\n push: true,\n run: researchStep,\n },\n {\n id: \"plan\",\n name: \"Plan\",\n agent: \"planning\",\n model: MODELS.SONNET,\n permissionMode: \"plan\",\n commit: true,\n push: true,\n run: planStep,\n },\n {\n id: \"build\",\n name: \"Build\",\n agent: \"execution\",\n model: MODELS.SONNET,\n permissionMode: \"acceptEdits\",\n commit: true,\n push: true,\n run: buildStep,\n },\n {\n id: \"finalize\",\n name: \"Finalize\",\n agent: \"system\", // not used\n model: MODELS.HAIKU, // not used\n permissionMode: \"plan\", // not used\n commit: true,\n push: true,\n run: finalizeStep,\n },\n];\n"],"names":[],"mappings":";;;;;AAMA,MAAM,MAAM,GAAG;AACb,IAAA,MAAM,EAAE,mBAAmB;AAC3B,IAAA,KAAK,EAAE,kBAAkB;CAC1B;AAEM,MAAM,aAAa,GAAuB;AAC/C,IAAA;AACE,QAAA,EAAE,EAAE,UAAU;AACd,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,GAAG,EAAE,YAAY;AAClB,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,MAAM,CAAC,MAAM;AACpB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,GAAG,EAAE,QAAQ;AACd,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,OAAO;AACX,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,MAAM,CAAC,MAAM;AACpB,QAAA,cAAc,EAAE,aAAa;AAC7B,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,GAAG,EAAE,SAAS;AACf,KAAA;AACD,IAAA;AACE,QAAA,EAAE,EAAE,UAAU;AACd,QAAA,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,cAAc,EAAE,MAAM;AACtB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,GAAG,EAAE,YAAY;AAClB,KAAA;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../src/workflow/steps/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../src/workflow/steps/build.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,eAAO,MAAM,SAAS,EAAE,kBA+HvB,CAAC"}
|
|
@@ -1,25 +1,31 @@
|
|
|
1
1
|
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
2
|
+
import { POSTHOG_NOTIFICATIONS } from '../../acp-extensions.js';
|
|
2
3
|
import { EXECUTION_SYSTEM_PROMPT } from '../../agents/execution.js';
|
|
3
|
-
import { PermissionMode } from '../../types.js';
|
|
4
4
|
import { TodoManager } from '../../todo-manager.js';
|
|
5
|
+
import { PermissionMode } from '../../types.js';
|
|
5
6
|
|
|
6
7
|
const buildStep = async ({ step, context }) => {
|
|
7
|
-
const { task, cwd, options, logger, promptBuilder,
|
|
8
|
-
const stepLogger = logger.child(
|
|
8
|
+
const { task, cwd, options, logger, promptBuilder, sessionId, mcpServers, gitManager, sendNotification, } = context;
|
|
9
|
+
const stepLogger = logger.child("BuildStep");
|
|
9
10
|
const latestRun = task.latest_run;
|
|
10
|
-
const prExists = latestRun?.output && typeof latestRun.output ===
|
|
11
|
+
const prExists = latestRun?.output && typeof latestRun.output === "object"
|
|
11
12
|
? latestRun.output.pr_url
|
|
12
13
|
: null;
|
|
13
14
|
if (prExists) {
|
|
14
|
-
stepLogger.info(
|
|
15
|
-
|
|
15
|
+
stepLogger.info("PR already exists, skipping build phase", {
|
|
16
|
+
taskId: task.id,
|
|
17
|
+
});
|
|
18
|
+
return { status: "skipped" };
|
|
16
19
|
}
|
|
17
|
-
stepLogger.info(
|
|
18
|
-
|
|
20
|
+
stepLogger.info("Starting build phase", { taskId: task.id });
|
|
21
|
+
await sendNotification(POSTHOG_NOTIFICATIONS.PHASE_START, {
|
|
22
|
+
sessionId,
|
|
23
|
+
phase: "build",
|
|
24
|
+
});
|
|
19
25
|
const executionPrompt = await promptBuilder.buildExecutionPrompt(task, cwd);
|
|
20
26
|
const fullPrompt = `${EXECUTION_SYSTEM_PROMPT}\n\n${executionPrompt}`;
|
|
21
27
|
const configuredPermissionMode = options.permissionMode ??
|
|
22
|
-
(typeof step.permissionMode ===
|
|
28
|
+
(typeof step.permissionMode === "string"
|
|
23
29
|
? step.permissionMode
|
|
24
30
|
: step.permissionMode) ??
|
|
25
31
|
PermissionMode.ACCEPT_EDITS;
|
|
@@ -27,25 +33,25 @@ const buildStep = async ({ step, context }) => {
|
|
|
27
33
|
model: step.model,
|
|
28
34
|
cwd,
|
|
29
35
|
permissionMode: configuredPermissionMode,
|
|
30
|
-
settingSources: [
|
|
36
|
+
settingSources: ["local"],
|
|
31
37
|
mcpServers,
|
|
32
38
|
// Allow all tools for build phase - full read/write access needed for implementation
|
|
33
39
|
allowedTools: [
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
40
|
+
"Task",
|
|
41
|
+
"Bash",
|
|
42
|
+
"BashOutput",
|
|
43
|
+
"KillBash",
|
|
44
|
+
"Edit",
|
|
45
|
+
"Read",
|
|
46
|
+
"Write",
|
|
47
|
+
"Glob",
|
|
48
|
+
"Grep",
|
|
49
|
+
"NotebookEdit",
|
|
50
|
+
"WebFetch",
|
|
51
|
+
"WebSearch",
|
|
52
|
+
"ListMcpResources",
|
|
53
|
+
"ReadMcpResource",
|
|
54
|
+
"TodoWrite",
|
|
49
55
|
],
|
|
50
56
|
};
|
|
51
57
|
// Add fine-grained permission hook if provided
|
|
@@ -60,17 +66,22 @@ const buildStep = async ({ step, context }) => {
|
|
|
60
66
|
const commitTracker = await gitManager.trackCommitsDuring();
|
|
61
67
|
// Track todos from TodoWrite tool calls
|
|
62
68
|
const todoManager = new TodoManager(context.fileManager, stepLogger);
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
try {
|
|
70
|
+
for await (const message of response) {
|
|
71
|
+
const todoList = await todoManager.checkAndPersistFromMessage(message, task.id);
|
|
72
|
+
if (todoList) {
|
|
73
|
+
await sendNotification(POSTHOG_NOTIFICATIONS.ARTIFACT, {
|
|
74
|
+
sessionId,
|
|
75
|
+
kind: "todos",
|
|
76
|
+
content: todoList,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
72
79
|
}
|
|
73
80
|
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
stepLogger.error("Error during build step query", error);
|
|
83
|
+
throw error;
|
|
84
|
+
}
|
|
74
85
|
// Finalize: commit any remaining changes and optionally push
|
|
75
86
|
const { commitCreated, pushedBranch } = await commitTracker.finalize({
|
|
76
87
|
commitMessage: `Implementation for ${task.title}`,
|
|
@@ -78,16 +89,19 @@ const buildStep = async ({ step, context }) => {
|
|
|
78
89
|
});
|
|
79
90
|
context.stepResults[step.id] = { commitCreated };
|
|
80
91
|
if (!commitCreated) {
|
|
81
|
-
stepLogger.warn(
|
|
92
|
+
stepLogger.warn("No changes to commit in build phase", { taskId: task.id });
|
|
82
93
|
}
|
|
83
94
|
else {
|
|
84
|
-
stepLogger.info(
|
|
95
|
+
stepLogger.info("Build commits finalized", {
|
|
85
96
|
taskId: task.id,
|
|
86
|
-
pushedBranch
|
|
97
|
+
pushedBranch,
|
|
87
98
|
});
|
|
88
99
|
}
|
|
89
|
-
|
|
90
|
-
|
|
100
|
+
await sendNotification(POSTHOG_NOTIFICATIONS.PHASE_COMPLETE, {
|
|
101
|
+
sessionId,
|
|
102
|
+
phase: "build",
|
|
103
|
+
});
|
|
104
|
+
return { status: "completed" };
|
|
91
105
|
};
|
|
92
106
|
|
|
93
107
|
export { buildStep };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sources":["../../../../src/workflow/steps/build.ts"],"sourcesContent":["import { query } from
|
|
1
|
+
{"version":3,"file":"build.js","sources":["../../../../src/workflow/steps/build.ts"],"sourcesContent":["import { query } from \"@anthropic-ai/claude-agent-sdk\";\nimport { POSTHOG_NOTIFICATIONS } from \"../../acp-extensions.js\";\nimport { EXECUTION_SYSTEM_PROMPT } from \"../../agents/execution.js\";\nimport { TodoManager } from \"../../todo-manager.js\";\nimport { PermissionMode } from \"../../types.js\";\nimport type { WorkflowStepRunner } from \"../types.js\";\n\nexport const buildStep: WorkflowStepRunner = async ({ step, context }) => {\n const {\n task,\n cwd,\n options,\n logger,\n promptBuilder,\n sessionId,\n mcpServers,\n gitManager,\n sendNotification,\n } = context;\n\n const stepLogger = logger.child(\"BuildStep\");\n\n const latestRun = task.latest_run;\n const prExists =\n latestRun?.output && typeof latestRun.output === \"object\"\n ? (latestRun.output as Record<string, unknown>).pr_url\n : null;\n\n if (prExists) {\n stepLogger.info(\"PR already exists, skipping build phase\", {\n taskId: task.id,\n });\n return { status: \"skipped\" };\n }\n\n stepLogger.info(\"Starting build phase\", { taskId: task.id });\n await sendNotification(POSTHOG_NOTIFICATIONS.PHASE_START, {\n sessionId,\n phase: \"build\",\n });\n\n const executionPrompt = await promptBuilder.buildExecutionPrompt(task, cwd);\n const fullPrompt = `${EXECUTION_SYSTEM_PROMPT}\\n\\n${executionPrompt}`;\n\n const configuredPermissionMode =\n options.permissionMode ??\n (typeof step.permissionMode === \"string\"\n ? (step.permissionMode as PermissionMode)\n : step.permissionMode) ??\n PermissionMode.ACCEPT_EDITS;\n\n const baseOptions: Record<string, unknown> = {\n model: step.model,\n cwd,\n permissionMode: configuredPermissionMode,\n settingSources: [\"local\"],\n mcpServers,\n // Allow all tools for build phase - full read/write access needed for implementation\n allowedTools: [\n \"Task\",\n \"Bash\",\n \"BashOutput\",\n \"KillBash\",\n \"Edit\",\n \"Read\",\n \"Write\",\n \"Glob\",\n \"Grep\",\n \"NotebookEdit\",\n \"WebFetch\",\n \"WebSearch\",\n \"ListMcpResources\",\n \"ReadMcpResource\",\n \"TodoWrite\",\n ],\n };\n\n // Add fine-grained permission hook if provided\n if (options.canUseTool) {\n baseOptions.canUseTool = options.canUseTool;\n }\n\n const response = query({\n prompt: fullPrompt,\n options: { ...baseOptions, ...(options.queryOverrides || {}) },\n });\n\n // Track commits made during Claude Code execution\n const commitTracker = await gitManager.trackCommitsDuring();\n\n // Track todos from TodoWrite tool calls\n const todoManager = new TodoManager(context.fileManager, stepLogger);\n\n try {\n for await (const message of response) {\n const todoList = await todoManager.checkAndPersistFromMessage(\n message,\n task.id,\n );\n if (todoList) {\n await sendNotification(POSTHOG_NOTIFICATIONS.ARTIFACT, {\n sessionId,\n kind: \"todos\",\n content: todoList,\n });\n }\n }\n } catch (error) {\n stepLogger.error(\"Error during build step query\", error);\n throw error;\n }\n\n // Finalize: commit any remaining changes and optionally push\n const { commitCreated, pushedBranch } = await commitTracker.finalize({\n commitMessage: `Implementation for ${task.title}`,\n push: step.push,\n });\n\n context.stepResults[step.id] = { commitCreated };\n\n if (!commitCreated) {\n stepLogger.warn(\"No changes to commit in build phase\", { taskId: task.id });\n } else {\n stepLogger.info(\"Build commits finalized\", {\n taskId: task.id,\n pushedBranch,\n });\n }\n\n await sendNotification(POSTHOG_NOTIFICATIONS.PHASE_COMPLETE, {\n sessionId,\n phase: \"build\",\n });\n return { status: \"completed\" };\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finalize.d.ts","sourceRoot":"","sources":["../../../../src/workflow/steps/finalize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKtD,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"finalize.d.ts","sourceRoot":"","sources":["../../../../src/workflow/steps/finalize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKtD,eAAO,MAAM,YAAY,EAAE,kBAuD1B,CAAC"}
|