@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/src/schemas.ts
ADDED
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
// Base event schema with timestamp
|
|
4
|
+
const BaseEventSchema = z.object({
|
|
5
|
+
ts: z.number(),
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
// Streaming content events
|
|
9
|
+
export const TokenEventSchema = BaseEventSchema.extend({
|
|
10
|
+
type: z.literal("token"),
|
|
11
|
+
content: z.string(),
|
|
12
|
+
contentType: z.enum(["text", "thinking", "tool_input"]).optional(),
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export const ContentBlockStartEventSchema = BaseEventSchema.extend({
|
|
16
|
+
type: z.literal("content_block_start"),
|
|
17
|
+
index: z.number(),
|
|
18
|
+
contentType: z.enum(["text", "tool_use", "thinking"]),
|
|
19
|
+
toolName: z.string().optional(),
|
|
20
|
+
toolId: z.string().optional(),
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
export const ContentBlockStopEventSchema = BaseEventSchema.extend({
|
|
24
|
+
type: z.literal("content_block_stop"),
|
|
25
|
+
index: z.number(),
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
// Tool events
|
|
29
|
+
export const ToolCallEventSchema = BaseEventSchema.extend({
|
|
30
|
+
type: z.literal("tool_call"),
|
|
31
|
+
toolName: z.string(),
|
|
32
|
+
callId: z.string(),
|
|
33
|
+
args: z.record(z.string(), z.unknown()),
|
|
34
|
+
parentToolUseId: z.string().nullable().optional(),
|
|
35
|
+
tool: z.unknown().optional(),
|
|
36
|
+
category: z.unknown().optional(),
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
export const ToolResultEventSchema = BaseEventSchema.extend({
|
|
40
|
+
type: z.literal("tool_result"),
|
|
41
|
+
toolName: z.string(),
|
|
42
|
+
callId: z.string(),
|
|
43
|
+
result: z.unknown(),
|
|
44
|
+
isError: z.boolean().optional(),
|
|
45
|
+
parentToolUseId: z.string().nullable().optional(),
|
|
46
|
+
tool: z.unknown().optional(),
|
|
47
|
+
category: z.unknown().optional(),
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
// Message lifecycle events
|
|
51
|
+
export const MessageStartEventSchema = BaseEventSchema.extend({
|
|
52
|
+
type: z.literal("message_start"),
|
|
53
|
+
messageId: z.string().optional(),
|
|
54
|
+
model: z.string().optional(),
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
export const MessageDeltaEventSchema = BaseEventSchema.extend({
|
|
58
|
+
type: z.literal("message_delta"),
|
|
59
|
+
stopReason: z.string().optional(),
|
|
60
|
+
stopSequence: z.string().optional(),
|
|
61
|
+
usage: z
|
|
62
|
+
.object({
|
|
63
|
+
outputTokens: z.number(),
|
|
64
|
+
})
|
|
65
|
+
.optional(),
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
export const MessageStopEventSchema = BaseEventSchema.extend({
|
|
69
|
+
type: z.literal("message_stop"),
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// User message events
|
|
73
|
+
export const UserMessageEventSchema = BaseEventSchema.extend({
|
|
74
|
+
type: z.literal("user_message"),
|
|
75
|
+
content: z.string(),
|
|
76
|
+
isSynthetic: z.boolean().optional(),
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
// System events
|
|
80
|
+
export const StatusEventSchema = BaseEventSchema.extend({
|
|
81
|
+
type: z.literal("status"),
|
|
82
|
+
phase: z.string(),
|
|
83
|
+
kind: z.string().optional(),
|
|
84
|
+
branch: z.string().optional(),
|
|
85
|
+
prUrl: z.string().optional(),
|
|
86
|
+
taskId: z.string().optional(),
|
|
87
|
+
messageId: z.string().optional(),
|
|
88
|
+
model: z.string().optional(),
|
|
89
|
+
}).passthrough(); // Allow additional fields
|
|
90
|
+
|
|
91
|
+
export const InitEventSchema = BaseEventSchema.extend({
|
|
92
|
+
type: z.literal("init"),
|
|
93
|
+
model: z.string(),
|
|
94
|
+
tools: z.array(z.string()),
|
|
95
|
+
permissionMode: z.string(),
|
|
96
|
+
cwd: z.string(),
|
|
97
|
+
apiKeySource: z.string(),
|
|
98
|
+
agents: z.array(z.string()).optional(),
|
|
99
|
+
slashCommands: z.array(z.string()).optional(),
|
|
100
|
+
outputStyle: z.string().optional(),
|
|
101
|
+
mcpServers: z
|
|
102
|
+
.array(z.object({ name: z.string(), status: z.string() }))
|
|
103
|
+
.optional(),
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
// Console event for log-style output
|
|
107
|
+
export const ConsoleEventSchema = BaseEventSchema.extend({
|
|
108
|
+
type: z.literal("console"),
|
|
109
|
+
level: z.enum(["debug", "info", "warn", "error"]),
|
|
110
|
+
message: z.string(),
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
export const CompactBoundaryEventSchema = BaseEventSchema.extend({
|
|
114
|
+
type: z.literal("compact_boundary"),
|
|
115
|
+
trigger: z.enum(["manual", "auto"]),
|
|
116
|
+
preTokens: z.number(),
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
// Result events
|
|
120
|
+
export const DoneEventSchema = BaseEventSchema.extend({
|
|
121
|
+
type: z.literal("done"),
|
|
122
|
+
result: z.string().optional(),
|
|
123
|
+
durationMs: z.number().optional(),
|
|
124
|
+
durationApiMs: z.number().optional(),
|
|
125
|
+
numTurns: z.number().optional(),
|
|
126
|
+
totalCostUsd: z.number().optional(),
|
|
127
|
+
usage: z.unknown().optional(),
|
|
128
|
+
modelUsage: z
|
|
129
|
+
.record(
|
|
130
|
+
z.string(),
|
|
131
|
+
z.object({
|
|
132
|
+
inputTokens: z.number(),
|
|
133
|
+
outputTokens: z.number(),
|
|
134
|
+
cacheReadInputTokens: z.number(),
|
|
135
|
+
cacheCreationInputTokens: z.number(),
|
|
136
|
+
webSearchRequests: z.number(),
|
|
137
|
+
costUSD: z.number(),
|
|
138
|
+
contextWindow: z.number(),
|
|
139
|
+
}),
|
|
140
|
+
)
|
|
141
|
+
.optional(),
|
|
142
|
+
permissionDenials: z
|
|
143
|
+
.array(
|
|
144
|
+
z.object({
|
|
145
|
+
tool_name: z.string(),
|
|
146
|
+
tool_use_id: z.string(),
|
|
147
|
+
tool_input: z.record(z.string(), z.unknown()),
|
|
148
|
+
}),
|
|
149
|
+
)
|
|
150
|
+
.optional(),
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
export const ErrorEventSchema = BaseEventSchema.extend({
|
|
154
|
+
type: z.literal("error"),
|
|
155
|
+
message: z.string(),
|
|
156
|
+
error: z.unknown().optional(),
|
|
157
|
+
errorType: z.string().optional(),
|
|
158
|
+
context: z.record(z.string(), z.unknown()).optional(),
|
|
159
|
+
sdkError: z.unknown().optional(),
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
// Metric and artifact events
|
|
163
|
+
export const MetricEventSchema = BaseEventSchema.extend({
|
|
164
|
+
type: z.literal("metric"),
|
|
165
|
+
key: z.string(),
|
|
166
|
+
value: z.number(),
|
|
167
|
+
unit: z.string().optional(),
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
export const ArtifactEventSchema = BaseEventSchema.extend({
|
|
171
|
+
type: z.literal("artifact"),
|
|
172
|
+
kind: z.string(),
|
|
173
|
+
content: z.unknown(),
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
export const RawSDKEventSchema = BaseEventSchema.extend({
|
|
177
|
+
type: z.literal("raw_sdk_event"),
|
|
178
|
+
sdkMessage: z.unknown(),
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
export const AgentEventSchema = z.discriminatedUnion("type", [
|
|
182
|
+
TokenEventSchema,
|
|
183
|
+
ContentBlockStartEventSchema,
|
|
184
|
+
ContentBlockStopEventSchema,
|
|
185
|
+
ToolCallEventSchema,
|
|
186
|
+
ToolResultEventSchema,
|
|
187
|
+
MessageStartEventSchema,
|
|
188
|
+
MessageDeltaEventSchema,
|
|
189
|
+
MessageStopEventSchema,
|
|
190
|
+
UserMessageEventSchema,
|
|
191
|
+
StatusEventSchema,
|
|
192
|
+
InitEventSchema,
|
|
193
|
+
ConsoleEventSchema,
|
|
194
|
+
CompactBoundaryEventSchema,
|
|
195
|
+
DoneEventSchema,
|
|
196
|
+
ErrorEventSchema,
|
|
197
|
+
MetricEventSchema,
|
|
198
|
+
ArtifactEventSchema,
|
|
199
|
+
RawSDKEventSchema,
|
|
200
|
+
]);
|
|
201
|
+
|
|
202
|
+
export type TokenEvent = z.infer<typeof TokenEventSchema>;
|
|
203
|
+
export type ContentBlockStartEvent = z.infer<
|
|
204
|
+
typeof ContentBlockStartEventSchema
|
|
205
|
+
>;
|
|
206
|
+
export type ContentBlockStopEvent = z.infer<typeof ContentBlockStopEventSchema>;
|
|
207
|
+
export type ToolCallEvent = z.infer<typeof ToolCallEventSchema>;
|
|
208
|
+
export type ToolResultEvent = z.infer<typeof ToolResultEventSchema>;
|
|
209
|
+
export type MessageStartEvent = z.infer<typeof MessageStartEventSchema>;
|
|
210
|
+
export type MessageDeltaEvent = z.infer<typeof MessageDeltaEventSchema>;
|
|
211
|
+
export type MessageStopEvent = z.infer<typeof MessageStopEventSchema>;
|
|
212
|
+
export type UserMessageEvent = z.infer<typeof UserMessageEventSchema>;
|
|
213
|
+
export type StatusEvent = z.infer<typeof StatusEventSchema>;
|
|
214
|
+
export type InitEvent = z.infer<typeof InitEventSchema>;
|
|
215
|
+
export type ConsoleEvent = z.infer<typeof ConsoleEventSchema>;
|
|
216
|
+
export type CompactBoundaryEvent = z.infer<typeof CompactBoundaryEventSchema>;
|
|
217
|
+
export type DoneEvent = z.infer<typeof DoneEventSchema>;
|
|
218
|
+
export type ErrorEvent = z.infer<typeof ErrorEventSchema>;
|
|
219
|
+
export type MetricEvent = z.infer<typeof MetricEventSchema>;
|
|
220
|
+
export type ArtifactEvent = z.infer<typeof ArtifactEventSchema>;
|
|
221
|
+
export type RawSDKEvent = z.infer<typeof RawSDKEventSchema>;
|
|
222
|
+
export type AgentEvent = z.infer<typeof AgentEventSchema>;
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Parse and validate an AgentEvent from unknown input.
|
|
226
|
+
* Returns the parsed event if valid, or null if invalid.
|
|
227
|
+
*/
|
|
228
|
+
export function parseAgentEvent(input: unknown): AgentEvent | null {
|
|
229
|
+
const result = AgentEventSchema.safeParse(input);
|
|
230
|
+
return result.success ? result.data : null;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Parse and validate multiple AgentEvents from an array of unknown inputs.
|
|
235
|
+
* Invalid entries are discarded.
|
|
236
|
+
*/
|
|
237
|
+
export function parseAgentEvents(inputs: unknown[]): AgentEvent[] {
|
|
238
|
+
return inputs
|
|
239
|
+
.map((input) => parseAgentEvent(input))
|
|
240
|
+
.filter((event): event is AgentEvent => event !== null);
|
|
241
|
+
}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import type { PostHogAPIClient, TaskRunUpdate } from "./posthog-api.js";
|
|
2
|
+
import type { StoredNotification, TaskRun } from "./types.js";
|
|
3
|
+
import { Logger } from "./utils/logger.js";
|
|
4
|
+
|
|
5
|
+
export interface SessionPersistenceConfig {
|
|
6
|
+
taskId: string;
|
|
7
|
+
runId: string;
|
|
8
|
+
logUrl: string;
|
|
9
|
+
sdkSessionId?: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export class SessionStore {
|
|
13
|
+
private posthogAPI?: PostHogAPIClient;
|
|
14
|
+
private pendingEntries: Map<string, StoredNotification[]> = new Map();
|
|
15
|
+
private flushTimeouts: Map<string, NodeJS.Timeout> = new Map();
|
|
16
|
+
private configs: Map<string, SessionPersistenceConfig> = new Map();
|
|
17
|
+
private logger: Logger;
|
|
18
|
+
|
|
19
|
+
constructor(posthogAPI?: PostHogAPIClient, logger?: Logger) {
|
|
20
|
+
this.posthogAPI = posthogAPI;
|
|
21
|
+
this.logger =
|
|
22
|
+
logger ?? new Logger({ debug: false, prefix: "[SessionStore]" });
|
|
23
|
+
|
|
24
|
+
// Flush all pending on process exit
|
|
25
|
+
const flushAllAndExit = async () => {
|
|
26
|
+
const flushPromises: Promise<void>[] = [];
|
|
27
|
+
for (const sessionId of this.configs.keys()) {
|
|
28
|
+
flushPromises.push(this.flush(sessionId));
|
|
29
|
+
}
|
|
30
|
+
await Promise.all(flushPromises);
|
|
31
|
+
process.exit(0);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
process.on("beforeExit", () => {
|
|
35
|
+
flushAllAndExit().catch((e) => this.logger.error("Flush failed:", e));
|
|
36
|
+
});
|
|
37
|
+
process.on("SIGINT", () => {
|
|
38
|
+
flushAllAndExit().catch((e) => this.logger.error("Flush failed:", e));
|
|
39
|
+
});
|
|
40
|
+
process.on("SIGTERM", () => {
|
|
41
|
+
flushAllAndExit().catch((e) => this.logger.error("Flush failed:", e));
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** Register a session for persistence */
|
|
46
|
+
register(sessionId: string, config: SessionPersistenceConfig): void {
|
|
47
|
+
this.configs.set(sessionId, config);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** Unregister and flush pending */
|
|
51
|
+
async unregister(sessionId: string): Promise<void> {
|
|
52
|
+
await this.flush(sessionId);
|
|
53
|
+
this.configs.delete(sessionId);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** Check if a session is registered for persistence */
|
|
57
|
+
isRegistered(sessionId: string): boolean {
|
|
58
|
+
return this.configs.has(sessionId);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Append a raw JSON-RPC line for persistence.
|
|
63
|
+
* Parses and wraps as StoredNotification for the API.
|
|
64
|
+
*/
|
|
65
|
+
appendRawLine(sessionId: string, line: string): void {
|
|
66
|
+
const config = this.configs.get(sessionId);
|
|
67
|
+
if (!config) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
try {
|
|
72
|
+
const message = JSON.parse(line);
|
|
73
|
+
const entry: StoredNotification = {
|
|
74
|
+
type: "notification",
|
|
75
|
+
timestamp: new Date().toISOString(),
|
|
76
|
+
notification: message,
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
const pending = this.pendingEntries.get(sessionId) ?? [];
|
|
80
|
+
pending.push(entry);
|
|
81
|
+
this.pendingEntries.set(sessionId, pending);
|
|
82
|
+
|
|
83
|
+
this.scheduleFlush(sessionId);
|
|
84
|
+
} catch {
|
|
85
|
+
this.logger.warn("Failed to parse raw line for persistence", {
|
|
86
|
+
sessionId,
|
|
87
|
+
lineLength: line.length,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/** Load raw JSON-RPC messages from S3 */
|
|
93
|
+
async load(logUrl: string): Promise<unknown[]> {
|
|
94
|
+
const response = await fetch(logUrl);
|
|
95
|
+
|
|
96
|
+
if (!response.ok) {
|
|
97
|
+
return [];
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const content = await response.text();
|
|
101
|
+
if (!content.trim()) return [];
|
|
102
|
+
|
|
103
|
+
return content
|
|
104
|
+
.trim()
|
|
105
|
+
.split("\n")
|
|
106
|
+
.map((line) => {
|
|
107
|
+
try {
|
|
108
|
+
return JSON.parse(line);
|
|
109
|
+
} catch {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
})
|
|
113
|
+
.filter((entry): entry is unknown => entry !== null);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/** Force flush pending entries */
|
|
117
|
+
async flush(sessionId: string): Promise<void> {
|
|
118
|
+
const config = this.configs.get(sessionId);
|
|
119
|
+
const pending = this.pendingEntries.get(sessionId);
|
|
120
|
+
|
|
121
|
+
if (!config || !pending?.length) return;
|
|
122
|
+
|
|
123
|
+
this.pendingEntries.delete(sessionId);
|
|
124
|
+
const timeout = this.flushTimeouts.get(sessionId);
|
|
125
|
+
if (timeout) {
|
|
126
|
+
clearTimeout(timeout);
|
|
127
|
+
this.flushTimeouts.delete(sessionId);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (!this.posthogAPI) {
|
|
131
|
+
this.logger.debug("No PostHog API configured, skipping flush");
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
try {
|
|
136
|
+
await this.posthogAPI.appendTaskRunLog(
|
|
137
|
+
config.taskId,
|
|
138
|
+
config.runId,
|
|
139
|
+
pending,
|
|
140
|
+
);
|
|
141
|
+
} catch (error) {
|
|
142
|
+
this.logger.error("Failed to persist session logs:", error);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
private scheduleFlush(sessionId: string): void {
|
|
147
|
+
const existing = this.flushTimeouts.get(sessionId);
|
|
148
|
+
if (existing) clearTimeout(existing);
|
|
149
|
+
const timeout = setTimeout(() => this.flush(sessionId), 500);
|
|
150
|
+
this.flushTimeouts.set(sessionId, timeout);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/** Get the persistence config for a session */
|
|
154
|
+
getConfig(sessionId: string): SessionPersistenceConfig | undefined {
|
|
155
|
+
return this.configs.get(sessionId);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Start a session for persistence.
|
|
160
|
+
* Loads the task run and updates status to "in_progress".
|
|
161
|
+
*/
|
|
162
|
+
async start(
|
|
163
|
+
sessionId: string,
|
|
164
|
+
taskId: string,
|
|
165
|
+
runId: string,
|
|
166
|
+
): Promise<TaskRun | undefined> {
|
|
167
|
+
if (!this.posthogAPI) {
|
|
168
|
+
this.logger.debug(
|
|
169
|
+
"No PostHog API configured, registering session without persistence",
|
|
170
|
+
);
|
|
171
|
+
this.register(sessionId, {
|
|
172
|
+
taskId,
|
|
173
|
+
runId,
|
|
174
|
+
logUrl: "",
|
|
175
|
+
});
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
const taskRun = await this.posthogAPI.getTaskRun(taskId, runId);
|
|
180
|
+
|
|
181
|
+
this.register(sessionId, {
|
|
182
|
+
taskId,
|
|
183
|
+
runId,
|
|
184
|
+
logUrl: taskRun.log_url,
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
await this.updateTaskRun(sessionId, { status: "in_progress" });
|
|
188
|
+
|
|
189
|
+
return taskRun;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Mark a session as completed.
|
|
194
|
+
*/
|
|
195
|
+
async complete(sessionId: string): Promise<void> {
|
|
196
|
+
await this.flush(sessionId);
|
|
197
|
+
await this.updateTaskRun(sessionId, { status: "completed" });
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Mark a session as failed.
|
|
202
|
+
*/
|
|
203
|
+
async fail(sessionId: string, error: Error | string): Promise<void> {
|
|
204
|
+
await this.flush(sessionId);
|
|
205
|
+
const message = typeof error === "string" ? error : error.message;
|
|
206
|
+
await this.updateTaskRun(sessionId, {
|
|
207
|
+
status: "failed",
|
|
208
|
+
error_message: message,
|
|
209
|
+
});
|
|
210
|
+
this.logger.error("Session failed", { sessionId, error: message });
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Update the task run associated with a session.
|
|
215
|
+
*/
|
|
216
|
+
async updateTaskRun(
|
|
217
|
+
sessionId: string,
|
|
218
|
+
update: TaskRunUpdate,
|
|
219
|
+
): Promise<TaskRun | undefined> {
|
|
220
|
+
const config = this.configs.get(sessionId);
|
|
221
|
+
if (!config) {
|
|
222
|
+
this.logger.error(
|
|
223
|
+
`Cannot update task run: session ${sessionId} not registered`,
|
|
224
|
+
);
|
|
225
|
+
return undefined;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
if (!this.posthogAPI) {
|
|
229
|
+
this.logger.debug("No PostHog API configured, skipping task run update");
|
|
230
|
+
return undefined;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
try {
|
|
234
|
+
return await this.posthogAPI.updateTaskRun(
|
|
235
|
+
config.taskId,
|
|
236
|
+
config.runId,
|
|
237
|
+
update,
|
|
238
|
+
);
|
|
239
|
+
} catch (error) {
|
|
240
|
+
this.logger.error("Failed to update task run:", error);
|
|
241
|
+
return undefined;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
package/src/task-manager.ts
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { randomBytes } from
|
|
1
|
+
import { randomBytes } from "node:crypto";
|
|
2
2
|
|
|
3
3
|
export interface TaskExecutionState {
|
|
4
4
|
taskId: string;
|
|
5
|
-
status:
|
|
6
|
-
mode:
|
|
7
|
-
result?:
|
|
5
|
+
status: "running" | "completed" | "failed" | "canceled" | "timeout";
|
|
6
|
+
mode: "plan_only" | "plan_and_build" | "build_only";
|
|
7
|
+
result?: unknown;
|
|
8
8
|
startedAt: number;
|
|
9
9
|
completedAt?: number;
|
|
10
10
|
abortController?: AbortController;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export class TaskManager {
|
|
14
|
-
|
|
14
|
+
public executionStates = new Map<string, TaskExecutionState>();
|
|
15
15
|
private defaultTimeout = 10 * 60 * 1000; // 10 minutes
|
|
16
16
|
|
|
17
17
|
generateExecutionId(): string {
|
|
18
|
-
return randomBytes(16).toString(
|
|
18
|
+
return randomBytes(16).toString("hex");
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
startExecution(
|
|
22
|
-
taskId: string,
|
|
23
|
-
mode:
|
|
24
|
-
executionId: string = this.generateExecutionId()
|
|
22
|
+
taskId: string,
|
|
23
|
+
mode: "plan_only" | "plan_and_build" | "build_only",
|
|
24
|
+
executionId: string = this.generateExecutionId(),
|
|
25
25
|
): TaskExecutionState {
|
|
26
26
|
const executionState: TaskExecutionState = {
|
|
27
27
|
taskId,
|
|
28
|
-
status:
|
|
28
|
+
status: "running",
|
|
29
29
|
mode,
|
|
30
30
|
startedAt: Date.now(),
|
|
31
31
|
abortController: new AbortController(),
|
|
@@ -33,17 +33,17 @@ export class TaskManager {
|
|
|
33
33
|
|
|
34
34
|
this.executionStates.set(executionId, executionState);
|
|
35
35
|
this.scheduleTimeout(executionId);
|
|
36
|
-
|
|
36
|
+
|
|
37
37
|
return executionState;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
async waitForCompletion(executionId: string): Promise<
|
|
40
|
+
async waitForCompletion(executionId: string): Promise<unknown> {
|
|
41
41
|
const execution = this.executionStates.get(executionId);
|
|
42
42
|
if (!execution) {
|
|
43
43
|
throw new Error(`Execution ${executionId} not found`);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
if (execution.result && execution.status ===
|
|
46
|
+
if (execution.result && execution.status === "completed") {
|
|
47
47
|
return execution.result;
|
|
48
48
|
}
|
|
49
49
|
|
|
@@ -56,28 +56,33 @@ export class TaskManager {
|
|
|
56
56
|
return;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
if (
|
|
59
|
+
if (
|
|
60
|
+
currentExecution.status === "completed" &&
|
|
61
|
+
currentExecution.result
|
|
62
|
+
) {
|
|
60
63
|
clearInterval(checkInterval);
|
|
61
64
|
resolve(currentExecution.result);
|
|
62
65
|
} else if (
|
|
63
|
-
currentExecution.status ===
|
|
64
|
-
currentExecution.status ===
|
|
65
|
-
currentExecution.status ===
|
|
66
|
+
currentExecution.status === "failed" ||
|
|
67
|
+
currentExecution.status === "canceled" ||
|
|
68
|
+
currentExecution.status === "timeout"
|
|
66
69
|
) {
|
|
67
70
|
clearInterval(checkInterval);
|
|
68
|
-
reject(
|
|
71
|
+
reject(
|
|
72
|
+
new Error(`Execution ${executionId} ${currentExecution.status}`),
|
|
73
|
+
);
|
|
69
74
|
}
|
|
70
75
|
}, 100);
|
|
71
76
|
});
|
|
72
77
|
}
|
|
73
78
|
|
|
74
|
-
completeExecution(executionId: string, result:
|
|
79
|
+
completeExecution(executionId: string, result: unknown): void {
|
|
75
80
|
const execution = this.executionStates.get(executionId);
|
|
76
81
|
if (!execution) {
|
|
77
82
|
throw new Error(`Execution ${executionId} not found`);
|
|
78
83
|
}
|
|
79
84
|
|
|
80
|
-
execution.status =
|
|
85
|
+
execution.status = "completed";
|
|
81
86
|
execution.result = result;
|
|
82
87
|
execution.completedAt = Date.now();
|
|
83
88
|
}
|
|
@@ -88,11 +93,11 @@ export class TaskManager {
|
|
|
88
93
|
throw new Error(`Execution ${executionId} not found`);
|
|
89
94
|
}
|
|
90
95
|
|
|
91
|
-
execution.status =
|
|
96
|
+
execution.status = "failed";
|
|
92
97
|
execution.completedAt = Date.now();
|
|
93
98
|
execution.result = {
|
|
94
99
|
error: error.message,
|
|
95
|
-
status:
|
|
100
|
+
status: "failed",
|
|
96
101
|
};
|
|
97
102
|
}
|
|
98
103
|
|
|
@@ -102,14 +107,14 @@ export class TaskManager {
|
|
|
102
107
|
throw new Error(`Execution ${executionId} not found`);
|
|
103
108
|
}
|
|
104
109
|
|
|
105
|
-
execution.status =
|
|
110
|
+
execution.status = "canceled";
|
|
106
111
|
execution.completedAt = Date.now();
|
|
107
112
|
execution.abortController?.abort();
|
|
108
|
-
|
|
113
|
+
|
|
109
114
|
if (!execution.result) {
|
|
110
115
|
execution.result = {
|
|
111
|
-
status:
|
|
112
|
-
message:
|
|
116
|
+
status: "canceled",
|
|
117
|
+
message: "Execution was canceled",
|
|
113
118
|
};
|
|
114
119
|
}
|
|
115
120
|
}
|
|
@@ -126,18 +131,21 @@ export class TaskManager {
|
|
|
126
131
|
return this.executionStates.get(executionId)?.abortController;
|
|
127
132
|
}
|
|
128
133
|
|
|
129
|
-
private scheduleTimeout(
|
|
134
|
+
private scheduleTimeout(
|
|
135
|
+
executionId: string,
|
|
136
|
+
timeout: number = this.defaultTimeout,
|
|
137
|
+
): void {
|
|
130
138
|
setTimeout(() => {
|
|
131
139
|
const execution = this.executionStates.get(executionId);
|
|
132
|
-
if (execution && execution.status ===
|
|
133
|
-
execution.status =
|
|
140
|
+
if (execution && execution.status === "running") {
|
|
141
|
+
execution.status = "timeout";
|
|
134
142
|
execution.completedAt = Date.now();
|
|
135
143
|
execution.abortController?.abort();
|
|
136
|
-
|
|
144
|
+
|
|
137
145
|
if (!execution.result) {
|
|
138
146
|
execution.result = {
|
|
139
|
-
status:
|
|
140
|
-
message:
|
|
147
|
+
status: "timeout",
|
|
148
|
+
message: "Execution timed out",
|
|
141
149
|
};
|
|
142
150
|
}
|
|
143
151
|
}
|
|
@@ -152,4 +160,4 @@ export class TaskManager {
|
|
|
152
160
|
}
|
|
153
161
|
}
|
|
154
162
|
}
|
|
155
|
-
}
|
|
163
|
+
}
|