@elevasis/core 0.7.0 → 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 +3 -3
- 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 -1
- package/src/business/projects/sse-events.ts +21 -0
- 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 -699
- 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 -34
- 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 +611 -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,92 +1,92 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Reasoning Phase Processor
|
|
3
|
-
* Handles LLM interaction for the REASON phase of agent execution
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type { IterationContext } from '../core/types'
|
|
7
|
-
import type { LLMIterationResponse } from './types'
|
|
8
|
-
import { buildReasoningRequest } from './request-builder'
|
|
9
|
-
import { callLLMForAgentIteration } from './adapters/agent-adapter-helpers'
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Process reasoning phase - Query LLM for next actions
|
|
13
|
-
* Handles adapter resolution, request building, LLM call, logging, and memory storage
|
|
14
|
-
*
|
|
15
|
-
* @param iterationContext - Agent execution context
|
|
16
|
-
* @returns LLM's reasoning and planned actions
|
|
17
|
-
*/
|
|
18
|
-
export async function processReasoning(iterationContext: IterationContext): Promise<LLMIterationResponse> {
|
|
19
|
-
// Create adapter via injected factory (stateless, per-iteration)
|
|
20
|
-
// API process: factory wraps with UniversalLLMAdapter for retry, circuit breaker, observability
|
|
21
|
-
// SDK worker: factory creates PostMessageLLMAdapter that proxies via platform.call()
|
|
22
|
-
const adapter = iterationContext.adapterFactory(
|
|
23
|
-
iterationContext.modelConfig,
|
|
24
|
-
iterationContext.executionContext.aiUsageCollector,
|
|
25
|
-
'agent-reasoning',
|
|
26
|
-
{
|
|
27
|
-
type: 'agent-reasoning',
|
|
28
|
-
iteration: iterationContext.iteration,
|
|
29
|
-
sessionId: iterationContext.executionContext.sessionId,
|
|
30
|
-
turnNumber: iterationContext.executionContext.sessionTurnNumber
|
|
31
|
-
}
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
// Build agent iteration request
|
|
35
|
-
const request = buildReasoningRequest(iterationContext)
|
|
36
|
-
|
|
37
|
-
// Track timing for LLM call
|
|
38
|
-
const startTime = Date.now()
|
|
39
|
-
|
|
40
|
-
// Get LLM iteration response using agent-specific helper
|
|
41
|
-
const { reasoning, memoryOps, nextActions } = await callLLMForAgentIteration(adapter, {
|
|
42
|
-
systemPrompt: request.systemPrompt,
|
|
43
|
-
memoryContext: request.memoryContext,
|
|
44
|
-
tools: request.tools,
|
|
45
|
-
constraints: request.constraints,
|
|
46
|
-
model: iterationContext.modelConfig.model,
|
|
47
|
-
includeMessageAction: request.includeMessageAction,
|
|
48
|
-
includeNavigateKnowledge: request.includeNavigateKnowledge,
|
|
49
|
-
includeMemoryOps: request.includeMemoryOps,
|
|
50
|
-
signal: iterationContext.executionContext.signal
|
|
51
|
-
})
|
|
52
|
-
|
|
53
|
-
const endTime = Date.now()
|
|
54
|
-
const duration = endTime - startTime
|
|
55
|
-
|
|
56
|
-
const response: LLMIterationResponse = { reasoning, memoryOps, nextActions }
|
|
57
|
-
|
|
58
|
-
// Emit reasoning event (for session message persistence)
|
|
59
|
-
await iterationContext.executionContext.onMessageEvent?.({
|
|
60
|
-
type: 'agent:reasoning',
|
|
61
|
-
iteration: iterationContext.iteration,
|
|
62
|
-
reasoning: response.reasoning
|
|
63
|
-
})
|
|
64
|
-
|
|
65
|
-
// Log reasoning event (always present in universal protocol)
|
|
66
|
-
iterationContext.logger.reasoning(response.reasoning, iterationContext.iteration, startTime, endTime, duration)
|
|
67
|
-
|
|
68
|
-
// Store reasoning in memory (always, even when completing)
|
|
69
|
-
// This preserves the LLM's thought process for future iterations
|
|
70
|
-
const memoryStartTime = Date.now()
|
|
71
|
-
|
|
72
|
-
iterationContext.memoryManager.addToHistory({
|
|
73
|
-
type: 'reasoning',
|
|
74
|
-
content: response.reasoning,
|
|
75
|
-
turnNumber: iterationContext.executionContext.sessionTurnNumber ?? null,
|
|
76
|
-
iterationNumber: iterationContext.iteration
|
|
77
|
-
})
|
|
78
|
-
|
|
79
|
-
const memoryEndTime = Date.now()
|
|
80
|
-
const memoryDuration = memoryEndTime - memoryStartTime
|
|
81
|
-
|
|
82
|
-
iterationContext.logger.action(
|
|
83
|
-
'memory-reasoning',
|
|
84
|
-
`Stored reasoning (${response.reasoning.length} chars), history size: ${iterationContext.memoryManager.getHistoryLength()}, actions: ${response.nextActions.map((a) => a.type).join(', ')}`,
|
|
85
|
-
iterationContext.iteration,
|
|
86
|
-
memoryStartTime,
|
|
87
|
-
memoryEndTime,
|
|
88
|
-
memoryDuration
|
|
89
|
-
)
|
|
90
|
-
|
|
91
|
-
return response
|
|
92
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Reasoning Phase Processor
|
|
3
|
+
* Handles LLM interaction for the REASON phase of agent execution
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { IterationContext } from '../core/types'
|
|
7
|
+
import type { LLMIterationResponse } from './types'
|
|
8
|
+
import { buildReasoningRequest } from './request-builder'
|
|
9
|
+
import { callLLMForAgentIteration } from './adapters/agent-adapter-helpers'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Process reasoning phase - Query LLM for next actions
|
|
13
|
+
* Handles adapter resolution, request building, LLM call, logging, and memory storage
|
|
14
|
+
*
|
|
15
|
+
* @param iterationContext - Agent execution context
|
|
16
|
+
* @returns LLM's reasoning and planned actions
|
|
17
|
+
*/
|
|
18
|
+
export async function processReasoning(iterationContext: IterationContext): Promise<LLMIterationResponse> {
|
|
19
|
+
// Create adapter via injected factory (stateless, per-iteration)
|
|
20
|
+
// API process: factory wraps with UniversalLLMAdapter for retry, circuit breaker, observability
|
|
21
|
+
// SDK worker: factory creates PostMessageLLMAdapter that proxies via platform.call()
|
|
22
|
+
const adapter = iterationContext.adapterFactory(
|
|
23
|
+
iterationContext.modelConfig,
|
|
24
|
+
iterationContext.executionContext.aiUsageCollector,
|
|
25
|
+
'agent-reasoning',
|
|
26
|
+
{
|
|
27
|
+
type: 'agent-reasoning',
|
|
28
|
+
iteration: iterationContext.iteration,
|
|
29
|
+
sessionId: iterationContext.executionContext.sessionId,
|
|
30
|
+
turnNumber: iterationContext.executionContext.sessionTurnNumber
|
|
31
|
+
}
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
// Build agent iteration request
|
|
35
|
+
const request = buildReasoningRequest(iterationContext)
|
|
36
|
+
|
|
37
|
+
// Track timing for LLM call
|
|
38
|
+
const startTime = Date.now()
|
|
39
|
+
|
|
40
|
+
// Get LLM iteration response using agent-specific helper
|
|
41
|
+
const { reasoning, memoryOps, nextActions } = await callLLMForAgentIteration(adapter, {
|
|
42
|
+
systemPrompt: request.systemPrompt,
|
|
43
|
+
memoryContext: request.memoryContext,
|
|
44
|
+
tools: request.tools,
|
|
45
|
+
constraints: request.constraints,
|
|
46
|
+
model: iterationContext.modelConfig.model,
|
|
47
|
+
includeMessageAction: request.includeMessageAction,
|
|
48
|
+
includeNavigateKnowledge: request.includeNavigateKnowledge,
|
|
49
|
+
includeMemoryOps: request.includeMemoryOps,
|
|
50
|
+
signal: iterationContext.executionContext.signal
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
const endTime = Date.now()
|
|
54
|
+
const duration = endTime - startTime
|
|
55
|
+
|
|
56
|
+
const response: LLMIterationResponse = { reasoning, memoryOps, nextActions }
|
|
57
|
+
|
|
58
|
+
// Emit reasoning event (for session message persistence)
|
|
59
|
+
await iterationContext.executionContext.onMessageEvent?.({
|
|
60
|
+
type: 'agent:reasoning',
|
|
61
|
+
iteration: iterationContext.iteration,
|
|
62
|
+
reasoning: response.reasoning
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
// Log reasoning event (always present in universal protocol)
|
|
66
|
+
iterationContext.logger.reasoning(response.reasoning, iterationContext.iteration, startTime, endTime, duration)
|
|
67
|
+
|
|
68
|
+
// Store reasoning in memory (always, even when completing)
|
|
69
|
+
// This preserves the LLM's thought process for future iterations
|
|
70
|
+
const memoryStartTime = Date.now()
|
|
71
|
+
|
|
72
|
+
iterationContext.memoryManager.addToHistory({
|
|
73
|
+
type: 'reasoning',
|
|
74
|
+
content: response.reasoning,
|
|
75
|
+
turnNumber: iterationContext.executionContext.sessionTurnNumber ?? null,
|
|
76
|
+
iterationNumber: iterationContext.iteration
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
const memoryEndTime = Date.now()
|
|
80
|
+
const memoryDuration = memoryEndTime - memoryStartTime
|
|
81
|
+
|
|
82
|
+
iterationContext.logger.action(
|
|
83
|
+
'memory-reasoning',
|
|
84
|
+
`Stored reasoning (${response.reasoning.length} chars), history size: ${iterationContext.memoryManager.getHistoryLength()}, actions: ${response.nextActions.map((a) => a.type).join(', ')}`,
|
|
85
|
+
iterationContext.iteration,
|
|
86
|
+
memoryStartTime,
|
|
87
|
+
memoryEndTime,
|
|
88
|
+
memoryDuration
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
return response
|
|
92
|
+
}
|
|
@@ -1,134 +1,134 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base Actions Section
|
|
3
|
-
* Core action definitions with conditional message action based on execution context
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Builds the base actions section of the system prompt
|
|
8
|
-
* Includes core agent instructions, JSON format, and action type definitions
|
|
9
|
-
*
|
|
10
|
-
* @param includeMessageAction - Whether to include the message action (session-based agents only)
|
|
11
|
-
* @param includeNavigateKnowledge - Whether to include the navigate-knowledge action (knowledge map present)
|
|
12
|
-
* @returns Base actions prompt section
|
|
13
|
-
*/
|
|
14
|
-
export function buildBaseActionsPrompt(includeMessageAction: boolean, includeNavigateKnowledge: boolean): string {
|
|
15
|
-
// Calculate action count and build list
|
|
16
|
-
let actionCount = 2 // tool-call and complete always available
|
|
17
|
-
const actions = ['1. tool-call (call a tool)']
|
|
18
|
-
|
|
19
|
-
if (includeMessageAction) {
|
|
20
|
-
actionCount++
|
|
21
|
-
actions.push(`${actionCount}. message (send message to user)`)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (includeNavigateKnowledge) {
|
|
25
|
-
actionCount++
|
|
26
|
-
actions.push(`${actionCount}. navigate-knowledge (load knowledge node)`)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
actions.push(`${actionCount + 1}. complete (finish task)`)
|
|
30
|
-
actionCount++ // complete is always last
|
|
31
|
-
|
|
32
|
-
const actionsList = actions.join('\n')
|
|
33
|
-
|
|
34
|
-
return `# CORE AGENT INSTRUCTIONS
|
|
35
|
-
|
|
36
|
-
You are an AI agent. Respond with valid JSON:
|
|
37
|
-
|
|
38
|
-
{
|
|
39
|
-
"reasoning": "Your thought process",
|
|
40
|
-
"nextActions": [/* actions to execute */]
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
## Action Types (${actionCount} available)
|
|
44
|
-
|
|
45
|
-
${actionsList}
|
|
46
|
-
|
|
47
|
-
**Formats:**
|
|
48
|
-
- tool-call: { "type": "tool-call", "id": "unique-id", "name": "tool_name", "input": {...} }${
|
|
49
|
-
includeMessageAction
|
|
50
|
-
? `
|
|
51
|
-
- message: { "type": "message", "text": "Your message" }`
|
|
52
|
-
: ''
|
|
53
|
-
}${
|
|
54
|
-
includeNavigateKnowledge
|
|
55
|
-
? `
|
|
56
|
-
- navigate-knowledge: { "type": "navigate-knowledge", "id": "unique-id", "nodeId": "node-name" }`
|
|
57
|
-
: ''
|
|
58
|
-
}
|
|
59
|
-
- complete: { "type": "complete" }
|
|
60
|
-
|
|
61
|
-
## Execution Flow
|
|
62
|
-
|
|
63
|
-
1. You respond with reasoning + actions
|
|
64
|
-
2. System executes actions (tool calls run **in parallel**)
|
|
65
|
-
3. Tool results automatically appear in your next iteration
|
|
66
|
-
4. You see results and decide: more work needed? Or complete?
|
|
67
|
-
5. **Without "complete" action, system iterates again**
|
|
68
|
-
|
|
69
|
-
## Rules
|
|
70
|
-
|
|
71
|
-
- Batch independent tool calls in one iteration (faster execution)
|
|
72
|
-
- Dependent operations need separate iterations (tool B needs tool A's result)
|
|
73
|
-
- "complete" cannot mix with tool-call${includeNavigateKnowledge ? '/navigate-knowledge' : ''}${
|
|
74
|
-
includeMessageAction
|
|
75
|
-
? `
|
|
76
|
-
- Always send at least one message before completing
|
|
77
|
-
- When you have your answer, send message + complete in the SAME iteration. Never send a message alone then complete in a later iteration.
|
|
78
|
-
- Never repeat or rephrase the same answer across iterations. One clear answer, then complete.`
|
|
79
|
-
: ''
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
**Use "complete" when:**
|
|
83
|
-
- Task finished successfully
|
|
84
|
-
- Tool returned empty/error results (inform user first)
|
|
85
|
-
- You need user input to proceed (ask question first)
|
|
86
|
-
|
|
87
|
-
**Don't use "complete" when:**
|
|
88
|
-
- You just called a tool and need its results
|
|
89
|
-
- More iterations are needed
|
|
90
|
-
|
|
91
|
-
## Examples
|
|
92
|
-
|
|
93
|
-
### Example 1: Simple Task (No Tools)
|
|
94
|
-
{ "reasoning": "Simple greeting, no tools needed.",
|
|
95
|
-
"nextActions": [${includeMessageAction ? '{ "type": "message", "text": "Hi! How can I help?" }, ' : ''}{ "type": "complete" }] }
|
|
96
|
-
|
|
97
|
-
### Example 2: Tool Usage (Two Iterations)
|
|
98
|
-
|
|
99
|
-
**Iteration 1 - Call tool (NO complete - waiting for results):**
|
|
100
|
-
{ "reasoning": "User asked for time. Calling get_time tool.",
|
|
101
|
-
"nextActions": [${includeMessageAction ? '{ "type": "message", "text": "Checking the time..." }, ' : ''}{ "type": "tool-call", "id": "t1", "name": "get_time", "input": { "timezone": "UTC" } }] }
|
|
102
|
-
|
|
103
|
-
**Iteration 2 - Tool result received, now complete:**
|
|
104
|
-
{ "reasoning": "Got time result: 12:00 PM UTC. Task done.",
|
|
105
|
-
"nextActions": [${includeMessageAction ? '{ "type": "message", "text": "The current time is 12:00 PM UTC." }, ' : ''}{ "type": "complete" }] }
|
|
106
|
-
|
|
107
|
-
### Example 3: Parallel Tool Calls (Independent Operations)
|
|
108
|
-
When tools don't depend on each other, batch them for faster execution.
|
|
109
|
-
|
|
110
|
-
{ "reasoning": "User wants time AND weather. Independent operations - calling both in parallel.",
|
|
111
|
-
"nextActions": [${includeMessageAction ? '{ "type": "message", "text": "Getting time and weather..." }, ' : ''}{ "type": "tool-call", "id": "t1", "name": "get_time", "input": {} },
|
|
112
|
-
{ "type": "tool-call", "id": "w1", "name": "get_weather", "input": { "city": "NYC" } }] }
|
|
113
|
-
|
|
114
|
-
### Example 4: Dependent Operations (Separate Iterations Required)
|
|
115
|
-
|
|
116
|
-
**❌ WRONG - Cannot batch dependent operations:**
|
|
117
|
-
{ "nextActions": [
|
|
118
|
-
{ "type": "tool-call", "id": "1", "name": "search_user", "input": { "email": "user@example.com" } },
|
|
119
|
-
{ "type": "tool-call", "id": "2", "name": "update_user", "input": { "userId": "???" } }] }
|
|
120
|
-
Problem: update_user needs userId from search_user result!
|
|
121
|
-
|
|
122
|
-
**✅ CORRECT - Iteration 1 (get the dependency):**
|
|
123
|
-
{ "reasoning": "Need to find user first before updating.",
|
|
124
|
-
"nextActions": [${includeMessageAction ? '{ "type": "message", "text": "Looking up user..." }, ' : ''}{ "type": "tool-call", "id": "1", "name": "search_user", "input": { "email": "user@example.com" } }] }
|
|
125
|
-
|
|
126
|
-
**✅ CORRECT - Iteration 2 (use the result):**
|
|
127
|
-
{ "reasoning": "Found userId: user_123. Now can update.",
|
|
128
|
-
"nextActions": [{ "type": "tool-call", "id": "2", "name": "update_user", "input": { "userId": "user_123", "name": "New Name" } }] }
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
These are your CORE INSTRUCTIONS. Additional context follows below.
|
|
133
|
-
`
|
|
134
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Base Actions Section
|
|
3
|
+
* Core action definitions with conditional message action based on execution context
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Builds the base actions section of the system prompt
|
|
8
|
+
* Includes core agent instructions, JSON format, and action type definitions
|
|
9
|
+
*
|
|
10
|
+
* @param includeMessageAction - Whether to include the message action (session-based agents only)
|
|
11
|
+
* @param includeNavigateKnowledge - Whether to include the navigate-knowledge action (knowledge map present)
|
|
12
|
+
* @returns Base actions prompt section
|
|
13
|
+
*/
|
|
14
|
+
export function buildBaseActionsPrompt(includeMessageAction: boolean, includeNavigateKnowledge: boolean): string {
|
|
15
|
+
// Calculate action count and build list
|
|
16
|
+
let actionCount = 2 // tool-call and complete always available
|
|
17
|
+
const actions = ['1. tool-call (call a tool)']
|
|
18
|
+
|
|
19
|
+
if (includeMessageAction) {
|
|
20
|
+
actionCount++
|
|
21
|
+
actions.push(`${actionCount}. message (send message to user)`)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (includeNavigateKnowledge) {
|
|
25
|
+
actionCount++
|
|
26
|
+
actions.push(`${actionCount}. navigate-knowledge (load knowledge node)`)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
actions.push(`${actionCount + 1}. complete (finish task)`)
|
|
30
|
+
actionCount++ // complete is always last
|
|
31
|
+
|
|
32
|
+
const actionsList = actions.join('\n')
|
|
33
|
+
|
|
34
|
+
return `# CORE AGENT INSTRUCTIONS
|
|
35
|
+
|
|
36
|
+
You are an AI agent. Respond with valid JSON:
|
|
37
|
+
|
|
38
|
+
{
|
|
39
|
+
"reasoning": "Your thought process",
|
|
40
|
+
"nextActions": [/* actions to execute */]
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
## Action Types (${actionCount} available)
|
|
44
|
+
|
|
45
|
+
${actionsList}
|
|
46
|
+
|
|
47
|
+
**Formats:**
|
|
48
|
+
- tool-call: { "type": "tool-call", "id": "unique-id", "name": "tool_name", "input": {...} }${
|
|
49
|
+
includeMessageAction
|
|
50
|
+
? `
|
|
51
|
+
- message: { "type": "message", "text": "Your message" }`
|
|
52
|
+
: ''
|
|
53
|
+
}${
|
|
54
|
+
includeNavigateKnowledge
|
|
55
|
+
? `
|
|
56
|
+
- navigate-knowledge: { "type": "navigate-knowledge", "id": "unique-id", "nodeId": "node-name" }`
|
|
57
|
+
: ''
|
|
58
|
+
}
|
|
59
|
+
- complete: { "type": "complete" }
|
|
60
|
+
|
|
61
|
+
## Execution Flow
|
|
62
|
+
|
|
63
|
+
1. You respond with reasoning + actions
|
|
64
|
+
2. System executes actions (tool calls run **in parallel**)
|
|
65
|
+
3. Tool results automatically appear in your next iteration
|
|
66
|
+
4. You see results and decide: more work needed? Or complete?
|
|
67
|
+
5. **Without "complete" action, system iterates again**
|
|
68
|
+
|
|
69
|
+
## Rules
|
|
70
|
+
|
|
71
|
+
- Batch independent tool calls in one iteration (faster execution)
|
|
72
|
+
- Dependent operations need separate iterations (tool B needs tool A's result)
|
|
73
|
+
- "complete" cannot mix with tool-call${includeNavigateKnowledge ? '/navigate-knowledge' : ''}${
|
|
74
|
+
includeMessageAction
|
|
75
|
+
? `
|
|
76
|
+
- Always send at least one message before completing
|
|
77
|
+
- When you have your answer, send message + complete in the SAME iteration. Never send a message alone then complete in a later iteration.
|
|
78
|
+
- Never repeat or rephrase the same answer across iterations. One clear answer, then complete.`
|
|
79
|
+
: ''
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
**Use "complete" when:**
|
|
83
|
+
- Task finished successfully
|
|
84
|
+
- Tool returned empty/error results (inform user first)
|
|
85
|
+
- You need user input to proceed (ask question first)
|
|
86
|
+
|
|
87
|
+
**Don't use "complete" when:**
|
|
88
|
+
- You just called a tool and need its results
|
|
89
|
+
- More iterations are needed
|
|
90
|
+
|
|
91
|
+
## Examples
|
|
92
|
+
|
|
93
|
+
### Example 1: Simple Task (No Tools)
|
|
94
|
+
{ "reasoning": "Simple greeting, no tools needed.",
|
|
95
|
+
"nextActions": [${includeMessageAction ? '{ "type": "message", "text": "Hi! How can I help?" }, ' : ''}{ "type": "complete" }] }
|
|
96
|
+
|
|
97
|
+
### Example 2: Tool Usage (Two Iterations)
|
|
98
|
+
|
|
99
|
+
**Iteration 1 - Call tool (NO complete - waiting for results):**
|
|
100
|
+
{ "reasoning": "User asked for time. Calling get_time tool.",
|
|
101
|
+
"nextActions": [${includeMessageAction ? '{ "type": "message", "text": "Checking the time..." }, ' : ''}{ "type": "tool-call", "id": "t1", "name": "get_time", "input": { "timezone": "UTC" } }] }
|
|
102
|
+
|
|
103
|
+
**Iteration 2 - Tool result received, now complete:**
|
|
104
|
+
{ "reasoning": "Got time result: 12:00 PM UTC. Task done.",
|
|
105
|
+
"nextActions": [${includeMessageAction ? '{ "type": "message", "text": "The current time is 12:00 PM UTC." }, ' : ''}{ "type": "complete" }] }
|
|
106
|
+
|
|
107
|
+
### Example 3: Parallel Tool Calls (Independent Operations)
|
|
108
|
+
When tools don't depend on each other, batch them for faster execution.
|
|
109
|
+
|
|
110
|
+
{ "reasoning": "User wants time AND weather. Independent operations - calling both in parallel.",
|
|
111
|
+
"nextActions": [${includeMessageAction ? '{ "type": "message", "text": "Getting time and weather..." }, ' : ''}{ "type": "tool-call", "id": "t1", "name": "get_time", "input": {} },
|
|
112
|
+
{ "type": "tool-call", "id": "w1", "name": "get_weather", "input": { "city": "NYC" } }] }
|
|
113
|
+
|
|
114
|
+
### Example 4: Dependent Operations (Separate Iterations Required)
|
|
115
|
+
|
|
116
|
+
**❌ WRONG - Cannot batch dependent operations:**
|
|
117
|
+
{ "nextActions": [
|
|
118
|
+
{ "type": "tool-call", "id": "1", "name": "search_user", "input": { "email": "user@example.com" } },
|
|
119
|
+
{ "type": "tool-call", "id": "2", "name": "update_user", "input": { "userId": "???" } }] }
|
|
120
|
+
Problem: update_user needs userId from search_user result!
|
|
121
|
+
|
|
122
|
+
**✅ CORRECT - Iteration 1 (get the dependency):**
|
|
123
|
+
{ "reasoning": "Need to find user first before updating.",
|
|
124
|
+
"nextActions": [${includeMessageAction ? '{ "type": "message", "text": "Looking up user..." }, ' : ''}{ "type": "tool-call", "id": "1", "name": "search_user", "input": { "email": "user@example.com" } }] }
|
|
125
|
+
|
|
126
|
+
**✅ CORRECT - Iteration 2 (use the result):**
|
|
127
|
+
{ "reasoning": "Found userId: user_123. Now can update.",
|
|
128
|
+
"nextActions": [{ "type": "tool-call", "id": "2", "name": "update_user", "input": { "userId": "user_123", "name": "New Name" } }] }
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
These are your CORE INSTRUCTIONS. Additional context follows below.
|
|
133
|
+
`
|
|
134
|
+
}
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Task Completion Section
|
|
3
|
-
* Provides guidance on when/how to complete tasks, with optional output schema description
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type { z } from 'zod'
|
|
7
|
-
import { zodToJsonSchema } from '@alcyone-labs/zod-to-json-schema'
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Builds the task completion section of the system prompt
|
|
11
|
-
* Includes complete action usage and optional output schema guidance
|
|
12
|
-
*
|
|
13
|
-
* @param outputSchema - Optional Zod schema for output validation
|
|
14
|
-
* @returns Task completion prompt section
|
|
15
|
-
*/
|
|
16
|
-
export function buildCompletionPrompt(outputSchema?: z.ZodSchema): string {
|
|
17
|
-
let section = '## Task Completion Guidance\n\n'
|
|
18
|
-
section += 'When the task is complete, return a complete action:\n'
|
|
19
|
-
section += '```json\n{ "type": "complete" }\n```\n\n'
|
|
20
|
-
|
|
21
|
-
// Only describe output schema if present
|
|
22
|
-
if (outputSchema) {
|
|
23
|
-
section += 'After task completion, the final output will be generated and will need to include:\n'
|
|
24
|
-
section += describeOutputSchema(outputSchema)
|
|
25
|
-
section += '\n\nDuring task execution, focus on gathering all necessary information.'
|
|
26
|
-
} else {
|
|
27
|
-
section += 'This is a side-effect agent (no output generation). Focus on performing the requested actions.'
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return section + '\n'
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Generate natural language description of output schema
|
|
35
|
-
* Provides guidance without enforcing structure during iteration
|
|
36
|
-
*
|
|
37
|
-
* @param schema - Zod schema to describe
|
|
38
|
-
* @returns Natural language description
|
|
39
|
-
*/
|
|
40
|
-
function describeOutputSchema(schema: z.ZodSchema): string {
|
|
41
|
-
const jsonSchema = zodToJsonSchema(schema as z.ZodSchema<any>, {
|
|
42
|
-
$refStrategy: 'none',
|
|
43
|
-
errorMessages: true
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
// Simple description - just show the JSON schema
|
|
47
|
-
// LLM can understand this without needing full enforcement
|
|
48
|
-
return '```json\n' + JSON.stringify(jsonSchema, null, 2) + '\n```'
|
|
49
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Task Completion Section
|
|
3
|
+
* Provides guidance on when/how to complete tasks, with optional output schema description
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { z } from 'zod'
|
|
7
|
+
import { zodToJsonSchema } from '@alcyone-labs/zod-to-json-schema'
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Builds the task completion section of the system prompt
|
|
11
|
+
* Includes complete action usage and optional output schema guidance
|
|
12
|
+
*
|
|
13
|
+
* @param outputSchema - Optional Zod schema for output validation
|
|
14
|
+
* @returns Task completion prompt section
|
|
15
|
+
*/
|
|
16
|
+
export function buildCompletionPrompt(outputSchema?: z.ZodSchema): string {
|
|
17
|
+
let section = '## Task Completion Guidance\n\n'
|
|
18
|
+
section += 'When the task is complete, return a complete action:\n'
|
|
19
|
+
section += '```json\n{ "type": "complete" }\n```\n\n'
|
|
20
|
+
|
|
21
|
+
// Only describe output schema if present
|
|
22
|
+
if (outputSchema) {
|
|
23
|
+
section += 'After task completion, the final output will be generated and will need to include:\n'
|
|
24
|
+
section += describeOutputSchema(outputSchema)
|
|
25
|
+
section += '\n\nDuring task execution, focus on gathering all necessary information.'
|
|
26
|
+
} else {
|
|
27
|
+
section += 'This is a side-effect agent (no output generation). Focus on performing the requested actions.'
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return section + '\n'
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Generate natural language description of output schema
|
|
35
|
+
* Provides guidance without enforcing structure during iteration
|
|
36
|
+
*
|
|
37
|
+
* @param schema - Zod schema to describe
|
|
38
|
+
* @returns Natural language description
|
|
39
|
+
*/
|
|
40
|
+
function describeOutputSchema(schema: z.ZodSchema): string {
|
|
41
|
+
const jsonSchema = zodToJsonSchema(schema as z.ZodSchema<any>, {
|
|
42
|
+
$refStrategy: 'none',
|
|
43
|
+
errorMessages: true
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
// Simple description - just show the JSON schema
|
|
47
|
+
// LLM can understand this without needing full enforcement
|
|
48
|
+
return '```json\n' + JSON.stringify(jsonSchema, null, 2) + '\n```'
|
|
49
|
+
}
|