@dexto/core 1.6.26 → 1.7.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.
Files changed (160) hide show
  1. package/dist/agent/DextoAgent.cjs +75 -90
  2. package/dist/agent/DextoAgent.d.ts +7 -7
  3. package/dist/agent/DextoAgent.d.ts.map +1 -1
  4. package/dist/agent/DextoAgent.js +76 -91
  5. package/dist/agent/error-codes.cjs +1 -0
  6. package/dist/agent/error-codes.d.ts +1 -0
  7. package/dist/agent/error-codes.d.ts.map +1 -1
  8. package/dist/agent/error-codes.js +1 -0
  9. package/dist/agent/errors.cjs +13 -0
  10. package/dist/agent/errors.d.ts +6 -0
  11. package/dist/agent/errors.d.ts.map +1 -1
  12. package/dist/agent/errors.js +13 -0
  13. package/dist/agent/index.d.ts +1 -0
  14. package/dist/agent/index.d.ts.map +1 -1
  15. package/dist/agent/schemas.cjs +5 -5
  16. package/dist/agent/schemas.d.ts +69 -980
  17. package/dist/agent/schemas.d.ts.map +1 -1
  18. package/dist/agent/schemas.js +5 -5
  19. package/dist/agent/types.d.ts +11 -0
  20. package/dist/agent/types.d.ts.map +1 -1
  21. package/dist/approval/factory.cjs +1 -0
  22. package/dist/approval/factory.d.ts.map +1 -1
  23. package/dist/approval/factory.js +1 -0
  24. package/dist/approval/manager.cjs +19 -6
  25. package/dist/approval/manager.d.ts +6 -0
  26. package/dist/approval/manager.d.ts.map +1 -1
  27. package/dist/approval/manager.js +19 -6
  28. package/dist/approval/schemas.cjs +16 -6
  29. package/dist/approval/schemas.d.ts +373 -1044
  30. package/dist/approval/schemas.d.ts.map +1 -1
  31. package/dist/approval/schemas.js +16 -6
  32. package/dist/approval/session-approval-store.cjs +1 -1
  33. package/dist/approval/session-approval-store.d.ts +12 -30
  34. package/dist/approval/session-approval-store.d.ts.map +1 -1
  35. package/dist/approval/session-approval-store.js +1 -1
  36. package/dist/events/index.cjs +210 -75
  37. package/dist/events/index.d.ts +44 -181
  38. package/dist/events/index.d.ts.map +1 -1
  39. package/dist/events/index.js +206 -74
  40. package/dist/hooks/manager.cjs +5 -2
  41. package/dist/hooks/manager.d.ts +2 -0
  42. package/dist/hooks/manager.d.ts.map +1 -1
  43. package/dist/hooks/manager.js +5 -2
  44. package/dist/hooks/types.d.ts +3 -0
  45. package/dist/hooks/types.d.ts.map +1 -1
  46. package/dist/index.browser.d.ts +1 -0
  47. package/dist/index.browser.d.ts.map +1 -1
  48. package/dist/index.cjs +3 -1
  49. package/dist/index.d.ts +1 -0
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +1 -0
  52. package/dist/llm/executor/turn-executor.cjs +8 -4
  53. package/dist/llm/executor/turn-executor.d.ts +3 -1
  54. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  55. package/dist/llm/executor/turn-executor.js +8 -4
  56. package/dist/llm/providers/local/schemas.d.ts +102 -262
  57. package/dist/llm/providers/local/schemas.d.ts.map +1 -1
  58. package/dist/llm/registry/index.d.ts +5 -3
  59. package/dist/llm/registry/index.d.ts.map +1 -1
  60. package/dist/llm/resolver.cjs +0 -1
  61. package/dist/llm/resolver.d.ts.map +1 -1
  62. package/dist/llm/resolver.js +0 -1
  63. package/dist/llm/schemas.d.ts +95 -199
  64. package/dist/llm/schemas.d.ts.map +1 -1
  65. package/dist/llm/services/vercel.cjs +29 -6
  66. package/dist/llm/services/vercel.d.ts +3 -0
  67. package/dist/llm/services/vercel.d.ts.map +1 -1
  68. package/dist/llm/services/vercel.js +27 -5
  69. package/dist/logger/default-logger-factory.d.ts +28 -256
  70. package/dist/logger/default-logger-factory.d.ts.map +1 -1
  71. package/dist/logger/v2/schemas.d.ts +18 -120
  72. package/dist/logger/v2/schemas.d.ts.map +1 -1
  73. package/dist/mcp/manager.cjs +7 -2
  74. package/dist/mcp/manager.d.ts +3 -1
  75. package/dist/mcp/manager.d.ts.map +1 -1
  76. package/dist/mcp/manager.js +7 -2
  77. package/dist/mcp/mcp-client.cjs +71 -62
  78. package/dist/mcp/mcp-client.d.ts +3 -2
  79. package/dist/mcp/mcp-client.d.ts.map +1 -1
  80. package/dist/mcp/mcp-client.js +71 -62
  81. package/dist/mcp/schemas.cjs +4 -4
  82. package/dist/mcp/schemas.d.ts +77 -270
  83. package/dist/mcp/schemas.d.ts.map +1 -1
  84. package/dist/mcp/schemas.js +4 -4
  85. package/dist/memory/schemas.d.ts +37 -117
  86. package/dist/memory/schemas.d.ts.map +1 -1
  87. package/dist/prompts/schemas.d.ts +46 -190
  88. package/dist/prompts/schemas.d.ts.map +1 -1
  89. package/dist/resources/handlers/filesystem-handler.cjs +22 -3
  90. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  91. package/dist/resources/handlers/filesystem-handler.js +22 -3
  92. package/dist/resources/schemas.d.ts +14 -68
  93. package/dist/resources/schemas.d.ts.map +1 -1
  94. package/dist/runtime/host-runtime.cjs +163 -0
  95. package/dist/runtime/host-runtime.d.ts +19 -0
  96. package/dist/runtime/host-runtime.d.ts.map +1 -0
  97. package/dist/runtime/host-runtime.js +133 -0
  98. package/dist/runtime/index.cjs +42 -0
  99. package/dist/runtime/index.d.ts +2 -0
  100. package/dist/runtime/index.d.ts.map +1 -0
  101. package/dist/runtime/index.js +21 -0
  102. package/dist/runtime/run-context.cjs +53 -0
  103. package/dist/runtime/run-context.d.ts +13 -0
  104. package/dist/runtime/run-context.d.ts.map +1 -0
  105. package/dist/runtime/run-context.js +34 -0
  106. package/dist/session/chat-session.cjs +30 -32
  107. package/dist/session/chat-session.d.ts +5 -15
  108. package/dist/session/chat-session.d.ts.map +1 -1
  109. package/dist/session/chat-session.js +31 -33
  110. package/dist/session/error-codes.cjs +1 -0
  111. package/dist/session/error-codes.d.ts +2 -1
  112. package/dist/session/error-codes.d.ts.map +1 -1
  113. package/dist/session/error-codes.js +1 -0
  114. package/dist/session/errors.cjs +13 -0
  115. package/dist/session/errors.d.ts +6 -0
  116. package/dist/session/errors.d.ts.map +1 -1
  117. package/dist/session/errors.js +13 -0
  118. package/dist/session/schemas.d.ts +1 -7
  119. package/dist/session/schemas.d.ts.map +1 -1
  120. package/dist/systemPrompt/schemas.cjs +2 -10
  121. package/dist/systemPrompt/schemas.d.ts +53 -343
  122. package/dist/systemPrompt/schemas.d.ts.map +1 -1
  123. package/dist/systemPrompt/schemas.js +2 -10
  124. package/dist/telemetry/decorators.cjs +75 -57
  125. package/dist/telemetry/decorators.d.ts +2 -0
  126. package/dist/telemetry/decorators.d.ts.map +1 -1
  127. package/dist/telemetry/decorators.js +75 -57
  128. package/dist/telemetry/schemas.cjs +1 -1
  129. package/dist/telemetry/schemas.d.ts +9 -44
  130. package/dist/telemetry/schemas.d.ts.map +1 -1
  131. package/dist/telemetry/schemas.js +1 -1
  132. package/dist/telemetry/utils.cjs +9 -6
  133. package/dist/telemetry/utils.d.ts +3 -0
  134. package/dist/telemetry/utils.d.ts.map +1 -1
  135. package/dist/telemetry/utils.js +9 -6
  136. package/dist/tools/schemas.cjs +1 -1
  137. package/dist/tools/schemas.d.ts +19 -62
  138. package/dist/tools/schemas.d.ts.map +1 -1
  139. package/dist/tools/schemas.js +1 -1
  140. package/dist/tools/session-tool-preferences-store.d.ts +3 -9
  141. package/dist/tools/session-tool-preferences-store.d.ts.map +1 -1
  142. package/dist/tools/tool-manager.cjs +92 -36
  143. package/dist/tools/tool-manager.d.ts +12 -3
  144. package/dist/tools/tool-manager.d.ts.map +1 -1
  145. package/dist/tools/tool-manager.js +92 -36
  146. package/dist/tools/types.d.ts +7 -1
  147. package/dist/tools/types.d.ts.map +1 -1
  148. package/dist/utils/result.cjs +11 -8
  149. package/dist/utils/result.d.ts +6 -6
  150. package/dist/utils/result.d.ts.map +1 -1
  151. package/dist/utils/result.js +12 -9
  152. package/dist/utils/schema.cjs +6 -2
  153. package/dist/utils/schema.d.ts +2 -7
  154. package/dist/utils/schema.d.ts.map +1 -1
  155. package/dist/utils/schema.js +6 -2
  156. package/dist/utils/zod-schema-converter.cjs +66 -66
  157. package/dist/utils/zod-schema-converter.d.ts +3 -2
  158. package/dist/utils/zod-schema-converter.d.ts.map +1 -1
  159. package/dist/utils/zod-schema-converter.js +66 -66
  160. package/package.json +4 -5
