mitra-interactions-sdk 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,15 +1,15 @@
1
1
  # Mitra Interactions SDK
2
2
 
3
- SDK agnóstico para interações com a plataforma Mitra ECP. Funciona com JavaScript, TypeScript, Vue, React, Angular, Node.js e browsers.
3
+ SDK para interações com a plataforma Mitra ECP via endpoints `/agentAiShortcut/`.
4
4
 
5
5
  ## Instalação
6
6
 
7
7
  ```bash
8
- npm install @mitra/interactions-sdk
8
+ npm install mitra-interactions-sdk
9
9
  # ou
10
- yarn add @mitra/interactions-sdk
10
+ yarn add mitra-interactions-sdk
11
11
  # ou
12
- pnpm add @mitra/interactions-sdk
12
+ pnpm add mitra-interactions-sdk
13
13
  ```
14
14
 
15
15
  ## Configuração
@@ -17,249 +17,121 @@ pnpm add @mitra/interactions-sdk
17
17
  Antes de usar qualquer função, configure o SDK:
18
18
 
19
19
  ```typescript
20
- import { configure } from '@mitra/interactions-sdk';
20
+ import { configureSdkMitra } from 'mitra-interactions-sdk';
21
21
 
22
- configure({
22
+ configureSdkMitra({
23
23
  baseURL: 'https://api.mitra.com',
24
24
  token: 'seu-jwt-token',
25
- // Opcionais:
26
- screenId: 123, // ID da tela atual
27
- screenComponentId: 456, // ID do componente
28
- timeout: 30000 // Timeout em ms (padrão: 30000)
25
+ timeout: 30000 // Opcional, padrão: 30000ms
29
26
  });
30
27
  ```
31
28
 
32
- ## Uso
29
+ ## Métodos Disponíveis
33
30
 
34
- ### Query SQL
31
+ ### runQueryMitra
35
32
 
36
- ```typescript
37
- import { queryMitra } from '@mitra/interactions-sdk';
38
-
39
- // Query direta
40
- const result = await queryMitra({
41
- query: 'SELECT * FROM usuarios WHERE ativo = 1'
42
- });
43
-
44
- console.log(result.headers); // ['id', 'nome', 'email']
45
- console.log(result.data); // [[1, 'João', 'joao@email.com'], ...]
46
-
47
- // Com conexão específica
48
- const result = await queryMitra({
49
- query: 'SELECT * FROM produtos',
50
- jdbcId: 5,
51
- onlineTables: true
52
- });
53
-
54
- // Query a partir de variável customizada
55
- import { getQueryMitra } from '@mitra/interactions-sdk';
56
-
57
- const result = await getQueryMitra({
58
- query: 'nome_da_variavel_query'
59
- });
60
- ```
61
-
62
- ### DBAction (Ações de Banco)
33
+ Executa uma query SQL (SELECT) em um projeto.
63
34
 
64
35
  ```typescript
65
- import { dbactionMitra } from '@mitra/interactions-sdk';
36
+ import { runQueryMitra } from 'mitra-interactions-sdk';
66
37
 
67
- // Executa uma ação
68
- const result = await dbactionMitra({ actionIds: 123 });
69
-
70
- // Executa múltiplas ações
71
- const result = await dbactionMitra({ actionIds: [123, 456, 789] });
72
-
73
- // Com filtros de seleção
74
- const result = await dbactionMitra({
75
- actionIds: 123,
76
- selection: [
77
- { dimensionId: 1, value: 'teste' },
78
- { dimensionId: 2, value: 100 }
79
- ]
38
+ const result = await runQueryMitra({
39
+ projectId: 123,
40
+ sql: 'SELECT * FROM usuarios LIMIT 10',
41
+ jdbcId: 1 // Opcional, usa autoConnect se não informado
80
42
  });
81
-
82
- if (result.successfullyExecuted) {
83
- console.log('Ações executadas com sucesso!');
84
- } else {
85
- console.log('Erros:', result.executions.map(e => e.errorMessage));
86
- }
87
43
  ```
88
44
 
89
- ### Variáveis
45
+ ### executeDbActionMitra
90
46
 
91
- ```typescript
92
- import { setVariableMitra, setVariablesBatch } from '@mitra/interactions-sdk';
47
+ Executa uma DBAction (DML) cadastrada.
93
48
 
94
- // Define uma variável
95
- await setVariableMitra({
96
- name: 'filtro_ativo',
97
- content: 'sim'
98
- });
99
-
100
- // Define variável com objeto
101
- await setVariableMitra({
102
- name: 'configuracao',
103
- content: { tema: 'dark', idioma: 'pt-BR' }
49
+ ```typescript
50
+ import { executeDbActionMitra } from 'mitra-interactions-sdk';
51
+
52
+ const result = await executeDbActionMitra({
53
+ projectId: 123,
54
+ dbactionId: 456,
55
+ params: { // Opcional
56
+ campo1: 'valor1',
57
+ campo2: 'valor2'
58
+ }
104
59
  });
105
-
106
- // Define múltiplas variáveis
107
- await setVariablesBatch([
108
- { name: 'var1', content: 'valor1' },
109
- { name: 'var2', content: { objeto: true } }
110
- ]);
111
60
  ```
112
61
 
113
- ### Upload de Arquivos
62
+ ### executeActionMitra
114
63
 
115
- ```typescript
116
- import { uploadFileAsPublic, uploadFileAsLoadable } from '@mitra/interactions-sdk';
117
-
118
- // Upload público (URL acessível sem autenticação)
119
- const url = await uploadFileAsPublic(arquivo);
120
-
121
- // Upload para IA (arquivos carregáveis)
122
- const url = await uploadFileAsLoadable(arquivo);
123
-
124
- // Com nome customizado
125
- const url = await uploadFileAsLoadable(arquivo, 'relatorio-2024.xlsx');
126
- ```
127
-
128
- ### Download de Arquivos
64
+ Executa uma Action (fluxo de ação) cadastrada.
129
65
 
130
66
  ```typescript
131
- import { downloadFileMitra, getFileUrl, downloadFile } from '@mitra/interactions-sdk';
132
-
133
- // Obtém URL autenticada
134
- const result = await downloadFileMitra({ fileKey: 'path/to/file.pdf' });
135
- console.log(result.url);
67
+ import { executeActionMitra } from 'mitra-interactions-sdk';
136
68
 
