attio-mcp 1.0.0 → 1.1.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/CHANGELOG.md +102 -3
- package/README.md +77 -1
- package/dist/api/attio-client.d.ts +25 -5
- package/dist/api/attio-client.d.ts.map +1 -1
- package/dist/api/attio-client.js +119 -125
- package/dist/api/attio-client.js.map +1 -1
- package/dist/api/client-cache.d.ts +43 -0
- package/dist/api/client-cache.d.ts.map +1 -0
- package/dist/api/client-cache.js +71 -0
- package/dist/api/client-cache.js.map +1 -0
- package/dist/api/client-config.d.ts +53 -0
- package/dist/api/client-config.d.ts.map +1 -0
- package/dist/api/client-config.js +101 -0
- package/dist/api/client-config.js.map +1 -0
- package/dist/api/client-context.js +1 -1
- package/dist/api/client-context.js.map +1 -1
- package/dist/api/client-strategies.d.ts +76 -0
- package/dist/api/client-strategies.d.ts.map +1 -0
- package/dist/api/client-strategies.js +218 -0
- package/dist/api/client-strategies.js.map +1 -0
- package/dist/api/lazy-client.d.ts +4 -3
- package/dist/api/lazy-client.d.ts.map +1 -1
- package/dist/api/lazy-client.js +20 -8
- package/dist/api/lazy-client.js.map +1 -1
- package/dist/api/operations/notes.d.ts +3 -2
- package/dist/api/operations/notes.d.ts.map +1 -1
- package/dist/api/operations/notes.js +4 -3
- package/dist/api/operations/notes.js.map +1 -1
- package/dist/api/operations/query-parser.d.ts +27 -0
- package/dist/api/operations/query-parser.d.ts.map +1 -0
- package/dist/api/operations/query-parser.js +123 -0
- package/dist/api/operations/query-parser.js.map +1 -0
- package/dist/api/operations/search.d.ts +2 -2
- package/dist/api/operations/search.d.ts.map +1 -1
- package/dist/api/operations/search.js +77 -22
- package/dist/api/operations/search.js.map +1 -1
- package/dist/api/operations/tasks.js +9 -15
- package/dist/api/operations/tasks.js.map +1 -1
- package/dist/api/operations/workspace-members.js +9 -15
- package/dist/api/operations/workspace-members.js.map +1 -1
- package/dist/cli.js +7 -1
- package/dist/cli.js.map +1 -1
- package/dist/config/tool-aliases.d.ts +21 -0
- package/dist/config/tool-aliases.d.ts.map +1 -0
- package/dist/config/tool-aliases.js +98 -0
- package/dist/config/tool-aliases.js.map +1 -0
- package/dist/config/tool-mode.d.ts.map +1 -1
- package/dist/config/tool-mode.js +1 -6
- package/dist/config/tool-mode.js.map +1 -1
- package/dist/errors/enhanced-api-errors.d.ts +21 -7
- package/dist/errors/enhanced-api-errors.d.ts.map +1 -1
- package/dist/errors/enhanced-api-errors.js +18 -1
- package/dist/errors/enhanced-api-errors.js.map +1 -1
- package/dist/handlers/tool-configs/lists.d.ts +48 -0
- package/dist/handlers/tool-configs/lists.d.ts.map +1 -1
- package/dist/handlers/tool-configs/lists.js +126 -22
- package/dist/handlers/tool-configs/lists.js.map +1 -1
- package/dist/handlers/tool-configs/openai/index.d.ts +1 -1
- package/dist/handlers/tool-configs/openai/index.d.ts.map +1 -1
- package/dist/handlers/tool-configs/openai/index.js +1 -1
- package/dist/handlers/tool-configs/openai/index.js.map +1 -1
- package/dist/handlers/tool-configs/people/crud.d.ts +5 -0
- package/dist/handlers/tool-configs/people/crud.d.ts.map +1 -1
- package/dist/handlers/tool-configs/people/crud.js +7 -2
- package/dist/handlers/tool-configs/people/crud.js.map +1 -1
- package/dist/handlers/tool-configs/people/index.d.ts +5 -0
- package/dist/handlers/tool-configs/people/index.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/batch-search.d.ts +10 -0
- package/dist/handlers/tool-configs/universal/batch-search.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/batch-search.js +18 -5
- package/dist/handlers/tool-configs/universal/batch-search.js.map +1 -1
- package/dist/handlers/tool-configs/universal/core/crud-error-handlers.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/core/crud-error-handlers.js +39 -1
- package/dist/handlers/tool-configs/universal/core/crud-error-handlers.js.map +1 -1
- package/dist/handlers/tool-configs/universal/core/crud-operations.d.ts +22 -0
- package/dist/handlers/tool-configs/universal/core/crud-operations.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/core/detailed-info-operations.d.ts +4 -0
- package/dist/handlers/tool-configs/universal/core/detailed-info-operations.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/core/detailed-info-operations.js +10 -4
- package/dist/handlers/tool-configs/universal/core/detailed-info-operations.js.map +1 -1
- package/dist/handlers/tool-configs/universal/core/index.d.ts +61 -11
- package/dist/handlers/tool-configs/universal/core/index.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/core/index.js +10 -10
- package/dist/handlers/tool-configs/universal/core/index.js.map +1 -1
- package/dist/handlers/tool-configs/universal/core/metadata-operations.d.ts +8 -0
- package/dist/handlers/tool-configs/universal/core/metadata-operations.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/core/metadata-operations.js +19 -8
- package/dist/handlers/tool-configs/universal/core/metadata-operations.js.map +1 -1
- package/dist/handlers/tool-configs/universal/core/notes-operations.d.ts +10 -4
- package/dist/handlers/tool-configs/universal/core/notes-operations.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/core/notes-operations.js +69 -51
- package/dist/handlers/tool-configs/universal/core/notes-operations.js.map +1 -1
- package/dist/handlers/tool-configs/universal/core/record-details-operations.d.ts +5 -0
- package/dist/handlers/tool-configs/universal/core/record-details-operations.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/core/record-details-operations.js +10 -4
- package/dist/handlers/tool-configs/universal/core/record-details-operations.js.map +1 -1
- package/dist/handlers/tool-configs/universal/core/search-operations.d.ts +5 -0
- package/dist/handlers/tool-configs/universal/core/search-operations.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/core/search-operations.js +10 -4
- package/dist/handlers/tool-configs/universal/core/search-operations.js.map +1 -1
- package/dist/handlers/tool-configs/universal/core/utils/note-formatters.d.ts +14 -0
- package/dist/handlers/tool-configs/universal/core/utils/note-formatters.d.ts.map +1 -0
- package/dist/handlers/tool-configs/universal/core/utils/note-formatters.js +92 -0
- package/dist/handlers/tool-configs/universal/core/utils/note-formatters.js.map +1 -0
- package/dist/handlers/tool-configs/universal/index.d.ts +118 -98
- package/dist/handlers/tool-configs/universal/index.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/index.js +43 -73
- package/dist/handlers/tool-configs/universal/index.js.map +1 -1
- package/dist/handlers/tool-configs/universal/operations/advanced-search.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/operations/advanced-search.js +3 -3
- package/dist/handlers/tool-configs/universal/operations/advanced-search.js.map +1 -1
- package/dist/handlers/tool-configs/universal/operations/batch-operations.js +3 -3
- package/dist/handlers/tool-configs/universal/operations/batch-operations.js.map +1 -1
- package/dist/handlers/tool-configs/universal/operations/content-search.js +3 -3
- package/dist/handlers/tool-configs/universal/operations/content-search.js.map +1 -1
- package/dist/handlers/tool-configs/universal/operations/index.d.ts +49 -10
- package/dist/handlers/tool-configs/universal/operations/index.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/operations/index.js +47 -20
- package/dist/handlers/tool-configs/universal/operations/index.js.map +1 -1
- package/dist/handlers/tool-configs/universal/operations/operations-array.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/operations/operations-array.js +3 -1
- package/dist/handlers/tool-configs/universal/operations/operations-array.js.map +1 -1
- package/dist/handlers/tool-configs/universal/operations/relationship-search.js +4 -4
- package/dist/handlers/tool-configs/universal/operations/relationship-search.js.map +1 -1
- package/dist/handlers/tool-configs/universal/operations/timeframe-search.js +3 -3
- package/dist/handlers/tool-configs/universal/operations/timeframe-search.js.map +1 -1
- package/dist/handlers/tool-configs/universal/schemas/advanced-schemas.d.ts +43 -0
- package/dist/handlers/tool-configs/universal/schemas/advanced-schemas.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/schemas/advanced-schemas.js +55 -0
- package/dist/handlers/tool-configs/universal/schemas/advanced-schemas.js.map +1 -1
- package/dist/handlers/tool-configs/universal/schemas/core-schemas.d.ts +32 -0
- package/dist/handlers/tool-configs/universal/schemas/core-schemas.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/schemas/core-schemas.js +40 -0
- package/dist/handlers/tool-configs/universal/schemas/core-schemas.js.map +1 -1
- package/dist/handlers/tool-configs/universal/schemas/utility-schemas.d.ts +8 -2
- package/dist/handlers/tool-configs/universal/schemas/utility-schemas.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/schemas/utility-schemas.js +9 -2
- package/dist/handlers/tool-configs/universal/schemas/utility-schemas.js.map +1 -1
- package/dist/handlers/tool-configs/universal/schemas/validation-schemas.d.ts +8 -0
- package/dist/handlers/tool-configs/universal/schemas/validation-schemas.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/schemas/validation-schemas.js +12 -0
- package/dist/handlers/tool-configs/universal/schemas/validation-schemas.js.map +1 -1
- package/dist/handlers/tool-configs/universal/validators/schema-validator.d.ts.map +1 -1
- package/dist/handlers/tool-configs/universal/validators/schema-validator.js +38 -3
- package/dist/handlers/tool-configs/universal/validators/schema-validator.js.map +1 -1
- package/dist/handlers/tool-configs/workspace-members.d.ts +25 -0
- package/dist/handlers/tool-configs/workspace-members.d.ts.map +1 -1
- package/dist/handlers/tool-configs/workspace-members.js +73 -40
- package/dist/handlers/tool-configs/workspace-members.js.map +1 -1
- package/dist/handlers/tools/dispatcher/core.d.ts.map +1 -1
- package/dist/handlers/tools/dispatcher/core.js +24 -31
- package/dist/handlers/tools/dispatcher/core.js.map +1 -1
- package/dist/handlers/tools/dispatcher/logging.d.ts +2 -10
- package/dist/handlers/tools/dispatcher/logging.d.ts.map +1 -1
- package/dist/handlers/tools/dispatcher/logging.js +3 -2
- package/dist/handlers/tools/dispatcher/logging.js.map +1 -1
- package/dist/handlers/tools/index.d.ts.map +1 -1
- package/dist/handlers/tools/index.js +35 -39
- package/dist/handlers/tools/index.js.map +1 -1
- package/dist/handlers/tools/registry.d.ts +269 -57
- package/dist/handlers/tools/registry.d.ts.map +1 -1
- package/dist/handlers/tools/registry.js +21 -13
- package/dist/handlers/tools/registry.js.map +1 -1
- package/dist/handlers/tools/standards/index.d.ts +17 -0
- package/dist/handlers/tools/standards/index.d.ts.map +1 -0
- package/dist/handlers/tools/standards/index.js +32 -0
- package/dist/handlers/tools/standards/index.js.map +1 -0
- package/dist/middleware/performance-enhanced.d.ts +4 -0
- package/dist/middleware/performance-enhanced.d.ts.map +1 -1
- package/dist/middleware/performance-enhanced.js +63 -3
- package/dist/middleware/performance-enhanced.js.map +1 -1
- package/dist/objects/batch-companies.d.ts.map +1 -1
- package/dist/objects/batch-companies.js +6 -2
- package/dist/objects/batch-companies.js.map +1 -1
- package/dist/objects/companies/search.d.ts.map +1 -1
- package/dist/objects/companies/search.js +6 -1
- package/dist/objects/companies/search.js.map +1 -1
- package/dist/objects/notes.d.ts.map +1 -1
- package/dist/objects/notes.js +21 -7
- package/dist/objects/notes.js.map +1 -1
- package/dist/prompts/error-handler.d.ts +8 -2
- package/dist/prompts/error-handler.d.ts.map +1 -1
- package/dist/prompts/error-handler.js +63 -4
- package/dist/prompts/error-handler.js.map +1 -1
- package/dist/prompts/handlers.d.ts +4 -1
- package/dist/prompts/handlers.d.ts.map +1 -1
- package/dist/prompts/handlers.js +146 -48
- package/dist/prompts/handlers.js.map +1 -1
- package/dist/prompts/v1/add-to-list.v1.d.ts +38 -0
- package/dist/prompts/v1/add-to-list.v1.d.ts.map +1 -0
- package/dist/prompts/v1/add-to-list.v1.js +91 -0
- package/dist/prompts/v1/add-to-list.v1.js.map +1 -0
- package/dist/prompts/v1/advance-deal.v1.d.ts +41 -0
- package/dist/prompts/v1/advance-deal.v1.d.ts.map +1 -0
- package/dist/prompts/v1/advance-deal.v1.js +100 -0
- package/dist/prompts/v1/advance-deal.v1.js.map +1 -0
- package/dist/prompts/v1/company-search.v1.d.ts +44 -0
- package/dist/prompts/v1/company-search.v1.d.ts.map +1 -0
- package/dist/prompts/v1/company-search.v1.js +114 -0
- package/dist/prompts/v1/company-search.v1.js.map +1 -0
- package/dist/prompts/v1/constants.d.ts +112 -0
- package/dist/prompts/v1/constants.d.ts.map +1 -0
- package/dist/prompts/v1/constants.js +119 -0
- package/dist/prompts/v1/constants.js.map +1 -0
- package/dist/prompts/v1/create-task.v1.d.ts +50 -0
- package/dist/prompts/v1/create-task.v1.d.ts.map +1 -0
- package/dist/prompts/v1/create-task.v1.js +136 -0
- package/dist/prompts/v1/create-task.v1.js.map +1 -0
- package/dist/prompts/v1/deal-search.v1.d.ts +44 -0
- package/dist/prompts/v1/deal-search.v1.d.ts.map +1 -0
- package/dist/prompts/v1/deal-search.v1.js +114 -0
- package/dist/prompts/v1/deal-search.v1.js.map +1 -0
- package/dist/prompts/v1/index.d.ts +56 -0
- package/dist/prompts/v1/index.d.ts.map +1 -0
- package/dist/prompts/v1/index.js +81 -0
- package/dist/prompts/v1/index.js.map +1 -0
- package/dist/prompts/v1/log-activity.v1.d.ts +48 -0
- package/dist/prompts/v1/log-activity.v1.d.ts.map +1 -0
- package/dist/prompts/v1/log-activity.v1.js +124 -0
- package/dist/prompts/v1/log-activity.v1.js.map +1 -0
- package/dist/prompts/v1/meeting-prep.v1.d.ts +42 -0
- package/dist/prompts/v1/meeting-prep.v1.d.ts.map +1 -0
- package/dist/prompts/v1/meeting-prep.v1.js +105 -0
- package/dist/prompts/v1/meeting-prep.v1.js.map +1 -0
- package/dist/prompts/v1/people-search.v1.d.ts +45 -0
- package/dist/prompts/v1/people-search.v1.d.ts.map +1 -0
- package/dist/prompts/v1/people-search.v1.js +115 -0
- package/dist/prompts/v1/people-search.v1.js.map +1 -0
- package/dist/prompts/v1/pipeline-health.v1.d.ts +48 -0
- package/dist/prompts/v1/pipeline-health.v1.d.ts.map +1 -0
- package/dist/prompts/v1/pipeline-health.v1.js +131 -0
- package/dist/prompts/v1/pipeline-health.v1.js.map +1 -0
- package/dist/prompts/v1/qualify-lead.v1.d.ts +51 -0
- package/dist/prompts/v1/qualify-lead.v1.d.ts.map +1 -0
- package/dist/prompts/v1/qualify-lead.v1.js +157 -0
- package/dist/prompts/v1/qualify-lead.v1.js.map +1 -0
- package/dist/prompts/v1/types.d.ts +134 -0
- package/dist/prompts/v1/types.d.ts.map +1 -0
- package/dist/prompts/v1/types.js +36 -0
- package/dist/prompts/v1/types.js.map +1 -0
- package/dist/prompts/v1/utils/telemetry.d.ts +64 -0
- package/dist/prompts/v1/utils/telemetry.d.ts.map +1 -0
- package/dist/prompts/v1/utils/telemetry.js +88 -0
- package/dist/prompts/v1/utils/telemetry.js.map +1 -0
- package/dist/prompts/v1/utils/token-metadata.d.ts +43 -0
- package/dist/prompts/v1/utils/token-metadata.d.ts.map +1 -0
- package/dist/prompts/v1/utils/token-metadata.js +90 -0
- package/dist/prompts/v1/utils/token-metadata.js.map +1 -0
- package/dist/prompts/v1/utils/validation.d.ts +69 -0
- package/dist/prompts/v1/utils/validation.d.ts.map +1 -0
- package/dist/prompts/v1/utils/validation.js +140 -0
- package/dist/prompts/v1/utils/validation.js.map +1 -0
- package/dist/server/createServer.d.ts +2 -2
- package/dist/server/createServer.d.ts.map +1 -1
- package/dist/server/createServer.js +2 -2
- package/dist/server/createServer.js.map +1 -1
- package/dist/services/ErrorService.d.ts +27 -0
- package/dist/services/ErrorService.d.ts.map +1 -1
- package/dist/services/ErrorService.js +92 -1
- package/dist/services/ErrorService.js.map +1 -1
- package/dist/services/UniversalUpdateService.d.ts.map +1 -1
- package/dist/services/UniversalUpdateService.js +32 -2
- package/dist/services/UniversalUpdateService.js.map +1 -1
- package/dist/services/create/data-normalizers.d.ts.map +1 -1
- package/dist/services/create/data-normalizers.js +18 -1
- package/dist/services/create/data-normalizers.js.map +1 -1
- package/dist/services/metadata/MetadataDiscoveryService.d.ts +4 -2
- package/dist/services/metadata/MetadataDiscoveryService.d.ts.map +1 -1
- package/dist/services/metadata/MetadataDiscoveryService.js +69 -157
- package/dist/services/metadata/MetadataDiscoveryService.js.map +1 -1
- package/dist/services/metadata/discovery-runner.d.ts +25 -0
- package/dist/services/metadata/discovery-runner.d.ts.map +1 -0
- package/dist/services/metadata/discovery-runner.js +66 -0
- package/dist/services/metadata/discovery-runner.js.map +1 -0
- package/dist/services/metadata/task-metadata.d.ts +13 -0
- package/dist/services/metadata/task-metadata.d.ts.map +1 -0
- package/dist/services/metadata/task-metadata.js +84 -0
- package/dist/services/metadata/task-metadata.js.map +1 -0
- package/dist/services/normalizers/AttributeAwareNormalizer.d.ts.map +1 -1
- package/dist/services/normalizers/AttributeAwareNormalizer.js +99 -5
- package/dist/services/normalizers/AttributeAwareNormalizer.js.map +1 -1
- package/dist/services/normalizers/PhoneNormalizer.d.ts +2 -2
- package/dist/services/normalizers/PhoneNormalizer.d.ts.map +1 -1
- package/dist/services/normalizers/PhoneNormalizer.js +1 -7
- package/dist/services/normalizers/PhoneNormalizer.js.map +1 -1
- package/dist/services/search-strategies/CompanySearchStrategy.d.ts.map +1 -1
- package/dist/services/search-strategies/CompanySearchStrategy.js +10 -4
- package/dist/services/search-strategies/CompanySearchStrategy.js.map +1 -1
- package/dist/services/search-strategies/PeopleSearchStrategy.d.ts.map +1 -1
- package/dist/services/search-strategies/PeopleSearchStrategy.js +21 -15
- package/dist/services/search-strategies/PeopleSearchStrategy.js.map +1 -1
- package/dist/services/search-strategies/query-filter-builder.d.ts +5 -0
- package/dist/services/search-strategies/query-filter-builder.d.ts.map +1 -0
- package/dist/services/search-strategies/query-filter-builder.js +129 -0
- package/dist/services/search-strategies/query-filter-builder.js.map +1 -0
- package/dist/services/utils/attribute-metadata.d.ts +7 -0
- package/dist/services/utils/attribute-metadata.d.ts.map +1 -0
- package/dist/services/utils/attribute-metadata.js +84 -0
- package/dist/services/utils/attribute-metadata.js.map +1 -0
- package/dist/smithery.d.ts +2 -2
- package/dist/smithery.d.ts.map +1 -1
- package/dist/smithery.js +4 -2
- package/dist/smithery.js.map +1 -1
- package/dist/types/attio.d.ts +32 -11
- package/dist/types/attio.d.ts.map +1 -1
- package/dist/types/attio.js.map +1 -1
- package/dist/types/list-types.d.ts +2 -0
- package/dist/types/list-types.d.ts.map +1 -1
- package/dist/types/list-types.js.map +1 -1
- package/dist/utils/attribute-format-helpers.d.ts.map +1 -1
- package/dist/utils/attribute-format-helpers.js +22 -0
- package/dist/utils/attribute-format-helpers.js.map +1 -1
- package/dist/utils/axios-error-mapper.d.ts +1 -0
- package/dist/utils/axios-error-mapper.d.ts.map +1 -1
- package/dist/utils/axios-error-mapper.js.map +1 -1
- package/dist/utils/client-resolver.d.ts +3 -3
- package/dist/utils/client-resolver.d.ts.map +1 -1
- package/dist/utils/client-resolver.js +28 -21
- package/dist/utils/client-resolver.js.map +1 -1
- package/dist/utils/error-handler.js +2 -2
- package/dist/utils/error-handler.js.map +1 -1
- package/dist/utils/error-sanitizer.d.ts.map +1 -1
- package/dist/utils/error-sanitizer.js +52 -3
- package/dist/utils/error-sanitizer.js.map +1 -1
- package/dist/utils/json-serializer.d.ts.map +1 -1
- package/dist/utils/json-serializer.js +55 -6
- package/dist/utils/json-serializer.js.map +1 -1
- package/dist/utils/log-sanitizer.d.ts +14 -0
- package/dist/utils/log-sanitizer.d.ts.map +1 -0
- package/dist/utils/log-sanitizer.js +248 -0
- package/dist/utils/log-sanitizer.js.map +1 -0
- package/dist/utils/logger.d.ts +15 -9
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +74 -42
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/mcp-discovery.d.ts +16 -0
- package/dist/utils/mcp-discovery.d.ts.map +1 -0
- package/dist/utils/mcp-discovery.js +36 -0
- package/dist/utils/mcp-discovery.js.map +1 -0
- package/dist/utils/secure-error-handler.d.ts +16 -1
- package/dist/utils/secure-error-handler.d.ts.map +1 -1
- package/dist/utils/secure-error-handler.js +91 -12
- package/dist/utils/secure-error-handler.js.map +1 -1
- package/dist/utils/token-count.d.ts +5 -0
- package/dist/utils/token-count.d.ts.map +1 -0
- package/dist/utils/token-count.js +57 -0
- package/dist/utils/token-count.js.map +1 -0
- package/dist/utils/token-footprint-analyzer.d.ts +46 -0
- package/dist/utils/token-footprint-analyzer.d.ts.map +1 -0
- package/dist/utils/token-footprint-analyzer.js +221 -0
- package/dist/utils/token-footprint-analyzer.js.map +1 -0
- package/dist/utils/validation/phone-validation.d.ts +25 -0
- package/dist/utils/validation/phone-validation.d.ts.map +1 -0
- package/dist/utils/validation/phone-validation.js +133 -0
- package/dist/utils/validation/phone-validation.js.map +1 -0
- package/dist/utils/validation/uuid-validation.d.ts.map +1 -1
- package/dist/utils/validation/uuid-validation.js +1 -0
- package/dist/utils/validation/uuid-validation.js.map +1 -1
- package/package.json +19 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qualify Lead v1 Prompt
|
|
3
|
+
*
|
|
4
|
+
* Resolve lead, scan 2-3 web sources, return BANT/CHAMP summary with evidence,
|
|
5
|
+
* propose next actions.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { PromptV1Definition, PromptMessage, PromptArgument } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Argument schema for qualify_lead.v1
|
|
11
|
+
*/
|
|
12
|
+
export declare const QualifyLeadArgs: z.ZodObject<{
|
|
13
|
+
target: z.ZodString;
|
|
14
|
+
icp_preset: z.ZodOptional<z.ZodString>;
|
|
15
|
+
framework: z.ZodDefault<z.ZodOptional<z.ZodEnum<["bant", "champ"]>>>;
|
|
16
|
+
format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["json", "table"]>>>;
|
|
17
|
+
verbosity: z.ZodDefault<z.ZodOptional<z.ZodEnum<["brief", "normal"]>>>;
|
|
18
|
+
dry_run: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
19
|
+
limit_web: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
20
|
+
}, "strip", z.ZodTypeAny, {
|
|
21
|
+
format: "json" | "table";
|
|
22
|
+
target: string;
|
|
23
|
+
verbosity: "brief" | "normal";
|
|
24
|
+
dry_run: boolean;
|
|
25
|
+
framework: "bant" | "champ";
|
|
26
|
+
limit_web: number;
|
|
27
|
+
icp_preset?: string | undefined;
|
|
28
|
+
}, {
|
|
29
|
+
target: string;
|
|
30
|
+
format?: "json" | "table" | undefined;
|
|
31
|
+
verbosity?: "brief" | "normal" | undefined;
|
|
32
|
+
dry_run?: boolean | undefined;
|
|
33
|
+
icp_preset?: string | undefined;
|
|
34
|
+
framework?: "bant" | "champ" | undefined;
|
|
35
|
+
limit_web?: number | undefined;
|
|
36
|
+
}>;
|
|
37
|
+
export type QualifyLeadArgsType = z.infer<typeof QualifyLeadArgs>;
|
|
38
|
+
/**
|
|
39
|
+
* Argument definitions for registration
|
|
40
|
+
*/
|
|
41
|
+
export declare const qualifyLeadArguments: PromptArgument[];
|
|
42
|
+
/**
|
|
43
|
+
* Build prompt messages for qualifying lead
|
|
44
|
+
*/
|
|
45
|
+
export declare function buildQualifyLeadMessages(args: Record<string, unknown>): PromptMessage[];
|
|
46
|
+
/**
|
|
47
|
+
* Complete prompt definition
|
|
48
|
+
*/
|
|
49
|
+
export declare const qualifyLeadPrompt: PromptV1Definition;
|
|
50
|
+
export default qualifyLeadPrompt;
|
|
51
|
+
//# sourceMappingURL=qualify-lead.v1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qualify-lead.v1.d.ts","sourceRoot":"","sources":["../../../src/prompts/v1/qualify-lead.v1.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI/E;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;EAmC1B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAAc,EAgDhD,CAAC;AAEF;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,aAAa,EAAE,CAyCjB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAY/B,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qualify Lead v1 Prompt
|
|
3
|
+
*
|
|
4
|
+
* Resolve lead, scan 2-3 web sources, return BANT/CHAMP summary with evidence,
|
|
5
|
+
* propose next actions.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { DryRunArg } from './types.js';
|
|
9
|
+
import { WEB_RESEARCH_LIMITS } from './constants.js';
|
|
10
|
+
/**
|
|
11
|
+
* Argument schema for qualify_lead.v1
|
|
12
|
+
*/
|
|
13
|
+
export const QualifyLeadArgs = z.object({
|
|
14
|
+
target: z
|
|
15
|
+
.string()
|
|
16
|
+
.min(3)
|
|
17
|
+
.describe('Attio Person/Company/Deal URL or ID, or "search:<text>"'),
|
|
18
|
+
icp_preset: z
|
|
19
|
+
.string()
|
|
20
|
+
.optional()
|
|
21
|
+
.describe("Optional ICP preset (e.g., 'SaaS mid-market NA')"),
|
|
22
|
+
framework: z
|
|
23
|
+
.enum(['bant', 'champ'])
|
|
24
|
+
.optional()
|
|
25
|
+
.default('bant')
|
|
26
|
+
.describe('Qualification framework'),
|
|
27
|
+
format: z
|
|
28
|
+
.enum(['json', 'table'])
|
|
29
|
+
.optional()
|
|
30
|
+
.default('json')
|
|
31
|
+
.describe('Output format'),
|
|
32
|
+
verbosity: z
|
|
33
|
+
.enum(['brief', 'normal'])
|
|
34
|
+
.optional()
|
|
35
|
+
.default('brief')
|
|
36
|
+
.describe('Response detail level'),
|
|
37
|
+
dry_run: DryRunArg,
|
|
38
|
+
limit_web: z
|
|
39
|
+
.number()
|
|
40
|
+
.int()
|
|
41
|
+
.min(1)
|
|
42
|
+
.max(WEB_RESEARCH_LIMITS.maxLimitWeb)
|
|
43
|
+
.optional()
|
|
44
|
+
.default(WEB_RESEARCH_LIMITS.defaultLimitWeb)
|
|
45
|
+
.describe(`Max pages to fetch (default ${WEB_RESEARCH_LIMITS.defaultLimitWeb}, max ${WEB_RESEARCH_LIMITS.maxLimitWeb})`),
|
|
46
|
+
});
|
|
47
|
+
/**
|
|
48
|
+
* Argument definitions for registration
|
|
49
|
+
*/
|
|
50
|
+
export const qualifyLeadArguments = [
|
|
51
|
+
{
|
|
52
|
+
name: 'target',
|
|
53
|
+
description: 'Attio URL, ID, or "search:<text>"',
|
|
54
|
+
required: true,
|
|
55
|
+
schema: z.string().min(3),
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'icp_preset',
|
|
59
|
+
description: "Optional ICP preset (e.g., 'SaaS mid-market NA')",
|
|
60
|
+
required: false,
|
|
61
|
+
schema: z.string(),
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'framework',
|
|
65
|
+
description: 'bant | champ (default bant)',
|
|
66
|
+
required: false,
|
|
67
|
+
schema: z.enum(['bant', 'champ']),
|
|
68
|
+
default: 'bant',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: 'format',
|
|
72
|
+
description: 'json | table (default json)',
|
|
73
|
+
required: false,
|
|
74
|
+
schema: z.enum(['json', 'table']),
|
|
75
|
+
default: 'json',
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: 'verbosity',
|
|
79
|
+
description: 'brief | normal (default brief)',
|
|
80
|
+
required: false,
|
|
81
|
+
schema: z.enum(['brief', 'normal']),
|
|
82
|
+
default: 'brief',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: 'dry_run',
|
|
86
|
+
description: "Only propose, don't execute (default false)",
|
|
87
|
+
required: false,
|
|
88
|
+
schema: z.boolean(),
|
|
89
|
+
default: false,
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: 'limit_web',
|
|
93
|
+
description: `Max pages (default ${WEB_RESEARCH_LIMITS.defaultLimitWeb}, max ${WEB_RESEARCH_LIMITS.maxLimitWeb})`,
|
|
94
|
+
required: false,
|
|
95
|
+
schema: z.number().int().min(1).max(WEB_RESEARCH_LIMITS.maxLimitWeb),
|
|
96
|
+
default: WEB_RESEARCH_LIMITS.defaultLimitWeb,
|
|
97
|
+
},
|
|
98
|
+
];
|
|
99
|
+
/**
|
|
100
|
+
* Build prompt messages for qualifying lead
|
|
101
|
+
*/
|
|
102
|
+
export function buildQualifyLeadMessages(args) {
|
|
103
|
+
const validated = QualifyLeadArgs.parse(args);
|
|
104
|
+
const icpContext = validated.icp_preset
|
|
105
|
+
? `ICP context: "${validated.icp_preset}" affects scoring thresholds.`
|
|
106
|
+
: '';
|
|
107
|
+
const instructions = `Goal: produce a compact lead-qualification summary with evidence, then optionally update fields and create a next-action task.
|
|
108
|
+
|
|
109
|
+
${icpContext}
|
|
110
|
+
|
|
111
|
+
Steps:
|
|
112
|
+
1) Resolve \`target\`: If starts with \`search:\`, call \`records_query\` to find one Person/Company (prefer exact domain/email + title+company). If multiple, list up to 5 for disambiguation and STOP.
|
|
113
|
+
|
|
114
|
+
2) Build a tiny web plan (token-light): At most ${validated.limit_web} pages total. Prioritize: company homepage (domain), LinkedIn company page, product/pricing page. Call \`web.search\` only if domain is unknown; otherwise skip search. Call \`web.fetch\` and extract readable text only (strip nav/boilerplate). Truncate each page to the first ~${WEB_RESEARCH_LIMITS.maxWordsPerPage} words.
|
|
115
|
+
|
|
116
|
+
3) Extract key facts for ${validated.framework.toUpperCase()}:
|
|
117
|
+
- Firmographic: industry, employee bucket, region; ICP match
|
|
118
|
+
- Problem fit: product category/keywords
|
|
119
|
+
- Budget: pricing tier mentions
|
|
120
|
+
- Authority: likely buyer role(s)
|
|
121
|
+
- Timing/Priority: hiring/funding/news in last 12 months
|
|
122
|
+
|
|
123
|
+
4) Output (${validated.format}):
|
|
124
|
+
- If json: return ONLY a JSON object with fields: lead, framework, fit, score, summary (≤80w), evidence (≤${WEB_RESEARCH_LIMITS.maxEvidence}), fields_to_update, recommended_next_step (≤20w)
|
|
125
|
+
- If table: return a 2-column table
|
|
126
|
+
Verbosity=${validated.verbosity} → no preamble
|
|
127
|
+
|
|
128
|
+
5) Propose actions: Suggest a single \`records.update\` and optionally \`tasks.create\`. ${validated.dry_run ? 'Output proposed tool call(s) as JSON only.' : 'Ask for approval before any write.'}
|
|
129
|
+
|
|
130
|
+
Constraints: Pages ≤ ${validated.limit_web}, each ≤ ~${WEB_RESEARCH_LIMITS.maxWordsPerPage} words; evidence max ${WEB_RESEARCH_LIMITS.maxEvidence}. Keep answers short and structured; no raw dumps; JSON under ~120 lines. MORE_AVAILABLE: true when results exceed limits.`;
|
|
131
|
+
return [
|
|
132
|
+
{
|
|
133
|
+
role: 'user',
|
|
134
|
+
content: {
|
|
135
|
+
type: 'text',
|
|
136
|
+
text: instructions,
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
];
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Complete prompt definition
|
|
143
|
+
*/
|
|
144
|
+
export const qualifyLeadPrompt = {
|
|
145
|
+
metadata: {
|
|
146
|
+
name: 'qualify_lead.v1',
|
|
147
|
+
title: 'Qualify a lead (light web research)',
|
|
148
|
+
description: 'Resolve a lead, scan 2-3 web sources, return a BANT/CHAMP summary with evidence, and propose next actions.',
|
|
149
|
+
category: 'analysis',
|
|
150
|
+
version: 'v1',
|
|
151
|
+
},
|
|
152
|
+
arguments: qualifyLeadArguments,
|
|
153
|
+
buildMessages: buildQualifyLeadMessages,
|
|
154
|
+
tokenBudget: 400, // Per spec (with defaults)
|
|
155
|
+
};
|
|
156
|
+
export default qualifyLeadPrompt;
|
|
157
|
+
//# sourceMappingURL=qualify-lead.v1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qualify-lead.v1.js","sourceRoot":"","sources":["../../../src/prompts/v1/qualify-lead.v1.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for MCP v1 Prompts
|
|
3
|
+
*
|
|
4
|
+
* These types align with the Model Context Protocol specification for prompts
|
|
5
|
+
* and extend them with token awareness features from issue #775.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
/**
|
|
9
|
+
* MCP PromptMessage types
|
|
10
|
+
* Aligned with @modelcontextprotocol/sdk types
|
|
11
|
+
*/
|
|
12
|
+
export type PromptRole = 'user' | 'assistant';
|
|
13
|
+
export interface TextContent {
|
|
14
|
+
type: 'text';
|
|
15
|
+
text: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ImageContent {
|
|
18
|
+
type: 'image';
|
|
19
|
+
data: string;
|
|
20
|
+
mimeType: string;
|
|
21
|
+
}
|
|
22
|
+
export interface EmbeddedResource {
|
|
23
|
+
type: 'resource';
|
|
24
|
+
resource: {
|
|
25
|
+
uri: string;
|
|
26
|
+
mimeType?: string;
|
|
27
|
+
text?: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export type PromptContent = TextContent | ImageContent | EmbeddedResource;
|
|
31
|
+
export interface PromptMessage {
|
|
32
|
+
role: PromptRole;
|
|
33
|
+
content: PromptContent;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Token metadata for prompt responses
|
|
37
|
+
* Provides token counting information when dev mode is enabled
|
|
38
|
+
*/
|
|
39
|
+
export interface TokenMetadata {
|
|
40
|
+
/** Total estimated tokens for the prompt */
|
|
41
|
+
estimated_tokens: number;
|
|
42
|
+
/** Total character count across all messages */
|
|
43
|
+
message_chars: number;
|
|
44
|
+
/** Total bytes for embedded resources */
|
|
45
|
+
resource_bytes: number;
|
|
46
|
+
/** Counting method used */
|
|
47
|
+
method: 'tiktoken' | 'estimate';
|
|
48
|
+
/** Whether the count is approximate */
|
|
49
|
+
approx: boolean;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Argument definition for a prompt parameter
|
|
53
|
+
*/
|
|
54
|
+
export interface PromptArgument {
|
|
55
|
+
/** Argument name */
|
|
56
|
+
name: string;
|
|
57
|
+
/** Human-readable description (≤80 chars per spec) */
|
|
58
|
+
description: string;
|
|
59
|
+
/** Whether this argument is required */
|
|
60
|
+
required: boolean;
|
|
61
|
+
/** Zod schema for validation */
|
|
62
|
+
schema: z.ZodTypeAny;
|
|
63
|
+
/** Default value if not provided */
|
|
64
|
+
default?: unknown;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Prompt metadata for discovery
|
|
68
|
+
*/
|
|
69
|
+
export interface PromptMetadata {
|
|
70
|
+
/** Unique prompt identifier (e.g., "people_search.v1") */
|
|
71
|
+
name: string;
|
|
72
|
+
/** Human-readable title */
|
|
73
|
+
title: string;
|
|
74
|
+
/** Short description (≤140 chars per spec) */
|
|
75
|
+
description: string;
|
|
76
|
+
/** Category for grouping */
|
|
77
|
+
category: 'search' | 'activity' | 'workflow' | 'analysis' | 'general';
|
|
78
|
+
/** Prompt version */
|
|
79
|
+
version: string;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Complete prompt definition
|
|
83
|
+
*/
|
|
84
|
+
export interface PromptV1Definition {
|
|
85
|
+
/** Prompt metadata */
|
|
86
|
+
metadata: PromptMetadata;
|
|
87
|
+
/** Argument definitions with Zod schemas */
|
|
88
|
+
arguments: PromptArgument[];
|
|
89
|
+
/** Function to build prompt messages from validated arguments */
|
|
90
|
+
buildMessages: (args: Record<string, unknown>) => PromptMessage[];
|
|
91
|
+
/** Optional: expected token budget for this prompt */
|
|
92
|
+
tokenBudget?: number;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Result structure for prompts/get endpoint with optional dev metadata
|
|
96
|
+
*/
|
|
97
|
+
export interface GetPromptV1Result {
|
|
98
|
+
/** Description of the prompt */
|
|
99
|
+
description?: string;
|
|
100
|
+
/** Array of prompt messages */
|
|
101
|
+
messages: PromptMessage[];
|
|
102
|
+
/** Optional dev metadata (when ?dev=true) */
|
|
103
|
+
_meta?: TokenMetadata;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Universal argument schemas for read prompts
|
|
107
|
+
*/
|
|
108
|
+
export declare const UniversalReadArgs: {
|
|
109
|
+
format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["table", "json", "ids"]>>>;
|
|
110
|
+
fields_preset: z.ZodDefault<z.ZodOptional<z.ZodEnum<["sales_short", "full"]>>>;
|
|
111
|
+
verbosity: z.ZodDefault<z.ZodOptional<z.ZodEnum<["brief", "normal"]>>>;
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Universal argument for write prompts
|
|
115
|
+
*/
|
|
116
|
+
export declare const DryRunArg: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
117
|
+
/**
|
|
118
|
+
* Validation error structure
|
|
119
|
+
*/
|
|
120
|
+
export interface ValidationError {
|
|
121
|
+
field: string;
|
|
122
|
+
message: string;
|
|
123
|
+
code: string;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Budget enforcement result
|
|
127
|
+
*/
|
|
128
|
+
export interface BudgetCheckResult {
|
|
129
|
+
withinBudget: boolean;
|
|
130
|
+
estimatedTokens: number;
|
|
131
|
+
budgetLimit: number;
|
|
132
|
+
exceededBy?: number;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/prompts/v1/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for MCP v1 Prompts
|
|
3
|
+
*
|
|
4
|
+
* These types align with the Model Context Protocol specification for prompts
|
|
5
|
+
* and extend them with token awareness features from issue #775.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
/**
|
|
9
|
+
* Universal argument schemas for read prompts
|
|
10
|
+
*/
|
|
11
|
+
export const UniversalReadArgs = {
|
|
12
|
+
format: z
|
|
13
|
+
.enum(['table', 'json', 'ids'])
|
|
14
|
+
.optional()
|
|
15
|
+
.default('table')
|
|
16
|
+
.describe('Output format: table (Markdown), json (structured array), or ids (comma-separated)'),
|
|
17
|
+
fields_preset: z
|
|
18
|
+
.enum(['sales_short', 'full'])
|
|
19
|
+
.optional()
|
|
20
|
+
.default('sales_short')
|
|
21
|
+
.describe('Field verbosity: sales_short (minimal, token-efficient) or full (all fields)'),
|
|
22
|
+
verbosity: z
|
|
23
|
+
.enum(['brief', 'normal'])
|
|
24
|
+
.optional()
|
|
25
|
+
.default('brief')
|
|
26
|
+
.describe('Response detail level: brief (concise) or normal (detailed)'),
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Universal argument for write prompts
|
|
30
|
+
*/
|
|
31
|
+
export const DryRunArg = z
|
|
32
|
+
.boolean()
|
|
33
|
+
.optional()
|
|
34
|
+
.default(false)
|
|
35
|
+
.describe('If true, only propose tool calls without executing writes');
|
|
36
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/prompts/v1/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8GxB;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;SAC9B,QAAQ,EAAE;SACV,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CACP,oFAAoF,CACrF;IAEH,aAAa,EAAE,CAAC;SACb,IAAI,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;SAC7B,QAAQ,EAAE;SACV,OAAO,CAAC,aAAa,CAAC;SACtB,QAAQ,CACP,8EAA8E,CAC/E;IAEH,SAAS,EAAE,CAAC;SACT,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;SACzB,QAAQ,EAAE;SACV,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CAAC,6DAA6D,CAAC;CAC3E,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC;KACvB,OAAO,EAAE;KACT,QAAQ,EAAE;KACV,OAAO,CAAC,KAAK,CAAC;KACd,QAAQ,CAAC,2DAA2D,CAAC,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Telemetry logging for v1 prompts
|
|
3
|
+
*
|
|
4
|
+
* Provides structured logging of prompt usage metrics when enabled.
|
|
5
|
+
* Respects PROMPT_TELEMETRY_ENABLED environment variable.
|
|
6
|
+
*/
|
|
7
|
+
import { TokenMetadata } from '../types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Telemetry event data structure
|
|
10
|
+
*/
|
|
11
|
+
export interface PromptTelemetryEvent {
|
|
12
|
+
/** Name of the prompt executed */
|
|
13
|
+
prompt_name: string;
|
|
14
|
+
/** Estimated tokens in the response */
|
|
15
|
+
estimated_tokens: number;
|
|
16
|
+
/** Number of messages in the response */
|
|
17
|
+
message_count: number;
|
|
18
|
+
/** Total bytes of embedded resources */
|
|
19
|
+
resource_bytes: number;
|
|
20
|
+
/** Duration of prompt execution in milliseconds */
|
|
21
|
+
duration_ms: number;
|
|
22
|
+
/** Timestamp of the event */
|
|
23
|
+
timestamp: string;
|
|
24
|
+
/** Whether the prompt exceeded its budget */
|
|
25
|
+
budget_exceeded?: boolean;
|
|
26
|
+
/** User ID if available */
|
|
27
|
+
user_id?: string;
|
|
28
|
+
/** Request ID for correlation */
|
|
29
|
+
request_id?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Log a prompt telemetry event
|
|
33
|
+
*
|
|
34
|
+
* Only logs if PROMPT_TELEMETRY_ENABLED=true
|
|
35
|
+
*
|
|
36
|
+
* @param event - Telemetry event data
|
|
37
|
+
*/
|
|
38
|
+
export declare function logPromptTelemetry(event: PromptTelemetryEvent): void;
|
|
39
|
+
/**
|
|
40
|
+
* Create a telemetry event from execution data
|
|
41
|
+
*
|
|
42
|
+
* @param promptName - Name of the prompt
|
|
43
|
+
* @param tokenMetadata - Token metadata from execution
|
|
44
|
+
* @param messageCount - Number of messages generated
|
|
45
|
+
* @param startTime - Execution start time (Date.now())
|
|
46
|
+
* @param budgetExceeded - Whether budget was exceeded
|
|
47
|
+
* @param userId - Optional user ID
|
|
48
|
+
* @param requestId - Optional request ID
|
|
49
|
+
* @returns Telemetry event
|
|
50
|
+
*/
|
|
51
|
+
export declare function createTelemetryEvent(promptName: string, tokenMetadata: TokenMetadata, messageCount: number, startTime: number, budgetExceeded?: boolean, userId?: string, requestId?: string): PromptTelemetryEvent;
|
|
52
|
+
/**
|
|
53
|
+
* Track prompt execution with automatic telemetry
|
|
54
|
+
*
|
|
55
|
+
* Helper function to wrap prompt execution with telemetry logging
|
|
56
|
+
*
|
|
57
|
+
* @param promptName - Name of the prompt
|
|
58
|
+
* @param execution - Async function that executes the prompt
|
|
59
|
+
* @param userId - Optional user ID
|
|
60
|
+
* @param requestId - Optional request ID
|
|
61
|
+
* @returns Execution result with telemetry logged
|
|
62
|
+
*/
|
|
63
|
+
export declare function trackPromptExecution<T>(promptName: string, execution: () => Promise<T>, userId?: string, requestId?: string): Promise<T>;
|
|
64
|
+
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../../src/prompts/v1/utils/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAgBpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,cAAc,GAAE,OAAe,EAC/B,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,oBAAoB,CAYtB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC,CAkBZ"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Telemetry logging for v1 prompts
|
|
3
|
+
*
|
|
4
|
+
* Provides structured logging of prompt usage metrics when enabled.
|
|
5
|
+
* Respects PROMPT_TELEMETRY_ENABLED environment variable.
|
|
6
|
+
*/
|
|
7
|
+
import { createScopedLogger } from '../../../utils/logger.js';
|
|
8
|
+
import { isTelemetryEnabled } from '../constants.js';
|
|
9
|
+
const logger = createScopedLogger('prompts.v1', 'telemetry');
|
|
10
|
+
/**
|
|
11
|
+
* Log a prompt telemetry event
|
|
12
|
+
*
|
|
13
|
+
* Only logs if PROMPT_TELEMETRY_ENABLED=true
|
|
14
|
+
*
|
|
15
|
+
* @param event - Telemetry event data
|
|
16
|
+
*/
|
|
17
|
+
export function logPromptTelemetry(event) {
|
|
18
|
+
if (!isTelemetryEnabled()) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
logger.info('Prompt executed', {
|
|
22
|
+
prompt_name: event.prompt_name,
|
|
23
|
+
estimated_tokens: event.estimated_tokens,
|
|
24
|
+
message_count: event.message_count,
|
|
25
|
+
resource_bytes: event.resource_bytes,
|
|
26
|
+
duration_ms: event.duration_ms,
|
|
27
|
+
budget_exceeded: event.budget_exceeded,
|
|
28
|
+
user_id: event.user_id,
|
|
29
|
+
request_id: event.request_id,
|
|
30
|
+
timestamp: event.timestamp,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Create a telemetry event from execution data
|
|
35
|
+
*
|
|
36
|
+
* @param promptName - Name of the prompt
|
|
37
|
+
* @param tokenMetadata - Token metadata from execution
|
|
38
|
+
* @param messageCount - Number of messages generated
|
|
39
|
+
* @param startTime - Execution start time (Date.now())
|
|
40
|
+
* @param budgetExceeded - Whether budget was exceeded
|
|
41
|
+
* @param userId - Optional user ID
|
|
42
|
+
* @param requestId - Optional request ID
|
|
43
|
+
* @returns Telemetry event
|
|
44
|
+
*/
|
|
45
|
+
export function createTelemetryEvent(promptName, tokenMetadata, messageCount, startTime, budgetExceeded = false, userId, requestId) {
|
|
46
|
+
return {
|
|
47
|
+
prompt_name: promptName,
|
|
48
|
+
estimated_tokens: tokenMetadata.estimated_tokens,
|
|
49
|
+
message_count: messageCount,
|
|
50
|
+
resource_bytes: tokenMetadata.resource_bytes,
|
|
51
|
+
duration_ms: Date.now() - startTime,
|
|
52
|
+
timestamp: new Date().toISOString(),
|
|
53
|
+
budget_exceeded: budgetExceeded,
|
|
54
|
+
user_id: userId,
|
|
55
|
+
request_id: requestId,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Track prompt execution with automatic telemetry
|
|
60
|
+
*
|
|
61
|
+
* Helper function to wrap prompt execution with telemetry logging
|
|
62
|
+
*
|
|
63
|
+
* @param promptName - Name of the prompt
|
|
64
|
+
* @param execution - Async function that executes the prompt
|
|
65
|
+
* @param userId - Optional user ID
|
|
66
|
+
* @param requestId - Optional request ID
|
|
67
|
+
* @returns Execution result with telemetry logged
|
|
68
|
+
*/
|
|
69
|
+
export async function trackPromptExecution(promptName, execution, userId, requestId) {
|
|
70
|
+
const startTime = Date.now();
|
|
71
|
+
try {
|
|
72
|
+
const result = await execution();
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
// Note: This is a simplified version
|
|
77
|
+
// Full telemetry is logged in the handlers after message generation
|
|
78
|
+
if (isTelemetryEnabled()) {
|
|
79
|
+
logger.debug('Prompt execution completed', {
|
|
80
|
+
prompt_name: promptName,
|
|
81
|
+
duration_ms: Date.now() - startTime,
|
|
82
|
+
user_id: userId,
|
|
83
|
+
request_id: requestId,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../../src/prompts/v1/utils/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AA0B7D;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA2B;IAC5D,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;QAC7B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAkB,EAClB,aAA4B,EAC5B,YAAoB,EACpB,SAAiB,EACjB,iBAA0B,KAAK,EAC/B,MAAe,EACf,SAAkB;IAElB,OAAO;QACL,WAAW,EAAE,UAAU;QACvB,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;QAChD,aAAa,EAAE,YAAY;QAC3B,cAAc,EAAE,aAAa,CAAC,cAAc;QAC5C,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,eAAe,EAAE,cAAc;QAC/B,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,SAAS;KACtB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAkB,EAClB,SAA2B,EAC3B,MAAe,EACf,SAAkB;IAElB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,qCAAqC;QACrC,oEAAoE;QACpE,IAAI,kBAAkB,EAAE,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;gBACzC,WAAW,EAAE,UAAU;gBACvB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACnC,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,SAAS;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token metadata calculation utilities for MCP prompts
|
|
3
|
+
*
|
|
4
|
+
* Wraps the token counting utility from #775 to provide
|
|
5
|
+
* prompt-specific token awareness features.
|
|
6
|
+
*/
|
|
7
|
+
import { PromptMessage, TokenMetadata, EmbeddedResource } from '../types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Calculate token metadata for a set of prompt messages
|
|
10
|
+
*
|
|
11
|
+
* @param messages - Array of prompt messages
|
|
12
|
+
* @param resources - Optional array of embedded resources
|
|
13
|
+
* @param model - Optional model name for token counting
|
|
14
|
+
* @returns Token metadata with counts and method info
|
|
15
|
+
*/
|
|
16
|
+
export declare function calculatePromptTokens(messages: PromptMessage[], resources?: EmbeddedResource[], model?: string): TokenMetadata;
|
|
17
|
+
/**
|
|
18
|
+
* Calculate tokens for a single text string
|
|
19
|
+
*
|
|
20
|
+
* Helper function for quick token estimates during prompt building
|
|
21
|
+
*
|
|
22
|
+
* @param text - Text to count tokens for
|
|
23
|
+
* @param model - Optional model name
|
|
24
|
+
* @returns Token count
|
|
25
|
+
*/
|
|
26
|
+
export declare function estimateTextTokens(text: string, model?: string): number;
|
|
27
|
+
/**
|
|
28
|
+
* Check if messages exceed a token budget
|
|
29
|
+
*
|
|
30
|
+
* @param messages - Prompt messages to check
|
|
31
|
+
* @param budget - Maximum allowed tokens
|
|
32
|
+
* @param model - Optional model name
|
|
33
|
+
* @returns Whether messages are within budget
|
|
34
|
+
*/
|
|
35
|
+
export declare function isWithinTokenBudget(messages: PromptMessage[], budget: number, model?: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Format token metadata for logging
|
|
38
|
+
*
|
|
39
|
+
* @param metadata - Token metadata to format
|
|
40
|
+
* @returns Formatted string for logs
|
|
41
|
+
*/
|
|
42
|
+
export declare function formatTokenMetadata(metadata: TokenMetadata): string;
|
|
43
|
+
//# sourceMappingURL=token-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-metadata.d.ts","sourceRoot":"","sources":["../../../../src/prompts/v1/utils/token-metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE7E;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,aAAa,EAAE,EACzB,SAAS,CAAC,EAAE,gBAAgB,EAAE,EAC9B,KAAK,CAAC,EAAE,MAAM,GACb,aAAa,CAyCf;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,aAAa,EAAE,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAGT;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAEnE"}
|