@@ -1,54 +1,38 @@
1
1
  import { z } from 'zod';
2
2
  /** Business rules + compatibility checks */
3
3
  export declare const LLMConfigBaseSchema: z.ZodObject<{
4
- provider: z.ZodEnum<["openai", "openai-compatible", "anthropic", "google", "groq", "xai", "cohere", "minimax", "glm", "openrouter", "litellm", "glama", "vertex", "bedrock", "local", "ollama", "dexto-nova"]>;
5
- model: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
6
- apiKey: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
7
- maxIterations: z.ZodOptional<z.ZodNumber>;
8
- baseURL: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string | undefined, string>>;
9
- maxInputTokens: z.ZodOptional<z.ZodNumber>;
10
- maxOutputTokens: z.ZodOptional<z.ZodNumber>;
11
- temperature: z.ZodOptional<z.ZodNumber>;
12
- allowedMediaTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4
+ provider: z.ZodEnum<{
5
+ openai: "openai";
6
+ "openai-compatible": "openai-compatible";
7
+ anthropic: "anthropic";
8
+ google: "google";
9
+ groq: "groq";
10
+ xai: "xai";
11
+ cohere: "cohere";
12
+ minimax: "minimax";
13
+ glm: "glm";
14
+ openrouter: "openrouter";
15
+ litellm: "litellm";
16
+ glama: "glama";
17
+ vertex: "vertex";
18
+ bedrock: "bedrock";
19
+ local: "local";
20
+ ollama: "ollama";
21
+ "dexto-nova": "dexto-nova";
22
+ }>;
23
+ model: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
24
+ apiKey: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
25
+ maxIterations: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
26
+ baseURL: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodTransform<string | undefined, string>>>;
27
+ maxInputTokens: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
28
+ maxOutputTokens: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
29
+ temperature: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
30
+ allowedMediaTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
13
31
  reasoning: z.ZodOptional<z.ZodObject<{
14
- variant: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
15
- budgetTokens: z.ZodOptional<z.ZodNumber>;
16
- }, "strict", z.ZodTypeAny, {
17
- variant: string;
18
- budgetTokens?: number | undefined;
19
- }, {
20
- variant: string;
21
- budgetTokens?: number | undefined;
22
- }>>;
23
- }, "strict", z.ZodTypeAny, {
24
- model: string;
25
- provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
26
- apiKey?: string | undefined;
27
- maxIterations?: number | undefined;
28
- baseURL?: string | undefined;
29
- maxInputTokens?: number | undefined;
30
- maxOutputTokens?: number | undefined;
31
- temperature?: number | undefined;
32
- allowedMediaTypes?: string[] | undefined;
33
- reasoning?: {
34
- variant: string;
35
- budgetTokens?: number | undefined;
36
- } | undefined;
37
- }, {
38
- model: string;
39
- provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
40
- apiKey?: string | undefined;
41
- maxIterations?: number | undefined;
42
- baseURL?: string | undefined;
43
- maxInputTokens?: number | undefined;
44
- maxOutputTokens?: number | undefined;
45
- temperature?: number | undefined;
46
- allowedMediaTypes?: string[] | undefined;
47
- reasoning?: {
48
- variant: string;
49
- budgetTokens?: number | undefined;
50
- } | undefined;
51
- }>;
32
+ variant: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
33
+ budgetTokens: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
34
+ }, z.core.$strict>>;
35
+ }, z.core.$strict>;
52
36
  /**
53
37
  * LLM config schema.
54
38
  *
@@ -56,162 +40,74 @@ export declare const LLMConfigBaseSchema: z.ZodObject<{
56
40
  * - API keys and base URLs are validated at runtime (when creating a provider client), not at parse time.
57
41
  * - This keeps programmatic construction (code-first DI) ergonomic: you can omit credentials and rely on env.
58
42
  */