137
- // Forma simplificada
138
- const url = getFileUrl('path/to/file.pdf');
139
-
140
- // Download como Blob (para manipulação)
141
- const result = await downloadFileMitra({
142
- fileKey: 'path/to/file.pdf',
143
- asBlob: true
69
+ const result = await executeActionMitra({
70
+ projectId: 123,
71
+ actionId: 789,
72
+ params: {} // Opcional
144
73
  });
145
-
146
- // Dispara download no browser
147
- await downloadFile('path/to/file.pdf', 'meu-arquivo.pdf');
148
74
  ```
149
75
 
150
- ## Uso com Classe (OOP)
76
+ ### executeServerFunctionMitra
151
77
 
152
- ```typescript
153
- import { MitraSDK, createMitraSDK } from '@mitra/interactions-sdk';
78
+ Executa uma Server Function cadastrada.
154
79
 
155
- // Usando construtor
156
- const sdk = new MitraSDK({
157
- baseURL: 'https://api.mitra.com',
158
- token: 'seu-jwt-token'
159
- });
80
+ ```typescript
81
+ import { executeServerFunctionMitra } from 'mitra-interactions-sdk';
160
82
 
161
- // Ou usando factory
162
- const sdk = createMitraSDK({
163
- baseURL: 'https://api.mitra.com',
164
- token: 'seu-jwt-token'
83
+ const result = await executeServerFunctionMitra({
84
+ projectId: 123,
85
+ serverfunctionId: 101,
86
+ params: { // Opcional
87
+ arg1: 'valor1'
88
+ }
165
89
  });
166
-
167
- // Usando métodos
168
- const result = await sdk.query({ query: 'SELECT * FROM usuarios' });
169
- await sdk.dbaction({ actionIds: 123 });
170
- await sdk.setVariable({ name: 'teste', content: 'valor' });
171
90
  ```
172
91
 
173
- ## Aliases (Compatibilidade)
92
+ ### setFileStatusMitra
174
93
 
175
- Para facilitar migração, existem aliases simplificados:
94
+ Move arquivo do chat para PUBLIC ou LOADABLE.
176
95
 
177
96
  ```typescript
178
- import { dbaction, setVariable, query, uploadFile } from '@mitra/interactions-sdk';
97
+ import { setFileStatusMitra } from 'mitra-interactions-sdk';
179
98
 
180
- // Forma simplificada
181
- await dbaction(123);
182
- await setVariable('nome', 'valor');
183
- const result = await query('SELECT * FROM tabela');
184
- const url = await uploadFile(arquivo);
99
+ const result = await setFileStatusMitra({
100
+ projectId: 123,
101
+ fileName: 'arquivo.jpg',
102
+ targetPath: 'PUBLIC' // 'PUBLIC' ou 'LOADABLE'
103
+ });
185
104
  ```
186
105
 
187
- ## Uso em Diferentes Frameworks
106
+ ### setVariableMitra
188
107
 
189
- ### Vue.js
108
+ Cria ou atualiza uma variável customizada.
190
109
 
191
110
  ```typescript
192
- // plugins/mitra.ts
193
- import { configure } from '@mitra/interactions-sdk';
111
+ import { setVariableMitra } from 'mitra-interactions-sdk';
194
112
 
195
- export default {
196
- install(app, options) {
197
- configure(options);
198
- }
199
- };
200
-
201
- // main.ts
202
- app.use(mitraPlugin, {
203
- baseURL: import.meta.env.VITE_API_URL,
204
- token: getToken()
113
+ const result = await setVariableMitra({
114
+ projectId: 123,
115
+ key: 'minhaVariavel',
116
+ value: 'meuValor' // Opcional
205
117
  });
206
-
207
- // componente.vue
208
- import { queryMitra } from '@mitra/interactions-sdk';
209
-
210
- const dados = await queryMitra({ query: 'SELECT * FROM tabela' });
211
- ```
212
-
213
- ### React
214
-
215
- ```typescript
216
- // hooks/useMitra.ts
217
- import { useEffect } from 'react';
218
- import { configure, queryMitra } from '@mitra/interactions-sdk';
219
-
220
- export function useMitra(token: string) {
221
- useEffect(() => {
222
- configure({
223
- baseURL: process.env.REACT_APP_API_URL,
224
- token
225
- });
226
- }, [token]);
227
-
228
- return { queryMitra, /* ... */ };
229
- }
230
118
  ```
231
119
 
232
- ### Angular
120
+ ## Tratamento de Erros
233
121
 
234
122
  ```typescript
235
- // mitra.service.ts
236
- import { Injectable } from '@angular/core';
237
- import { configure, queryMitra, dbactionMitra } from '@mitra/interactions-sdk';
238
-
239
- @Injectable({ providedIn: 'root' })
240
- export class MitraService {
241
- configure(config) {
242
- configure(config);
243
- }
244
-
245
- query = queryMitra;
246
- dbaction = dbactionMitra;
123
+ try {
124
+ const result = await runQueryMitra({
125
+ projectId: 123,
126
+ sql: 'SELECT * FROM tabela'
127
+ });
128
+ } catch (error) {
129
+ console.log('Erro:', error.message);
130
+ console.log('Status:', error.status);
131
+ console.log('Detalhes:', error.details);
247
132
  }
248
133
  ```
249
134
 
250
- ### Node.js
251
-
252
- ```typescript
253
- import { configure, queryMitra } from '@mitra/interactions-sdk';
254
-
255
- configure({
256
- baseURL: process.env.MITRA_API_URL,
257
- token: process.env.MITRA_TOKEN
258
- });
259
-
260
- const result = await queryMitra({ query: 'SELECT * FROM tabela' });
261
- ```
262
-
263
135
  ## Tipos TypeScript
264
136
 
265
137
  Todos os tipos estão incluídos:
@@ -267,62 +139,13 @@ Todos os tipos estão incluídos:
267
139
  ```typescript
268
140
  import type {
269
141
  MitraConfig,
270
- QueryResult,
271
- DBActionResult,
272
- UploadResult
273
- } from '@mitra/interactions-sdk';
274
- ```
275
-
276
- ## Tratamento de Erros
277
-
278
- ```typescript
279
- import { queryMitra } from '@mitra/interactions-sdk';
280
- import type { ApiError } from '@mitra/interactions-sdk';
281
-
282
- try {
283
- const result = await queryMitra({ query: 'SELECT * FROM tabela' });
284
- } catch (error) {
285
- const apiError = error as ApiError;
286
- console.log('Erro:', apiError.message);
287
- console.log('Status:', apiError.status);
288
- console.log('Detalhes:', apiError.details);
289
- }
290
- ```
291
-
292
- ## Cancelamento de Requisições
293
-
294
- ```typescript
295
- const controller = new AbortController();
296
-
297
- // Inicia a requisição
298
- const promise = queryMitra({
299
- query: 'SELECT * FROM tabela_grande',
300
- signal: controller.signal
301
- });
302
-
303
- // Cancela após 5 segundos
304
- setTimeout(() => controller.abort(), 5000);
305
-
306
- try {
307
- const result = await promise;
308
- } catch (error) {
309
- if (error.name === 'AbortError') {
310
- console.log('Requisição cancelada');
311
- }
312
- }
313
- ```
314
-
315
- ## Compatibilidade
316
-
317
- - **Browsers**: Chrome 67+, Firefox 68+, Safari 14+, Edge 79+
318
- - **Node.js**: 14+ (18+ para fetch nativo)
319
- - **Bundlers**: Webpack, Vite, Rollup, esbuild
320
- - **Frameworks**: Vue 2/3, React, Angular, Svelte, etc.
321
-
322
- ## Build
323
-
324
- ```bash
325
- npm run build
142
+ RunQueryOptions,
143
+ ExecuteDbActionOptions,
144
+ ExecuteActionOptions,
145
+ ExecuteServerFunctionOptions,
146
+ SetFileStatusOptions,
147
+ SetVariableOptions
148
+ } from 'mitra-interactions-sdk';
326
149
  ```
327
150
 
328
151
  ## Licença
package/dist/index.d.mts CHANGED
@@ -6,8 +6,6 @@ interface MitraConfig {
6
6
  baseURL: string;
7
7
  /** Token JWT para autenticação */
8
8
  token: string;
9
- /** ID do projeto (opcional, pode ser passado em cada chamada) */
10
- projectId?: number;
11
9
  /** Timeout em ms (padrão: 30000) */
12
10
  timeout?: number;
13
11
  }
@@ -33,7 +31,7 @@ declare function clearConfig(): void;
33
31
  */
34
32
  interface RunQueryOptions {
35
33
  /** ID do projeto */
36
- projectId?: number;
34
+ projectId: number;
37
35
  /** Query SQL (apenas SELECT) */
38
36
  sql: string;
39
37
  /** ID da conexão JDBC (opcional, usa autoConnect se não informado) */
@@ -41,7 +39,7 @@ interface RunQueryOptions {
41
39
  }
42
40
  interface ExecuteDbActionOptions {
43
41
  /** ID do projeto */
44
- projectId?: number;
42
+ projectId: number;
45
43
  /** ID da DBAction cadastrada */
46
44
  dbactionId: number;
47
45
  /** Variáveis para o statement (opcional) */
@@ -49,7 +47,7 @@ interface ExecuteDbActionOptions {
49
47
  }
50
48
  interface ExecuteActionOptions {
51
49
  /** ID do projeto */
52
- projectId?: number;
50
+ projectId: number;
53
51
  /** ID da Action (fluxo de ação) cadastrada */
54
52
  actionId: number;
55
53
  /** Variáveis para a action (opcional) */
@@ -57,7 +55,7 @@ interface ExecuteActionOptions {
57
55
  }
58
56
  interface SetFileStatusOptions {
59
57
  /** ID do projeto */
60
- projectId?: number;
58
+ projectId: number;
61
59
  /** Nome do arquivo */
62
60
  fileName: string;
63
61
  /** Caminho de destino: "PUBLIC" ou "LOADABLE" */
@@ -65,7 +63,7 @@ interface SetFileStatusOptions {
65
63
  }
66
64
  interface SetVariableOptions {
67
65
  /** ID do projeto */
68
- projectId?: number;
66
+ projectId: number;
69
67
  /** Nome da variável (key) */
70
68
  key: string;
71
69
  /** Valor da variável (opcional) */
@@ -73,7 +71,7 @@ interface SetVariableOptions {
73
71
  }
74
72
  interface ExecuteServerFunctionOptions {
75
73
  /** ID do projeto */
76
- projectId?: number;
74
+ projectId: number;
77
75
  /** ID da Server Function cadastrada */
78
76
  serverfunctionId: number;
79
77
  /** Parâmetros para a função (opcional) */
package/dist/index.d.ts CHANGED
@@ -6,8 +6,6 @@ interface MitraConfig {
6
6
  baseURL: string;
7
7
  /** Token JWT para autenticação */
8
8
  token: string;
9
- /** ID do projeto (opcional, pode ser passado em cada chamada) */
10
- projectId?: number;
11
9
  /** Timeout em ms (padrão: 30000) */
12
10
  timeout?: number;
13
11
  }
@@ -33,7 +31,7 @@ declare function clearConfig(): void;
33
31
  */
34
32
  interface RunQueryOptions {
35
33
  /** ID do projeto */
36
- projectId?: number;
34
+ projectId: number;
37
35
  /** Query SQL (apenas SELECT) */
38
36
  sql: string;
39
37
  /** ID da conexão JDBC (opcional, usa autoConnect se não informado) */
@@ -41,7 +39,7 @@ interface RunQueryOptions {
41
39
  }
42
40
  interface ExecuteDbActionOptions {
43
41
  /** ID do projeto */
44
- projectId?: number;
42
+ projectId: number;
45
43
  /** ID da DBAction cadastrada */
46
44
  dbactionId: number;
47
45
  /** Variáveis para o statement (opcional) */
@@ -49,7 +47,7 @@ interface ExecuteDbActionOptions {
49
47
  }
50
48
  interface ExecuteActionOptions {
51
49
  /** ID do projeto */
52
- projectId?: number;
50
+ projectId: number;
53
51
  /** ID da Action (fluxo de ação) cadastrada */
54
52
  actionId: number;
55
53
  /** Variáveis para a action (opcional) */
@@ -57,7 +55,7 @@ interface ExecuteActionOptions {
57
55
  }
58
56
  interface SetFileStatusOptions {
59
57
  /** ID do projeto */
60
- projectId?: number;
58
+ projectId: number;
61
59
  /** Nome do arquivo */
62
60
  fileName: string;
63
61
  /** Caminho de destino: "PUBLIC" ou "LOADABLE" */
@@ -65,7 +63,7 @@ interface SetFileStatusOptions {
65
63
  }
66
64
  interface SetVariableOptions {
67
65
  /** ID do projeto */
68
- projectId?: number;
66
+ projectId: number;
69
67
  /** Nome da variável (key) */
70
68
  key: string;
71
69
  /** Valor da variável (opcional) */
@@ -73,7 +71,7 @@ interface SetVariableOptions {
73
71
  }
74
72
  interface ExecuteServerFunctionOptions {
75
73
  /** ID do projeto */
76
- projectId?: number;
74
+ projectId: number;
77
75
  /** ID da Server Function cadastrada */
78
76
  serverfunctionId: number;
79
77
  /** Parâmetros para a função (opcional) */
package/dist/index.js CHANGED
@@ -81,10 +81,8 @@ var http = {
81
81
 
82
82
  // src/services.ts
83
83
  async function runQueryMitra(options) {
84
- var _a;
85
- const config = getConfig();
86
84
  const body = {
87
- projectId: (_a = options.projectId) != null ? _a : config.projectId,
85
+ projectId: options.projectId,
88
86
  sql: options.sql
89
87
  };
90
88
  if (options.jdbcId !== void 0) {
@@ -93,10 +91,8 @@ async function runQueryMitra(options) {
93
91
  return http.post("/agentAiShortcut/runQuery", body);
94
92
  }
95
93
  async function executeDbActionMitra(options) {
96
- var _a;
97
- const config = getConfig();
98
94
  const body = {
99
- projectId: (_a = options.projectId) != null ? _a : config.projectId,
95
+ projectId: options.projectId,
100
96
  dbactionId: options.dbactionId
101
97
  };
102
98
  if (options.params !== void 0) {
@@ -105,10 +101,8 @@ async function executeDbActionMitra(options) {
105
101
  return http.post("/agentAiShortcut/executeDbAction", body);
106
102
  }
107
103
  async function executeActionMitra(options) {
108
- var _a;
109
- const config = getConfig();
110
104
  const body = {
111
- projectId: (_a = options.projectId) != null ? _a : config.projectId,
105
+ projectId: options.projectId,
112
106
  actionId: options.actionId
113
107
  };
114
108
  if (options.params !== void 0) {
@@ -117,19 +111,15 @@ async function executeActionMitra(options) {
117
111
  return http.post("/agentAiShortcut/runAction", body);
118
112
  }
119
113
  async function setFileStatusMitra(options) {
120
- var _a;
121
- const config = getConfig();
122
114
  return http.post("/agentAiShortcut/setFileStatus", {
123
- projectId: (_a = options.projectId) != null ? _a : config.projectId,
115
+ projectId: options.projectId,
124
116
  fileName: options.fileName,
125
117
  targetPath: options.targetPath
126
118
  });
127
119
  }
128
120
  async function setVariableMitra(options) {
129
- var _a;
130
- const config = getConfig();
131
121
  const body = {
132
- projectId: (_a = options.projectId) != null ? _a : config.projectId,
122
+ projectId: options.projectId,
133
123
  key: options.key
134
124
  };
135
125
  if (options.value !== void 0) {
@@ -138,10 +128,8 @@ async function setVariableMitra(options) {
138
128
  return http.post("/agentAiShortcut/setVariable", body);
139
129
  }
140
130
  async function executeServerFunctionMitra(options) {
141
- var _a;
142
- const config = getConfig();
143
131
  const body = {
144
- projectId: (_a = options.projectId) != null ? _a : config.projectId,
132
+ projectId: options.projectId,
145
133
  serverfunctionId: options.serverfunctionId
146
134
  };
147
135
  if (options.params !== void 0) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/config.ts","../src/client.ts","../src/services.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Mitra Interactions SDK - Configuração\n */\n\nexport interface MitraConfig {\n /** URL base da API (ex: https://api.mitra.com) */\n baseURL: string;\n /** Token JWT para autenticação */\n token: string;\n /** ID do projeto (opcional, pode ser passado em cada chamada) */\n projectId?: number;\n /** Timeout em ms (padrão: 30000) */\n timeout?: number;\n}\n\nlet globalConfig: MitraConfig | null = null;\n\n/**\n * Configura o SDK globalmente\n */\nexport function configureSdkMitra(config: MitraConfig): void {\n if (!config.baseURL) {\n throw new Error('baseURL é obrigatório');\n }\n if (!config.token) {\n throw new Error('token é obrigatório');\n }\n\n globalConfig = {\n ...config,\n timeout: config.timeout ?? 30000\n };\n}\n\n/**\n * Obtém a configuração atual\n */\nexport function getConfig(): MitraConfig {\n if (!globalConfig) {\n throw new Error('SDK não configurado. Chame configureSdkMitra() primeiro.');\n }\n return globalConfig;\n}\n\n/**\n * Verifica se o SDK está configurado\n */\nexport function isConfigured(): boolean {\n return globalConfig !== null;\n}\n\n/**\n * Limpa a configuração\n */\nexport function clearConfig(): void {\n globalConfig = null;\n}\n","/**\n * Mitra Interactions SDK - HTTP Client\n */\n\nimport { getConfig } from './config';\n\n/**\n * Obtém a função fetch\n */\nfunction getFetch(): typeof fetch {\n if (typeof globalThis.fetch === 'function') {\n return globalThis.fetch;\n }\n throw new Error('fetch não disponível. Use Node.js 18+ ou instale node-fetch.');\n}\n\n/**\n * Formata o token para Authorization\n */\nfunction formatToken(token: string): string {\n return token.startsWith('Bearer ') ? token : `Bearer ${token}`;\n}\n\n/**\n * Constrói os headers\n */\nfunction buildHeaders(): Record<string, string> {\n const config = getConfig();\n return {\n 'Authorization': formatToken(config.token),\n 'Content-Type': 'application/json'\n };\n}\n\n/**\n * Constrói a URL\n */\nfunction buildUrl(endpoint: string): string {\n const config = getConfig();\n return `${config.baseURL}${endpoint}`;\n}\n\n/**\n * Cliente HTTP\n */\nexport const http = {\n async post<T>(endpoint: string, body?: unknown): Promise<T> {\n const fetchFn = getFetch();\n const config = getConfig();\n\n const controller = new AbortController();\n const timeout = config.timeout ?? 30000;\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n try {\n const response = await fetchFn(buildUrl(endpoint), {\n method: 'POST',\n headers: buildHeaders(),\n body: body !== undefined ? JSON.stringify(body) : undefined,\n signal: controller.signal\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw {\n message: data?.message || data?.error || `HTTP ${response.status}`,\n status: response.status,\n details: data\n };\n }\n\n return data as T;\n } finally {\n clearTimeout(timeoutId);\n }\n }\n};\n","/**\n * Mitra Interactions SDK - Services\n */\n\nimport { http } from './client';\nimport { getConfig } from './config';\nimport type {\n RunQueryOptions,\n ExecuteDbActionOptions,\n ExecuteActionOptions,\n SetFileStatusOptions,\n SetVariableOptions,\n ExecuteServerFunctionOptions\n} from './types';\n\n/**\n * POST /agentAiShortcut/runQuery\n * Executa query SELECT em um projeto\n */\nexport async function runQueryMitra(options: RunQueryOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n sql: options.sql\n };\n\n if (options.jdbcId !== undefined) {\n body.jdbcId = options.jdbcId;\n }\n\n return http.post('/agentAiShortcut/runQuery', body);\n}\n\n/**\n * POST /agentAiShortcut/executeDbAction\n * Executa uma DBAction (DML) cadastrada\n */\nexport async function executeDbActionMitra(options: ExecuteDbActionOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n dbactionId: options.dbactionId\n };\n\n if (options.params !== undefined) {\n body.params = options.params;\n }\n\n return http.post('/agentAiShortcut/executeDbAction', body);\n}\n\n/**\n * POST /agentAiShortcut/runAction\n * Executa uma Action (fluxo de ação) cadastrada\n */\nexport async function executeActionMitra(options: ExecuteActionOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n actionId: options.actionId\n };\n\n if (options.params !== undefined) {\n body.params = options.params;\n }\n\n return http.post('/agentAiShortcut/runAction', body);\n}\n\n/**\n * POST /agentAiShortcut/setFileStatus\n * Move arquivo do chat para PUBLIC ou LOADABLE\n */\nexport async function setFileStatusMitra(options: SetFileStatusOptions): Promise<unknown> {\n const config = getConfig();\n\n return http.post('/agentAiShortcut/setFileStatus', {\n projectId: options.projectId ?? config.projectId,\n fileName: options.fileName,\n targetPath: options.targetPath\n });\n}\n\n/**\n * POST /agentAiShortcut/setVariable\n * Cria ou atualiza uma variável customizada\n */\nexport async function setVariableMitra(options: SetVariableOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n key: options.key\n };\n\n if (options.value !== undefined) {\n body.value = options.value;\n }\n\n return http.post('/agentAiShortcut/setVariable', body);\n}\n\n/**\n * POST /agentAiShortcut/executeServerFunction\n * Executa uma Server Function cadastrada\n */\nexport async function executeServerFunctionMitra(options: ExecuteServerFunctionOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n serverfunctionId: options.serverfunctionId\n };\n\n if (options.params !== undefined) {\n body.args = options.params;\n }\n\n return http.post('/agentAiShortcut/executeServerFunction', body);\n}\n"]}
1
+ {"version":3,"sources":["../src/config.ts","../src/client.ts","../src/services.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Mitra Interactions SDK - Configuração\n */\n\nexport interface MitraConfig {\n /** URL base da API (ex: https://api.mitra.com) */\n baseURL: string;\n /** Token JWT para autenticação */\n token: string;\n /** Timeout em ms (padrão: 30000) */\n timeout?: number;\n}\n\nlet globalConfig: MitraConfig | null = null;\n\n/**\n * Configura o SDK globalmente\n */\nexport function configureSdkMitra(config: MitraConfig): void {\n if (!config.baseURL) {\n throw new Error('baseURL é obrigatório');\n }\n if (!config.token) {\n throw new Error('token é obrigatório');\n }\n\n globalConfig = {\n ...config,\n timeout: config.timeout ?? 30000\n };\n}\n\n/**\n * Obtém a configuração atual\n */\nexport function getConfig(): MitraConfig {\n if (!globalConfig) {\n throw new Error('SDK não configurado. Chame configureSdkMitra() primeiro.');\n }\n return globalConfig;\n}\n\n/**\n * Verifica se o SDK está configurado\n */\nexport function isConfigured(): boolean {\n return globalConfig !== null;\n}\n\n/**\n * Limpa a configuração\n */\nexport function clearConfig(): void {\n globalConfig = null;\n}\n","/**\n * Mitra Interactions SDK - HTTP Client\n */\n\nimport { getConfig } from './config';\n\n/**\n * Obtém a função fetch\n */\nfunction getFetch(): typeof fetch {\n if (typeof globalThis.fetch === 'function') {\n return globalThis.fetch;\n }\n throw new Error('fetch não disponível. Use Node.js 18+ ou instale node-fetch.');\n}\n\n/**\n * Formata o token para Authorization\n */\nfunction formatToken(token: string): string {\n return token.startsWith('Bearer ') ? token : `Bearer ${token}`;\n}\n\n/**\n * Constrói os headers\n */\nfunction buildHeaders(): Record<string, string> {\n const config = getConfig();\n return {\n 'Authorization': formatToken(config.token),\n 'Content-Type': 'application/json'\n };\n}\n\n/**\n * Constrói a URL\n */\nfunction buildUrl(endpoint: string): string {\n const config = getConfig();\n return `${config.baseURL}${endpoint}`;\n}\n\n/**\n * Cliente HTTP\n */\nexport const http = {\n async post<T>(endpoint: string, body?: unknown): Promise<T> {\n const fetchFn = getFetch();\n const config = getConfig();\n\n const controller = new AbortController();\n const timeout = config.timeout ?? 30000;\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n try {\n const response = await fetchFn(buildUrl(endpoint), {\n method: 'POST',\n headers: buildHeaders(),\n body: body !== undefined ? JSON.stringify(body) : undefined,\n signal: controller.signal\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw {\n message: data?.message || data?.error || `HTTP ${response.status}`,\n status: response.status,\n details: data\n };\n }\n\n return data as T;\n } finally {\n clearTimeout(timeoutId);\n }\n }\n};\n","/**\n * Mitra Interactions SDK - Services\n */\n\nimport { http } from './client';\nimport type {\n RunQueryOptions,\n ExecuteDbActionOptions,\n ExecuteActionOptions,\n SetFileStatusOptions,\n SetVariableOptions,\n ExecuteServerFunctionOptions\n} from './types';\n\n/**\n * POST /agentAiShortcut/runQuery\n * Executa query SELECT em um projeto\n */\nexport async function runQueryMitra(options: RunQueryOptions): Promise<unknown> {\n const body: Record<string, unknown> = {\n projectId: options.projectId,\n sql: options.sql\n };\n\n if (options.jdbcId !== undefined) {\n body.jdbcId = options.jdbcId;\n }\n\n return http.post('/agentAiShortcut/runQuery', body);\n}\n\n/**\n * POST /agentAiShortcut/executeDbAction\n * Executa uma DBAction (DML) cadastrada\n */\nexport async function executeDbActionMitra(options: ExecuteDbActionOptions): Promise<unknown> {\n const body: Record<string, unknown> = {\n projectId: options.projectId,\n dbactionId: options.dbactionId\n };\n\n if (options.params !== undefined) {\n body.params = options.params;\n }\n\n return http.post('/agentAiShortcut/executeDbAction', body);\n}\n\n/**\n * POST /agentAiShortcut/runAction\n * Executa uma Action (fluxo de ação) cadastrada\n */\nexport async function executeActionMitra(options: ExecuteActionOptions): Promise<unknown> {\n const body: Record<string, unknown> = {\n projectId: options.projectId,\n actionId: options.actionId\n };\n\n if (options.params !== undefined) {\n body.params = options.params;\n }\n\n return http.post('/agentAiShortcut/runAction', body);\n}\n\n/**\n * POST /agentAiShortcut/setFileStatus\n * Move arquivo do chat para PUBLIC ou LOADABLE\n */\nexport async function setFileStatusMitra(options: SetFileStatusOptions): Promise<unknown> {\n return http.post('/agentAiShortcut/setFileStatus', {\n projectId: options.projectId,\n fileName: options.fileName,\n targetPath: options.targetPath\n });\n}\n\n/**\n * POST /agentAiShortcut/setVariable\n * Cria ou atualiza uma variável customizada\n */\nexport async function setVariableMitra(options: SetVariableOptions): Promise<unknown> {\n const body: Record<string, unknown> = {\n projectId: options.projectId,\n key: options.key\n };\n\n if (options.value !== undefined) {\n body.value = options.value;\n }\n\n return http.post('/agentAiShortcut/setVariable', body);\n}\n\n/**\n * POST /agentAiShortcut/executeServerFunction\n * Executa uma Server Function cadastrada\n */\nexport async function executeServerFunctionMitra(options: ExecuteServerFunctionOptions): Promise<unknown> {\n const body: Record<string, unknown> = {\n projectId: options.projectId,\n serverfunctionId: options.serverfunctionId\n };\n\n if (options.params !== undefined) {\n body.args = options.params;\n }\n\n return http.post('/agentAiShortcut/executeServerFunction', body);\n}\n"]}
package/dist/index.mjs CHANGED
@@ -79,10 +79,8 @@ var http = {
79
79
 
80
80
  // src/services.ts
81
81
  async function runQueryMitra(options) {
82
- var _a;
83
- const config = getConfig();
84
82
  const body = {
85
- projectId: (_a = options.projectId) != null ? _a : config.projectId,
83
+ projectId: options.projectId,
86
84
  sql: options.sql
87
85
  };
88
86
  if (options.jdbcId !== void 0) {
@@ -91,10 +89,8 @@ async function runQueryMitra(options) {
91
89
  return http.post("/agentAiShortcut/runQuery", body);
92
90
  }
93
91
  async function executeDbActionMitra(options) {
94
- var _a;
95
- const config = getConfig();
96
92
  const body = {
97
- projectId: (_a = options.projectId) != null ? _a : config.projectId,
93
+ projectId: options.projectId,
98
94
  dbactionId: options.dbactionId
99
95
  };
100
96
  if (options.params !== void 0) {
@@ -103,10 +99,8 @@ async function executeDbActionMitra(options) {
103
99
  return http.post("/agentAiShortcut/executeDbAction", body);
104
100
  }
105
101
  async function executeActionMitra(options) {
106
- var _a;
107
- const config = getConfig();
108
102
  const body = {
109
- projectId: (_a = options.projectId) != null ? _a : config.projectId,
103
+ projectId: options.projectId,
110
104
  actionId: options.actionId
111
105
  };
112
106
  if (options.params !== void 0) {
@@ -115,19 +109,15 @@ async function executeActionMitra(options) {
115
109
  return http.post("/agentAiShortcut/runAction", body);
116
110
  }
117
111
  async function setFileStatusMitra(options) {
118
- var _a;
119
- const config = getConfig();
120
112
  return http.post("/agentAiShortcut/setFileStatus", {
121
- projectId: (_a = options.projectId) != null ? _a : config.projectId,
113
+ projectId: options.projectId,
122
114
  fileName: options.fileName,
123
115
  targetPath: options.targetPath
124
116
  });
125
117
  }
126
118
  async function setVariableMitra(options) {
127
- var _a;
128
- const config = getConfig();
129
119
  const body = {
130
- projectId: (_a = options.projectId) != null ? _a : config.projectId,
120
+ projectId: options.projectId,
131
121
  key: options.key
132
122
  };
133
123
  if (options.value !== void 0) {
@@ -136,10 +126,8 @@ async function setVariableMitra(options) {
136
126
  return http.post("/agentAiShortcut/setVariable", body);
137
127
  }
138
128
  async function executeServerFunctionMitra(options) {
139
- var _a;
140
- const config = getConfig();
141
129
  const body = {
142
- projectId: (_a = options.projectId) != null ? _a : config.projectId,
130
+ projectId: options.projectId,
143
131
  serverfunctionId: options.serverfunctionId
144
132
  };
145
133
  if (options.params !== void 0) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/config.ts","../src/client.ts","../src/services.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * Mitra Interactions SDK - Configuração\n */\n\nexport interface MitraConfig {\n /** URL base da API (ex: https://api.mitra.com) */\n baseURL: string;\n /** Token JWT para autenticação */\n token: string;\n /** ID do projeto (opcional, pode ser passado em cada chamada) */\n projectId?: number;\n /** Timeout em ms (padrão: 30000) */\n timeout?: number;\n}\n\nlet globalConfig: MitraConfig | null = null;\n\n/**\n * Configura o SDK globalmente\n */\nexport function configureSdkMitra(config: MitraConfig): void {\n if (!config.baseURL) {\n throw new Error('baseURL é obrigatório');\n }\n if (!config.token) {\n throw new Error('token é obrigatório');\n }\n\n globalConfig = {\n ...config,\n timeout: config.timeout ?? 30000\n };\n}\n\n/**\n * Obtém a configuração atual\n */\nexport function getConfig(): MitraConfig {\n if (!globalConfig) {\n throw new Error('SDK não configurado. Chame configureSdkMitra() primeiro.');\n }\n return globalConfig;\n}\n\n/**\n * Verifica se o SDK está configurado\n */\nexport function isConfigured(): boolean {\n return globalConfig !== null;\n}\n\n/**\n * Limpa a configuração\n */\nexport function clearConfig(): void {\n globalConfig = null;\n}\n","/**\n * Mitra Interactions SDK - HTTP Client\n */\n\nimport { getConfig } from './config';\n\n/**\n * Obtém a função fetch\n */\nfunction getFetch(): typeof fetch {\n if (typeof globalThis.fetch === 'function') {\n return globalThis.fetch;\n }\n throw new Error('fetch não disponível. Use Node.js 18+ ou instale node-fetch.');\n}\n\n/**\n * Formata o token para Authorization\n */\nfunction formatToken(token: string): string {\n return token.startsWith('Bearer ') ? token : `Bearer ${token}`;\n}\n\n/**\n * Constrói os headers\n */\nfunction buildHeaders(): Record<string, string> {\n const config = getConfig();\n return {\n 'Authorization': formatToken(config.token),\n 'Content-Type': 'application/json'\n };\n}\n\n/**\n * Constrói a URL\n */\nfunction buildUrl(endpoint: string): string {\n const config = getConfig();\n return `${config.baseURL}${endpoint}`;\n}\n\n/**\n * Cliente HTTP\n */\nexport const http = {\n async post<T>(endpoint: string, body?: unknown): Promise<T> {\n const fetchFn = getFetch();\n const config = getConfig();\n\n const controller = new AbortController();\n const timeout = config.timeout ?? 30000;\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n try {\n const response = await fetchFn(buildUrl(endpoint), {\n method: 'POST',\n headers: buildHeaders(),\n body: body !== undefined ? JSON.stringify(body) : undefined,\n signal: controller.signal\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw {\n message: data?.message || data?.error || `HTTP ${response.status}`,\n status: response.status,\n details: data\n };\n }\n\n return data as T;\n } finally {\n clearTimeout(timeoutId);\n }\n }\n};\n","/**\n * Mitra Interactions SDK - Services\n */\n\nimport { http } from './client';\nimport { getConfig } from './config';\nimport type {\n RunQueryOptions,\n ExecuteDbActionOptions,\n ExecuteActionOptions,\n SetFileStatusOptions,\n SetVariableOptions,\n ExecuteServerFunctionOptions\n} from './types';\n\n/**\n * POST /agentAiShortcut/runQuery\n * Executa query SELECT em um projeto\n */\nexport async function runQueryMitra(options: RunQueryOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n sql: options.sql\n };\n\n if (options.jdbcId !== undefined) {\n body.jdbcId = options.jdbcId;\n }\n\n return http.post('/agentAiShortcut/runQuery', body);\n}\n\n/**\n * POST /agentAiShortcut/executeDbAction\n * Executa uma DBAction (DML) cadastrada\n */\nexport async function executeDbActionMitra(options: ExecuteDbActionOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n dbactionId: options.dbactionId\n };\n\n if (options.params !== undefined) {\n body.params = options.params;\n }\n\n return http.post('/agentAiShortcut/executeDbAction', body);\n}\n\n/**\n * POST /agentAiShortcut/runAction\n * Executa uma Action (fluxo de ação) cadastrada\n */\nexport async function executeActionMitra(options: ExecuteActionOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n actionId: options.actionId\n };\n\n if (options.params !== undefined) {\n body.params = options.params;\n }\n\n return http.post('/agentAiShortcut/runAction', body);\n}\n\n/**\n * POST /agentAiShortcut/setFileStatus\n * Move arquivo do chat para PUBLIC ou LOADABLE\n */\nexport async function setFileStatusMitra(options: SetFileStatusOptions): Promise<unknown> {\n const config = getConfig();\n\n return http.post('/agentAiShortcut/setFileStatus', {\n projectId: options.projectId ?? config.projectId,\n fileName: options.fileName,\n targetPath: options.targetPath\n });\n}\n\n/**\n * POST /agentAiShortcut/setVariable\n * Cria ou atualiza uma variável customizada\n */\nexport async function setVariableMitra(options: SetVariableOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n key: options.key\n };\n\n if (options.value !== undefined) {\n body.value = options.value;\n }\n\n return http.post('/agentAiShortcut/setVariable', body);\n}\n\n/**\n * POST /agentAiShortcut/executeServerFunction\n * Executa uma Server Function cadastrada\n */\nexport async function executeServerFunctionMitra(options: ExecuteServerFunctionOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n serverfunctionId: options.serverfunctionId\n };\n\n if (options.params !== undefined) {\n body.args = options.params;\n }\n\n return http.post('/agentAiShortcut/executeServerFunction', body);\n}\n"]}
1
+ {"version":3,"sources":["../src/config.ts","../src/client.ts","../src/services.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * Mitra Interactions SDK - Configuração\n */\n\nexport interface MitraConfig {\n /** URL base da API (ex: https://api.mitra.com) */\n baseURL: string;\n /** Token JWT para autenticação */\n token: string;\n /** Timeout em ms (padrão: 30000) */\n timeout?: number;\n}\n\nlet globalConfig: MitraConfig | null = null;\n\n/**\n * Configura o SDK globalmente\n */\nexport function configureSdkMitra(config: MitraConfig): void {\n if (!config.baseURL) {\n throw new Error('baseURL é obrigatório');\n }\n if (!config.token) {\n throw new Error('token é obrigatório');\n }\n\n globalConfig = {\n ...config,\n timeout: config.timeout ?? 30000\n };\n}\n\n/**\n * Obtém a configuração atual\n */\nexport function getConfig(): MitraConfig {\n if (!globalConfig) {\n throw new Error('SDK não configurado. Chame configureSdkMitra() primeiro.');\n }\n return globalConfig;\n}\n\n/**\n * Verifica se o SDK está configurado\n */\nexport function isConfigured(): boolean {\n return globalConfig !== null;\n}\n\n/**\n * Limpa a configuração\n */\nexport function clearConfig(): void {\n globalConfig = null;\n}\n","/**\n * Mitra Interactions SDK - HTTP Client\n */\n\nimport { getConfig } from './config';\n\n/**\n * Obtém a função fetch\n */\nfunction getFetch(): typeof fetch {\n if (typeof globalThis.fetch === 'function') {\n return globalThis.fetch;\n }\n throw new Error('fetch não disponível. Use Node.js 18+ ou instale node-fetch.');\n}\n\n/**\n * Formata o token para Authorization\n */\nfunction formatToken(token: string): string {\n return token.startsWith('Bearer ') ? token : `Bearer ${token}`;\n}\n\n/**\n * Constrói os headers\n */\nfunction buildHeaders(): Record<string, string> {\n const config = getConfig();\n return {\n 'Authorization': formatToken(config.token),\n 'Content-Type': 'application/json'\n };\n}\n\n/**\n * Constrói a URL\n */\nfunction buildUrl(endpoint: string): string {\n const config = getConfig();\n return `${config.baseURL}${endpoint}`;\n}\n\n/**\n * Cliente HTTP\n */\nexport const http = {\n async post<T>(endpoint: string, body?: unknown): Promise<T> {\n const fetchFn = getFetch();\n const config = getConfig();\n\n const controller = new AbortController();\n const timeout = config.timeout ?? 30000;\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n try {\n const response = await fetchFn(buildUrl(endpoint), {\n method: 'POST',\n headers: buildHeaders(),\n body: body !== undefined ? JSON.stringify(body) : undefined,\n signal: controller.signal\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw {\n message: data?.message || data?.error || `HTTP ${response.status}`,\n status: response.status,\n details: data\n };\n }\n\n return data as T;\n } finally {\n clearTimeout(timeoutId);\n }\n }\n};\n","/**\n * Mitra Interactions SDK - Services\n */\n\nimport { http } from './client';\nimport type {\n RunQueryOptions,\n ExecuteDbActionOptions,\n ExecuteActionOptions,\n SetFileStatusOptions,\n SetVariableOptions,\n ExecuteServerFunctionOptions\n} from './types';\n\n/**\n * POST /agentAiShortcut/runQuery\n * Executa query SELECT em um projeto\n */\nexport async function runQueryMitra(options: RunQueryOptions): Promise<unknown> {\n const body: Record<string, unknown> = {\n projectId: options.projectId,\n sql: options.sql\n };\n\n if (options.jdbcId !== undefined) {\n body.jdbcId = options.jdbcId;\n }\n\n return http.post('/agentAiShortcut/runQuery', body);\n}\n\n/**\n * POST /agentAiShortcut/executeDbAction\n * Executa uma DBAction (DML) cadastrada\n */\nexport async function executeDbActionMitra(options: ExecuteDbActionOptions): Promise<unknown> {\n const body: Record<string, unknown> = {\n projectId: options.projectId,\n dbactionId: options.dbactionId\n };\n\n if (options.params !== undefined) {\n body.params = options.params;\n }\n\n return http.post('/agentAiShortcut/executeDbAction', body);\n}\n\n/**\n * POST /agentAiShortcut/runAction\n * Executa uma Action (fluxo de ação) cadastrada\n */\nexport async function executeActionMitra(options: ExecuteActionOptions): Promise<unknown> {\n const body: Record<string, unknown> = {\n projectId: options.projectId,\n actionId: options.actionId\n };\n\n if (options.params !== undefined) {\n body.params = options.params;\n }\n\n return http.post('/agentAiShortcut/runAction', body);\n}\n\n/**\n * POST /agentAiShortcut/setFileStatus\n * Move arquivo do chat para PUBLIC ou LOADABLE\n */\nexport async function setFileStatusMitra(options: SetFileStatusOptions): Promise<unknown> {\n return http.post('/agentAiShortcut/setFileStatus', {\n projectId: options.projectId,\n fileName: options.fileName,\n targetPath: options.targetPath\n });\n}\n\n/**\n * POST /agentAiShortcut/setVariable\n * Cria ou atualiza uma variável customizada\n */\nexport async function setVariableMitra(options: SetVariableOptions): Promise<unknown> {\n const body: Record<string, unknown> = {\n projectId: options.projectId,\n key: options.key\n };\n\n if (options.value !== undefined) {\n body.value = options.value;\n }\n\n return http.post('/agentAiShortcut/setVariable', body);\n}\n\n/**\n * POST /agentAiShortcut/executeServerFunction\n * Executa uma Server Function cadastrada\n */\nexport async function executeServerFunctionMitra(options: ExecuteServerFunctionOptions): Promise<unknown> {\n const body: Record<string, unknown> = {\n projectId: options.projectId,\n serverfunctionId: options.serverfunctionId\n };\n\n if (options.params !== undefined) {\n body.args = options.params;\n }\n\n return http.post('/agentAiShortcut/executeServerFunction', body);\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mitra-interactions-sdk",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "SDK agnóstico para interações com a plataforma Mitra ECP",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -13,7 +13,8 @@
13
13
  }
14
14
  },
15
15
  "files": [
16
- "dist"
16
+ "dist",
17
+ "README.md"
17
18
  ],
18
19
  "scripts": {
19
20
  "build": "tsup src/index.ts --format cjs,esm --dts --clean",