dalvon-mcp 3.0.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 (183) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +743 -0
  3. package/dist/clients/dalvon.d.ts +258 -0
  4. package/dist/clients/dalvon.d.ts.map +1 -0
  5. package/dist/clients/dalvon.js +1240 -0
  6. package/dist/clients/dalvon.js.map +1 -0
  7. package/dist/clients/knowledge.d.ts +59 -0
  8. package/dist/clients/knowledge.d.ts.map +1 -0
  9. package/dist/clients/knowledge.js +267 -0
  10. package/dist/clients/knowledge.js.map +1 -0
  11. package/dist/clients/telefonieren.d.ts +258 -0
  12. package/dist/clients/telefonieren.d.ts.map +1 -0
  13. package/dist/clients/telefonieren.js +1240 -0
  14. package/dist/clients/telefonieren.js.map +1 -0
  15. package/dist/config.d.ts +43 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/config.js +76 -0
  18. package/dist/config.js.map +1 -0
  19. package/dist/environment.d.ts +33 -0
  20. package/dist/environment.d.ts.map +1 -0
  21. package/dist/environment.js +63 -0
  22. package/dist/environment.js.map +1 -0
  23. package/dist/index.d.ts +7 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +2 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/tools/agents.d.ts +8 -0
  28. package/dist/tools/agents.d.ts.map +1 -0
  29. package/dist/tools/agents.js +1880 -0
  30. package/dist/tools/agents.js.map +1 -0
  31. package/dist/tools/billing.d.ts +8 -0
  32. package/dist/tools/billing.d.ts.map +1 -0
  33. package/dist/tools/billing.js +205 -0
  34. package/dist/tools/billing.js.map +1 -0
  35. package/dist/tools/calendar.d.ts +8 -0
  36. package/dist/tools/calendar.d.ts.map +1 -0
  37. package/dist/tools/calendar.js +347 -0
  38. package/dist/tools/calendar.js.map +1 -0
  39. package/dist/tools/calls.d.ts +8 -0
  40. package/dist/tools/calls.d.ts.map +1 -0
  41. package/dist/tools/calls.js +508 -0
  42. package/dist/tools/calls.js.map +1 -0
  43. package/dist/tools/campaigns.d.ts +8 -0
  44. package/dist/tools/campaigns.d.ts.map +1 -0
  45. package/dist/tools/campaigns.js +531 -0
  46. package/dist/tools/campaigns.js.map +1 -0
  47. package/dist/tools/channels.d.ts +8 -0
  48. package/dist/tools/channels.d.ts.map +1 -0
  49. package/dist/tools/channels.js +165 -0
  50. package/dist/tools/channels.js.map +1 -0
  51. package/dist/tools/chats.d.ts +8 -0
  52. package/dist/tools/chats.d.ts.map +1 -0
  53. package/dist/tools/chats.js +142 -0
  54. package/dist/tools/chats.js.map +1 -0
  55. package/dist/tools/collections.d.ts +8 -0
  56. package/dist/tools/collections.d.ts.map +1 -0
  57. package/dist/tools/collections.js +389 -0
  58. package/dist/tools/collections.js.map +1 -0
  59. package/dist/tools/contacts.d.ts +8 -0
  60. package/dist/tools/contacts.d.ts.map +1 -0
  61. package/dist/tools/contacts.js +430 -0
  62. package/dist/tools/contacts.js.map +1 -0
  63. package/dist/tools/crawler.d.ts +8 -0
  64. package/dist/tools/crawler.d.ts.map +1 -0
  65. package/dist/tools/crawler.js +263 -0
  66. package/dist/tools/crawler.js.map +1 -0
  67. package/dist/tools/dnc.d.ts +8 -0
  68. package/dist/tools/dnc.d.ts.map +1 -0
  69. package/dist/tools/dnc.js +287 -0
  70. package/dist/tools/dnc.js.map +1 -0
  71. package/dist/tools/documents.d.ts +9 -0
  72. package/dist/tools/documents.d.ts.map +1 -0
  73. package/dist/tools/documents.js +518 -0
  74. package/dist/tools/documents.js.map +1 -0
  75. package/dist/tools/engines.d.ts +8 -0
  76. package/dist/tools/engines.d.ts.map +1 -0
  77. package/dist/tools/engines.js +271 -0
  78. package/dist/tools/engines.js.map +1 -0
  79. package/dist/tools/environment.d.ts +9 -0
  80. package/dist/tools/environment.d.ts.map +1 -0
  81. package/dist/tools/environment.js +59 -0
  82. package/dist/tools/environment.js.map +1 -0
  83. package/dist/tools/forwarding.d.ts +8 -0
  84. package/dist/tools/forwarding.d.ts.map +1 -0
  85. package/dist/tools/forwarding.js +30 -0
  86. package/dist/tools/forwarding.js.map +1 -0
  87. package/dist/tools/index.d.ts +58 -0
  88. package/dist/tools/index.d.ts.map +1 -0
  89. package/dist/tools/index.js +158 -0
  90. package/dist/tools/index.js.map +1 -0
  91. package/dist/tools/integrations.d.ts +8 -0
  92. package/dist/tools/integrations.d.ts.map +1 -0
  93. package/dist/tools/integrations.js +234 -0
  94. package/dist/tools/integrations.js.map +1 -0
  95. package/dist/tools/mailbox.d.ts +8 -0
  96. package/dist/tools/mailbox.d.ts.map +1 -0
  97. package/dist/tools/mailbox.js +105 -0
  98. package/dist/tools/mailbox.js.map +1 -0
  99. package/dist/tools/media.d.ts +8 -0
  100. package/dist/tools/media.d.ts.map +1 -0
  101. package/dist/tools/media.js +223 -0
  102. package/dist/tools/media.js.map +1 -0
  103. package/dist/tools/numbers.d.ts +8 -0
  104. package/dist/tools/numbers.d.ts.map +1 -0
  105. package/dist/tools/numbers.js +560 -0
  106. package/dist/tools/numbers.js.map +1 -0
  107. package/dist/tools/organizations.d.ts +8 -0
  108. package/dist/tools/organizations.d.ts.map +1 -0
  109. package/dist/tools/organizations.js +234 -0
  110. package/dist/tools/organizations.js.map +1 -0
  111. package/dist/tools/postprocessing.d.ts +8 -0
  112. package/dist/tools/postprocessing.d.ts.map +1 -0
  113. package/dist/tools/postprocessing.js +383 -0
  114. package/dist/tools/postprocessing.js.map +1 -0
  115. package/dist/tools/pronunciations.d.ts +8 -0
  116. package/dist/tools/pronunciations.d.ts.map +1 -0
  117. package/dist/tools/pronunciations.js +236 -0
  118. package/dist/tools/pronunciations.js.map +1 -0
  119. package/dist/tools/rules.d.ts +8 -0
  120. package/dist/tools/rules.d.ts.map +1 -0
  121. package/dist/tools/rules.js +465 -0
  122. package/dist/tools/rules.js.map +1 -0
  123. package/dist/tools/statistics.d.ts +8 -0
  124. package/dist/tools/statistics.d.ts.map +1 -0
  125. package/dist/tools/statistics.js +120 -0
  126. package/dist/tools/statistics.js.map +1 -0
  127. package/dist/tools/templates.d.ts +8 -0
  128. package/dist/tools/templates.d.ts.map +1 -0
  129. package/dist/tools/templates.js +211 -0
  130. package/dist/tools/templates.js.map +1 -0
  131. package/dist/tools/tests.d.ts +8 -0
  132. package/dist/tools/tests.d.ts.map +1 -0
  133. package/dist/tools/tests.js +329 -0
  134. package/dist/tools/tests.js.map +1 -0
  135. package/dist/tools/users.d.ts +8 -0
  136. package/dist/tools/users.d.ts.map +1 -0
  137. package/dist/tools/users.js +484 -0
  138. package/dist/tools/users.js.map +1 -0
  139. package/dist/tools/voice-preview.d.ts +8 -0
  140. package/dist/tools/voice-preview.d.ts.map +1 -0
  141. package/dist/tools/voice-preview.js +100 -0
  142. package/dist/tools/voice-preview.js.map +1 -0
  143. package/dist/tools/voices.d.ts +8 -0
  144. package/dist/tools/voices.d.ts.map +1 -0
  145. package/dist/tools/voices.js +110 -0
  146. package/dist/tools/voices.js.map +1 -0
  147. package/dist/tools/whitelabels.d.ts +8 -0
  148. package/dist/tools/whitelabels.d.ts.map +1 -0
  149. package/dist/tools/whitelabels.js +199 -0
  150. package/dist/tools/whitelabels.js.map +1 -0
  151. package/dist/tools/widget-config.d.ts +8 -0
  152. package/dist/tools/widget-config.d.ts.map +1 -0
  153. package/dist/tools/widget-config.js +116 -0
  154. package/dist/tools/widget-config.js.map +1 -0
  155. package/dist/types/api.d.ts +303 -0
  156. package/dist/types/api.d.ts.map +1 -0
  157. package/dist/types/api.js +6 -0
  158. package/dist/types/api.js.map +1 -0
  159. package/dist/types/index.d.ts +6 -0
  160. package/dist/types/index.d.ts.map +1 -0
  161. package/dist/types/index.js +6 -0
  162. package/dist/types/index.js.map +1 -0
  163. package/dist/types/tools.d.ts +41 -0
  164. package/dist/types/tools.d.ts.map +1 -0
  165. package/dist/types/tools.js +6 -0
  166. package/dist/types/tools.js.map +1 -0
  167. package/dist/utils/errors.d.ts +31 -0
  168. package/dist/utils/errors.d.ts.map +1 -0
  169. package/dist/utils/errors.js +77 -0
  170. package/dist/utils/errors.js.map +1 -0
  171. package/dist/utils/index.d.ts +7 -0
  172. package/dist/utils/index.d.ts.map +1 -0
  173. package/dist/utils/index.js +7 -0
  174. package/dist/utils/index.js.map +1 -0
  175. package/dist/utils/logger.d.ts +11 -0
  176. package/dist/utils/logger.d.ts.map +1 -0
  177. package/dist/utils/logger.js +25 -0
  178. package/dist/utils/logger.js.map +1 -0
  179. package/dist/utils/validation.d.ts +34 -0
  180. package/dist/utils/validation.d.ts.map +1 -0
  181. package/dist/utils/validation.js +68 -0
  182. package/dist/utils/validation.js.map +1 -0
  183. package/package.json +56 -0