59
- export declare const LLMConfigSchema: z.ZodEffects<z.ZodObject<{
60
- provider: z.ZodEnum<["openai", "openai-compatible", "anthropic", "google", "groq", "xai", "cohere", "minimax", "glm", "openrouter", "litellm", "glama", "vertex", "bedrock", "local", "ollama", "dexto-nova"]>;
61
- model: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
62
- apiKey: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
63
- maxIterations: z.ZodOptional<z.ZodNumber>;
64
- baseURL: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string | undefined, string>>;
65
- maxInputTokens: z.ZodOptional<z.ZodNumber>;
66
- maxOutputTokens: z.ZodOptional<z.ZodNumber>;
67
- temperature: z.ZodOptional<z.ZodNumber>;
68
- allowedMediaTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
43
+ export declare const LLMConfigSchema: z.ZodObject<{
44
+ provider: z.ZodEnum<{
45
+ openai: "openai";
46
+ "openai-compatible": "openai-compatible";
47
+ anthropic: "anthropic";
48
+ google: "google";
49
+ groq: "groq";
50
+ xai: "xai";
51
+ cohere: "cohere";
52
+ minimax: "minimax";
53
+ glm: "glm";
54
+ openrouter: "openrouter";
55
+ litellm: "litellm";
56
+ glama: "glama";
57
+ vertex: "vertex";
58
+ bedrock: "bedrock";
59
+ local: "local";
60
+ ollama: "ollama";
61
+ "dexto-nova": "dexto-nova";
62
+ }>;
63
+ model: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
64
+ apiKey: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
65
+ maxIterations: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
66
+ baseURL: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodTransform<string | undefined, string>>>;
67
+ maxInputTokens: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
68
+ maxOutputTokens: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
69
+ temperature: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
70
+ allowedMediaTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
69
71
  reasoning: z.ZodOptional<z.ZodObject<{
70
- variant: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
71
- budgetTokens: z.ZodOptional<z.ZodNumber>;
72
- }, "strict", z.ZodTypeAny, {
73
- variant: string;
74
- budgetTokens?: number | undefined;
75
- }, {
76
- variant: string;
77
- budgetTokens?: number | undefined;
78
- }>>;
79
- }, "strict", z.ZodTypeAny, {
80
- model: string;
81
- provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
82
- apiKey?: string | undefined;
83
- maxIterations?: number | undefined;
84
- baseURL?: string | undefined;
85
- maxInputTokens?: number | undefined;
86
- maxOutputTokens?: number | undefined;
87
- temperature?: number | undefined;
88
- allowedMediaTypes?: string[] | undefined;
89
- reasoning?: {
90
- variant: string;
91
- budgetTokens?: number | undefined;
92
- } | undefined;
93
- }, {
94
- model: string;
95
- provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
96
- apiKey?: string | undefined;
97
- maxIterations?: number | undefined;
98
- baseURL?: string | undefined;
99
- maxInputTokens?: number | undefined;
100
- maxOutputTokens?: number | undefined;
101
- temperature?: number | undefined;
102
- allowedMediaTypes?: string[] | undefined;
103
- reasoning?: {
104
- variant: string;
105
- budgetTokens?: number | undefined;
106
- } | undefined;
107
- }>, {
108
- model: string;
109
- provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
110
- apiKey?: string | undefined;
111
- maxIterations?: number | undefined;
112
- baseURL?: string | undefined;
113
- maxInputTokens?: number | undefined;
114
- maxOutputTokens?: number | undefined;
115
- temperature?: number | undefined;
116
- allowedMediaTypes?: string[] | undefined;
117
- reasoning?: {
118
- variant: string;
119
- budgetTokens?: number | undefined;
120
- } | undefined;
121
- }, {
122
- model: string;
123
- provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
124
- apiKey?: string | undefined;
125
- maxIterations?: number | undefined;
126
- baseURL?: string | undefined;
127
- maxInputTokens?: number | undefined;
128
- maxOutputTokens?: number | undefined;
129
- temperature?: number | undefined;
130
- allowedMediaTypes?: string[] | undefined;
131
- reasoning?: {
132
- variant: string;
133
- budgetTokens?: number | undefined;
134
- } | undefined;
135
- }>;
72
+ variant: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
73
+ budgetTokens: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
74
+ }, z.core.$strict>>;
75
+ }, z.core.$strict>;
136
76
  export type LLMConfig = z.input<typeof LLMConfigSchema>;
