@elevasis/core 0.7.1 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/test-utils/index.d.ts +3122 -0
- package/dist/test-utils/index.js +386 -0
- package/package.json +6 -1
- package/src/README.md +39 -36
- package/src/__tests__/publish.test.ts +18 -13
- 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 +47 -36
- 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 +30 -138
- 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 +7 -8
- 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/published.ts +4 -0
- package/src/test-utils/rls/RLSTestContext.ts +554 -554
- package/src/test-utils/rls/index.ts +1 -1
|
@@ -1,110 +1,110 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Platform PDF Tool
|
|
3
|
-
*
|
|
4
|
-
* Factory function for creating a PDF render tool that generates
|
|
5
|
-
* documents using pdfmake and stores them in platform storage.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* ```typescript
|
|
9
|
-
* const pdfTool = createPdfRenderTool({
|
|
10
|
-
* name: 'render_pdf',
|
|
11
|
-
* description: 'Render a PDF document and store it in platform storage'
|
|
12
|
-
* })
|
|
13
|
-
* ```
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
import type { Tool, ToolExecutionOptions } from '../../types'
|
|
17
|
-
import { serviceUnavailable } from '../../types'
|
|
18
|
-
import { getToolServices } from '../../registry'
|
|
19
|
-
import {
|
|
20
|
-
PdfRenderInputSchema,
|
|
21
|
-
PdfRenderOutputSchema,
|
|
22
|
-
type PdfRenderInput,
|
|
23
|
-
type PdfRenderOutput,
|
|
24
|
-
type PdfToolConfig
|
|
25
|
-
} from './types'
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Create a PDF render tool for workflows and agents
|
|
29
|
-
*
|
|
30
|
-
* PDF render tools enable workflows and agents to generate PDF documents
|
|
31
|
-
* from structured data and store them in platform storage. Documents are
|
|
32
|
-
* rendered using pdfmake with configurable theming.
|
|
33
|
-
*
|
|
34
|
-
* @param config - Configuration for the PDF tool
|
|
35
|
-
* @returns Tool that renders PDFs and returns storage URLs
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* const pdfTool = createPdfRenderTool({
|
|
39
|
-
* name: 'render_proposal',
|
|
40
|
-
* description: 'Render a proposal PDF and store in acquisition bucket'
|
|
41
|
-
* })
|
|
42
|
-
*
|
|
43
|
-
* // Execute with document structure
|
|
44
|
-
* await pdfTool.execute({
|
|
45
|
-
* input: {
|
|
46
|
-
* document: {
|
|
47
|
-
* pages: [{
|
|
48
|
-
* sections: [
|
|
49
|
-
* { type: 'text', content: 'Proposal', variant: 'title' },
|
|
50
|
-
* { type: 'metric', value: '$50,000', label: 'Project Value' }
|
|
51
|
-
* ]
|
|
52
|
-
* }]
|
|
53
|
-
* },
|
|
54
|
-
* storage: {
|
|
55
|
-
* bucket: 'acquisition',
|
|
56
|
-
* path: 'proposals/deal-123/proposal.pdf'
|
|
57
|
-
* }
|
|
58
|
-
* },
|
|
59
|
-
* executionContext: context
|
|
60
|
-
* })
|
|
61
|
-
*/
|
|
62
|
-
export function createPdfRenderTool(config: PdfToolConfig): Tool {
|
|
63
|
-
return {
|
|
64
|
-
name: config.name,
|
|
65
|
-
description: config.description,
|
|
66
|
-
inputSchema: PdfRenderInputSchema,
|
|
67
|
-
outputSchema: PdfRenderOutputSchema,
|
|
68
|
-
|
|
69
|
-
async execute(options: ToolExecutionOptions): Promise<PdfRenderOutput> {
|
|
70
|
-
// ExecutionContext is required for multi-tenant isolation
|
|
71
|
-
if (!options.executionContext) {
|
|
72
|
-
throw serviceUnavailable('ExecutionContext', {
|
|
73
|
-
tool: config.name,
|
|
74
|
-
reason: 'organizationId required for multi-tenant isolation'
|
|
75
|
-
})
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// Get PDF service from global registry
|
|
79
|
-
const { pdfService } = getToolServices()
|
|
80
|
-
if (!pdfService) {
|
|
81
|
-
throw serviceUnavailable('PdfService', {
|
|
82
|
-
message: 'Ensure toolServicesRegistry.initialize() was called with pdfService in apps/api/src/main.ts',
|
|
83
|
-
tool: config.name
|
|
84
|
-
})
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// Parse and validate input
|
|
88
|
-
const input = PdfRenderInputSchema.parse(options.input) as PdfRenderInput
|
|
89
|
-
|
|
90
|
-
// Render PDF via service
|
|
91
|
-
const result = await pdfService.render({
|
|
92
|
-
organizationId: options.executionContext.organizationId,
|
|
93
|
-
document: input.document,
|
|
94
|
-
theme: input.theme,
|
|
95
|
-
storage: input.storage
|
|
96
|
-
})
|
|
97
|
-
|
|
98
|
-
return result
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// Re-export types for consumers
|
|
104
|
-
export {
|
|
105
|
-
PdfRenderInputSchema,
|
|
106
|
-
PdfRenderOutputSchema,
|
|
107
|
-
type PdfRenderInput,
|
|
108
|
-
type PdfRenderOutput,
|
|
109
|
-
type PdfToolConfig
|
|
110
|
-
} from './types'
|
|
1
|
+
/**
|
|
2
|
+
* Platform PDF Tool
|
|
3
|
+
*
|
|
4
|
+
* Factory function for creating a PDF render tool that generates
|
|
5
|
+
* documents using pdfmake and stores them in platform storage.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const pdfTool = createPdfRenderTool({
|
|
10
|
+
* name: 'render_pdf',
|
|
11
|
+
* description: 'Render a PDF document and store it in platform storage'
|
|
12
|
+
* })
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import type { Tool, ToolExecutionOptions } from '../../types'
|
|
17
|
+
import { serviceUnavailable } from '../../types'
|
|
18
|
+
import { getToolServices } from '../../registry'
|
|
19
|
+
import {
|
|
20
|
+
PdfRenderInputSchema,
|
|
21
|
+
PdfRenderOutputSchema,
|
|
22
|
+
type PdfRenderInput,
|
|
23
|
+
type PdfRenderOutput,
|
|
24
|
+
type PdfToolConfig
|
|
25
|
+
} from './types'
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Create a PDF render tool for workflows and agents
|
|
29
|
+
*
|
|
30
|
+
* PDF render tools enable workflows and agents to generate PDF documents
|
|
31
|
+
* from structured data and store them in platform storage. Documents are
|
|
32
|
+
* rendered using pdfmake with configurable theming.
|
|
33
|
+
*
|
|
34
|
+
* @param config - Configuration for the PDF tool
|
|
35
|
+
* @returns Tool that renders PDFs and returns storage URLs
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* const pdfTool = createPdfRenderTool({
|
|
39
|
+
* name: 'render_proposal',
|
|
40
|
+
* description: 'Render a proposal PDF and store in acquisition bucket'
|
|
41
|
+
* })
|
|
42
|
+
*
|
|
43
|
+
* // Execute with document structure
|
|
44
|
+
* await pdfTool.execute({
|
|
45
|
+
* input: {
|
|
46
|
+
* document: {
|
|
47
|
+
* pages: [{
|
|
48
|
+
* sections: [
|
|
49
|
+
* { type: 'text', content: 'Proposal', variant: 'title' },
|
|
50
|
+
* { type: 'metric', value: '$50,000', label: 'Project Value' }
|
|
51
|
+
* ]
|
|
52
|
+
* }]
|
|
53
|
+
* },
|
|
54
|
+
* storage: {
|
|
55
|
+
* bucket: 'acquisition',
|
|
56
|
+
* path: 'proposals/deal-123/proposal.pdf'
|
|
57
|
+
* }
|
|
58
|
+
* },
|
|
59
|
+
* executionContext: context
|
|
60
|
+
* })
|
|
61
|
+
*/
|
|
62
|
+
export function createPdfRenderTool(config: PdfToolConfig): Tool {
|
|
63
|
+
return {
|
|
64
|
+
name: config.name,
|
|
65
|
+
description: config.description,
|
|
66
|
+
inputSchema: PdfRenderInputSchema,
|
|
67
|
+
outputSchema: PdfRenderOutputSchema,
|
|
68
|
+
|
|
69
|
+
async execute(options: ToolExecutionOptions): Promise<PdfRenderOutput> {
|
|
70
|
+
// ExecutionContext is required for multi-tenant isolation
|
|
71
|
+
if (!options.executionContext) {
|
|
72
|
+
throw serviceUnavailable('ExecutionContext', {
|
|
73
|
+
tool: config.name,
|
|
74
|
+
reason: 'organizationId required for multi-tenant isolation'
|
|
75
|
+
})
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Get PDF service from global registry
|
|
79
|
+
const { pdfService } = getToolServices()
|
|
80
|
+
if (!pdfService) {
|
|
81
|
+
throw serviceUnavailable('PdfService', {
|
|
82
|
+
message: 'Ensure toolServicesRegistry.initialize() was called with pdfService in apps/api/src/main.ts',
|
|
83
|
+
tool: config.name
|
|
84
|
+
})
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Parse and validate input
|
|
88
|
+
const input = PdfRenderInputSchema.parse(options.input) as PdfRenderInput
|
|
89
|
+
|
|
90
|
+
// Render PDF via service
|
|
91
|
+
const result = await pdfService.render({
|
|
92
|
+
organizationId: options.executionContext.organizationId,
|
|
93
|
+
document: input.document,
|
|
94
|
+
theme: input.theme,
|
|
95
|
+
storage: input.storage
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
return result
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// Re-export types for consumers
|
|
104
|
+
export {
|
|
105
|
+
PdfRenderInputSchema,
|
|
106
|
+
PdfRenderOutputSchema,
|
|
107
|
+
type PdfRenderInput,
|
|
108
|
+
type PdfRenderOutput,
|
|
109
|
+
type PdfToolConfig
|
|
110
|
+
} from './types'
|
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Platform PDF Tool Types
|
|
3
|
-
*
|
|
4
|
-
* Zod schemas and inferred types for PDF rendering platform tool.
|
|
5
|
-
* Supports document rendering with theme overrides and storage configuration.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { z } from 'zod'
|
|
9
|
-
import { DocumentSchema } from '../../../../../business/pdf/types'
|
|
10
|
-
|
|
11
|
-
// =============================================================================
|
|
12
|
-
// INPUT SCHEMA
|
|
13
|
-
// =============================================================================
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Storage configuration for PDF output
|
|
17
|
-
* Specifies where the rendered PDF should be stored
|
|
18
|
-
*/
|
|
19
|
-
export const StorageConfigSchema = z.object({
|
|
20
|
-
bucket: z.string().describe('Storage bucket name (e.g., "acquisition", "org-files")'),
|
|
21
|
-
path: z.string().describe('File path within org folder (e.g., "proposals/deal-123/proposal.pdf")')
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Theme override schema (partial)
|
|
26
|
-
* Allows customizing colors, typography, and spacing for PDF rendering
|
|
27
|
-
*/
|
|
28
|
-
export const ThemeOverrideSchema = z
|
|
29
|
-
.object({
|
|
30
|
-
colors: z.record(z.string(), z.string()).optional().describe('Color overrides (e.g., { primary: "#1a73e8" })'),
|
|
31
|
-
typography: z.record(z.string(), z.any()).optional().describe('Typography overrides'),
|
|
32
|
-
spacing: z.record(z.string(), z.number()).optional().describe('Spacing overrides in points')
|
|
33
|
-
})
|
|
34
|
-
.optional()
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Input schema for PDF rendering tool
|
|
38
|
-
*
|
|
39
|
-
* Renders a document definition to PDF and stores it in the specified location.
|
|
40
|
-
*/
|
|
41
|
-
export const PdfRenderInputSchema = z.object({
|
|
42
|
-
document: DocumentSchema.describe('Document definition with pages, sections, and content blocks'),
|
|
43
|
-
theme: ThemeOverrideSchema.describe('Optional theme customization'),
|
|
44
|
-
storage: StorageConfigSchema.describe('Where to store the rendered PDF')
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
export type PdfRenderInput = z.infer<typeof PdfRenderInputSchema>
|
|
48
|
-
|
|
49
|
-
// =============================================================================
|
|
50
|
-
// OUTPUT SCHEMA
|
|
51
|
-
// =============================================================================
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Output schema for PDF render result
|
|
55
|
-
* Returns the URL to the rendered PDF and file metadata
|
|
56
|
-
*/
|
|
57
|
-
export const PdfRenderOutputSchema = z.object({
|
|
58
|
-
success: z.boolean().describe('Whether the PDF was rendered and stored successfully'),
|
|
59
|
-
pdfUrl: z.string().describe('Signed URL to access the rendered PDF'),
|
|
60
|
-
size: z.number().describe('File size in bytes')
|
|
61
|
-
})
|
|
62
|
-
|
|
63
|
-
export type PdfRenderOutput = z.infer<typeof PdfRenderOutputSchema>
|
|
64
|
-
|
|
65
|
-
// =============================================================================
|
|
66
|
-
// TOOL CONFIGURATION
|
|
67
|
-
// =============================================================================
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Configuration for creating a PDF render tool
|
|
71
|
-
*/
|
|
72
|
-
export interface PdfToolConfig {
|
|
73
|
-
/** Unique name for the tool */
|
|
74
|
-
name: string
|
|
75
|
-
/** Description of what the tool does (shown to LLM) */
|
|
76
|
-
description: string
|
|
77
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Platform PDF Tool Types
|
|
3
|
+
*
|
|
4
|
+
* Zod schemas and inferred types for PDF rendering platform tool.
|
|
5
|
+
* Supports document rendering with theme overrides and storage configuration.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { z } from 'zod'
|
|
9
|
+
import { DocumentSchema } from '../../../../../business/pdf/types'
|
|
10
|
+
|
|
11
|
+
// =============================================================================
|
|
12
|
+
// INPUT SCHEMA
|
|
13
|
+
// =============================================================================
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Storage configuration for PDF output
|
|
17
|
+
* Specifies where the rendered PDF should be stored
|
|
18
|
+
*/
|
|
19
|
+
export const StorageConfigSchema = z.object({
|
|
20
|
+
bucket: z.string().describe('Storage bucket name (e.g., "acquisition", "org-files")'),
|
|
21
|
+
path: z.string().describe('File path within org folder (e.g., "proposals/deal-123/proposal.pdf")')
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Theme override schema (partial)
|
|
26
|
+
* Allows customizing colors, typography, and spacing for PDF rendering
|
|
27
|
+
*/
|
|
28
|
+
export const ThemeOverrideSchema = z
|
|
29
|
+
.object({
|
|
30
|
+
colors: z.record(z.string(), z.string()).optional().describe('Color overrides (e.g., { primary: "#1a73e8" })'),
|
|
31
|
+
typography: z.record(z.string(), z.any()).optional().describe('Typography overrides'),
|
|
32
|
+
spacing: z.record(z.string(), z.number()).optional().describe('Spacing overrides in points')
|
|
33
|
+
})
|
|
34
|
+
.optional()
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Input schema for PDF rendering tool
|
|
38
|
+
*
|
|
39
|
+
* Renders a document definition to PDF and stores it in the specified location.
|
|
40
|
+
*/
|
|
41
|
+
export const PdfRenderInputSchema = z.object({
|
|
42
|
+
document: DocumentSchema.describe('Document definition with pages, sections, and content blocks'),
|
|
43
|
+
theme: ThemeOverrideSchema.describe('Optional theme customization'),
|
|
44
|
+
storage: StorageConfigSchema.describe('Where to store the rendered PDF')
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
export type PdfRenderInput = z.infer<typeof PdfRenderInputSchema>
|
|
48
|
+
|
|
49
|
+
// =============================================================================
|
|
50
|
+
// OUTPUT SCHEMA
|
|
51
|
+
// =============================================================================
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Output schema for PDF render result
|
|
55
|
+
* Returns the URL to the rendered PDF and file metadata
|
|
56
|
+
*/
|
|
57
|
+
export const PdfRenderOutputSchema = z.object({
|
|
58
|
+
success: z.boolean().describe('Whether the PDF was rendered and stored successfully'),
|
|
59
|
+
pdfUrl: z.string().describe('Signed URL to access the rendered PDF'),
|
|
60
|
+
size: z.number().describe('File size in bytes')
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
export type PdfRenderOutput = z.infer<typeof PdfRenderOutputSchema>
|
|
64
|
+
|
|
65
|
+
// =============================================================================
|
|
66
|
+
// TOOL CONFIGURATION
|
|
67
|
+
// =============================================================================
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Configuration for creating a PDF render tool
|
|
71
|
+
*/
|
|
72
|
+
export interface PdfToolConfig {
|
|
73
|
+
/** Unique name for the tool */
|
|
74
|
+
name: string
|
|
75
|
+
/** Description of what the tool does (shown to LLM) */
|
|
76
|
+
description: string
|
|
77
|
+
}
|
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
import type { Tool, ToolExecutionOptions } from '../types'
|
|
2
|
-
import { serviceUnavailable } from '../types'
|
|
3
|
-
import type { CreateScheduleInput, AbsoluteScheduleConfig } from '../../../scheduler/types'
|
|
4
|
-
import { getToolServices } from '../registry'
|
|
5
|
-
import type { SchedulerToolConfig } from './types'
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Create a scheduler tool that schedules future execution of agents/workflows
|
|
9
|
-
*
|
|
10
|
-
* Scheduler tools enable time-based automation by creating scheduled tasks that
|
|
11
|
-
* execute at a specific time. The task contains the input payload and routes to
|
|
12
|
-
* the specified resource.
|
|
13
|
-
*
|
|
14
|
-
* @param config - Configuration for the scheduler tool
|
|
15
|
-
* @returns Tool that creates scheduled tasks
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* const schedulerTool = createSchedulerTool({
|
|
19
|
-
* name: 'schedule_followup',
|
|
20
|
-
* description: 'Schedule a follow-up task for later',
|
|
21
|
-
* inputSchema: z.object({ message: z.string(), recipientId: z.string() }),
|
|
22
|
-
* outputSchema: z.object({ taskId: z.string() }),
|
|
23
|
-
* targetResourceId: 'followup-agent',
|
|
24
|
-
* targetResourceType: 'agent',
|
|
25
|
-
* runAt: new Date(Date.now() + 86400000), // 24 hours from now
|
|
26
|
-
* maxRetries: 3
|
|
27
|
-
* })
|
|
28
|
-
*/
|
|
29
|
-
export function createSchedulerTool(config: SchedulerToolConfig): Tool {
|
|
30
|
-
return {
|
|
31
|
-
name: config.name,
|
|
32
|
-
description: config.description,
|
|
33
|
-
inputSchema: config.inputSchema,
|
|
34
|
-
outputSchema: config.outputSchema,
|
|
35
|
-
|
|
36
|
-
async execute(options: ToolExecutionOptions): Promise<unknown> {
|
|
37
|
-
// ExecutionContext is required for platform tools
|
|
38
|
-
if (!options.executionContext) {
|
|
39
|
-
throw serviceUnavailable('ExecutionContext', { tool: config.name, reason: 'organizationId required for multi-tenant isolation' })
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Get task scheduler service from global registry
|
|
43
|
-
const { taskSchedulerService: taskScheduler } = getToolServices()
|
|
44
|
-
if (!taskScheduler) {
|
|
45
|
-
throw serviceUnavailable('TaskSchedulerService', {
|
|
46
|
-
message: 'Ensure toolServicesRegistry.initialize() was called in apps/api/src/main.ts',
|
|
47
|
-
tool: config.name
|
|
48
|
-
})
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// Convert simple runAt to AbsoluteScheduleConfig (single-item schedule)
|
|
52
|
-
const scheduleConfig: AbsoluteScheduleConfig = {
|
|
53
|
-
type: 'absolute',
|
|
54
|
-
items: [{
|
|
55
|
-
runAt: config.runAt.toISOString(),
|
|
56
|
-
payload: options.input as Record<string, unknown>,
|
|
57
|
-
label: config.taskDescription
|
|
58
|
-
}]
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// Build schedule input using execution context
|
|
62
|
-
const scheduleInput: CreateScheduleInput = {
|
|
63
|
-
organizationId: options.executionContext.organizationId,
|
|
64
|
-
name: config.taskDescription ?? `Scheduled: ${config.name}`,
|
|
65
|
-
description: `Created by ${config.name} tool`,
|
|
66
|
-
target: {
|
|
67
|
-
resourceType: config.targetResourceType,
|
|
68
|
-
resourceId: config.targetResourceId
|
|
69
|
-
},
|
|
70
|
-
scheduleConfig,
|
|
71
|
-
maxRetries: config.maxRetries ?? 3,
|
|
72
|
-
idempotencyKey: config.idempotencyKey,
|
|
73
|
-
|
|
74
|
-
// Origin tracking
|
|
75
|
-
originExecutionId: options.executionContext.executionId,
|
|
76
|
-
originResourceType: 'agent',
|
|
77
|
-
originResourceId: options.executionContext.resourceId
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// Create schedule (returns TaskSchedule)
|
|
81
|
-
const schedule = await taskScheduler.createSchedule(scheduleInput)
|
|
82
|
-
|
|
83
|
-
// Return schedule ID for tracking (unchanged return shape)
|
|
84
|
-
return { taskId: schedule.id }
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
1
|
+
import type { Tool, ToolExecutionOptions } from '../types'
|
|
2
|
+
import { serviceUnavailable } from '../types'
|
|
3
|
+
import type { CreateScheduleInput, AbsoluteScheduleConfig } from '../../../scheduler/types'
|
|
4
|
+
import { getToolServices } from '../registry'
|
|
5
|
+
import type { SchedulerToolConfig } from './types'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Create a scheduler tool that schedules future execution of agents/workflows
|
|
9
|
+
*
|
|
10
|
+
* Scheduler tools enable time-based automation by creating scheduled tasks that
|
|
11
|
+
* execute at a specific time. The task contains the input payload and routes to
|
|
12
|
+
* the specified resource.
|
|
13
|
+
*
|
|
14
|
+
* @param config - Configuration for the scheduler tool
|
|
15
|
+
* @returns Tool that creates scheduled tasks
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* const schedulerTool = createSchedulerTool({
|
|
19
|
+
* name: 'schedule_followup',
|
|
20
|
+
* description: 'Schedule a follow-up task for later',
|
|
21
|
+
* inputSchema: z.object({ message: z.string(), recipientId: z.string() }),
|
|
22
|
+
* outputSchema: z.object({ taskId: z.string() }),
|
|
23
|
+
* targetResourceId: 'followup-agent',
|
|
24
|
+
* targetResourceType: 'agent',
|
|
25
|
+
* runAt: new Date(Date.now() + 86400000), // 24 hours from now
|
|
26
|
+
* maxRetries: 3
|
|
27
|
+
* })
|
|
28
|
+
*/
|
|
29
|
+
export function createSchedulerTool(config: SchedulerToolConfig): Tool {
|
|
30
|
+
return {
|
|
31
|
+
name: config.name,
|
|
32
|
+
description: config.description,
|
|
33
|
+
inputSchema: config.inputSchema,
|
|
34
|
+
outputSchema: config.outputSchema,
|
|
35
|
+
|
|
36
|
+
async execute(options: ToolExecutionOptions): Promise<unknown> {
|
|
37
|
+
// ExecutionContext is required for platform tools
|
|
38
|
+
if (!options.executionContext) {
|
|
39
|
+
throw serviceUnavailable('ExecutionContext', { tool: config.name, reason: 'organizationId required for multi-tenant isolation' })
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Get task scheduler service from global registry
|
|
43
|
+
const { taskSchedulerService: taskScheduler } = getToolServices()
|
|
44
|
+
if (!taskScheduler) {
|
|
45
|
+
throw serviceUnavailable('TaskSchedulerService', {
|
|
46
|
+
message: 'Ensure toolServicesRegistry.initialize() was called in apps/api/src/main.ts',
|
|
47
|
+
tool: config.name
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Convert simple runAt to AbsoluteScheduleConfig (single-item schedule)
|
|
52
|
+
const scheduleConfig: AbsoluteScheduleConfig = {
|
|
53
|
+
type: 'absolute',
|
|
54
|
+
items: [{
|
|
55
|
+
runAt: config.runAt.toISOString(),
|
|
56
|
+
payload: options.input as Record<string, unknown>,
|
|
57
|
+
label: config.taskDescription
|
|
58
|
+
}]
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Build schedule input using execution context
|
|
62
|
+
const scheduleInput: CreateScheduleInput = {
|
|
63
|
+
organizationId: options.executionContext.organizationId,
|
|
64
|
+
name: config.taskDescription ?? `Scheduled: ${config.name}`,
|
|
65
|
+
description: `Created by ${config.name} tool`,
|
|
66
|
+
target: {
|
|
67
|
+
resourceType: config.targetResourceType,
|
|
68
|
+
resourceId: config.targetResourceId
|
|
69
|
+
},
|
|
70
|
+
scheduleConfig,
|
|
71
|
+
maxRetries: config.maxRetries ?? 3,
|
|
72
|
+
idempotencyKey: config.idempotencyKey,
|
|
73
|
+
|
|
74
|
+
// Origin tracking
|
|
75
|
+
originExecutionId: options.executionContext.executionId,
|
|
76
|
+
originResourceType: 'agent',
|
|
77
|
+
originResourceId: options.executionContext.resourceId
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Create schedule (returns TaskSchedule)
|
|
81
|
+
const schedule = await taskScheduler.createSchedule(scheduleInput)
|
|
82
|
+
|
|
83
|
+
// Return schedule ID for tracking (unchanged return shape)
|
|
84
|
+
return { taskId: schedule.id }
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|