@@ -0,0 +1,271 @@
1
+ /**
2
+ * Engine Tools
3
+ * Voice pipeline preset management (Dalvon Engines)
4
+ */
5
+ import { z } from 'zod';
6
+ import { formatApiError, createError, createSuccess, isApiError } from '../utils/errors.js';
7
+ // Zod Schemas
8
+ const listEnginesSchema = z.object({
9
+ skip: z.number().min(0).default(0),
10
+ limit: z.number().min(1).max(200).default(100),
11
+ });
12
+ const getEngineSchema = z.object({
13
+ engine_id: z.string().uuid().describe('Engine UUID'),
14
+ });
15
+ const createEngineSchema = z.object({
16
+ name: z.string().min(1).max(255).describe('Engine display name'),
17
+ description: z.string().optional().describe('Human-readable description'),
18
+ stt_provider: z.enum(['deepgram', 'elevenlabs', 'soniox']).optional(),
19
+ stt_model: z.string().optional(),
20
+ llm: z.string().optional().describe('LLM model ID (e.g., azure-gpt-4.1-mini)'),
21
+ temperature: z.number().min(0).max(2).optional(),
22
+ reasoning_effort: z.enum(['low', 'medium', 'high']).optional(),
23
+ tts_model: z.enum(['eleven_v3', 'eleven_flash_v2_5', 'eleven_flash_v2']).optional(),
24
+ voice_mode: z.enum(['standard', 'speech2speech']).optional(),
25
+ interruption_sensitivity: z.enum(['patient', 'normal', 'responsive', 'instant']).optional(),
26
+ noise_cancellation: z.object({ enabled: z.boolean() }).optional(),
27
+ characteristics: z.object({
28
+ speed: z.number().min(1).max(10),
29
+ comprehension: z.number().min(1).max(10),
30
+ intelligence: z.number().min(1).max(10),
31
+ patience: z.number().min(1).max(10),
32
+ voice_quality: z.number().min(1).max(10),
33
+ }).optional(),
34
+ });
35
+ const updateEngineSchema = z.object({
36
+ engine_id: z.string().uuid().describe('Engine UUID'),
37
+ name: z.string().min(1).max(255).optional(),
38
+ description: z.string().optional(),
39
+ propagate: z.boolean().default(false).describe('Propagate changes to all linked agents'),
40
+ pipeline: z.object({
41
+ stt_provider: z.enum(['deepgram', 'elevenlabs', 'soniox']).optional(),
42
+ stt_model: z.string().optional(),
43
+ llm: z.string().optional(),
44
+ temperature: z.number().min(0).max(2).optional(),
45
+ reasoning_effort: z.enum(['low', 'medium', 'high']).optional(),
46
+ tts_model: z.enum(['eleven_v3', 'eleven_flash_v2_5', 'eleven_flash_v2']).optional(),
47
+ voice_mode: z.enum(['standard', 'speech2speech']).optional(),
48
+ interruption_sensitivity: z.enum(['patient', 'normal', 'responsive', 'instant']).optional(),
49
+ noise_cancellation: z.object({ enabled: z.boolean() }).optional(),
50
+ }).optional(),
51
+ characteristics: z.object({
52
+ speed: z.number().min(1).max(10),
53
+ comprehension: z.number().min(1).max(10),
54
+ intelligence: z.number().min(1).max(10),
55
+ patience: z.number().min(1).max(10),
56
+ voice_quality: z.number().min(1).max(10),
57
+ }).optional(),
58
+ });
59
+ const deleteEngineSchema = z.object({
60
+ engine_id: z.string().uuid().describe('Engine UUID'),
61
+ });
62
+ const bulkApplySchema = z.object({
63
+ engine_id: z.string().uuid().describe('Engine UUID to apply'),
64
+ agent_ids: z.array(z.string().uuid()).min(1).describe('Agent UUIDs to apply engine to'),
65
+ });
66
+ export function createEngineTools(client) {
67
+ return [
68
+ // list_engines
69
+ {
70
+ name: 'list_engines',
71
+ description: 'List all available voice pipeline engines (Dalvon presets + custom engines).',
72
+ inputSchema: {
73
+ type: 'object',
74
+ properties: {
75
+ skip: { type: 'integer', minimum: 0, default: 0 },
76
+ limit: { type: 'integer', minimum: 1, maximum: 200, default: 100 },
77
+ },
78
+ },
79
+ handler: async (args) => {
80
+ const parsed = listEnginesSchema.safeParse(args);
81
+ if (!parsed.success)
82
+ return createError(`Invalid arguments: ${parsed.error.message}`);
83
+ const result = await client.listEngines(parsed.data);
84
+ if (!result.success || isApiError(result))
85
+ return formatApiError(result, 'list_engines');
86
+ return createSuccess(result.data);
87
+ },
88
+ },
89
+ // get_engine
90
+ {
91
+ name: 'get_engine',
92
+ description: 'Get details of a specific voice pipeline engine including radar chart characteristics and pipeline config.',
93
+ inputSchema: {
94
+ type: 'object',
95
+ properties: {
96
+ engine_id: { type: 'string', description: 'Engine UUID' },
97
+ },
98
+ required: ['engine_id'],
99
+ },
100
+ handler: async (args) => {
101
+ const parsed = getEngineSchema.safeParse(args);
102
+ if (!parsed.success)
103
+ return createError(`Invalid arguments: ${parsed.error.message}`);
104
+ const result = await client.getEngine(parsed.data.engine_id);
105
+ if (!result.success || isApiError(result))
106
+ return formatApiError(result, 'get_engine');
107
+ return createSuccess(result.data);
108
+ },
109
+ },
110
+ // create_engine
111
+ {
112
+ name: 'create_engine',
113
+ description: 'Create a custom voice pipeline engine with STT, LLM, TTS, and behavior settings.',
114
+ inputSchema: {
115
+ type: 'object',
116
+ properties: {
117
+ name: { type: 'string', description: 'Engine display name' },
118
+ description: { type: 'string', description: 'Human-readable description' },
119
+ stt_provider: { type: 'string', enum: ['deepgram', 'elevenlabs', 'soniox'] },
120
+ stt_model: { type: 'string' },
121
+ llm: { type: 'string', description: 'LLM model ID' },
122
+ temperature: { type: 'number', minimum: 0, maximum: 2 },
123
+ reasoning_effort: { type: 'string', enum: ['low', 'medium', 'high'] },
124
+ tts_model: { type: 'string', enum: ['eleven_v3', 'eleven_flash_v2_5', 'eleven_flash_v2'] },
125
+ voice_mode: { type: 'string', enum: ['standard', 'speech2speech'] },
126
+ interruption_sensitivity: { type: 'string', enum: ['patient', 'normal', 'responsive', 'instant'] },
127
+ noise_cancellation: {
128
+ type: 'object',
129
+ properties: { enabled: { type: 'boolean' } },
130
+ },
131
+ characteristics: {
132
+ type: 'object',
133
+ properties: {
134
+ speed: { type: 'integer', minimum: 1, maximum: 10 },
135
+ comprehension: { type: 'integer', minimum: 1, maximum: 10 },
136
+ intelligence: { type: 'integer', minimum: 1, maximum: 10 },
137
+ patience: { type: 'integer', minimum: 1, maximum: 10 },
138
+ voice_quality: { type: 'integer', minimum: 1, maximum: 10 },
139
+ },
140
+ },
141
+ },
142
+ required: ['name'],
143
+ },
144
+ handler: async (args) => {
145
+ const parsed = createEngineSchema.safeParse(args);
146
+ if (!parsed.success)
147
+ return createError(`Invalid arguments: ${parsed.error.message}`);
148
+ const result = await client.createEngine(parsed.data);
149
+ if (!result.success || isApiError(result))
150
+ return formatApiError(result, 'create_engine');
151
+ return createSuccess(result.data);
152
+ },
153
+ },
154
+ // update_engine
155
+ {
156
+ name: 'update_engine',
157
+ description: 'Update a custom engine. Set propagate=true to push changes to all linked agents. Preset engines (Dalvon) cannot be modified.',
158
+ inputSchema: {
159
+ type: 'object',
160
+ properties: {
161
+ engine_id: { type: 'string', description: 'Engine UUID' },
162
+ name: { type: 'string' },
163
+ description: { type: 'string' },
164
+ propagate: { type: 'boolean', default: false, description: 'Push changes to all linked agents' },
165
+ pipeline: {
166
+ type: 'object',
167
+ properties: {
168
+ stt_provider: { type: 'string', enum: ['deepgram', 'elevenlabs', 'soniox'] },
169
+ stt_model: { type: 'string' },
170
+ llm: { type: 'string' },
171
+ temperature: { type: 'number' },
172
+ tts_model: { type: 'string' },
173
+ voice_mode: { type: 'string', enum: ['standard', 'speech2speech'] },
174
+ interruption_sensitivity: { type: 'string', enum: ['patient', 'normal', 'responsive', 'instant'] },
175
+ },
176
+ },
177
+ characteristics: {
178
+ type: 'object',
179
+ properties: {
180
+ speed: { type: 'integer', minimum: 1, maximum: 10 },
181
+ comprehension: { type: 'integer', minimum: 1, maximum: 10 },
182
+ intelligence: { type: 'integer', minimum: 1, maximum: 10 },
183
+ patience: { type: 'integer', minimum: 1, maximum: 10 },
184
+ voice_quality: { type: 'integer', minimum: 1, maximum: 10 },
185
+ },
186
+ },
187
+ },
188
+ required: ['engine_id'],
189
+ },
190
+ handler: async (args) => {
191
+ const parsed = updateEngineSchema.safeParse(args);
192
+ if (!parsed.success)
193
+ return createError(`Invalid arguments: ${parsed.error.message}`);
194
+ const { engine_id, propagate, ...updateData } = parsed.data;
195
+ const result = await client.updateEngine(engine_id, updateData, propagate);
196
+ if (!result.success || isApiError(result))
197
+ return formatApiError(result, 'update_engine');
198
+ return createSuccess(result.data);
199
+ },
200
+ },
201
+ // delete_engine
202
+ {
203
+ name: 'delete_engine',
204
+ description: 'Delete a custom engine. Preset engines (Dalvon) cannot be deleted. Agents using this engine will keep their current settings.',
205
+ inputSchema: {
206
+ type: 'object',
207
+ properties: {
208
+ engine_id: { type: 'string', description: 'Engine UUID' },
209
+ },
210
+ required: ['engine_id'],
211
+ },
212
+ handler: async (args) => {
213
+ const parsed = deleteEngineSchema.safeParse(args);
214
+ if (!parsed.success)
215
+ return createError(`Invalid arguments: ${parsed.error.message}`);
216
+ const result = await client.deleteEngine(parsed.data.engine_id);
217
+ if (!result.success || isApiError(result))
218
+ return formatApiError(result, 'delete_engine');
219
+ return createSuccess({ deleted: true, engine_id: parsed.data.engine_id });
220
+ },
221
+ },
222
+ // get_engine_agents
223
+ {
224
+ name: 'get_engine_agents',
225
+ description: 'List all agents using a specific engine.',
226
+ inputSchema: {
227
+ type: 'object',
228
+ properties: {
229
+ engine_id: { type: 'string', description: 'Engine UUID' },
230
+ },
231
+ required: ['engine_id'],
232
+ },
233
+ handler: async (args) => {
234
+ const parsed = getEngineSchema.safeParse(args);
235
+ if (!parsed.success)
236
+ return createError(`Invalid arguments: ${parsed.error.message}`);
237
+ const result = await client.getEngineAgents(parsed.data.engine_id);
238
+ if (!result.success || isApiError(result))
239
+ return formatApiError(result, 'get_engine_agents');
240
+ return createSuccess(result.data);
241
+ },
242
+ },
243
+ // bulk_apply_engine
244
+ {
245
+ name: 'bulk_apply_engine',
246
+ description: 'Apply a voice pipeline engine to multiple agents at once. Updates all agent draft versions.',
247
+ inputSchema: {
248
+ type: 'object',
249
+ properties: {
250
+ engine_id: { type: 'string', description: 'Engine UUID to apply' },
251
+ agent_ids: {
252
+ type: 'array',
253
+ items: { type: 'string' },
254
+ description: 'Agent UUIDs to apply engine to',
255
+ },
256
+ },
257
+ required: ['engine_id', 'agent_ids'],
258
+ },
259
+ handler: async (args) => {
260
+ const parsed = bulkApplySchema.safeParse(args);
261
+ if (!parsed.success)
262
+ return createError(`Invalid arguments: ${parsed.error.message}`);
263
+ const result = await client.bulkApplyEngine(parsed.data.engine_id, parsed.data.agent_ids);
264
+ if (!result.success || isApiError(result))
265
+ return formatApiError(result, 'bulk_apply_engine');
266
+ return createSuccess(result.data);
267
+ },
268
+ },
269
+ ];
270
+ }
271
+ //# sourceMappingURL=engines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engines.js","sourceRoot":"","sources":["../../src/tools/engines.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Environment Management Tools
3
+ * Switch between production/staging/test environments at runtime.
4
+ * Only registered when alternative environment keys are configured.
5
+ */
6
+ import type { EnvironmentManager } from '../environment.js';
7
+ import type { McpTool } from '../types/index.js';
8
+ export declare function createEnvironmentTools(environmentManager: EnvironmentManager): McpTool[];
9
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/tools/environment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,mBAAmB,CAAC;AAO/D,wBAAgB,sBAAsB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,OAAO,EAAE,CAoDxF"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Environment Management Tools
3
+ * Switch between production/staging/test environments at runtime.
4
+ * Only registered when alternative environment keys are configured.
5
+ */
6
+ import { z } from 'zod';
7
+ import { createError, createSuccess } from '../utils/errors.js';
8
+ const setEnvironmentSchema = z.object({
9
+ environment: z.enum(['production', 'staging', 'test']),
10
+ });
11
+ export function createEnvironmentTools(environmentManager) {
12
+ return [
13
+ {
14
+ name: 'set_environment',
15
+ description: 'Switch the active API environment. All subsequent API calls will use the selected environment.\n\n' +
16
+ '- **production**: api.dalvon.ai (default, live data)\n' +
17
+ '- **staging**: api.staging.dalvon.ai (pre-release testing)\n' +
18
+ '- **test**: localhost (local development)\n\n' +
19
+ 'WARNING: Switching to production affects live data.',
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ environment: {
24
+ type: 'string',
25
+ enum: ['production', 'staging', 'test'],
26
+ description: 'Target environment to switch to',
27
+ },
28
+ },
29
+ required: ['environment'],
30
+ },
31
+ handler: async (args) => {
32
+ const parsed = setEnvironmentSchema.safeParse(args);
33
+ if (!parsed.success) {
34
+ return createError(`Invalid arguments: ${parsed.error.message}`);
35
+ }
36
+ const result = environmentManager.switchEnvironment(parsed.data.environment);
37
+ if (!result.success) {
38
+ return createError(result.error);
39
+ }
40
+ return createSuccess({
41
+ message: `Switched from ${result.previous} to ${result.current}`,
42
+ ...environmentManager.getEnvironmentInfo(),
43
+ });
44
+ },
45
+ },
46
+ {
47
+ name: 'get_environment',
48
+ description: 'Get the currently active API environment and list all available environments.',
49
+ inputSchema: {
50
+ type: 'object',
51
+ properties: {},
52
+ },
53
+ handler: async () => {
54
+ return createSuccess(environmentManager.getEnvironmentInfo());
55
+ },
56
+ },
57
+ ];
58
+ }
59
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/tools/environment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,UAAU,sBAAsB,CAAC,kBAAsC;IAC3E,OAAO;QACL;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EACT,oGAAoG;gBACpG,wDAAwD;gBACxD,8DAA8D;gBAC9D,+CAA+C;gBAC/C,qDAAqD;YACvD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC;wBACvC,WAAW,EAAE,iCAAiC;qBAC/C;iBACF;gBACD,QAAQ,EAAE,CAAC,aAAa,CAAC;aAC1B;YACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAyB,EAAE;gBACtD,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,WAAW,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnE,CAAC;gBAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAE7E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,WAAW,CAAC,MAAM,CAAC,KAAM,CAAC,CAAC;gBACpC,CAAC;gBAED,OAAO,aAAa,CAAC;oBACnB,OAAO,EAAE,iBAAiB,MAAM,CAAC,QAAQ,OAAO,MAAM,CAAC,OAAO,EAAE;oBAChE,GAAG,kBAAkB,CAAC,kBAAkB,EAAE;iBAC3C,CAAC,CAAC;YACL,CAAC;SACF;QAED;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,+EAA+E;YAC5F,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;aACf;YACD,OAAO,EAAE,KAAK,IAA2B,EAAE;gBACzC,OAAO,aAAa,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAChE,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Forwarding Tools (Phase 2)
3
+ * 1 tool for refreshing call forwarding rules
4
+ */
5
+ import type { DalvonClient } from '../clients/dalvon.js';
6
+ import type { McpTool } from '../types/index.js';
7
+ export declare function createForwardingTools(client: DalvonClient): McpTool[];
8
+ //# sourceMappingURL=forwarding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forwarding.d.ts","sourceRoot":"","sources":["../../src/tools/forwarding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,mBAAmB,CAAC;AAG/D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,EAAE,CA0BrE"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Forwarding Tools (Phase 2)
3
+ * 1 tool for refreshing call forwarding rules
4
+ */
5
+ import { formatApiError, createSuccess, isApiError } from '../utils/errors.js';
6
+ export function createForwardingTools(client) {
7
+ return [
8
+ // refresh_forwarding_rules
9
+ {
10
+ name: 'refresh_forwarding_rules',
11
+ description: 'Refresh call forwarding rules from the backend. This reloads forwarding configurations and applies any pending changes.',
12
+ inputSchema: {
13
+ type: 'object',
14
+ properties: {},
15
+ },
16
+ handler: async () => {
17
+ const result = await client.refreshForwardingRules();
18
+ if (!result.success || isApiError(result)) {
19
+ return formatApiError(result, 'refresh_forwarding_rules');
20
+ }
21
+ return createSuccess({
22
+ refreshed: true,
23
+ message: 'Forwarding rules refreshed successfully',
24
+ result: result.data,
25
+ });
26
+ },
27
+ },
28
+ ];
29
+ }
30
+ //# sourceMappingURL=forwarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forwarding.js","sourceRoot":"","sources":["../../src/tools/forwarding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/E,MAAM,UAAU,qBAAqB,CAAC,MAAoB;IACxD,OAAO;QACL,2BAA2B;QAC3B;YACE,IAAI,EAAE,0BAA0B;YAChC,WAAW,EACT,yHAAyH;YAC3H,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;aACf;YACD,OAAO,EAAE,KAAK,IAA2B,EAAE;gBACzC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,sBAAsB,EAAE,CAAC;gBAErD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1C,OAAO,cAAc,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;gBAC5D,CAAC;gBAED,OAAO,aAAa,CAAC;oBACnB,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,yCAAyC;oBAClD,MAAM,EAAE,MAAM,CAAC,IAAI;iBACpB,CAAC,CAAC;YACL,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Tool Registration
3
+ * Exports all MCP tools with access level filtering
4
+ */
5
+ import type { DalvonClient } from '../clients/dalvon.js';
6
+ import type { KnowledgeClient } from '../clients/knowledge.js';
7
+ import type { EnvironmentManager } from '../environment.js';
8
+ import type { McpTool } from '../types/index.js';
9
+ import type { AccessLevel } from '../config.js';
10
+ export interface ToolClients {
11
+ dalvon: DalvonClient;
12
+ knowledge: KnowledgeClient;
13
+ environmentManager?: EnvironmentManager;
14
+ }
15
+ /**
16
+ * Create MCP tools filtered by access level
17
+ *
18
+ * Access Levels:
19
+ * - user (default): Standard features
20
+ * - org_admin: Same as user (reserved)
21
+ * - whitelabel: + Organization management
22
+ * - platform: All tools including admin/billing
23
+ *
24
+ * API-Sync 2026-02: Added tests, chats, statistics, calendar tools
25
+ * - Agent schema expanded (40+ fields)
26
+ * - Fixed broken URLs (templates, duplicate, transfer, mark-read, categories)
27
+ */
28
+ export declare function createAllTools(clients: ToolClients, accessLevel?: AccessLevel): McpTool[];
29
+ export { createAgentTools } from './agents.js';
30
+ export { createCallTools } from './calls.js';
31
+ export { createTemplateTools } from './templates.js';
32
+ export { createCollectionTools } from './collections.js';
33
+ export { createDocumentTools } from './documents.js';
34
+ export { createContactTools } from './contacts.js';
35
+ export { createRuleTools } from './rules.js';
36
+ export { createNumberTools } from './numbers.js';
37
+ export { createVoiceTools } from './voices.js';
38
+ export { createVoicePreviewTools } from './voice-preview.js';
39
+ export { createForwardingTools } from './forwarding.js';
40
+ export { createMediaTools } from './media.js';
41
+ export { createPronunciationTools } from './pronunciations.js';
42
+ export { createIntegrationTools } from './integrations.js';
43
+ export { createPostprocessingTools } from './postprocessing.js';
44
+ export { createCrawlerTools } from './crawler.js';
45
+ export { createChannelTools } from './channels.js';
46
+ export { createMailboxTools } from './mailbox.js';
47
+ export { createCampaignTools } from './campaigns.js';
48
+ export { createTestTools } from './tests.js';
49
+ export { createChatTools } from './chats.js';
50
+ export { createWidgetConfigTools } from './widget-config.js';
51
+ export { createStatisticsTools } from './statistics.js';
52
+ export { createCalendarTools } from './calendar.js';
53
+ export { createUserTools } from './users.js';
54
+ export { createOrganizationTools } from './organizations.js';
55
+ export { createWhitelabelTools } from './whitelabels.js';
56
+ export { createBillingTools } from './billing.js';
57
+ export { createEnvironmentTools } from './environment.js';
58
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAkChD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;IAC3B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,GAAE,WAAoB,GAAG,OAAO,EAAE,CAgHjG;AAGD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Tool Registration
3
+ * Exports all MCP tools with access level filtering
4
+ */
5
+ import { createAgentTools } from './agents.js';
6
+ import { createCallTools } from './calls.js';
7
+ import { createTemplateTools } from './templates.js';
8
+ import { createCollectionTools } from './collections.js';
9
+ import { createDocumentTools } from './documents.js';
10
+ import { createContactTools } from './contacts.js';
11
+ import { createRuleTools } from './rules.js';
12
+ import { createNumberTools } from './numbers.js';
13
+ import { createVoiceTools } from './voices.js';
14
+ import { createVoicePreviewTools } from './voice-preview.js';
15
+ import { createForwardingTools } from './forwarding.js';
16
+ import { createMediaTools } from './media.js';
17
+ import { createPronunciationTools } from './pronunciations.js';
18
+ import { createIntegrationTools } from './integrations.js';
19
+ import { createPostprocessingTools } from './postprocessing.js';
20
+ import { createCrawlerTools } from './crawler.js';
21
+ import { createChannelTools } from './channels.js';
22
+ import { createMailboxTools } from './mailbox.js';
23
+ import { createCampaignTools } from './campaigns.js';
24
+ // New tool categories (API-Sync 2026-02)
25
+ import { createTestTools } from './tests.js';
26
+ import { createChatTools } from './chats.js';
27
+ import { createWidgetConfigTools } from './widget-config.js';
28
+ import { createStatisticsTools } from './statistics.js';
29
+ import { createCalendarTools } from './calendar.js';
30
+ // Admin & Enterprise (access-controlled)
31
+ import { createUserTools } from './users.js';
32
+ import { createOrganizationTools } from './organizations.js';
33
+ import { createWhitelabelTools } from './whitelabels.js';
34
+ import { createBillingTools } from './billing.js';
35
+ import { createEnvironmentTools } from './environment.js';
36
+ /**
37
+ * Create MCP tools filtered by access level
38
+ *
39
+ * Access Levels:
40
+ * - user (default): Standard features
41
+ * - org_admin: Same as user (reserved)
42
+ * - whitelabel: + Organization management
43
+ * - platform: All tools including admin/billing
44
+ *
45
+ * API-Sync 2026-02: Added tests, chats, statistics, calendar tools
46
+ * - Agent schema expanded (40+ fields)
47
+ * - Fixed broken URLs (templates, duplicate, transfer, mark-read, categories)
48
+ */
49
+ export function createAllTools(clients, accessLevel = 'user') {
50
+ const allTools = [];
51
+ // ═══════════════════════════════════════════════════════════════
52
+ // STANDARD TOOLS (all access levels)
53
+ // ═══════════════════════════════════════════════════════════════
54
+ // Agents (15 tools: CRUD + versioning + traffic)
55
+ allTools.push(...createAgentTools(clients.dalvon));
56
+ // Calls (11 tools: CRUD + feedback + mark-read + categories + metadata)
57
+ allTools.push(...createCallTools(clients.dalvon));
58
+ // Templates (5)
59
+ allTools.push(...createTemplateTools(clients.dalvon));
60
+ // Contacts (8)
61
+ allTools.push(...createContactTools(clients.dalvon));
62
+ // Rules & automation (10)
63
+ allTools.push(...createRuleTools(clients.dalvon));
64
+ // Numbers (6)
65
+ allTools.push(...createNumberTools(clients.dalvon));
66
+ // Voices (3)
67
+ allTools.push(...createVoiceTools(clients.dalvon));
68
+ // Voice Preview (2)
69
+ allTools.push(...createVoicePreviewTools(clients.dalvon));
70
+ // Forwarding (1)
71
+ allTools.push(...createForwardingTools(clients.dalvon));
72
+ // Media (4)
73
+ allTools.push(...createMediaTools(clients.dalvon));
74
+ // Pronunciations (4)
75
+ allTools.push(...createPronunciationTools(clients.dalvon));
76
+ // Connections (6)
77
+ allTools.push(...createIntegrationTools(clients.dalvon));
78
+ // Postprocessing (7)
79
+ allTools.push(...createPostprocessingTools(clients.dalvon));
80
+ // Agent Tests (9)
81
+ allTools.push(...createTestTools(clients.dalvon));
82
+ // Chats (4)
83
+ allTools.push(...createChatTools(clients.dalvon));
84
+ // Widget Config (3)
85
+ allTools.push(...createWidgetConfigTools(clients.dalvon));
86
+ // Statistics (20)
87
+ allTools.push(...createStatisticsTools(clients.dalvon));
88
+ // Calendar (17)
89
+ allTools.push(...createCalendarTools(clients.dalvon));
90
+ // Crawler (6)
91
+ allTools.push(...createCrawlerTools(clients.knowledge));
92
+ // Channels (3)
93
+ allTools.push(...createChannelTools(clients.dalvon));
94
+ // Mailbox (2)
95
+ allTools.push(...createMailboxTools(clients.dalvon));
96
+ // Campaigns (13)
97
+ allTools.push(...createCampaignTools(clients.dalvon));
98
+ // Collections (7)
99
+ allTools.push(...createCollectionTools(clients.knowledge));
100
+ // Documents (9)
101
+ allTools.push(...createDocumentTools(clients.knowledge));
102
+ // ═══════════════════════════════════════════════════════════════
103
+ // WHITELABEL+ TOOLS (whitelabel, platform)
104
+ // ═══════════════════════════════════════════════════════════════
105
+ if (accessLevel === 'whitelabel' || accessLevel === 'platform') {
106
+ // Organization management tools (6)
107
+ allTools.push(...createOrganizationTools(clients.dalvon));
108
+ }
109
+ // ═══════════════════════════════════════════════════════════════
110
+ // PLATFORM-ONLY TOOLS (platform)
111
+ // ═══════════════════════════════════════════════════════════════
112
+ if (accessLevel === 'platform') {
113
+ // User management tools (15)
114
+ allTools.push(...createUserTools(clients.dalvon));
115
+ // Whitelabel management tools (5)
116
+ allTools.push(...createWhitelabelTools(clients.dalvon));
117
+ // Billing tools (5)
118
+ allTools.push(...createBillingTools(clients.dalvon));
119
+ }
120
+ // ═══════════════════════════════════════════════════════════════
121
+ // ENVIRONMENT TOOLS (only when alternative environments are configured)
122
+ // ═══════════════════════════════════════════════════════════════
123
+ if (clients.environmentManager?.hasAlternativeEnvironments()) {
124
+ allTools.push(...createEnvironmentTools(clients.environmentManager));
125
+ }
126
+ return allTools;
127
+ }
128
+ // Re-export individual tool creators
129
+ export { createAgentTools } from './agents.js';
130
+ export { createCallTools } from './calls.js';
131
+ export { createTemplateTools } from './templates.js';
132
+ export { createCollectionTools } from './collections.js';
133
+ export { createDocumentTools } from './documents.js';
134
+ export { createContactTools } from './contacts.js';
135
+ export { createRuleTools } from './rules.js';
136
+ export { createNumberTools } from './numbers.js';
137
+ export { createVoiceTools } from './voices.js';
138
+ export { createVoicePreviewTools } from './voice-preview.js';
139
+ export { createForwardingTools } from './forwarding.js';
140
+ export { createMediaTools } from './media.js';
141
+ export { createPronunciationTools } from './pronunciations.js';
142
+ export { createIntegrationTools } from './integrations.js';
143
+ export { createPostprocessingTools } from './postprocessing.js';
144
+ export { createCrawlerTools } from './crawler.js';
145
+ export { createChannelTools } from './channels.js';
146
+ export { createMailboxTools } from './mailbox.js';
147
+ export { createCampaignTools } from './campaigns.js';
148
+ export { createTestTools } from './tests.js';
149
+ export { createChatTools } from './chats.js';
150
+ export { createWidgetConfigTools } from './widget-config.js';
151
+ export { createStatisticsTools } from './statistics.js';
152
+ export { createCalendarTools } from './calendar.js';
153
+ export { createUserTools } from './users.js';
154
+ export { createOrganizationTools } from './organizations.js';
155
+ export { createWhitelabelTools } from './whitelabels.js';
156
+ export { createBillingTools } from './billing.js';
157
+ export { createEnvironmentTools } from './environment.js';
158
+ //# sourceMappingURL=index.js.map