137
77
  export type ValidatedLLMConfig = z.output<typeof LLMConfigSchema>;
138
- export declare const LLMUpdatesSchema: z.ZodEffects<z.ZodObject<{
78
+ export declare const LLMUpdatesSchema: z.ZodObject<{
139
79
  reasoning: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodObject<{
140
- variant: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
141
- budgetTokens: z.ZodOptional<z.ZodNumber>;
142
- }, "strict", z.ZodTypeAny, {
143
- variant: string;
144
- budgetTokens?: number | undefined;
145
- }, {
146
- variant: string;
147
- budgetTokens?: number | undefined;
148
- }>>>>;
149
- provider: z.ZodOptional<z.ZodEnum<["openai", "openai-compatible", "anthropic", "google", "groq", "xai", "cohere", "minimax", "glm", "openrouter", "litellm", "glama", "vertex", "bedrock", "local", "ollama", "dexto-nova"]>>;
150
- model: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
151
- apiKey: z.ZodOptional<z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>>;
152
- maxIterations: z.ZodOptional<z.ZodNumber>;
153
- baseURL: z.ZodOptional<z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string | undefined, string>>>;
154
- maxInputTokens: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
155
- maxOutputTokens: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
156
- temperature: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
157
- allowedMediaTypes: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
158
- }, "strip", z.ZodTypeAny, {
159
- apiKey?: string | undefined;
160
- model?: string | undefined;
161
- provider?: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova" | undefined;
162
- maxIterations?: number | undefined;
163
- baseURL?: string | undefined;
164
- maxInputTokens?: number | undefined;
165
- maxOutputTokens?: number | undefined;
166
- temperature?: number | undefined;
167
- allowedMediaTypes?: string[] | undefined;
168
- reasoning?: {
169
- variant: string;
170
- budgetTokens?: number | undefined;
171
- } | null | undefined;
172
- }, {
173
- apiKey?: string | undefined;
174
- model?: string | undefined;
175
- provider?: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova" | undefined;
176
- maxIterations?: number | undefined;
177
- baseURL?: string | undefined;
178
- maxInputTokens?: number | undefined;
179
- maxOutputTokens?: number | undefined;
180
- temperature?: number | undefined;
181
- allowedMediaTypes?: string[] | undefined;
182
- reasoning?: {
183
- variant: string;
184
- budgetTokens?: number | undefined;
185
- } | null | undefined;
186
- }>, {
187
- apiKey?: string | undefined;
188
- model?: string | undefined;
189
- provider?: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova" | undefined;
190
- maxIterations?: number | undefined;
191
- baseURL?: string | undefined;
192
- maxInputTokens?: number | undefined;
193
- maxOutputTokens?: number | undefined;
194
- temperature?: number | undefined;
195
- allowedMediaTypes?: string[] | undefined;
196
- reasoning?: {
197
- variant: string;
198
- budgetTokens?: number | undefined;
199
- } | null | undefined;
200
- }, {
201
- apiKey?: string | undefined;
202
- model?: string | undefined;
203
- provider?: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova" | undefined;
204
- maxIterations?: number | undefined;
205
- baseURL?: string | undefined;
206
- maxInputTokens?: number | undefined;
207
- maxOutputTokens?: number | undefined;
208
- temperature?: number | undefined;
209
- allowedMediaTypes?: string[] | undefined;
210
- reasoning?: {
211
- variant: string;
212
- budgetTokens?: number | undefined;
213
- } | null | undefined;
214
- }>;
80
+ variant: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
81
+ budgetTokens: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
82
+ }, z.core.$strict>>>>;
83
+ provider: z.ZodOptional<z.ZodEnum<{
84
+ openai: "openai";
85
+ "openai-compatible": "openai-compatible";
86
+ anthropic: "anthropic";
87
+ google: "google";
88
+ groq: "groq";
89
+ xai: "xai";
90
+ cohere: "cohere";
91
+ minimax: "minimax";
92
+ glm: "glm";
93
+ openrouter: "openrouter";
94
+ litellm: "litellm";
95
+ glama: "glama";
96
+ vertex: "vertex";
97
+ bedrock: "bedrock";
98
+ local: "local";
99
+ ollama: "ollama";
100
+ "dexto-nova": "dexto-nova";
101
+ }>>;
102
+ model: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
103
+ apiKey: z.ZodOptional<z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
104
+ maxIterations: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
105
+ baseURL: z.ZodOptional<z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodTransform<string | undefined, string>>>>;
106
+ maxInputTokens: z.ZodOptional<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
107
+ maxOutputTokens: z.ZodOptional<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
108
+ temperature: z.ZodOptional<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
109
+ allowedMediaTypes: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
110
+ }, z.core.$strip>;
215
111
  export type LLMUpdates = z.input<typeof LLMUpdatesSchema>;
