@elevasis/core 0.7.1 → 0.8.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/package.json +1 -1
- package/src/README.md +41 -41
- package/src/__tests__/publish.test.ts +18 -18
- package/src/__tests__/{template-foundations-compatibility.test.ts → template-core-compatibility.test.ts} +99 -99
- package/src/_gen/__tests__/__snapshots__/contracts.md.snap +1135 -1131
- package/src/_gen/__tests__/scaffold-contracts.test.ts +53 -53
- package/src/_gen/scaffold-contracts.ts +45 -45
- package/src/auth/multi-tenancy/credentials/README.md +38 -38
- package/src/auth/multi-tenancy/credentials/index.ts +6 -6
- package/src/auth/multi-tenancy/credentials/server/encryption.ts +39 -39
- package/src/auth/multi-tenancy/credentials/server/service.ts +60 -60
- package/src/auth/multi-tenancy/index.ts +17 -17
- package/src/auth/multi-tenancy/invitations/api-schemas.ts +107 -107
- package/src/auth/multi-tenancy/invitations/index.ts +37 -37
- package/src/auth/multi-tenancy/invitations/invitation.ts +86 -86
- package/src/auth/multi-tenancy/invitations/server/index.ts +25 -25
- package/src/auth/multi-tenancy/invitations/server/transforms.ts +24 -24
- package/src/auth/multi-tenancy/invitations/server/workos.ts +24 -24
- package/src/auth/multi-tenancy/invitations/supabase.ts +50 -50
- package/src/auth/multi-tenancy/memberships/api-schemas.ts +126 -126
- package/src/auth/multi-tenancy/memberships/index.ts +21 -21
- package/src/auth/multi-tenancy/memberships/membership.ts +138 -138
- package/src/auth/multi-tenancy/memberships/server/index.ts +15 -15
- package/src/auth/multi-tenancy/memberships/server/transforms.ts +32 -32
- package/src/auth/multi-tenancy/memberships/server/workos.ts +21 -21
- package/src/auth/multi-tenancy/memberships/supabase.ts +46 -46
- package/src/auth/multi-tenancy/organizations/api-schemas.ts +128 -128
- package/src/auth/multi-tenancy/organizations/index.ts +23 -23
- package/src/auth/multi-tenancy/organizations/organization.ts +24 -24
- package/src/auth/multi-tenancy/organizations/server/index.ts +10 -10
- package/src/auth/multi-tenancy/organizations/server/transforms.ts +35 -35
- package/src/auth/multi-tenancy/organizations/server/workos.ts +20 -20
- package/src/auth/multi-tenancy/types.ts +83 -83
- package/src/auth/multi-tenancy/users/api-schemas.ts +194 -194
- package/src/auth/multi-tenancy/users/index.ts +27 -27
- package/src/auth/multi-tenancy/users/server/index.ts +19 -19
- package/src/auth/multi-tenancy/users/server/transforms.ts +21 -21
- package/src/auth/multi-tenancy/users/server/workos.ts +16 -16
- package/src/auth/multi-tenancy/users/user.ts +65 -65
- package/src/business/README.md +52 -52
- package/src/business/__tests__/entities-published.test.ts +33 -33
- package/src/business/acquisition/api-schemas.ts +759 -759
- package/src/business/acquisition/index.ts +109 -109
- package/src/business/acquisition/types.ts +402 -402
- package/src/business/base-entities.test.ts +481 -481
- package/src/business/base-entities.ts +241 -241
- package/src/business/entities-published.ts +24 -24
- package/src/business/index.ts +15 -15
- package/src/business/pdf/browser/pdfmake-browser.ts +229 -229
- package/src/business/pdf/index.ts +10 -10
- package/src/business/pdf/server/index.ts +21 -21
- package/src/business/pdf/server/themes/default.ts +8 -8
- package/src/business/pdf/server/themes/index.ts +9 -9
- package/src/business/pdf/server/themes/types.ts +8 -8
- package/src/business/pdf/types.ts +272 -272
- package/src/business/projects/index.ts +2 -2
- package/src/business/projects/sse-events.ts +21 -21
- package/src/business/projects/types.ts +89 -89
- package/src/business/sales/api-schemas.ts +75 -75
- package/src/business/seo/__tests__/linking.test.ts +549 -549
- package/src/business/seo/__tests__/types.test.ts +404 -404
- package/src/business/seo/index.ts +2 -2
- package/src/business/seo/linking.ts +281 -281
- package/src/business/seo/types.ts +199 -199
- package/src/commands/queue/index.ts +3 -3
- package/src/commands/queue/schemas.test.ts +593 -593
- package/src/commands/queue/schemas.ts +125 -125
- package/src/commands/queue/sse-events.ts +61 -61
- package/src/commands/queue/types/action.ts +52 -52
- package/src/commands/queue/types/checkpoint.ts +44 -44
- package/src/commands/queue/types/index.ts +7 -7
- package/src/commands/queue/types/task.ts +116 -116
- package/src/commands/queue/types.ts +14 -14
- package/src/content/distribution-metadata.ts +61 -61
- package/src/content/index.ts +10 -10
- package/src/deployments/index.ts +22 -22
- package/src/execution/core/__tests__/archived-logs.test.ts +72 -72
- package/src/execution/core/index.ts +11 -11
- package/src/execution/core/runner-types.ts +80 -80
- package/src/execution/core/server/environment.ts +31 -31
- package/src/execution/core/sse-executions.ts +119 -119
- package/src/execution/core/types.ts +29 -29
- package/src/execution/engine/__tests__/fixtures/test-agents.ts +4 -4
- package/src/execution/engine/__tests__/timeout.test.ts +565 -565
- package/src/execution/engine/agent/__tests__/errors.test.ts +508 -508
- package/src/execution/engine/agent/actions/__tests__/processor.test.ts +531 -531
- package/src/execution/engine/agent/actions/executor.ts +205 -205
- package/src/execution/engine/agent/actions/navigate-knowledge-executor.ts +230 -230
- package/src/execution/engine/agent/actions/processor.ts +116 -116
- package/src/execution/engine/agent/actions/types.ts +70 -70
- package/src/execution/engine/agent/core/agent.ts +810 -810
- package/src/execution/engine/agent/core/types.ts +155 -155
- package/src/execution/engine/agent/errors.ts +251 -251
- package/src/execution/engine/agent/index.ts +78 -78
- package/src/execution/engine/agent/knowledge-map/types.ts +106 -106
- package/src/execution/engine/agent/knowledge-map/utils.ts +101 -101
- package/src/execution/engine/agent/memory/__tests__/manager.test.ts +754 -754
- package/src/execution/engine/agent/memory/domains.ts +99 -99
- package/src/execution/engine/agent/memory/manager.ts +365 -365
- package/src/execution/engine/agent/memory/processor.ts +66 -66
- package/src/execution/engine/agent/memory/types.ts +90 -90
- package/src/execution/engine/agent/memory/utils.ts +134 -134
- package/src/execution/engine/agent/observability/logging.ts +467 -467
- package/src/execution/engine/agent/observability/types.ts +64 -64
- package/src/execution/engine/agent/reasoning/adapters/agent-adapter-helpers.ts +349 -349
- package/src/execution/engine/agent/reasoning/processor.ts +92 -92
- package/src/execution/engine/agent/reasoning/prompt-sections/base-actions.ts +134 -134
- package/src/execution/engine/agent/reasoning/prompt-sections/completion.ts +49 -49
- package/src/execution/engine/agent/reasoning/prompt-sections/knowledge-map.ts +93 -93
- package/src/execution/engine/agent/reasoning/prompt-sections/memory.ts +65 -65
- package/src/execution/engine/agent/reasoning/prompt-sections/tools.ts +44 -44
- package/src/execution/engine/agent/reasoning/request-builder.ts +169 -169
- package/src/execution/engine/agent/reasoning/types.ts +18 -18
- package/src/execution/engine/base/errors.ts +118 -118
- package/src/execution/engine/base/index.ts +2 -2
- package/src/execution/engine/base/logging.ts +31 -31
- package/src/execution/engine/base/serialization.ts +324 -324
- package/src/execution/engine/base/types.ts +126 -126
- package/src/execution/engine/base/utils.ts +41 -41
- package/src/execution/engine/index.ts +434 -434
- package/src/execution/engine/interface/index.ts +1 -1
- package/src/execution/engine/interface/types.ts +62 -62
- package/src/execution/engine/llm/__tests__/model-info.test.ts +50 -50
- package/src/execution/engine/llm/__tests__/model-validation.test.ts +321 -321
- package/src/execution/engine/llm/__tests__/response-schema-validator.test.ts +115 -115
- package/src/execution/engine/llm/adapters/__tests__/adapter-factory.test.ts +375 -375
- package/src/execution/engine/llm/adapters/__tests__/anthropic-adapter.test.ts +463 -463
- package/src/execution/engine/llm/adapters/__tests__/anthropic.integration.test.ts +177 -177
- package/src/execution/engine/llm/adapters/__tests__/google-adapter.test.ts +722 -722
- package/src/execution/engine/llm/adapters/__tests__/google.integration.test.ts +376 -376
- package/src/execution/engine/llm/adapters/__tests__/openai-adapter.test.ts +551 -551
- package/src/execution/engine/llm/adapters/__tests__/openrouter-adapter.test.ts +563 -563
- package/src/execution/engine/llm/adapters/__tests__/openrouter.integration.test.ts +105 -105
- package/src/execution/engine/llm/adapters/__tests__/universal-adapter.test.ts +537 -537
- package/src/execution/engine/llm/adapters/circuit-breaker.ts +147 -147
- package/src/execution/engine/llm/adapters/index.ts +17 -17
- package/src/execution/engine/llm/adapters/mock-adapter.ts +116 -116
- package/src/execution/engine/llm/adapters/server/adapter-factory.ts +130 -130
- package/src/execution/engine/llm/adapters/server/anthropic.ts +137 -137
- package/src/execution/engine/llm/adapters/server/google.ts +283 -283
- package/src/execution/engine/llm/adapters/server/index.ts +12 -12
- package/src/execution/engine/llm/adapters/server/openai.ts +206 -206
- package/src/execution/engine/llm/adapters/server/openrouter.ts +235 -235
- package/src/execution/engine/llm/adapters/universal-adapter.ts +230 -230
- package/src/execution/engine/llm/errors.ts +186 -186
- package/src/execution/engine/llm/model-info.ts +332 -332
- package/src/execution/engine/llm/response-schema-validator.ts +113 -113
- package/src/execution/engine/llm/types.ts +86 -86
- package/src/execution/engine/test-utils/index.ts +6 -6
- package/src/execution/engine/test-utils/mocks.ts +56 -56
- package/src/execution/engine/tools/integration/base-integration-adapter.ts +50 -50
- package/src/execution/engine/tools/integration/index.ts +53 -53
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/anymailfinder-adapter.ts +73 -73
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/anymailfinder-tools.ts +209 -209
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/find-company-email/index.ts +82 -82
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/find-decision-maker-email/index.ts +122 -122
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/find-person-email/index.ts +89 -89
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/verify-email/index.ts +84 -84
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/index.ts +16 -16
- package/src/execution/engine/tools/integration/server/adapters/apify/__tests__/apify-run-actor.integration.test.ts +293 -293
- package/src/execution/engine/tools/integration/server/adapters/apify/apify-adapter.ts +100 -100
- package/src/execution/engine/tools/integration/server/adapters/apify/apify-tools.ts +217 -217
- package/src/execution/engine/tools/integration/server/adapters/apify/fetch/get-dataset-items/index.ts +92 -92
- package/src/execution/engine/tools/integration/server/adapters/apify/fetch/run-actor/index.ts +218 -218
- package/src/execution/engine/tools/integration/server/adapters/apify/fetch/start-actor/index.ts +87 -87
- package/src/execution/engine/tools/integration/server/adapters/apify/index.ts +11 -11
- package/src/execution/engine/tools/integration/server/adapters/attio/__tests__/attio-crud.integration.test.ts +361 -361
- package/src/execution/engine/tools/integration/server/adapters/attio/attio-adapter.ts +162 -162
- package/src/execution/engine/tools/integration/server/adapters/attio/attio-tools.ts +594 -594
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/create-attribute/index.ts +214 -214
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/create-note/index.ts +152 -152
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/create-record/index.ts +141 -141
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/delete-note/index.ts +86 -86
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/delete-record/index.ts +105 -105
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/get-record/index.ts +118 -118
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-attributes/index.ts +165 -165
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-notes/index.ts +96 -96
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-objects/index.ts +104 -104
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-records/index.ts +156 -156
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/update-attribute/index.ts +220 -220
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/update-record/index.ts +140 -140
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/utils/types.ts +146 -146
- package/src/execution/engine/tools/integration/server/adapters/attio/index.ts +31 -31
- package/src/execution/engine/tools/integration/server/adapters/gmail/gmail-adapter.ts +210 -210
- package/src/execution/engine/tools/integration/server/adapters/gmail/gmail-tools.ts +104 -104
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/__tests__/google-sheets.integration.test.ts +261 -261
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/google-sheets-adapter.ts +1189 -1189
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/google-sheets-tools.ts +641 -641
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/index.ts +18 -18
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/activate-campaign/index.ts +86 -86
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/add-to-campaign/__tests__/index.test.ts +289 -289
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/add-to-campaign/index.ts +154 -154
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/bulk-add-leads/__tests__/index.test.ts +325 -325
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/bulk-add-leads/index.ts +153 -153
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/bulk-delete-leads/index.ts +84 -84
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/create-campaign/index.ts +125 -125
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/create-inbox-test/index.ts +107 -107
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/delete-campaign/index.ts +85 -85
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-account-health/index.ts +91 -91
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-campaign/index.ts +92 -92
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-campaign-analytics/__tests__/index.test.ts +195 -195
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-campaign-analytics/index.ts +113 -113
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-daily-campaign-analytics/index.ts +104 -104
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-emails/index.ts +155 -155
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-step-analytics/__tests__/index.test.ts +196 -196
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-step-analytics/index.ts +102 -102
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/list-campaigns/__tests__/index.test.ts +189 -189
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/list-campaigns/index.ts +87 -87
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/list-leads/index.ts +112 -112
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/patch-lead/index.ts +76 -76
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/pause-campaign/index.ts +86 -86
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/remove-from-subsequence/index.ts +98 -98
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/send-reply/index.ts +126 -126
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-campaign/__tests__/index.test.ts +193 -193
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-campaign/index.ts +99 -99
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-interest-status/__tests__/index.test.ts +621 -621
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-interest-status/index.ts +125 -125
- package/src/execution/engine/tools/integration/server/adapters/instantly/index.ts +29 -29
- package/src/execution/engine/tools/integration/server/adapters/instantly/instantly-adapter.ts +178 -178
- package/src/execution/engine/tools/integration/server/adapters/instantly/instantly-tools.ts +1473 -1473
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/fetch/check-credits/index.ts +59 -59
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/fetch/verify-email/index.ts +102 -102
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/index.ts +17 -17
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/millionverifier-adapter.ts +80 -80
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/millionverifier-tools.ts +102 -102
- package/src/execution/engine/tools/integration/server/adapters/resend/fetch/get-email/index.ts +102 -102
- package/src/execution/engine/tools/integration/server/adapters/resend/fetch/send-email/index.ts +134 -134
- package/src/execution/engine/tools/integration/server/adapters/resend/fetch/utils/types.ts +75 -75
- package/src/execution/engine/tools/integration/server/adapters/resend/index.ts +27 -27
- package/src/execution/engine/tools/integration/server/adapters/resend/resend-adapter.ts +108 -108
- package/src/execution/engine/tools/integration/server/adapters/resend/resend-tools.ts +132 -132
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/create-envelope/index.ts +274 -274
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/download-document/index.ts +230 -230
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/get-envelope/index.ts +133 -133
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/void-envelope/index.ts +90 -90
- package/src/execution/engine/tools/integration/server/adapters/stripe/fetch/utils/types.ts +210 -210
- package/src/execution/engine/tools/integration/server/adapters/stripe/stripe-adapter.ts +517 -517
- package/src/execution/engine/tools/integration/server/adapters/stripe/stripe-tools.ts +309 -309
- package/src/execution/engine/tools/integration/server/adapters/tomba/fetch/domain-search/index.ts +133 -133
- package/src/execution/engine/tools/integration/server/adapters/tomba/fetch/email-finder/index.ts +122 -122
- package/src/execution/engine/tools/integration/server/adapters/tomba/fetch/email-verifier/index.ts +111 -111
- package/src/execution/engine/tools/integration/server/adapters/tomba/index.ts +11 -11
- package/src/execution/engine/tools/integration/server/adapters/tomba/tomba-adapter.ts +78 -78
- package/src/execution/engine/tools/integration/server/adapters/tomba/tomba-tools.ts +222 -222
- package/src/execution/engine/tools/integration/server/index.ts +61 -61
- package/src/execution/engine/tools/integration/service.ts +161 -161
- package/src/execution/engine/tools/integration/tool.ts +253 -253
- package/src/execution/engine/tools/integration/types/anymailfinder.ts +74 -74
- package/src/execution/engine/tools/integration/types/apify.ts +92 -92
- package/src/execution/engine/tools/integration/types/index.ts +19 -19
- package/src/execution/engine/tools/integration/types/instantly.ts +557 -557
- package/src/execution/engine/tools/integration/types/millionverifier.ts +56 -56
- package/src/execution/engine/tools/integration/types/stripe.ts +162 -162
- package/src/execution/engine/tools/integration/types/tomba.ts +94 -94
- package/src/execution/engine/tools/lead-service-types.ts +884 -884
- package/src/execution/engine/tools/llm/index.ts +11 -11
- package/src/execution/engine/tools/llm/server/index.ts +8 -8
- package/src/execution/engine/tools/llm/server/llm-call-tool.ts +118 -118
- package/src/execution/engine/tools/platform/__tests__/pdf.test.ts +441 -441
- package/src/execution/engine/tools/platform/acquisition/company-tools.ts +248 -248
- package/src/execution/engine/tools/platform/acquisition/contact-tools.ts +319 -319
- package/src/execution/engine/tools/platform/acquisition/index.ts +43 -43
- package/src/execution/engine/tools/platform/acquisition/list-tools.ts +148 -148
- package/src/execution/engine/tools/platform/acquisition/types.ts +260 -260
- package/src/execution/engine/tools/platform/email/index.ts +122 -122
- package/src/execution/engine/tools/platform/email/types.ts +96 -96
- package/src/execution/engine/tools/platform/index.ts +157 -157
- package/src/execution/engine/tools/platform/notification.ts +81 -81
- package/src/execution/engine/tools/platform/pdf/index.ts +110 -110
- package/src/execution/engine/tools/platform/pdf/types.ts +77 -77
- package/src/execution/engine/tools/platform/scheduler.ts +87 -87
- package/src/execution/engine/tools/platform/storage/index.ts +370 -370
- package/src/execution/engine/tools/platform/types.ts +148 -148
- package/src/execution/engine/tools/registry.ts +700 -700
- package/src/execution/engine/tools/tool-maps.ts +786 -786
- package/src/execution/engine/tools/types.ts +233 -233
- package/src/execution/engine/workflow/__tests__/errors.test.ts +139 -139
- package/src/execution/engine/workflow/errors.ts +63 -63
- package/src/execution/engine/workflow/helpers/index.ts +11 -11
- package/src/execution/engine/workflow/helpers/server/index.ts +8 -8
- package/src/execution/engine/workflow/helpers/server/llm-call.ts +93 -93
- package/src/execution/engine/workflow/index.ts +19 -19
- package/src/execution/engine/workflow/log-truncate.ts +26 -26
- package/src/execution/engine/workflow/logging.ts +191 -191
- package/src/execution/engine/workflow/types.ts +182 -182
- package/src/execution/engine/workflow/utils.ts +280 -280
- package/src/execution/engine/workflow/workflow.ts +168 -168
- package/src/execution/index.ts +3 -3
- package/src/execution/scheduler/__tests__/api-schemas.test.ts +733 -733
- package/src/execution/scheduler/__tests__/utils.test.ts +1009 -1009
- package/src/execution/scheduler/api-schemas.ts +296 -296
- package/src/execution/scheduler/index.ts +50 -50
- package/src/execution/scheduler/schemas.ts +264 -264
- package/src/execution/scheduler/types.ts +111 -111
- package/src/execution/scheduler/utils.ts +364 -364
- package/src/forms/index.ts +7 -7
- package/src/forms/schemas.ts +69 -69
- package/src/forms/types.ts +70 -70
- package/src/index.ts +71 -60
- package/src/integrations/credentials/__tests__/schemas.test.ts +82 -82
- package/src/integrations/credentials/__tests__/utils.test.ts +144 -144
- package/src/integrations/credentials/api-schemas.ts +143 -143
- package/src/integrations/credentials/index.ts +32 -32
- package/src/integrations/credentials/schemas.ts +164 -164
- package/src/integrations/credentials/utils.ts +59 -59
- package/src/integrations/oauth/__tests__/provider-registry.test.ts +59 -59
- package/src/integrations/oauth/api-schemas.ts +92 -92
- package/src/integrations/oauth/index.ts +19 -19
- package/src/integrations/oauth/provider-registry.ts +61 -61
- package/src/integrations/oauth/server/__tests__/refresh-concurrent.test.ts +183 -183
- package/src/integrations/oauth/server/__tests__/refresh.test.ts +577 -577
- package/src/integrations/oauth/server/credentials.ts +39 -39
- package/src/integrations/oauth/server/refresh.ts +214 -214
- package/src/integrations/oauth/types.ts +34 -34
- package/src/integrations/webhook-endpoints/__tests__/api-schemas.test.ts +318 -318
- package/src/integrations/webhook-endpoints/api-schemas.ts +102 -102
- package/src/integrations/webhook-endpoints/index.ts +28 -28
- package/src/integrations/webhook-endpoints/types.ts +51 -51
- package/src/operations/activities/api-schemas.ts +79 -79
- package/src/operations/activities/index.ts +9 -9
- package/src/operations/activities/sse-events.ts +30 -30
- package/src/operations/activities/types.ts +63 -63
- package/src/operations/debug-logs/client.ts +60 -60
- package/src/operations/debug-logs/debug-logger.ts +83 -83
- package/src/operations/debug-logs/index.ts +8 -8
- package/src/operations/debug-logs/server.ts +19 -19
- package/src/operations/debug-logs/types.ts +33 -33
- package/src/operations/index.ts +50 -50
- package/src/operations/notifications/api-schemas.ts +91 -91
- package/src/operations/notifications/index.ts +3 -3
- package/src/operations/notifications/sse-events.ts +21 -21
- package/src/operations/notifications/types.ts +47 -47
- package/src/operations/observability/__tests__/openrouter-cost-flow.test.ts +297 -297
- package/src/operations/observability/__tests__/utils.test.ts +54 -54
- package/src/operations/observability/ai-usage-collector.ts +64 -64
- package/src/operations/observability/index.ts +13 -13
- package/src/operations/observability/metrics-collector.ts +49 -49
- package/src/operations/observability/schemas.ts +39 -39
- package/src/operations/observability/types.ts +463 -463
- package/src/operations/observability/utils.ts +77 -77
- package/src/operations/sessions/__tests__/manager.test.ts +821 -821
- package/src/operations/sessions/index.ts +26 -26
- package/src/operations/sessions/server/manager.ts +90 -90
- package/src/operations/sessions/server/session.ts +180 -180
- package/src/operations/sessions/types.ts +98 -98
- package/src/operations/triggers/index.ts +12 -12
- package/src/operations/triggers/webhook/definitions/instantly-account-error.ts +44 -44
- package/src/operations/triggers/webhook/definitions/instantly-auto-reply-received.ts +51 -51
- package/src/operations/triggers/webhook/definitions/instantly-campaign-completed.ts +45 -45
- package/src/operations/triggers/webhook/definitions/instantly-email-bounced.ts +49 -49
- package/src/operations/triggers/webhook/definitions/instantly-lead-unsubscribed.ts +45 -45
- package/src/operations/triggers/webhook/definitions/instantly-reply-received.ts +54 -54
- package/src/operations/triggers/webhook/index.ts +35 -35
- package/src/operations/triggers/webhook/types.ts +74 -74
- package/src/organization-model/README.md +97 -97
- package/src/organization-model/__tests__/defaults.test.ts +175 -175
- package/src/organization-model/__tests__/domains/customers.test.ts +295 -295
- package/src/organization-model/__tests__/domains/goals.test.ts +479 -479
- package/src/organization-model/__tests__/domains/identity.test.ts +279 -279
- package/src/organization-model/__tests__/domains/navigation.test.ts +212 -212
- package/src/organization-model/__tests__/domains/offerings.test.ts +419 -419
- package/src/organization-model/__tests__/domains/operations.test.ts +203 -203
- package/src/organization-model/__tests__/domains/resource-mappings.test.ts +362 -362
- package/src/organization-model/__tests__/domains/roles.test.ts +347 -347
- package/src/organization-model/__tests__/domains/statuses.test.ts +243 -243
- package/src/organization-model/__tests__/foundation.test.ts +105 -105
- package/src/organization-model/__tests__/graph.test.ts +894 -894
- package/src/organization-model/__tests__/resolve.test.ts +690 -690
- package/src/organization-model/__tests__/schema.test.ts +407 -407
- package/src/organization-model/contracts.ts +14 -14
- package/src/organization-model/defaults.ts +148 -148
- package/src/organization-model/domains/branding.ts +22 -22
- package/src/organization-model/domains/customers.ts +75 -75
- package/src/organization-model/domains/features.ts +22 -22
- package/src/organization-model/domains/goals.ts +80 -80
- package/src/organization-model/domains/identity.ts +94 -94
- package/src/organization-model/domains/navigation.ts +391 -391
- package/src/organization-model/domains/offerings.ts +66 -66
- package/src/organization-model/domains/operations.ts +85 -85
- package/src/organization-model/domains/projects.ts +48 -48
- package/src/organization-model/domains/prospecting.ts +33 -33
- package/src/organization-model/domains/roles.ts +55 -55
- package/src/organization-model/domains/sales.ts +94 -94
- package/src/organization-model/domains/shared.ts +62 -62
- package/src/organization-model/domains/statuses.ts +130 -130
- package/src/organization-model/foundation.ts +97 -97
- package/src/organization-model/graph/build.ts +399 -399
- package/src/organization-model/graph/index.ts +4 -4
- package/src/organization-model/graph/schema.ts +48 -48
- package/src/organization-model/graph/types.ts +40 -40
- package/src/organization-model/index.ts +13 -13
- package/src/organization-model/organization-graph.mdx +272 -272
- package/src/organization-model/organization-model.mdx +320 -320
- package/src/organization-model/published.ts +85 -85
- package/src/organization-model/resolve.ts +66 -66
- package/src/organization-model/schema.ts +287 -287
- package/src/organization-model/types.ts +46 -46
- package/src/platform/api/index.ts +1 -1
- package/src/platform/api/types.ts +35 -35
- package/src/platform/constants/http.ts +37 -37
- package/src/platform/constants/index.ts +5 -5
- package/src/platform/constants/limits.ts +32 -32
- package/src/platform/constants/resilience.ts +51 -51
- package/src/platform/constants/timeouts.ts +20 -20
- package/src/platform/constants/versions.ts +3 -3
- package/src/platform/registry/__tests__/resource-registry-static.test.ts +347 -347
- package/src/platform/registry/__tests__/resource-registry.integration.test.ts +1028 -1028
- package/src/platform/registry/__tests__/resource-registry.list-executable.test.ts +393 -393
- package/src/platform/registry/__tests__/resource-registry.test.ts +2005 -2005
- package/src/platform/registry/__tests__/serialization.test.ts +1127 -1127
- package/src/platform/registry/command-view.ts +180 -180
- package/src/platform/registry/domains.ts +165 -165
- package/src/platform/registry/index.ts +93 -93
- package/src/platform/registry/reserved.ts +24 -24
- package/src/platform/registry/resource-metadata.ts +59 -59
- package/src/platform/registry/resource-registry.command-queue-groups.test.ts +129 -129
- package/src/platform/registry/resource-registry.ts +876 -876
- package/src/platform/registry/serialization.ts +273 -273
- package/src/platform/registry/serialized-types.ts +231 -231
- package/src/platform/registry/stats-types.ts +66 -66
- package/src/platform/registry/types.ts +404 -404
- package/src/platform/registry/validation.ts +513 -513
- package/src/platform/resilience/__tests__/rate-limiter.test.ts +471 -471
- package/src/platform/resilience/circuit-breaker.ts +164 -164
- package/src/platform/resilience/errors.ts +68 -68
- package/src/platform/resilience/http-error-mapper.ts +129 -129
- package/src/platform/resilience/index.ts +93 -93
- package/src/platform/resilience/rate-limiter-types.ts +46 -46
- package/src/platform/resilience/rate-limiter.ts +140 -140
- package/src/platform/resilience/retry.ts +89 -89
- package/src/platform/resilience/timeout.ts +63 -63
- package/src/platform/sse/events.ts +37 -37
- package/src/platform/sse/index.ts +7 -7
- package/src/platform/utils/__tests__/validation.test.ts +1083 -1083
- package/src/platform/utils/currency.ts +96 -96
- package/src/platform/utils/debounce.ts +52 -52
- package/src/platform/utils/error.ts +41 -41
- package/src/platform/utils/hmac.test.ts +97 -97
- package/src/platform/utils/index.ts +32 -32
- package/src/platform/utils/server/betterstack-logger.ts +210 -210
- package/src/platform/utils/server/hmac.ts +44 -44
- package/src/platform/utils/server/unsubscribe.ts +111 -111
- package/src/platform/utils/token-counter.ts +96 -96
- package/src/platform/utils/validation.ts +425 -425
- package/src/projects/api-schemas.ts +268 -268
- package/src/published.ts +1 -1
- package/src/reference/_generated/contracts.md +607 -607
- package/src/reference/glossary.md +105 -105
- package/src/requests/__tests__/api-schemas.test.ts +277 -277
- package/src/requests/api-schemas.ts +83 -83
- package/src/requests/index.ts +1 -1
- package/src/scaffold-registry/__tests__/index.test.ts +17 -0
- package/src/scaffold-registry/__tests__/schema.test.ts +329 -230
- package/src/scaffold-registry/index.ts +205 -189
- package/src/scaffold-registry/schema.ts +196 -128
- package/src/server.ts +272 -272
- package/src/supabase/database.types.ts +2719 -2719
- package/src/supabase/helpers.ts +20 -20
- package/src/supabase/index.ts +52 -52
- package/src/supabase/server/client.ts +58 -58
- package/src/test-utils/README.md +38 -38
- package/src/test-utils/browser-mocks.ts +54 -54
- package/src/test-utils/fixtures/api-keys.ts +52 -52
- package/src/test-utils/fixtures/index.ts +4 -4
- package/src/test-utils/fixtures/memberships.ts +80 -80
- package/src/test-utils/fixtures/organizations.ts +69 -69
- package/src/test-utils/fixtures/users.ts +79 -79
- package/src/test-utils/index.ts +11 -11
- package/src/test-utils/mocks/index.ts +2 -2
- package/src/test-utils/mocks/supabase.ts +142 -142
- package/src/test-utils/mocks/workos.ts +108 -108
- package/src/test-utils/rls/RLSTestContext.ts +556 -556
- package/src/test-utils/rls/index.ts +1 -1
|
@@ -1,463 +1,463 @@
|
|
|
1
|
-
import { LLMModel } from '../../execution/engine/llm/model-info'
|
|
2
|
-
import type { ExecutionErrorCategory } from '../../execution/engine'
|
|
3
|
-
import type { Database } from '../../supabase/database.types'
|
|
4
|
-
|
|
5
|
-
// ============================================================================
|
|
6
|
-
// Database Types
|
|
7
|
-
// ============================================================================
|
|
8
|
-
|
|
9
|
-
export type ExecutionMetricsRow = Database['public']['Tables']['execution_metrics']['Row']
|
|
10
|
-
export type ExecutionMetricsInsert = Database['public']['Tables']['execution_metrics']['Insert']
|
|
11
|
-
export type ExecutionMetricsUpdate = Database['public']['Tables']['execution_metrics']['Update']
|
|
12
|
-
|
|
13
|
-
// ============================================================================
|
|
14
|
-
// AI Call Tracking Types (SSOT)
|
|
15
|
-
// ============================================================================
|
|
16
|
-
|
|
17
|
-
export interface BaseAICall {
|
|
18
|
-
callSequence: number // 1, 2, 3... (execution-wide universal counter)
|
|
19
|
-
callType: 'agent-reasoning' | 'agent-completion' | 'workflow-step' | 'tool' | 'other'
|
|
20
|
-
model: LLMModel
|
|
21
|
-
inputTokens: number
|
|
22
|
-
outputTokens: number
|
|
23
|
-
costUsd: number // Cost in USD with full decimal precision
|
|
24
|
-
latencyMs: number
|
|
25
|
-
context?: AICallContext
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export type AICallContext =
|
|
29
|
-
| AgentReasoningContext
|
|
30
|
-
| AgentCompletionContext
|
|
31
|
-
| WorkflowStepContext
|
|
32
|
-
| ToolCallContext
|
|
33
|
-
| OtherCallContext
|
|
34
|
-
|
|
35
|
-
export interface AgentReasoningContext {
|
|
36
|
-
type: 'agent-reasoning'
|
|
37
|
-
iteration: number
|
|
38
|
-
actionsPlanned?: string[]
|
|
39
|
-
sessionId?: string
|
|
40
|
-
turnNumber?: number
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export interface AgentCompletionContext {
|
|
44
|
-
type: 'agent-completion'
|
|
45
|
-
attempt: 1 | 2
|
|
46
|
-
validationFailed?: boolean
|
|
47
|
-
sessionId?: string
|
|
48
|
-
turnNumber?: number
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export interface WorkflowStepContext {
|
|
52
|
-
type: 'workflow-step'
|
|
53
|
-
stepId: string
|
|
54
|
-
stepName?: string
|
|
55
|
-
stepSequence?: number
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export interface ToolCallContext {
|
|
59
|
-
type: 'tool'
|
|
60
|
-
toolName: string
|
|
61
|
-
parentIteration?: number
|
|
62
|
-
parentStepId?: string
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export interface OtherCallContext {
|
|
66
|
-
type: 'other'
|
|
67
|
-
description?: string
|
|
68
|
-
metadata?: Record<string, unknown>
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export type AICallRecord = BaseAICall
|
|
72
|
-
|
|
73
|
-
// ============================================================================
|
|
74
|
-
// LLM Usage Data (from adapters)
|
|
75
|
-
// ============================================================================
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Raw LLM usage data returned by adapters
|
|
79
|
-
* Used as input to AIUsageCollector.record()
|
|
80
|
-
*/
|
|
81
|
-
export interface LLMUsageData {
|
|
82
|
-
model: LLMModel
|
|
83
|
-
inputTokens: number
|
|
84
|
-
outputTokens: number
|
|
85
|
-
latencyMs: number
|
|
86
|
-
/** Actual cost from provider in USD (when available, e.g., OpenRouter) */
|
|
87
|
-
cost?: number
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// ============================================================================
|
|
91
|
-
// AI Usage Summary
|
|
92
|
-
// ============================================================================
|
|
93
|
-
|
|
94
|
-
export interface AIUsageSummary {
|
|
95
|
-
model: LLMModel
|
|
96
|
-
totalInputTokens: number
|
|
97
|
-
totalOutputTokens: number
|
|
98
|
-
totalTokens: number
|
|
99
|
-
totalCostUsd: number // Total cost in USD with full decimal precision
|
|
100
|
-
callCount: number
|
|
101
|
-
calls: AICallRecord[]
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// ============================================================================
|
|
105
|
-
// Execution Metrics
|
|
106
|
-
// ============================================================================
|
|
107
|
-
|
|
108
|
-
export interface ExecutionMetricsSummary {
|
|
109
|
-
durationMs?: number
|
|
110
|
-
automationSavingsUsd?: number // Automation savings in USD with full decimal precision
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// ============================================================================
|
|
114
|
-
// Resource Metrics Configuration
|
|
115
|
-
// ============================================================================
|
|
116
|
-
|
|
117
|
-
export interface ResourceMetricsConfig {
|
|
118
|
-
estimatedManualMinutes: number
|
|
119
|
-
hourlyLaborRateUsd: number // Hourly rate in USD (e.g., 75.00 for $75/hour)
|
|
120
|
-
confidenceLevel?: 'low' | 'medium' | 'high'
|
|
121
|
-
notes?: string
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// ============================================================================
|
|
125
|
-
// API Request/Response Types (Dashboard Observability)
|
|
126
|
-
// ============================================================================
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Time range selector for dashboard metrics
|
|
130
|
-
*/
|
|
131
|
-
export type TimeRange = '1h' | '24h' | '7d' | '30d'
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* ISO 8601 date range for API queries
|
|
135
|
-
*/
|
|
136
|
-
export interface TimeRangeDates {
|
|
137
|
-
startDate: string
|
|
138
|
-
endDate: string
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Execution health metrics response
|
|
143
|
-
* Success rate, P95 duration, execution counts, and trend data
|
|
144
|
-
* trendData includes executionCount for throughput visualization (eliminates separate API call)
|
|
145
|
-
*/
|
|
146
|
-
export interface ExecutionHealthMetrics {
|
|
147
|
-
successRate: number
|
|
148
|
-
p95Duration: number
|
|
149
|
-
totalExecutions: number
|
|
150
|
-
trendData: Array<{
|
|
151
|
-
time: string
|
|
152
|
-
rate: number
|
|
153
|
-
successCount: number
|
|
154
|
-
errorCount: number
|
|
155
|
-
warningCount: number
|
|
156
|
-
executionCount: number
|
|
157
|
-
}>
|
|
158
|
-
statusCounts: { success: number; failed: number; pending: number; warning: number }
|
|
159
|
-
peakPeriod: string
|
|
160
|
-
granularity: 'hour' | 'day'
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Error analysis metrics response
|
|
165
|
-
* Error categories and top failing resources
|
|
166
|
-
*/
|
|
167
|
-
export interface ErrorAnalysisMetrics {
|
|
168
|
-
totalErrors: number
|
|
169
|
-
errorsByCategory: Array<{
|
|
170
|
-
category: string
|
|
171
|
-
count: number
|
|
172
|
-
percentage: number
|
|
173
|
-
}>
|
|
174
|
-
topFailingResources: Array<{
|
|
175
|
-
resourceId: string
|
|
176
|
-
name: string
|
|
177
|
-
errorCount: number
|
|
178
|
-
failureRate: number
|
|
179
|
-
}>
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Business impact metrics response
|
|
184
|
-
* ROI, labor savings, and cost analysis
|
|
185
|
-
*/
|
|
186
|
-
export interface BusinessImpactMetrics {
|
|
187
|
-
totalSavingsUsd: number
|
|
188
|
-
totalCostUsd: number
|
|
189
|
-
netSavingsUsd: number
|
|
190
|
-
roi: number
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* Cost breakdown metrics response
|
|
195
|
-
* Per-resource cost analysis
|
|
196
|
-
*/
|
|
197
|
-
export interface CostBreakdownMetrics {
|
|
198
|
-
resources: Array<{
|
|
199
|
-
resourceId: string
|
|
200
|
-
totalCostUsd: number
|
|
201
|
-
executionCount: number
|
|
202
|
-
avgCostUsd: number
|
|
203
|
-
}>
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* Detailed execution metrics response
|
|
208
|
-
* Full execution metrics with AI call breakdown
|
|
209
|
-
*/
|
|
210
|
-
export interface ExecutionMetricsDetail {
|
|
211
|
-
executionId: string
|
|
212
|
-
organizationId: string
|
|
213
|
-
resourceId: string
|
|
214
|
-
totalInputTokens: number
|
|
215
|
-
totalOutputTokens: number
|
|
216
|
-
totalCostUsd: number
|
|
217
|
-
aiCallCount: number
|
|
218
|
-
aiCalls: AICallRecord[]
|
|
219
|
-
durationMs?: number
|
|
220
|
-
automationSavingsUsd?: number
|
|
221
|
-
createdAt: string
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* Dashboard metrics response
|
|
226
|
-
* Aggregates core observability metrics in a single response
|
|
227
|
-
* Note: Throughput data is now included in executionHealth.trendData.executionCount
|
|
228
|
-
*/
|
|
229
|
-
export interface DashboardMetrics {
|
|
230
|
-
executionHealth: ExecutionHealthMetrics
|
|
231
|
-
costBreakdown: CostBreakdownMetrics
|
|
232
|
-
businessImpact: BusinessImpactMetrics
|
|
233
|
-
/** ISO timestamp of the currently active deployment, or null if none */
|
|
234
|
-
activeDeploymentDate: string | null
|
|
235
|
-
/** Deployment version of the active deployment, or null if none */
|
|
236
|
-
activeDeploymentVersion: string | null
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
// ============================================================================
|
|
240
|
-
// Error Tracking Types
|
|
241
|
-
// ============================================================================
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* Error record for list view (ErrorBreakdownTable)
|
|
245
|
-
*/
|
|
246
|
-
export interface ErrorRecord {
|
|
247
|
-
id: string // execution_errors.id
|
|
248
|
-
timestamp: string // occurred_at
|
|
249
|
-
errorType: string // error_type
|
|
250
|
-
message: string // error_message
|
|
251
|
-
executionId: string // execution_id
|
|
252
|
-
resourceId: string // execution_logs.resource_id (via JOIN)
|
|
253
|
-
resourceName: string // execution_logs.resource_id (TODO: resolve via registry)
|
|
254
|
-
severity: 'critical' | 'warning' | 'info'
|
|
255
|
-
category: ExecutionErrorCategory // error_category (moved from metadata to dedicated column)
|
|
256
|
-
resolved: boolean // resolved flag (human acknowledgment, does not affect execution status)
|
|
257
|
-
resolvedAt: string | null // timestamp when resolved
|
|
258
|
-
resolvedBy: string | null // user ID who resolved
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
/**
|
|
262
|
-
* Full error detail for modal view (ErrorDetailsModal)
|
|
263
|
-
*/
|
|
264
|
-
export interface ErrorDetailFull extends ErrorRecord {
|
|
265
|
-
stackTrace?: string // error_stack_trace
|
|
266
|
-
retryAttempt?: number // metadata.retryAttempt
|
|
267
|
-
stepName?: string // metadata.stepName
|
|
268
|
-
stepSequence?: number // metadata.stepSequence
|
|
269
|
-
errorContext?: Record<string, unknown> // metadata.errorContext
|
|
270
|
-
executionContext?: Record<string, unknown> // metadata.executionContext
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Error details API response (paginated)
|
|
275
|
-
*/
|
|
276
|
-
export interface ErrorDetailResponse {
|
|
277
|
-
errors: ErrorRecord[]
|
|
278
|
-
total: number
|
|
279
|
-
page: number
|
|
280
|
-
limit: number
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* Error distribution for analytics (pie/bar charts)
|
|
285
|
-
*/
|
|
286
|
-
export interface ErrorDistribution {
|
|
287
|
-
label: string // Error type, severity, or category
|
|
288
|
-
count: number // Number of occurrences
|
|
289
|
-
percentage: number // Percentage of total
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
/**
|
|
293
|
-
* Error trend data for time-series charts
|
|
294
|
-
*/
|
|
295
|
-
export interface ErrorTrend {
|
|
296
|
-
time: string // Time bucket (ISO timestamp)
|
|
297
|
-
errorCount: number // Total errors in bucket
|
|
298
|
-
criticalCount: number // Critical errors in bucket
|
|
299
|
-
warningCount: number // Warning errors in bucket
|
|
300
|
-
infoCount: number // Info errors in bucket
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
/**
|
|
304
|
-
* Failing resource data for health monitoring
|
|
305
|
-
*/
|
|
306
|
-
export interface FailingResource {
|
|
307
|
-
resourceId: string
|
|
308
|
-
resourceName: string // TODO: Resolve via registry
|
|
309
|
-
errorCount: number
|
|
310
|
-
criticalCount: number
|
|
311
|
-
warningCount: number
|
|
312
|
-
mostCommonError: string
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
// ============================================================================
|
|
316
|
-
// Recent Executions by Resource Types (Dashboard)
|
|
317
|
-
// ============================================================================
|
|
318
|
-
|
|
319
|
-
/**
|
|
320
|
-
* Summary of executions for a single resource
|
|
321
|
-
* Used by RecentExecutionsByResource dashboard component
|
|
322
|
-
*/
|
|
323
|
-
export interface ResourceExecutionSummary {
|
|
324
|
-
resourceId: string // resource_id from execution_logs
|
|
325
|
-
resourceType: string // Inferred from resource definitions (resolved by frontend)
|
|
326
|
-
resourceName: string | null // From resource registry lookup (resolved by frontend)
|
|
327
|
-
lastExecution: string // ISO timestamp (MAX started_at)
|
|
328
|
-
totalExecutions: number // COUNT(*)
|
|
329
|
-
successCount: number // COUNT WHERE status='completed' OR status='warning'
|
|
330
|
-
failureCount: number // COUNT WHERE status='failed'
|
|
331
|
-
warningCount: number // COUNT WHERE status='warning' (subset of success)
|
|
332
|
-
successRate: number // (successCount / totalExecutions) * 100
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
/**
|
|
336
|
-
* Response from getRecentExecutionsByResource endpoint
|
|
337
|
-
*/
|
|
338
|
-
export interface RecentExecutionsByResourceResponse {
|
|
339
|
-
resources: ResourceExecutionSummary[]
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
// ============================================================================
|
|
343
|
-
// Per-Resource Health Types (Dashboard Recent Activity)
|
|
344
|
-
// ============================================================================
|
|
345
|
-
|
|
346
|
-
/** Resource identifier for health queries */
|
|
347
|
-
export interface ResourceIdentifier {
|
|
348
|
-
entityType: string // 'workflow' | 'agent'
|
|
349
|
-
entityId: string // Resource ID
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
/** Time-bucketed health data point */
|
|
353
|
-
export interface ResourceHealthDataPoint {
|
|
354
|
-
time: string // ISO timestamp (bucket start)
|
|
355
|
-
success: number // Success count in bucket (completed + warning)
|
|
356
|
-
failure: number // Failure count in bucket
|
|
357
|
-
warning: number // Warning count in bucket (subset of success)
|
|
358
|
-
rate: number // Success rate (0-100)
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
/** Health data for a single resource */
|
|
362
|
-
export interface ResourceHealth {
|
|
363
|
-
entityType: string
|
|
364
|
-
entityId: string
|
|
365
|
-
entityName: string | null
|
|
366
|
-
trendData: ResourceHealthDataPoint[]
|
|
367
|
-
summary: {
|
|
368
|
-
total: number
|
|
369
|
-
successRate: number
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
/** Batch request for multiple resources */
|
|
374
|
-
export interface ResourcesHealthRequest {
|
|
375
|
-
resources: ResourceIdentifier[]
|
|
376
|
-
startDate: string // ISO datetime
|
|
377
|
-
endDate: string // ISO datetime
|
|
378
|
-
granularity: 'hour' | 'day'
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
/** Batch response with all requested resources */
|
|
382
|
-
export interface ResourcesHealthResponse {
|
|
383
|
-
resources: ResourceHealth[]
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
// ============================================================================
|
|
387
|
-
// Cost Analytics Types (Time-Series)
|
|
388
|
-
// ============================================================================
|
|
389
|
-
|
|
390
|
-
/**
|
|
391
|
-
* Cost trend data point for time-series charts
|
|
392
|
-
* Represents a single time bucket (hour or day)
|
|
393
|
-
*/
|
|
394
|
-
export interface CostTrendDataPoint {
|
|
395
|
-
time: string // ISO timestamp (bucket start)
|
|
396
|
-
totalCostUsd: number
|
|
397
|
-
executionCount: number
|
|
398
|
-
avgCostPerExecution: number
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
/**
|
|
402
|
-
* Cost trends response (time-series data)
|
|
403
|
-
*/
|
|
404
|
-
export interface CostTrendsResponse {
|
|
405
|
-
trendData: CostTrendDataPoint[]
|
|
406
|
-
granularity: 'hour' | 'day'
|
|
407
|
-
totalCostUsd: number
|
|
408
|
-
totalExecutions: number
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
/**
|
|
412
|
-
* Cost summary response with MTD and projections
|
|
413
|
-
*/
|
|
414
|
-
export interface CostSummaryResponse {
|
|
415
|
-
current: {
|
|
416
|
-
totalCostUsd: number
|
|
417
|
-
executionCount: number
|
|
418
|
-
}
|
|
419
|
-
previous: {
|
|
420
|
-
totalCostUsd: number
|
|
421
|
-
executionCount: number
|
|
422
|
-
}
|
|
423
|
-
mtd: {
|
|
424
|
-
totalCostUsd: number
|
|
425
|
-
daysElapsed: number
|
|
426
|
-
}
|
|
427
|
-
projection: {
|
|
428
|
-
monthlyCostUsd: number
|
|
429
|
-
confidence: 'low' | 'medium' | 'high'
|
|
430
|
-
}
|
|
431
|
-
trend: {
|
|
432
|
-
changePercent: number
|
|
433
|
-
direction: 'up' | 'down' | 'flat'
|
|
434
|
-
}
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
/**
|
|
438
|
-
* Cost by model data for model-level breakdown
|
|
439
|
-
*/
|
|
440
|
-
export interface CostByModelData {
|
|
441
|
-
model: string
|
|
442
|
-
totalCostUsd: number
|
|
443
|
-
callCount: number
|
|
444
|
-
totalInputTokens: number
|
|
445
|
-
totalOutputTokens: number
|
|
446
|
-
avgCostPerCall: number
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
/**
|
|
450
|
-
* Cost by model response
|
|
451
|
-
*/
|
|
452
|
-
export interface CostByModelResponse {
|
|
453
|
-
models: CostByModelData[]
|
|
454
|
-
totalCostUsd: number
|
|
455
|
-
totalCallCount: number
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
// ============================================================================
|
|
459
|
-
// Collector Classes
|
|
460
|
-
// ============================================================================
|
|
461
|
-
|
|
462
|
-
export { AIUsageCollector } from './ai-usage-collector'
|
|
463
|
-
export { MetricsCollector } from './metrics-collector'
|
|
1
|
+
import { LLMModel } from '../../execution/engine/llm/model-info'
|
|
2
|
+
import type { ExecutionErrorCategory } from '../../execution/engine'
|
|
3
|
+
import type { Database } from '../../supabase/database.types'
|
|
4
|
+
|
|
5
|
+
// ============================================================================
|
|
6
|
+
// Database Types
|
|
7
|
+
// ============================================================================
|
|
8
|
+
|
|
9
|
+
export type ExecutionMetricsRow = Database['public']['Tables']['execution_metrics']['Row']
|
|
10
|
+
export type ExecutionMetricsInsert = Database['public']['Tables']['execution_metrics']['Insert']
|
|
11
|
+
export type ExecutionMetricsUpdate = Database['public']['Tables']['execution_metrics']['Update']
|
|
12
|
+
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// AI Call Tracking Types (SSOT)
|
|
15
|
+
// ============================================================================
|
|
16
|
+
|
|
17
|
+
export interface BaseAICall {
|
|
18
|
+
callSequence: number // 1, 2, 3... (execution-wide universal counter)
|
|
19
|
+
callType: 'agent-reasoning' | 'agent-completion' | 'workflow-step' | 'tool' | 'other'
|
|
20
|
+
model: LLMModel
|
|
21
|
+
inputTokens: number
|
|
22
|
+
outputTokens: number
|
|
23
|
+
costUsd: number // Cost in USD with full decimal precision
|
|
24
|
+
latencyMs: number
|
|
25
|
+
context?: AICallContext
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export type AICallContext =
|
|
29
|
+
| AgentReasoningContext
|
|
30
|
+
| AgentCompletionContext
|
|
31
|
+
| WorkflowStepContext
|
|
32
|
+
| ToolCallContext
|
|
33
|
+
| OtherCallContext
|
|
34
|
+
|
|
35
|
+
export interface AgentReasoningContext {
|
|
36
|
+
type: 'agent-reasoning'
|
|
37
|
+
iteration: number
|
|
38
|
+
actionsPlanned?: string[]
|
|
39
|
+
sessionId?: string
|
|
40
|
+
turnNumber?: number
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface AgentCompletionContext {
|
|
44
|
+
type: 'agent-completion'
|
|
45
|
+
attempt: 1 | 2
|
|
46
|
+
validationFailed?: boolean
|
|
47
|
+
sessionId?: string
|
|
48
|
+
turnNumber?: number
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface WorkflowStepContext {
|
|
52
|
+
type: 'workflow-step'
|
|
53
|
+
stepId: string
|
|
54
|
+
stepName?: string
|
|
55
|
+
stepSequence?: number
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export interface ToolCallContext {
|
|
59
|
+
type: 'tool'
|
|
60
|
+
toolName: string
|
|
61
|
+
parentIteration?: number
|
|
62
|
+
parentStepId?: string
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface OtherCallContext {
|
|
66
|
+
type: 'other'
|
|
67
|
+
description?: string
|
|
68
|
+
metadata?: Record<string, unknown>
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export type AICallRecord = BaseAICall
|
|
72
|
+
|
|
73
|
+
// ============================================================================
|
|
74
|
+
// LLM Usage Data (from adapters)
|
|
75
|
+
// ============================================================================
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Raw LLM usage data returned by adapters
|
|
79
|
+
* Used as input to AIUsageCollector.record()
|
|
80
|
+
*/
|
|
81
|
+
export interface LLMUsageData {
|
|
82
|
+
model: LLMModel
|
|
83
|
+
inputTokens: number
|
|
84
|
+
outputTokens: number
|
|
85
|
+
latencyMs: number
|
|
86
|
+
/** Actual cost from provider in USD (when available, e.g., OpenRouter) */
|
|
87
|
+
cost?: number
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// ============================================================================
|
|
91
|
+
// AI Usage Summary
|
|
92
|
+
// ============================================================================
|
|
93
|
+
|
|
94
|
+
export interface AIUsageSummary {
|
|
95
|
+
model: LLMModel
|
|
96
|
+
totalInputTokens: number
|
|
97
|
+
totalOutputTokens: number
|
|
98
|
+
totalTokens: number
|
|
99
|
+
totalCostUsd: number // Total cost in USD with full decimal precision
|
|
100
|
+
callCount: number
|
|
101
|
+
calls: AICallRecord[]
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// ============================================================================
|
|
105
|
+
// Execution Metrics
|
|
106
|
+
// ============================================================================
|
|
107
|
+
|
|
108
|
+
export interface ExecutionMetricsSummary {
|
|
109
|
+
durationMs?: number
|
|
110
|
+
automationSavingsUsd?: number // Automation savings in USD with full decimal precision
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// ============================================================================
|
|
114
|
+
// Resource Metrics Configuration
|
|
115
|
+
// ============================================================================
|
|
116
|
+
|
|
117
|
+
export interface ResourceMetricsConfig {
|
|
118
|
+
estimatedManualMinutes: number
|
|
119
|
+
hourlyLaborRateUsd: number // Hourly rate in USD (e.g., 75.00 for $75/hour)
|
|
120
|
+
confidenceLevel?: 'low' | 'medium' | 'high'
|
|
121
|
+
notes?: string
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// ============================================================================
|
|
125
|
+
// API Request/Response Types (Dashboard Observability)
|
|
126
|
+
// ============================================================================
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Time range selector for dashboard metrics
|
|
130
|
+
*/
|
|
131
|
+
export type TimeRange = '1h' | '24h' | '7d' | '30d'
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* ISO 8601 date range for API queries
|
|
135
|
+
*/
|
|
136
|
+
export interface TimeRangeDates {
|
|
137
|
+
startDate: string
|
|
138
|
+
endDate: string
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Execution health metrics response
|
|
143
|
+
* Success rate, P95 duration, execution counts, and trend data
|
|
144
|
+
* trendData includes executionCount for throughput visualization (eliminates separate API call)
|
|
145
|
+
*/
|
|
146
|
+
export interface ExecutionHealthMetrics {
|
|
147
|
+
successRate: number
|
|
148
|
+
p95Duration: number
|
|
149
|
+
totalExecutions: number
|
|
150
|
+
trendData: Array<{
|
|
151
|
+
time: string
|
|
152
|
+
rate: number
|
|
153
|
+
successCount: number
|
|
154
|
+
errorCount: number
|
|
155
|
+
warningCount: number
|
|
156
|
+
executionCount: number
|
|
157
|
+
}>
|
|
158
|
+
statusCounts: { success: number; failed: number; pending: number; warning: number }
|
|
159
|
+
peakPeriod: string
|
|
160
|
+
granularity: 'hour' | 'day'
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Error analysis metrics response
|
|
165
|
+
* Error categories and top failing resources
|
|
166
|
+
*/
|
|
167
|
+
export interface ErrorAnalysisMetrics {
|
|
168
|
+
totalErrors: number
|
|
169
|
+
errorsByCategory: Array<{
|
|
170
|
+
category: string
|
|
171
|
+
count: number
|
|
172
|
+
percentage: number
|
|
173
|
+
}>
|
|
174
|
+
topFailingResources: Array<{
|
|
175
|
+
resourceId: string
|
|
176
|
+
name: string
|
|
177
|
+
errorCount: number
|
|
178
|
+
failureRate: number
|
|
179
|
+
}>
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Business impact metrics response
|
|
184
|
+
* ROI, labor savings, and cost analysis
|
|
185
|
+
*/
|
|
186
|
+
export interface BusinessImpactMetrics {
|
|
187
|
+
totalSavingsUsd: number
|
|
188
|
+
totalCostUsd: number
|
|
189
|
+
netSavingsUsd: number
|
|
190
|
+
roi: number
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Cost breakdown metrics response
|
|
195
|
+
* Per-resource cost analysis
|
|
196
|
+
*/
|
|
197
|
+
export interface CostBreakdownMetrics {
|
|
198
|
+
resources: Array<{
|
|
199
|
+
resourceId: string
|
|
200
|
+
totalCostUsd: number
|
|
201
|
+
executionCount: number
|
|
202
|
+
avgCostUsd: number
|
|
203
|
+
}>
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Detailed execution metrics response
|
|
208
|
+
* Full execution metrics with AI call breakdown
|
|
209
|
+
*/
|
|
210
|
+
export interface ExecutionMetricsDetail {
|
|
211
|
+
executionId: string
|
|
212
|
+
organizationId: string
|
|
213
|
+
resourceId: string
|
|
214
|
+
totalInputTokens: number
|
|
215
|
+
totalOutputTokens: number
|
|
216
|
+
totalCostUsd: number
|
|
217
|
+
aiCallCount: number
|
|
218
|
+
aiCalls: AICallRecord[]
|
|
219
|
+
durationMs?: number
|
|
220
|
+
automationSavingsUsd?: number
|
|
221
|
+
createdAt: string
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Dashboard metrics response
|
|
226
|
+
* Aggregates core observability metrics in a single response
|
|
227
|
+
* Note: Throughput data is now included in executionHealth.trendData.executionCount
|
|
228
|
+
*/
|
|
229
|
+
export interface DashboardMetrics {
|
|
230
|
+
executionHealth: ExecutionHealthMetrics
|
|
231
|
+
costBreakdown: CostBreakdownMetrics
|
|
232
|
+
businessImpact: BusinessImpactMetrics
|
|
233
|
+
/** ISO timestamp of the currently active deployment, or null if none */
|
|
234
|
+
activeDeploymentDate: string | null
|
|
235
|
+
/** Deployment version of the active deployment, or null if none */
|
|
236
|
+
activeDeploymentVersion: string | null
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// ============================================================================
|
|
240
|
+
// Error Tracking Types
|
|
241
|
+
// ============================================================================
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Error record for list view (ErrorBreakdownTable)
|
|
245
|
+
*/
|
|
246
|
+
export interface ErrorRecord {
|
|
247
|
+
id: string // execution_errors.id
|
|
248
|
+
timestamp: string // occurred_at
|
|
249
|
+
errorType: string // error_type
|
|
250
|
+
message: string // error_message
|
|
251
|
+
executionId: string // execution_id
|
|
252
|
+
resourceId: string // execution_logs.resource_id (via JOIN)
|
|
253
|
+
resourceName: string // execution_logs.resource_id (TODO: resolve via registry)
|
|
254
|
+
severity: 'critical' | 'warning' | 'info'
|
|
255
|
+
category: ExecutionErrorCategory // error_category (moved from metadata to dedicated column)
|
|
256
|
+
resolved: boolean // resolved flag (human acknowledgment, does not affect execution status)
|
|
257
|
+
resolvedAt: string | null // timestamp when resolved
|
|
258
|
+
resolvedBy: string | null // user ID who resolved
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Full error detail for modal view (ErrorDetailsModal)
|
|
263
|
+
*/
|
|
264
|
+
export interface ErrorDetailFull extends ErrorRecord {
|
|
265
|
+
stackTrace?: string // error_stack_trace
|
|
266
|
+
retryAttempt?: number // metadata.retryAttempt
|
|
267
|
+
stepName?: string // metadata.stepName
|
|
268
|
+
stepSequence?: number // metadata.stepSequence
|
|
269
|
+
errorContext?: Record<string, unknown> // metadata.errorContext
|
|
270
|
+
executionContext?: Record<string, unknown> // metadata.executionContext
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Error details API response (paginated)
|
|
275
|
+
*/
|
|
276
|
+
export interface ErrorDetailResponse {
|
|
277
|
+
errors: ErrorRecord[]
|
|
278
|
+
total: number
|
|
279
|
+
page: number
|
|
280
|
+
limit: number
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Error distribution for analytics (pie/bar charts)
|
|
285
|
+
*/
|
|
286
|
+
export interface ErrorDistribution {
|
|
287
|
+
label: string // Error type, severity, or category
|
|
288
|
+
count: number // Number of occurrences
|
|
289
|
+
percentage: number // Percentage of total
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Error trend data for time-series charts
|
|
294
|
+
*/
|
|
295
|
+
export interface ErrorTrend {
|
|
296
|
+
time: string // Time bucket (ISO timestamp)
|
|
297
|
+
errorCount: number // Total errors in bucket
|
|
298
|
+
criticalCount: number // Critical errors in bucket
|
|
299
|
+
warningCount: number // Warning errors in bucket
|
|
300
|
+
infoCount: number // Info errors in bucket
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* Failing resource data for health monitoring
|
|
305
|
+
*/
|
|
306
|
+
export interface FailingResource {
|
|
307
|
+
resourceId: string
|
|
308
|
+
resourceName: string // TODO: Resolve via registry
|
|
309
|
+
errorCount: number
|
|
310
|
+
criticalCount: number
|
|
311
|
+
warningCount: number
|
|
312
|
+
mostCommonError: string
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
// ============================================================================
|
|
316
|
+
// Recent Executions by Resource Types (Dashboard)
|
|
317
|
+
// ============================================================================
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Summary of executions for a single resource
|
|
321
|
+
* Used by RecentExecutionsByResource dashboard component
|
|
322
|
+
*/
|
|
323
|
+
export interface ResourceExecutionSummary {
|
|
324
|
+
resourceId: string // resource_id from execution_logs
|
|
325
|
+
resourceType: string // Inferred from resource definitions (resolved by frontend)
|
|
326
|
+
resourceName: string | null // From resource registry lookup (resolved by frontend)
|
|
327
|
+
lastExecution: string // ISO timestamp (MAX started_at)
|
|
328
|
+
totalExecutions: number // COUNT(*)
|
|
329
|
+
successCount: number // COUNT WHERE status='completed' OR status='warning'
|
|
330
|
+
failureCount: number // COUNT WHERE status='failed'
|
|
331
|
+
warningCount: number // COUNT WHERE status='warning' (subset of success)
|
|
332
|
+
successRate: number // (successCount / totalExecutions) * 100
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Response from getRecentExecutionsByResource endpoint
|
|
337
|
+
*/
|
|
338
|
+
export interface RecentExecutionsByResourceResponse {
|
|
339
|
+
resources: ResourceExecutionSummary[]
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
// ============================================================================
|
|
343
|
+
// Per-Resource Health Types (Dashboard Recent Activity)
|
|
344
|
+
// ============================================================================
|
|
345
|
+
|
|
346
|
+
/** Resource identifier for health queries */
|
|
347
|
+
export interface ResourceIdentifier {
|
|
348
|
+
entityType: string // 'workflow' | 'agent'
|
|
349
|
+
entityId: string // Resource ID
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/** Time-bucketed health data point */
|
|
353
|
+
export interface ResourceHealthDataPoint {
|
|
354
|
+
time: string // ISO timestamp (bucket start)
|
|
355
|
+
success: number // Success count in bucket (completed + warning)
|
|
356
|
+
failure: number // Failure count in bucket
|
|
357
|
+
warning: number // Warning count in bucket (subset of success)
|
|
358
|
+
rate: number // Success rate (0-100)
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/** Health data for a single resource */
|
|
362
|
+
export interface ResourceHealth {
|
|
363
|
+
entityType: string
|
|
364
|
+
entityId: string
|
|
365
|
+
entityName: string | null
|
|
366
|
+
trendData: ResourceHealthDataPoint[]
|
|
367
|
+
summary: {
|
|
368
|
+
total: number
|
|
369
|
+
successRate: number
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
/** Batch request for multiple resources */
|
|
374
|
+
export interface ResourcesHealthRequest {
|
|
375
|
+
resources: ResourceIdentifier[]
|
|
376
|
+
startDate: string // ISO datetime
|
|
377
|
+
endDate: string // ISO datetime
|
|
378
|
+
granularity: 'hour' | 'day'
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
/** Batch response with all requested resources */
|
|
382
|
+
export interface ResourcesHealthResponse {
|
|
383
|
+
resources: ResourceHealth[]
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
// ============================================================================
|
|
387
|
+
// Cost Analytics Types (Time-Series)
|
|
388
|
+
// ============================================================================
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* Cost trend data point for time-series charts
|
|
392
|
+
* Represents a single time bucket (hour or day)
|
|
393
|
+
*/
|
|
394
|
+
export interface CostTrendDataPoint {
|
|
395
|
+
time: string // ISO timestamp (bucket start)
|
|
396
|
+
totalCostUsd: number
|
|
397
|
+
executionCount: number
|
|
398
|
+
avgCostPerExecution: number
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
/**
|
|
402
|
+
* Cost trends response (time-series data)
|
|
403
|
+
*/
|
|
404
|
+
export interface CostTrendsResponse {
|
|
405
|
+
trendData: CostTrendDataPoint[]
|
|
406
|
+
granularity: 'hour' | 'day'
|
|
407
|
+
totalCostUsd: number
|
|
408
|
+
totalExecutions: number
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* Cost summary response with MTD and projections
|
|
413
|
+
*/
|
|
414
|
+
export interface CostSummaryResponse {
|
|
415
|
+
current: {
|
|
416
|
+
totalCostUsd: number
|
|
417
|
+
executionCount: number
|
|
418
|
+
}
|
|
419
|
+
previous: {
|
|
420
|
+
totalCostUsd: number
|
|
421
|
+
executionCount: number
|
|
422
|
+
}
|
|
423
|
+
mtd: {
|
|
424
|
+
totalCostUsd: number
|
|
425
|
+
daysElapsed: number
|
|
426
|
+
}
|
|
427
|
+
projection: {
|
|
428
|
+
monthlyCostUsd: number
|
|
429
|
+
confidence: 'low' | 'medium' | 'high'
|
|
430
|
+
}
|
|
431
|
+
trend: {
|
|
432
|
+
changePercent: number
|
|
433
|
+
direction: 'up' | 'down' | 'flat'
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Cost by model data for model-level breakdown
|
|
439
|
+
*/
|
|
440
|
+
export interface CostByModelData {
|
|
441
|
+
model: string
|
|
442
|
+
totalCostUsd: number
|
|
443
|
+
callCount: number
|
|
444
|
+
totalInputTokens: number
|
|
445
|
+
totalOutputTokens: number
|
|
446
|
+
avgCostPerCall: number
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* Cost by model response
|
|
451
|
+
*/
|
|
452
|
+
export interface CostByModelResponse {
|
|
453
|
+
models: CostByModelData[]
|
|
454
|
+
totalCostUsd: number
|
|
455
|
+
totalCallCount: number
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
// ============================================================================
|
|
459
|
+
// Collector Classes
|
|
460
|
+
// ============================================================================
|
|
461
|
+
|
|
462
|
+
export { AIUsageCollector } from './ai-usage-collector'
|
|
463
|
+
export { MetricsCollector } from './metrics-collector'
|