216
112
  export type { LLMUpdateContext } from '../llm/types.js';
217
113
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/llm/schemas.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuFxB,4CAA4C;AAG5C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBnB,CAAC;AAEd;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyJ1B,CAAC;AAGH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAIlE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4DvB,CAAC;AACP,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/llm/schemas.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuFxB,4CAA4C;AAG5C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiBnB,CAAC;AAEd;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAyJ1B,CAAC;AAGH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAIlE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4DvB,CAAC;AACP,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -63,7 +63,8 @@ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "
63
63
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
64
64
  var vercel_exports = {};
65
65
  __export(vercel_exports, {
66
- VercelLLMService: () => VercelLLMService
66
+ VercelLLMService: () => VercelLLMService,
67
+ ensureRunContextMatchesServiceSession: () => ensureRunContextMatchesServiceSession
67
68
  });
68
69
  module.exports = __toCommonJS(vercel_exports);
69
70
  var import_types = require("../../logger/v2/types.js");
@@ -74,8 +75,24 @@ var import_decorators = require("../../telemetry/decorators.js");
74
75
  var import_api = require("@opentelemetry/api");
75
76
  var import_turn_executor = require("../executor/turn-executor.js");
76
77
  var import_DextoRuntimeError = require("../../errors/DextoRuntimeError.js");
78
+ var import_types4 = require("../../errors/types.js");
77
79
  var import_error_codes = require("../error-codes.js");
78
80
  var _VercelLLMService_decorators, _init;
81
+ function ensureRunContextMatchesServiceSession(serviceSessionId, runContext) {
82
+ if (runContext !== void 0 && runContext.sessionId !== serviceSessionId) {
83
+ throw new import_DextoRuntimeError.DextoRuntimeError(
84
+ import_error_codes.LLMErrorCode.GENERATION_FAILED,
85
+ import_types4.ErrorScope.LLM,
86
+ import_types4.ErrorType.SYSTEM,
87
+ `Run context session '${runContext.sessionId}' does not match LLM service session '${serviceSessionId}'`,
88
+ {
89
+ serviceSessionId,
90
+ runContextSessionId: runContext.sessionId
91
+ }
92
+ );
93
+ }
94
+ return serviceSessionId;
95
+ }
79
96
  _VercelLLMService_decorators = [(0, import_decorators.InstrumentClass)({
80
97
  prefix: "llm.vercel",
81
98
  excludeMethods: ["getModelId", "getAllTools", "createTurnExecutor"]
@@ -138,7 +155,7 @@ class VercelLLMService {
138
155
  /**
139
156
  * Create a TurnExecutor instance for executing the agent loop.
140
157
  */
141
- createTurnExecutor(externalSignal) {
158
+ createTurnExecutor(externalSignal, runContext) {
142
159
  return new import_turn_executor.TurnExecutor(
143
160
  this.model,
144
161
  this.toolManager,
@@ -160,7 +177,8 @@ class VercelLLMService {
160
177
  this.messageQueue,
161
178
  this.modelLimits,
162
179
  externalSignal,
163
- this.compactionStrategy
180
+ this.compactionStrategy,
181
+ runContext
164
182
  );
165
183
  }
166
184
  /**
@@ -176,6 +194,10 @@ class VercelLLMService {
176
194
  * @returns Object with text response
177
195
  */
178
196
  async stream(content, options) {
197
+ const sessionId = ensureRunContextMatchesServiceSession(
198
+ this.sessionId,
199
+ options?.runContext
200
+ );
179
201
  const activeSpan = import_api.trace.getActiveSpan();
180
202
  const currentContext = import_api.context.active();
181
203
  const provider = this.config.provider;
@@ -200,9 +222,9 @@ class VercelLLMService {
200
222
  return await import_api.context.with(updatedContext, async () => {
201
223
  const parts = typeof content === "string" ? [{ type: "text", text: content }] : content;
202
224
  await this.contextManager.addUserMessage(parts);
203
- const executor = this.createTurnExecutor(options?.signal);
225
+ const executor = this.createTurnExecutor(options?.signal, options?.runContext);
204
226
  const contributorContext = await this.toolManager.buildContributorContext({
205
- sessionId: this.sessionId
227
+ sessionId
206
228
  });
207
229
  const result = await executor.execute(contributorContext, true);
208
230
  return {
@@ -267,5 +289,6 @@ VercelLLMService = __decorateElement(_init, 0, "VercelLLMService", _VercelLLMSer
267
289
  __runInitializers(_init, 1, VercelLLMService);
268
290
  // Annotate the CommonJS export names for ESM import in node:
269
291
  0 && (module.exports = {
270
- VercelLLMService
292
+ VercelLLMService,
293
+ ensureRunContextMatchesServiceSession
271
294
  });
@@ -11,6 +11,8 @@ import type { ValidatedLLMConfig } from '../schemas.js';
11
11
  import { MessageQueueService } from '../../session/message-queue.js';
12
12
  import type { ResourceManager } from '../../resources/index.js';
13
13
  import type { ContentInput } from '../../agent/types.js';
14
+ import type { AgentRunContext } from '../../runtime/run-context.js';
15
+ export declare function ensureRunContextMatchesServiceSession(serviceSessionId: string, runContext?: AgentRunContext): string;
14
16
  /**
15
17
  * Vercel AI SDK implementation of the core session LLM runtime
16
18
  *
@@ -65,6 +67,7 @@ export declare class VercelLLMService {
65
67
  */
66
68
  stream(content: ContentInput, options?: {
67
69
  signal?: AbortSignal;
70
+ runContext?: AgentRunContext;
68
71
  }): Promise<{
69
72
  text: string;
70
73
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/services/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqB,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AACH,qBAIa,gBAAgB;IACzB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,kBAAkB,CAEf;IACX,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAElD;;OAEG;IACH,OAAO,CAAC,UAAU;gBAKd,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,aAAa,EACpB,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,2BAA2B,EAC5C,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,mBAAmB,EACjC,YAAY,CAAC,EAAE,MAAM,EACrB,kBAAkB,CAAC,EAAE,OAAO,mCAAmC,EAAE,kBAAkB,GAAG,IAAI;IAuC9F,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAMnC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACH,OAAc,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAE7C;;;;;;;OAOG;IACG,MAAM,CACR,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACnC,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IA0D5B;;;OAGG;IACH,SAAS,IAAI,gBAAgB;IA+B7B;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC,OAAO,CAAC;IAI5C;;OAEG;IACH,eAAe,IAAI,mBAAmB;IAItC;;OAEG;IACH,qBAAqB,IAAI,OAAO,mCAAmC,EAAE,kBAAkB,GAAG,IAAI;IAI9F,gBAAgB,IAAI,aAAa;CAGpC"}
1
+ {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/services/vercel.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,23 @@ import { InstrumentClass } from "../../telemetry/decorators.js";
12
12
  import { trace, context, propagation } from "@opentelemetry/api";
13
13
  import { TurnExecutor } from "../executor/turn-executor.js";
14
14
  import { DextoRuntimeError } from "../../errors/DextoRuntimeError.js";
15
+ import { ErrorScope, ErrorType } from "../../errors/types.js";
15
16
  import { LLMErrorCode } from "../error-codes.js";
17
+ function ensureRunContextMatchesServiceSession(serviceSessionId, runContext) {
18
+ if (runContext !== void 0 && runContext.sessionId !== serviceSessionId) {
19
+ throw new DextoRuntimeError(
20
+ LLMErrorCode.GENERATION_FAILED,
21
+ ErrorScope.LLM,
22
+ ErrorType.SYSTEM,
23
+ `Run context session '${runContext.sessionId}' does not match LLM service session '${serviceSessionId}'`,
24
+ {
25
+ serviceSessionId,
26
+ runContextSessionId: runContext.sessionId
27
+ }
28
+ );
29
+ }
30
+ return serviceSessionId;
31
+ }
16
32
  _VercelLLMService_decorators = [InstrumentClass({
17
33
  prefix: "llm.vercel",
18
34
  excludeMethods: ["getModelId", "getAllTools", "createTurnExecutor"]
@@ -75,7 +91,7 @@ class VercelLLMService {
75
91
  /**
76
92
  * Create a TurnExecutor instance for executing the agent loop.
77
93
  */
78
- createTurnExecutor(externalSignal) {
94
+ createTurnExecutor(externalSignal, runContext) {
79
95
  return new TurnExecutor(
80
96
  this.model,
81
97
  this.toolManager,
@@ -97,7 +113,8 @@ class VercelLLMService {
97
113
  this.messageQueue,
98
114
  this.modelLimits,
99
115
  externalSignal,
100
- this.compactionStrategy
116
+ this.compactionStrategy,
117
+ runContext
101
118
  );
102
119
  }
103
120
  /**
@@ -113,6 +130,10 @@ class VercelLLMService {
113
130
  * @returns Object with text response
114
131
  */
115
132
  async stream(content, options) {
133
+ const sessionId = ensureRunContextMatchesServiceSession(
134
+ this.sessionId,
135
+ options?.runContext
136
+ );
116
137
  const activeSpan = trace.getActiveSpan();
117
138
  const currentContext = context.active();
118
139
  const provider = this.config.provider;
@@ -137,9 +158,9 @@ class VercelLLMService {
137
158
  return await context.with(updatedContext, async () => {
138
159
  const parts = typeof content === "string" ? [{ type: "text", text: content }] : content;
139
160
  await this.contextManager.addUserMessage(parts);
140
- const executor = this.createTurnExecutor(options?.signal);
161
+ const executor = this.createTurnExecutor(options?.signal, options?.runContext);
141
162
  const contributorContext = await this.toolManager.buildContributorContext({
142
- sessionId: this.sessionId
163
+ sessionId
143
164
  });
144
165
  const result = await executor.execute(contributorContext, true);
145
166
  return {
@@ -203,5 +224,6 @@ _init = __decoratorStart(null);
203
224
  VercelLLMService = __decorateElement(_init, 0, "VercelLLMService", _VercelLLMService_decorators, VercelLLMService);
204
225
  __runInitializers(_init, 1, VercelLLMService);
205
226
  export {
206
- VercelLLMService
227
+ VercelLLMService,
228
+ ensureRunContextMatchesServiceSession
207
229
  };