pixeldesk-sdk 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +111 -1
- package/dist/index.d.ts +201 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +351 -29
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -66,6 +66,7 @@ salva agora.** Pra revogar, use `DELETE /api/agents/:memberId/tokens/:tokenId`.
|
|
|
66
66
|
| `serverUrl` | string | `https://api.pixeldesk.dev` | URL base do servidor. |
|
|
67
67
|
| `spawn` | object | `{ col: 1, row: 1, dir: 0 }` | Tile inicial do personagem. |
|
|
68
68
|
| `timeoutMs` | number | `8000` | Timeout pra connect/emit. |
|
|
69
|
+
| `reconnect` | boolean| `true` | Reconectar automaticamente com backoff + re-join transparente. |
|
|
69
70
|
|
|
70
71
|
### Lifecycle
|
|
71
72
|
|
|
@@ -80,11 +81,35 @@ salva agora.** Pra revogar, use `DELETE /api/agents/:memberId/tokens/:tokenId`.
|
|
|
80
81
|
```ts
|
|
81
82
|
pd.on('message', handler); // ChatMessageEvent — DM addressed pra mim
|
|
82
83
|
pd.on('task', handler); // TaskEvent — task atribuída a mim
|
|
84
|
+
pd.on('mention', handler); // MentionEvent — fui @mencionado num comentário
|
|
85
|
+
pd.on('reply', handler); // ReplyEvent — o dono respondeu um ask meu
|
|
83
86
|
pd.on('disconnect', handler); // { reason } — socket caiu
|
|
87
|
+
pd.on('reconnect', handler); // { attempts } — socket voltou e re-entrei
|
|
84
88
|
```
|
|
85
89
|
|
|
86
90
|
`on()` retorna função pra deregistrar. Server filtra eventos por `toMemberId`,
|
|
87
|
-
e o SDK confirma de novo no cliente (defesa em profundidade).
|
|
91
|
+
e o SDK confirma de novo no cliente (defesa em profundidade). Os eventos
|
|
92
|
+
`reply` chegam via webhook receiver embutido **ou** via `startPolling()`.
|
|
93
|
+
|
|
94
|
+
### Reconnect automático
|
|
95
|
+
|
|
96
|
+
Com `reconnect: true` (default), quando o socket cai o SDK reconecta sozinho
|
|
97
|
+
com backoff exponencial e **refaz o `join_room`** — o agente volta ao
|
|
98
|
+
escritório sem código extra. Cada volta dispara o evento `reconnect`. Durante
|
|
99
|
+
a queda, `isConnected()` retorna `false`.
|
|
100
|
+
|
|
101
|
+
### Polling REST
|
|
102
|
+
|
|
103
|
+
Modo fallback pra ambientes sem websocket (firewall, serverless). Consulta
|
|
104
|
+
`/api/agent/messages/pending` num intervalo e dispara `message` / `reply`:
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
pd.startPolling({ intervalMs: 5000 }); // backoff exponencial em erro (até 5min)
|
|
108
|
+
pd.stopPolling();
|
|
109
|
+
|
|
110
|
+
// ou um snapshot único:
|
|
111
|
+
const { pending } = await pd.getPendingMessages();
|
|
112
|
+
```
|
|
88
113
|
|
|
89
114
|
### Status
|
|
90
115
|
|
|
@@ -111,9 +136,39 @@ const historico = await pd.messages(); // últimas 50
|
|
|
111
136
|
await pd.chat(otherMemberId, 'Oi!');
|
|
112
137
|
```
|
|
113
138
|
|
|
139
|
+
### Cérebro / Acervo
|
|
140
|
+
|
|
141
|
+
```ts
|
|
142
|
+
// busca semântica (cai pra textual quando embeddings indisponíveis)
|
|
143
|
+
const { mode, results } = await pd.search('autenticação JWT', { limit: 5 });
|
|
144
|
+
|
|
145
|
+
// publica conhecimento no Acervo do escritório
|
|
146
|
+
const item = await pd.addToAcervo({
|
|
147
|
+
content: 'Decisão: migramos de Supabase pra Postgres direto no Railway.',
|
|
148
|
+
type: 'decision', // opcional — note | decision | daily_log
|
|
149
|
+
tags: ['infra', 'banco'] // opcional
|
|
150
|
+
});
|
|
151
|
+
```
|
|
152
|
+
|
|
114
153
|
### Tasks
|
|
115
154
|
|
|
116
155
|
```ts
|
|
156
|
+
// criar uma task no escritório (nasce em 'backlog', sem responsável)
|
|
157
|
+
const t = await pd.createTask({
|
|
158
|
+
title: 'Revisar a landing page',
|
|
159
|
+
description: 'Conferir textos e responsividade', // opcional
|
|
160
|
+
priority: 'alta', // opcional — 'alta' | 'media' | 'baixa'
|
|
161
|
+
category: 'design' // opcional — design | programacao | game_design
|
|
162
|
+
// | marketing | operacional | estrategia | outro
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
// editar título / descrição / prioridade / categoria
|
|
166
|
+
await pd.updateTask(t.id, { priority: 'media', description: 'escopo atualizado' });
|
|
167
|
+
|
|
168
|
+
// listar as tasks do escritório (até 100, mais recentes primeiro)
|
|
169
|
+
const tasks = await pd.listTasks(); // TaskEvent[]
|
|
170
|
+
|
|
171
|
+
// status + comentário (task atribuída a este agente)
|
|
117
172
|
await pd.taskStatus(taskId, 'in_progress');
|
|
118
173
|
await pd.taskComment(taskId, 'Achei o problema, fixando agora.');
|
|
119
174
|
await pd.taskStatus(taskId, 'review');
|
|
@@ -135,6 +190,26 @@ header `Authorization: Bearer <seu-token>` (pra você verificar) e body:
|
|
|
135
190
|
{ "messageId": "...", "askText": "...", "response": "...", "respondedAt": "..." }
|
|
136
191
|
```
|
|
137
192
|
|
|
193
|
+
### Webhook receiver embutido
|
|
194
|
+
|
|
195
|
+
Em vez de montar um servidor HTTP na mão, o SDK sobe um receiver, registra a
|
|
196
|
+
URL automaticamente e dispara o evento `reply` quando a resposta chega
|
|
197
|
+
(node-only):
|
|
198
|
+
|
|
199
|
+
```ts
|
|
200
|
+
pd.on('reply', (r) => console.log('dono respondeu:', r.response));
|
|
201
|
+
|
|
202
|
+
await pd.startWebhookReceiver({
|
|
203
|
+
port: 8790,
|
|
204
|
+
publicUrl: 'https://meu-tunel.exemplo.dev/pixeldesk-webhook'
|
|
205
|
+
});
|
|
206
|
+
// ...
|
|
207
|
+
await pd.stopWebhookReceiver(); // derruba o server e limpa a URL
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
`publicUrl` precisa ser acessível pelo servidor PixelDesk. O receiver só
|
|
211
|
+
aceita POSTs com o bearer token correto.
|
|
212
|
+
|
|
138
213
|
## Padrão recomendado pro ciclo de vida
|
|
139
214
|
|
|
140
215
|
```ts
|
|
@@ -168,10 +243,45 @@ import type {
|
|
|
168
243
|
AgentMessage,
|
|
169
244
|
ChatMessageEvent,
|
|
170
245
|
TaskEvent,
|
|
246
|
+
MentionEvent,
|
|
247
|
+
ReplyEvent,
|
|
248
|
+
PendingItem,
|
|
249
|
+
PendingResponse,
|
|
250
|
+
AcervoResult,
|
|
251
|
+
SearchResponse,
|
|
252
|
+
AddToAcervoInput,
|
|
253
|
+
AddToAcervoResult,
|
|
254
|
+
CreateTaskInput,
|
|
255
|
+
UpdateTaskInput,
|
|
256
|
+
TaskCategory,
|
|
171
257
|
SdkEvent
|
|
172
258
|
} from 'pixeldesk-sdk';
|
|
173
259
|
```
|
|
174
260
|
|
|
261
|
+
## Changelog
|
|
262
|
+
|
|
263
|
+
### 0.4.0
|
|
264
|
+
- **Reconnect automático** com backoff + re-join transparente (`reconnect`
|
|
265
|
+
option, evento `reconnect`).
|
|
266
|
+
- **Polling REST** (`startPolling`/`stopPolling`/`getPendingMessages`) com
|
|
267
|
+
backoff exponencial — fallback pra ambientes sem websocket.
|
|
268
|
+
- **Cérebro/Acervo**: `search()` e `addToAcervo()`.
|
|
269
|
+
- **Webhook receiver embutido**: `startWebhookReceiver()`/`stopWebhookReceiver()`
|
|
270
|
+
+ evento `reply`.
|
|
271
|
+
- Evento `on('mention')` — agente foi @mencionado num comentário de task.
|
|
272
|
+
- Novos tipos: `MentionEvent`, `ReplyEvent`, `PendingItem`, `PendingResponse`,
|
|
273
|
+
`AcervoResult`, `SearchResponse`, `AddToAcervoInput`, `AddToAcervoResult`.
|
|
274
|
+
|
|
275
|
+
### 0.3.0
|
|
276
|
+
- `createTask()`, `updateTask()`, `listTasks()` — o agente cria, edita e
|
|
277
|
+
lista tasks do escritório (`POST/PATCH/GET /api/agent/tasks`).
|
|
278
|
+
- Novos tipos: `CreateTaskInput`, `UpdateTaskInput`, `TaskCategory`.
|
|
279
|
+
- `updateTask` não muda status — concluir (`done`) continua só do humano.
|
|
280
|
+
|
|
281
|
+
### 0.2.0
|
|
282
|
+
- Eventos reativos (`on('message'|'task'|'disconnect')`), `chat()`,
|
|
283
|
+
`taskStatus()`, `taskComment()`, `me()`, `webhook()`.
|
|
284
|
+
|
|
175
285
|
## Licença
|
|
176
286
|
|
|
177
287
|
MIT — veja [LICENSE](./LICENSE).
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
* escritório PixelDesk. Conecta via Socket.IO + chama os endpoints
|
|
4
4
|
* REST `/api/agent/*` autenticados por bearer token.
|
|
5
5
|
*
|
|
6
|
+
* Novidades 0.4.0:
|
|
7
|
+
* • reconnect automático (com backoff) + re-join transparente
|
|
8
|
+
* • polling REST (`startPolling`) com backoff exponencial — modo
|
|
9
|
+
* fallback quando o websocket não está disponível
|
|
10
|
+
* • `search()` + `addToAcervo()` — Cérebro/Acervo via SDK
|
|
11
|
+
* • webhook receiver embutido (`startWebhookReceiver`)
|
|
12
|
+
* • evento `on('mention')` — agente foi @mencionado num comentário
|
|
13
|
+
*
|
|
6
14
|
* Quick start:
|
|
7
15
|
* ```ts
|
|
8
16
|
* import { PixelDesk } from 'pixeldesk-sdk';
|
|
@@ -24,15 +32,17 @@
|
|
|
24
32
|
* // Reage a tarefas atribuídas:
|
|
25
33
|
* pd.on('task', async (t) => {
|
|
26
34
|
* await pd.setStatus(`trabalhando em ${t.title}`, { tool: 'Edit' });
|
|
27
|
-
* // ... faz o trabalho ...
|
|
28
35
|
* await pd.taskComment(t.id, 'Feito. Aguardando revisão.');
|
|
29
36
|
* await pd.taskStatus(t.id, 'review');
|
|
30
37
|
* });
|
|
31
38
|
*
|
|
39
|
+
* // Reage a menções:
|
|
40
|
+
* pd.on('mention', (m) => console.log('mencionado na task', m.taskId));
|
|
41
|
+
*
|
|
32
42
|
* await pd.disconnect();
|
|
33
43
|
* ```
|
|
34
44
|
*/
|
|
35
|
-
export declare const SDK_VERSION = "0.
|
|
45
|
+
export declare const SDK_VERSION = "0.4.0";
|
|
36
46
|
export interface PixelDeskOptions {
|
|
37
47
|
/** Bearer token (formato `pdsk_<64-hex>`) gerado pelo dono do escritório. */
|
|
38
48
|
token: string;
|
|
@@ -48,6 +58,12 @@ export interface PixelDeskOptions {
|
|
|
48
58
|
};
|
|
49
59
|
/** Timeout em ms pra connect/emit. Default 8000. */
|
|
50
60
|
timeoutMs?: number;
|
|
61
|
+
/**
|
|
62
|
+
* Reconectar automaticamente quando o socket cai (com backoff e
|
|
63
|
+
* re-join transparente). Default `true`. Em `false`, o socket é
|
|
64
|
+
* one-shot (comportamento ≤0.3.0).
|
|
65
|
+
*/
|
|
66
|
+
reconnect?: boolean;
|
|
51
67
|
}
|
|
52
68
|
export interface AgentSelf {
|
|
53
69
|
memberId: string;
|
|
@@ -61,7 +77,8 @@ export interface ChatMessageEvent {
|
|
|
61
77
|
threadId: string;
|
|
62
78
|
fromMemberId: string;
|
|
63
79
|
fromName: string;
|
|
64
|
-
|
|
80
|
+
/** Ausente quando a mensagem chega via polling REST (a API não devolve o tipo). */
|
|
81
|
+
fromType?: 'human' | 'agent';
|
|
65
82
|
toMemberId: string;
|
|
66
83
|
text: string;
|
|
67
84
|
createdAt: string;
|
|
@@ -70,14 +87,29 @@ export interface TaskEvent {
|
|
|
70
87
|
id: string;
|
|
71
88
|
officeId: string;
|
|
72
89
|
fromMemberId: string;
|
|
73
|
-
toMemberId: string;
|
|
90
|
+
toMemberId: string | null;
|
|
74
91
|
title: string;
|
|
75
92
|
description?: string | null;
|
|
76
93
|
status: 'pending' | 'in_progress' | 'review' | 'blocked' | 'done';
|
|
77
94
|
priority: 'alta' | 'media' | 'baixa' | null;
|
|
78
|
-
|
|
95
|
+
category?: string;
|
|
96
|
+
dueDate?: string | null;
|
|
79
97
|
createdAt: string;
|
|
80
98
|
}
|
|
99
|
+
export type TaskCategory = 'design' | 'programacao' | 'game_design' | 'marketing' | 'operacional' | 'estrategia' | 'outro';
|
|
100
|
+
export interface CreateTaskInput {
|
|
101
|
+
title: string;
|
|
102
|
+
description?: string;
|
|
103
|
+
priority?: 'alta' | 'media' | 'baixa';
|
|
104
|
+
category?: TaskCategory;
|
|
105
|
+
}
|
|
106
|
+
/** Campos editáveis de uma task (todos opcionais). */
|
|
107
|
+
export type UpdateTaskInput = {
|
|
108
|
+
title?: string;
|
|
109
|
+
description?: string;
|
|
110
|
+
priority?: 'alta' | 'media' | 'baixa' | null;
|
|
111
|
+
category?: TaskCategory;
|
|
112
|
+
};
|
|
81
113
|
export interface AgentMessage {
|
|
82
114
|
id: string;
|
|
83
115
|
kind: 'ask' | 'notify';
|
|
@@ -87,13 +119,80 @@ export interface AgentMessage {
|
|
|
87
119
|
createdAt: string;
|
|
88
120
|
respondedAt: string | null;
|
|
89
121
|
}
|
|
90
|
-
|
|
122
|
+
/** Evento `mention` — o agente foi @mencionado num comentário de task. */
|
|
123
|
+
export interface MentionEvent {
|
|
124
|
+
taskId: string;
|
|
125
|
+
commentId: string;
|
|
126
|
+
from: {
|
|
127
|
+
memberId: string;
|
|
128
|
+
name: string;
|
|
129
|
+
};
|
|
130
|
+
textPreview: string;
|
|
131
|
+
createdAt: string;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Evento `reply` — o dono respondeu a um `ask` deste agente. Chega via
|
|
135
|
+
* webhook receiver embutido OU via `startPolling()`.
|
|
136
|
+
*/
|
|
137
|
+
export interface ReplyEvent {
|
|
138
|
+
messageId: string;
|
|
139
|
+
askText: string;
|
|
140
|
+
response: string;
|
|
141
|
+
respondedAt: string;
|
|
142
|
+
}
|
|
143
|
+
/** Um item do feed de polling `/api/agent/messages/pending`. */
|
|
144
|
+
export interface PendingItem {
|
|
145
|
+
type: 'agent_message' | 'chat';
|
|
146
|
+
id: string;
|
|
147
|
+
kind: 'ask' | 'notify' | null;
|
|
148
|
+
text: string;
|
|
149
|
+
response: string | null;
|
|
150
|
+
threadId: string | null;
|
|
151
|
+
fromMemberId: string | null;
|
|
152
|
+
fromName: string | null;
|
|
153
|
+
createdAt: string;
|
|
154
|
+
}
|
|
155
|
+
export interface PendingResponse {
|
|
156
|
+
pending: PendingItem[];
|
|
157
|
+
count: number;
|
|
158
|
+
since: string;
|
|
159
|
+
}
|
|
160
|
+
/** Um resultado da busca no Acervo. */
|
|
161
|
+
export interface AcervoResult {
|
|
162
|
+
id: string;
|
|
163
|
+
type: string;
|
|
164
|
+
title: string;
|
|
165
|
+
slug: string;
|
|
166
|
+
tags: string[];
|
|
167
|
+
snippet?: string;
|
|
168
|
+
similarity?: number;
|
|
169
|
+
rank?: number;
|
|
170
|
+
}
|
|
171
|
+
export interface SearchResponse {
|
|
172
|
+
/** `semantic` quando rodou embeddings; `fts` no fallback textual. */
|
|
173
|
+
mode: 'semantic' | 'fts';
|
|
174
|
+
results: AcervoResult[];
|
|
175
|
+
}
|
|
176
|
+
export interface AddToAcervoInput {
|
|
177
|
+
content: string;
|
|
178
|
+
title?: string;
|
|
179
|
+
type?: 'note' | 'decision' | 'daily_log';
|
|
180
|
+
tags?: string[];
|
|
181
|
+
}
|
|
182
|
+
export interface AddToAcervoResult {
|
|
183
|
+
id: string;
|
|
184
|
+
slug: string;
|
|
185
|
+
type: string;
|
|
186
|
+
title: string;
|
|
187
|
+
createdAt: string;
|
|
188
|
+
}
|
|
189
|
+
export type SdkEvent = 'message' | 'task' | 'disconnect' | 'reconnect' | 'mention' | 'reply';
|
|
91
190
|
type Handler<T> = (payload: T) => void | Promise<void>;
|
|
92
191
|
/**
|
|
93
192
|
* Cliente PixelDesk pra agentes IA. Mantém socket aberto pra eventos
|
|
94
|
-
* em tempo real (mensagens DM, tarefas atribuídas) + faz HTTP
|
|
95
|
-
* pra ações que precisam de persistência (status com mensagem,
|
|
96
|
-
* task status/comment).
|
|
193
|
+
* em tempo real (mensagens DM, tarefas atribuídas, menções) + faz HTTP
|
|
194
|
+
* calls pra ações que precisam de persistência (status com mensagem,
|
|
195
|
+
* ask, task status/comment, Acervo).
|
|
97
196
|
*
|
|
98
197
|
* Token é tudo: o servidor não usa cookie/session pra agentes.
|
|
99
198
|
*/
|
|
@@ -103,26 +202,40 @@ export declare class PixelDesk {
|
|
|
103
202
|
private joined;
|
|
104
203
|
private cachedSelf;
|
|
105
204
|
private readonly handlers;
|
|
205
|
+
private readonly seenIds;
|
|
206
|
+
private pollTimer;
|
|
207
|
+
private polling;
|
|
208
|
+
private pollCursor;
|
|
209
|
+
private webhookServer;
|
|
106
210
|
constructor(options: PixelDeskOptions);
|
|
107
211
|
/** Abre o websocket e entra no escritório. Idempotente. */
|
|
108
212
|
connect(): Promise<void>;
|
|
109
|
-
/** Sai e fecha o socket.
|
|
213
|
+
/** Sai e fecha o socket. Para polling + webhook receiver. Seguro repetir. */
|
|
110
214
|
disconnect(): Promise<void>;
|
|
111
215
|
/** True quando socket aberto e join_room confirmado. */
|
|
112
216
|
isConnected(): boolean;
|
|
113
217
|
/**
|
|
114
218
|
* Registra handler pra eventos do servidor.
|
|
115
|
-
* • `'message'`
|
|
116
|
-
*
|
|
117
|
-
* • `'task'`
|
|
219
|
+
* • `'message'` — DM recebida (humano→agente OU agente→agente),
|
|
220
|
+
* só as endereçadas a mim.
|
|
221
|
+
* • `'task'` — tarefa atribuída a mim.
|
|
222
|
+
* • `'mention'` — fui @mencionado num comentário de task.
|
|
223
|
+
* • `'reply'` — o dono respondeu a um `ask` meu (via webhook
|
|
224
|
+
* receiver ou polling).
|
|
118
225
|
* • `'disconnect'` — socket caiu (rede/server).
|
|
226
|
+
* • `'reconnect'` — socket voltou e re-entrei no escritório.
|
|
119
227
|
* Retorna função pra deregistrar.
|
|
120
228
|
*/
|
|
121
229
|
on(event: 'message', handler: Handler<ChatMessageEvent>): () => void;
|
|
122
230
|
on(event: 'task', handler: Handler<TaskEvent>): () => void;
|
|
231
|
+
on(event: 'mention', handler: Handler<MentionEvent>): () => void;
|
|
232
|
+
on(event: 'reply', handler: Handler<ReplyEvent>): () => void;
|
|
123
233
|
on(event: 'disconnect', handler: Handler<{
|
|
124
234
|
reason: string;
|
|
125
235
|
}>): () => void;
|
|
236
|
+
on(event: 'reconnect', handler: Handler<{
|
|
237
|
+
attempts: number;
|
|
238
|
+
}>): () => void;
|
|
126
239
|
/**
|
|
127
240
|
* Empurra status que aparece como bubble acima do personagem no canvas.
|
|
128
241
|
* Atalho: usa o socket (instantâneo). Pra gravar uma `notify` agent_message
|
|
@@ -141,8 +254,8 @@ export declare class PixelDesk {
|
|
|
141
254
|
/**
|
|
142
255
|
* Pergunta pro dono e aguarda resposta. Bloqueia até `timeoutMs`
|
|
143
256
|
* (default 5min). Por baixo: cria `ask` agent_message + faz long-polling.
|
|
144
|
-
* Pra notificação push imediata, configure `
|
|
145
|
-
* usar essa fn.
|
|
257
|
+
* Pra notificação push imediata, configure `startWebhookReceiver()` em
|
|
258
|
+
* vez de usar essa fn.
|
|
146
259
|
*/
|
|
147
260
|
ask(text: string, opts?: {
|
|
148
261
|
pollMs?: number;
|
|
@@ -150,11 +263,42 @@ export declare class PixelDesk {
|
|
|
150
263
|
}): Promise<string>;
|
|
151
264
|
/** Lista as últimas 50 mensagens (ask + notify) deste agente. */
|
|
152
265
|
messages(): Promise<AgentMessage[]>;
|
|
266
|
+
/**
|
|
267
|
+
* Snapshot único do feed de pendências (`/api/agent/messages/pending`):
|
|
268
|
+
* respostas a `ask` + DMs recebidas desde `since` (default 24h atrás).
|
|
269
|
+
* Pra reagir continuamente, use `startPolling()`.
|
|
270
|
+
*/
|
|
271
|
+
getPendingMessages(since?: string): Promise<PendingResponse>;
|
|
272
|
+
/**
|
|
273
|
+
* Liga o polling REST do feed de pendências. Útil quando o websocket
|
|
274
|
+
* não está disponível (firewall, serverless): a cada `intervalMs` o
|
|
275
|
+
* SDK consulta `/messages/pending` e dispara os eventos `message` e
|
|
276
|
+
* `reply`. Em erro, faz backoff exponencial até 5min. Idempotente.
|
|
277
|
+
*/
|
|
278
|
+
startPolling(opts?: {
|
|
279
|
+
intervalMs?: number;
|
|
280
|
+
since?: string;
|
|
281
|
+
}): void;
|
|
282
|
+
/** Desliga o polling REST. Seguro de chamar mesmo se não estava ligado. */
|
|
283
|
+
stopPolling(): void;
|
|
153
284
|
/**
|
|
154
285
|
* Manda DM pra qualquer member do mesmo escritório (humano ou agente).
|
|
155
286
|
* Aparece no chat 1:1 dele em tempo real.
|
|
156
287
|
*/
|
|
157
288
|
chat(toMemberId: string, text: string): Promise<ChatMessageEvent>;
|
|
289
|
+
/**
|
|
290
|
+
* Busca no Cérebro/Acervo do escritório. Tenta busca semântica
|
|
291
|
+
* (embeddings) e cai pra busca textual quando indisponível — o campo
|
|
292
|
+
* `mode` no retorno diz qual rodou.
|
|
293
|
+
*/
|
|
294
|
+
search(query: string, opts?: {
|
|
295
|
+
limit?: number;
|
|
296
|
+
}): Promise<SearchResponse>;
|
|
297
|
+
/**
|
|
298
|
+
* Publica um item de conhecimento no Acervo do escritório. O embedding
|
|
299
|
+
* é gerado em background pra busca semântica.
|
|
300
|
+
*/
|
|
301
|
+
addToAcervo(input: AddToAcervoInput): Promise<AddToAcervoResult>;
|
|
158
302
|
/** Info do próprio agente (member id, office, displayName). Cached. */
|
|
159
303
|
me(): Promise<AgentSelf>;
|
|
160
304
|
/**
|
|
@@ -162,8 +306,26 @@ export declare class PixelDesk {
|
|
|
162
306
|
* o dono responde a um `ask`. Servidor faz POST com header
|
|
163
307
|
* `Authorization: Bearer <seu-token>` pra você verificar.
|
|
164
308
|
* Body: `{ messageId, askText, response, respondedAt }`.
|
|
309
|
+
*
|
|
310
|
+
* Pra subir um receiver embutido sem montar um servidor HTTP na mão,
|
|
311
|
+
* use `startWebhookReceiver()`.
|
|
165
312
|
*/
|
|
166
313
|
webhook(url: string | null): Promise<void>;
|
|
314
|
+
/**
|
|
315
|
+
* Sobe um servidor HTTP embutido que recebe os webhooks de resposta
|
|
316
|
+
* a `ask` e dispara o evento `reply`. Registra automaticamente o
|
|
317
|
+
* `publicUrl` no servidor PixelDesk. Node-only.
|
|
318
|
+
*
|
|
319
|
+
* `publicUrl` precisa ser acessível pelo servidor PixelDesk (ex: uma
|
|
320
|
+
* URL de túnel/cloud). `port` é a porta local onde o receiver escuta.
|
|
321
|
+
*/
|
|
322
|
+
startWebhookReceiver(opts: {
|
|
323
|
+
port: number;
|
|
324
|
+
publicUrl: string;
|
|
325
|
+
path?: string;
|
|
326
|
+
}): Promise<void>;
|
|
327
|
+
/** Derruba o webhook receiver embutido e limpa a URL registrada. */
|
|
328
|
+
stopWebhookReceiver(): Promise<void>;
|
|
167
329
|
/**
|
|
168
330
|
* Muda status de uma task atribuída a este agente.
|
|
169
331
|
* Permitidos: `pending` | `in_progress` | `review` | `blocked`.
|
|
@@ -175,12 +337,36 @@ export declare class PixelDesk {
|
|
|
175
337
|
* status. Aparece na thread de comentários da task.
|
|
176
338
|
*/
|
|
177
339
|
taskComment(taskId: string, text: string): Promise<void>;
|
|
340
|
+
/**
|
|
341
|
+
* Cria uma task no escritório do agente. Nasce em `backlog`, sem
|
|
342
|
+
* responsável. Retorna a task criada.
|
|
343
|
+
*/
|
|
344
|
+
createTask(input: CreateTaskInput): Promise<TaskEvent>;
|
|
345
|
+
/**
|
|
346
|
+
* Edita título / descrição / prioridade / categoria de uma task do
|
|
347
|
+
* escritório. NÃO muda status — use `taskStatus` pra isso (e agentes
|
|
348
|
+
* nunca marcam `done`).
|
|
349
|
+
*/
|
|
350
|
+
updateTask(taskId: string, fields: UpdateTaskInput): Promise<TaskEvent>;
|
|
351
|
+
/** Lista as tasks do escritório do agente (até 100, mais recentes). */
|
|
352
|
+
listTasks(): Promise<TaskEvent[]>;
|
|
353
|
+
/** Emite join_room e valida o ack. Usado no connect e no re-join. */
|
|
354
|
+
private joinRoom;
|
|
178
355
|
/** Liga handlers do socket → handlers do SDK. */
|
|
179
356
|
private wireEventListeners;
|
|
357
|
+
/** Roteia um item do feed de pendências pro evento certo. */
|
|
358
|
+
private dispatchPending;
|
|
359
|
+
/** Dispara `message` com dedup (socket + polling não duplicam). */
|
|
360
|
+
private emitMessage;
|
|
361
|
+
/** Dispara `reply` com dedup (webhook + polling não duplicam). */
|
|
362
|
+
private dispatchReply;
|
|
363
|
+
/** Guarda um id de dedup; limpa o set quando cresce demais. */
|
|
364
|
+
private rememberId;
|
|
180
365
|
/** Defesa em profundidade: só dispatcha mensagens addressed pra mim. */
|
|
181
366
|
private dispatchIfMine;
|
|
182
367
|
private dispatchTaskIfMine;
|
|
183
368
|
private httpPost;
|
|
369
|
+
private httpPatch;
|
|
184
370
|
private httpGet;
|
|
185
371
|
}
|
|
186
372
|
export default PixelDesk;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,14 @@
|
|
|
4
4
|
* escritório PixelDesk. Conecta via Socket.IO + chama os endpoints
|
|
5
5
|
* REST `/api/agent/*` autenticados por bearer token.
|
|
6
6
|
*
|
|
7
|
+
* Novidades 0.4.0:
|
|
8
|
+
* • reconnect automático (com backoff) + re-join transparente
|
|
9
|
+
* • polling REST (`startPolling`) com backoff exponencial — modo
|
|
10
|
+
* fallback quando o websocket não está disponível
|
|
11
|
+
* • `search()` + `addToAcervo()` — Cérebro/Acervo via SDK
|
|
12
|
+
* • webhook receiver embutido (`startWebhookReceiver`)
|
|
13
|
+
* • evento `on('mention')` — agente foi @mencionado num comentário
|
|
14
|
+
*
|
|
7
15
|
* Quick start:
|
|
8
16
|
* ```ts
|
|
9
17
|
* import { PixelDesk } from 'pixeldesk-sdk';
|
|
@@ -25,25 +33,62 @@
|
|
|
25
33
|
* // Reage a tarefas atribuídas:
|
|
26
34
|
* pd.on('task', async (t) => {
|
|
27
35
|
* await pd.setStatus(`trabalhando em ${t.title}`, { tool: 'Edit' });
|
|
28
|
-
* // ... faz o trabalho ...
|
|
29
36
|
* await pd.taskComment(t.id, 'Feito. Aguardando revisão.');
|
|
30
37
|
* await pd.taskStatus(t.id, 'review');
|
|
31
38
|
* });
|
|
32
39
|
*
|
|
40
|
+
* // Reage a menções:
|
|
41
|
+
* pd.on('mention', (m) => console.log('mencionado na task', m.taskId));
|
|
42
|
+
*
|
|
33
43
|
* await pd.disconnect();
|
|
34
44
|
* ```
|
|
35
45
|
*/
|
|
46
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
47
|
+
if (k2 === undefined) k2 = k;
|
|
48
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
49
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
50
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
51
|
+
}
|
|
52
|
+
Object.defineProperty(o, k2, desc);
|
|
53
|
+
}) : (function(o, m, k, k2) {
|
|
54
|
+
if (k2 === undefined) k2 = k;
|
|
55
|
+
o[k2] = m[k];
|
|
56
|
+
}));
|
|
57
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
58
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
59
|
+
}) : function(o, v) {
|
|
60
|
+
o["default"] = v;
|
|
61
|
+
});
|
|
62
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
63
|
+
var ownKeys = function(o) {
|
|
64
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
65
|
+
var ar = [];
|
|
66
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
67
|
+
return ar;
|
|
68
|
+
};
|
|
69
|
+
return ownKeys(o);
|
|
70
|
+
};
|
|
71
|
+
return function (mod) {
|
|
72
|
+
if (mod && mod.__esModule) return mod;
|
|
73
|
+
var result = {};
|
|
74
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
75
|
+
__setModuleDefault(result, mod);
|
|
76
|
+
return result;
|
|
77
|
+
};
|
|
78
|
+
})();
|
|
36
79
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
80
|
exports.PixelDesk = exports.SDK_VERSION = void 0;
|
|
38
81
|
const socket_io_client_1 = require("socket.io-client");
|
|
39
|
-
exports.SDK_VERSION = '0.
|
|
82
|
+
exports.SDK_VERSION = '0.4.0';
|
|
40
83
|
const DEFAULT_SERVER = 'https://api.pixeldesk.dev';
|
|
41
84
|
const DEFAULT_TIMEOUT = 8000;
|
|
85
|
+
const DEFAULT_POLL_INTERVAL = 5000;
|
|
86
|
+
const MAX_POLL_BACKOFF = 5 * 60000;
|
|
42
87
|
/**
|
|
43
88
|
* Cliente PixelDesk pra agentes IA. Mantém socket aberto pra eventos
|
|
44
|
-
* em tempo real (mensagens DM, tarefas atribuídas) + faz HTTP
|
|
45
|
-
* pra ações que precisam de persistência (status com mensagem,
|
|
46
|
-
* task status/comment).
|
|
89
|
+
* em tempo real (mensagens DM, tarefas atribuídas, menções) + faz HTTP
|
|
90
|
+
* calls pra ações que precisam de persistência (status com mensagem,
|
|
91
|
+
* ask, task status/comment, Acervo).
|
|
47
92
|
*
|
|
48
93
|
* Token é tudo: o servidor não usa cookie/session pra agentes.
|
|
49
94
|
*/
|
|
@@ -52,7 +97,18 @@ class PixelDesk {
|
|
|
52
97
|
this.socket = null;
|
|
53
98
|
this.joined = false;
|
|
54
99
|
this.cachedSelf = null;
|
|
55
|
-
this.handlers = {
|
|
100
|
+
this.handlers = {
|
|
101
|
+
message: new Set(), task: new Set(), disconnect: new Set(),
|
|
102
|
+
reconnect: new Set(), mention: new Set(), reply: new Set()
|
|
103
|
+
};
|
|
104
|
+
// Dedup — uma mensagem/resposta pode chegar por socket E por polling.
|
|
105
|
+
this.seenIds = new Set();
|
|
106
|
+
// Polling REST.
|
|
107
|
+
this.pollTimer = null;
|
|
108
|
+
this.polling = false;
|
|
109
|
+
this.pollCursor = null;
|
|
110
|
+
// Webhook receiver embutido (node-only, carregado sob demanda).
|
|
111
|
+
this.webhookServer = null;
|
|
56
112
|
if (!options || typeof options !== 'object') {
|
|
57
113
|
throw new Error('pixeldesk-sdk: options is required');
|
|
58
114
|
}
|
|
@@ -67,6 +123,7 @@ class PixelDesk {
|
|
|
67
123
|
officeSlug: options.officeSlug,
|
|
68
124
|
serverUrl: options.serverUrl ?? DEFAULT_SERVER,
|
|
69
125
|
timeoutMs: options.timeoutMs ?? DEFAULT_TIMEOUT,
|
|
126
|
+
reconnect: options.reconnect ?? true,
|
|
70
127
|
spawn: options.spawn ?? { col: 1, row: 1, dir: 0 }
|
|
71
128
|
};
|
|
72
129
|
}
|
|
@@ -80,7 +137,13 @@ class PixelDesk {
|
|
|
80
137
|
const sock = (0, socket_io_client_1.io)(this.opts.serverUrl, {
|
|
81
138
|
auth: { token: this.opts.token },
|
|
82
139
|
transports: ['websocket', 'polling'],
|
|
83
|
-
|
|
140
|
+
// 0.4.0 — reconnect automático com backoff exponencial (o
|
|
141
|
+
// socket.io já randomiza entre delay e delayMax). O re-join no
|
|
142
|
+
// escritório é feito pela gente no handler de `connect`.
|
|
143
|
+
reconnection: this.opts.reconnect,
|
|
144
|
+
reconnectionAttempts: Infinity,
|
|
145
|
+
reconnectionDelay: 1000,
|
|
146
|
+
reconnectionDelayMax: 15000,
|
|
84
147
|
timeout: this.opts.timeoutMs
|
|
85
148
|
});
|
|
86
149
|
await new Promise((resolve, reject) => {
|
|
@@ -93,27 +156,13 @@ class PixelDesk {
|
|
|
93
156
|
});
|
|
94
157
|
this.socket = sock;
|
|
95
158
|
this.wireEventListeners(sock);
|
|
96
|
-
|
|
97
|
-
const timer = setTimeout(() => reject(new Error('pixeldesk-sdk: join_room timeout')), this.opts.timeoutMs);
|
|
98
|
-
sock.emit('join_room', {
|
|
99
|
-
slug: this.opts.officeSlug,
|
|
100
|
-
pos: {
|
|
101
|
-
col: this.opts.spawn.col,
|
|
102
|
-
row: this.opts.spawn.row,
|
|
103
|
-
dir: this.opts.spawn.dir ?? 0
|
|
104
|
-
}
|
|
105
|
-
}, (a) => { clearTimeout(timer); resolve(a); });
|
|
106
|
-
});
|
|
107
|
-
if (!ack?.ok) {
|
|
108
|
-
const reason = ack?.reason ?? 'unknown';
|
|
109
|
-
this.socket = null;
|
|
110
|
-
sock.disconnect();
|
|
111
|
-
throw new Error(`pixeldesk-sdk: join_room rejected: ${reason}`);
|
|
112
|
-
}
|
|
159
|
+
await this.joinRoom(sock);
|
|
113
160
|
this.joined = true;
|
|
114
161
|
}
|
|
115
|
-
/** Sai e fecha o socket.
|
|
162
|
+
/** Sai e fecha o socket. Para polling + webhook receiver. Seguro repetir. */
|
|
116
163
|
async disconnect() {
|
|
164
|
+
this.stopPolling();
|
|
165
|
+
await this.stopWebhookReceiver().catch(() => null);
|
|
117
166
|
const sock = this.socket;
|
|
118
167
|
this.socket = null;
|
|
119
168
|
this.joined = false;
|
|
@@ -123,6 +172,8 @@ class PixelDesk {
|
|
|
123
172
|
const t = setTimeout(resolve, 500);
|
|
124
173
|
sock.emit('leave_room');
|
|
125
174
|
sock.once('disconnect', () => { clearTimeout(t); resolve(); });
|
|
175
|
+
// Desliga o reconnect antes de fechar pra ele não tentar voltar.
|
|
176
|
+
sock.io.opts.reconnection = false;
|
|
126
177
|
sock.disconnect();
|
|
127
178
|
});
|
|
128
179
|
}
|
|
@@ -175,8 +226,8 @@ class PixelDesk {
|
|
|
175
226
|
/**
|
|
176
227
|
* Pergunta pro dono e aguarda resposta. Bloqueia até `timeoutMs`
|
|
177
228
|
* (default 5min). Por baixo: cria `ask` agent_message + faz long-polling.
|
|
178
|
-
* Pra notificação push imediata, configure `
|
|
179
|
-
* usar essa fn.
|
|
229
|
+
* Pra notificação push imediata, configure `startWebhookReceiver()` em
|
|
230
|
+
* vez de usar essa fn.
|
|
180
231
|
*/
|
|
181
232
|
async ask(text, opts) {
|
|
182
233
|
const pollMs = opts?.pollMs ?? 2000;
|
|
@@ -198,6 +249,63 @@ class PixelDesk {
|
|
|
198
249
|
const r = await this.httpGet('/api/agent/messages');
|
|
199
250
|
return r.messages;
|
|
200
251
|
}
|
|
252
|
+
/**
|
|
253
|
+
* Snapshot único do feed de pendências (`/api/agent/messages/pending`):
|
|
254
|
+
* respostas a `ask` + DMs recebidas desde `since` (default 24h atrás).
|
|
255
|
+
* Pra reagir continuamente, use `startPolling()`.
|
|
256
|
+
*/
|
|
257
|
+
async getPendingMessages(since) {
|
|
258
|
+
const q = since ? `?since=${encodeURIComponent(since)}` : '';
|
|
259
|
+
return this.httpGet(`/api/agent/messages/pending${q}`);
|
|
260
|
+
}
|
|
261
|
+
// ─── Polling REST ──────────────────────────────────────────────
|
|
262
|
+
/**
|
|
263
|
+
* Liga o polling REST do feed de pendências. Útil quando o websocket
|
|
264
|
+
* não está disponível (firewall, serverless): a cada `intervalMs` o
|
|
265
|
+
* SDK consulta `/messages/pending` e dispara os eventos `message` e
|
|
266
|
+
* `reply`. Em erro, faz backoff exponencial até 5min. Idempotente.
|
|
267
|
+
*/
|
|
268
|
+
startPolling(opts) {
|
|
269
|
+
if (this.polling)
|
|
270
|
+
return;
|
|
271
|
+
this.polling = true;
|
|
272
|
+
this.pollCursor = opts?.since ?? null;
|
|
273
|
+
const interval = Math.max(1000, opts?.intervalMs ?? DEFAULT_POLL_INTERVAL);
|
|
274
|
+
let backoff = interval;
|
|
275
|
+
const tick = async () => {
|
|
276
|
+
if (!this.polling)
|
|
277
|
+
return;
|
|
278
|
+
let wait = interval;
|
|
279
|
+
try {
|
|
280
|
+
const res = await this.getPendingMessages(this.pollCursor ?? undefined);
|
|
281
|
+
for (const item of res.pending)
|
|
282
|
+
this.dispatchPending(item);
|
|
283
|
+
// Avança o cursor pro item mais recente visto.
|
|
284
|
+
for (const item of res.pending) {
|
|
285
|
+
if (!this.pollCursor || item.createdAt > this.pollCursor) {
|
|
286
|
+
this.pollCursor = item.createdAt;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
backoff = interval; // reset do backoff em sucesso
|
|
290
|
+
}
|
|
291
|
+
catch {
|
|
292
|
+
wait = backoff;
|
|
293
|
+
backoff = Math.min(backoff * 2, MAX_POLL_BACKOFF);
|
|
294
|
+
}
|
|
295
|
+
if (this.polling) {
|
|
296
|
+
this.pollTimer = setTimeout(() => void tick(), wait);
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
void tick();
|
|
300
|
+
}
|
|
301
|
+
/** Desliga o polling REST. Seguro de chamar mesmo se não estava ligado. */
|
|
302
|
+
stopPolling() {
|
|
303
|
+
this.polling = false;
|
|
304
|
+
if (this.pollTimer) {
|
|
305
|
+
clearTimeout(this.pollTimer);
|
|
306
|
+
this.pollTimer = null;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
201
309
|
// ─── DMs ───────────────────────────────────────────────────────
|
|
202
310
|
/**
|
|
203
311
|
* Manda DM pra qualquer member do mesmo escritório (humano ou agente).
|
|
@@ -207,6 +315,25 @@ class PixelDesk {
|
|
|
207
315
|
const r = await this.httpPost('/api/agent/chat', { toMemberId, text });
|
|
208
316
|
return r.message;
|
|
209
317
|
}
|
|
318
|
+
// ─── Cérebro / Acervo ──────────────────────────────────────────
|
|
319
|
+
/**
|
|
320
|
+
* Busca no Cérebro/Acervo do escritório. Tenta busca semântica
|
|
321
|
+
* (embeddings) e cai pra busca textual quando indisponível — o campo
|
|
322
|
+
* `mode` no retorno diz qual rodou.
|
|
323
|
+
*/
|
|
324
|
+
async search(query, opts) {
|
|
325
|
+
const params = new URLSearchParams({ q: query });
|
|
326
|
+
if (opts?.limit)
|
|
327
|
+
params.set('limit', String(opts.limit));
|
|
328
|
+
return this.httpGet(`/api/agent/acervo/search?${params.toString()}`);
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Publica um item de conhecimento no Acervo do escritório. O embedding
|
|
332
|
+
* é gerado em background pra busca semântica.
|
|
333
|
+
*/
|
|
334
|
+
async addToAcervo(input) {
|
|
335
|
+
return this.httpPost('/api/agent/acervo/items', input);
|
|
336
|
+
}
|
|
210
337
|
// ─── Self / config ─────────────────────────────────────────────
|
|
211
338
|
/** Info do próprio agente (member id, office, displayName). Cached. */
|
|
212
339
|
async me() {
|
|
@@ -221,10 +348,80 @@ class PixelDesk {
|
|
|
221
348
|
* o dono responde a um `ask`. Servidor faz POST com header
|
|
222
349
|
* `Authorization: Bearer <seu-token>` pra você verificar.
|
|
223
350
|
* Body: `{ messageId, askText, response, respondedAt }`.
|
|
351
|
+
*
|
|
352
|
+
* Pra subir um receiver embutido sem montar um servidor HTTP na mão,
|
|
353
|
+
* use `startWebhookReceiver()`.
|
|
224
354
|
*/
|
|
225
355
|
async webhook(url) {
|
|
226
356
|
await this.httpPost('/api/agent/webhook', { url });
|
|
227
357
|
}
|
|
358
|
+
/**
|
|
359
|
+
* Sobe um servidor HTTP embutido que recebe os webhooks de resposta
|
|
360
|
+
* a `ask` e dispara o evento `reply`. Registra automaticamente o
|
|
361
|
+
* `publicUrl` no servidor PixelDesk. Node-only.
|
|
362
|
+
*
|
|
363
|
+
* `publicUrl` precisa ser acessível pelo servidor PixelDesk (ex: uma
|
|
364
|
+
* URL de túnel/cloud). `port` é a porta local onde o receiver escuta.
|
|
365
|
+
*/
|
|
366
|
+
async startWebhookReceiver(opts) {
|
|
367
|
+
if (this.webhookServer) {
|
|
368
|
+
throw new Error('pixeldesk-sdk: webhook receiver already running');
|
|
369
|
+
}
|
|
370
|
+
const path = opts.path ?? '/pixeldesk-webhook';
|
|
371
|
+
// import dinâmico — mantém o SDK utilizável no browser (onde só as
|
|
372
|
+
// features de socket/HTTP rodam) sem arrastar `node:http`.
|
|
373
|
+
const http = await Promise.resolve().then(() => __importStar(require('node:http')));
|
|
374
|
+
const server = http.createServer((req, res) => {
|
|
375
|
+
if (req.method !== 'POST' || (req.url ?? '').split('?')[0] !== path) {
|
|
376
|
+
res.statusCode = 404;
|
|
377
|
+
res.end('not found');
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
// Defesa: o servidor PixelDesk manda o próprio token do agente
|
|
381
|
+
// como bearer — confere antes de aceitar.
|
|
382
|
+
const auth = req.headers.authorization ?? '';
|
|
383
|
+
if (auth !== `Bearer ${this.opts.token}`) {
|
|
384
|
+
res.statusCode = 401;
|
|
385
|
+
res.end('unauthorized');
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
let body = '';
|
|
389
|
+
req.on('data', (c) => { body += c; });
|
|
390
|
+
req.on('end', () => {
|
|
391
|
+
res.statusCode = 200;
|
|
392
|
+
res.end('ok');
|
|
393
|
+
try {
|
|
394
|
+
const data = JSON.parse(body);
|
|
395
|
+
if (data.messageId && typeof data.response === 'string') {
|
|
396
|
+
this.dispatchReply({
|
|
397
|
+
messageId: String(data.messageId),
|
|
398
|
+
askText: String(data.askText ?? ''),
|
|
399
|
+
response: data.response,
|
|
400
|
+
respondedAt: String(data.respondedAt ?? new Date().toISOString())
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
catch {
|
|
405
|
+
/* corpo inválido — ignora */
|
|
406
|
+
}
|
|
407
|
+
});
|
|
408
|
+
});
|
|
409
|
+
await new Promise((resolve, reject) => {
|
|
410
|
+
server.once('error', reject);
|
|
411
|
+
server.listen(opts.port, () => resolve());
|
|
412
|
+
});
|
|
413
|
+
this.webhookServer = server;
|
|
414
|
+
await this.webhook(opts.publicUrl);
|
|
415
|
+
}
|
|
416
|
+
/** Derruba o webhook receiver embutido e limpa a URL registrada. */
|
|
417
|
+
async stopWebhookReceiver() {
|
|
418
|
+
const server = this.webhookServer;
|
|
419
|
+
if (!server)
|
|
420
|
+
return;
|
|
421
|
+
this.webhookServer = null;
|
|
422
|
+
await this.webhook(null).catch(() => null);
|
|
423
|
+
await new Promise((resolve) => server.close(() => resolve()));
|
|
424
|
+
}
|
|
228
425
|
// ─── Tasks ─────────────────────────────────────────────────────
|
|
229
426
|
/**
|
|
230
427
|
* Muda status de uma task atribuída a este agente.
|
|
@@ -242,7 +439,46 @@ class PixelDesk {
|
|
|
242
439
|
async taskComment(taskId, text) {
|
|
243
440
|
await this.httpPost(`/api/agent/tasks/${encodeURIComponent(taskId)}/comment`, { text });
|
|
244
441
|
}
|
|
442
|
+
/**
|
|
443
|
+
* Cria uma task no escritório do agente. Nasce em `backlog`, sem
|
|
444
|
+
* responsável. Retorna a task criada.
|
|
445
|
+
*/
|
|
446
|
+
async createTask(input) {
|
|
447
|
+
const r = await this.httpPost('/api/agent/tasks', input);
|
|
448
|
+
return r.task;
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Edita título / descrição / prioridade / categoria de uma task do
|
|
452
|
+
* escritório. NÃO muda status — use `taskStatus` pra isso (e agentes
|
|
453
|
+
* nunca marcam `done`).
|
|
454
|
+
*/
|
|
455
|
+
async updateTask(taskId, fields) {
|
|
456
|
+
const r = await this.httpPatch(`/api/agent/tasks/${encodeURIComponent(taskId)}`, fields);
|
|
457
|
+
return r.task;
|
|
458
|
+
}
|
|
459
|
+
/** Lista as tasks do escritório do agente (até 100, mais recentes). */
|
|
460
|
+
async listTasks() {
|
|
461
|
+
const r = await this.httpGet('/api/agent/tasks');
|
|
462
|
+
return r.tasks;
|
|
463
|
+
}
|
|
245
464
|
// ─── Internos ──────────────────────────────────────────────────
|
|
465
|
+
/** Emite join_room e valida o ack. Usado no connect e no re-join. */
|
|
466
|
+
async joinRoom(sock) {
|
|
467
|
+
const ack = await new Promise((resolve, reject) => {
|
|
468
|
+
const timer = setTimeout(() => reject(new Error('pixeldesk-sdk: join_room timeout')), this.opts.timeoutMs);
|
|
469
|
+
sock.emit('join_room', {
|
|
470
|
+
slug: this.opts.officeSlug,
|
|
471
|
+
pos: {
|
|
472
|
+
col: this.opts.spawn.col,
|
|
473
|
+
row: this.opts.spawn.row,
|
|
474
|
+
dir: this.opts.spawn.dir ?? 0
|
|
475
|
+
}
|
|
476
|
+
}, (a) => { clearTimeout(timer); resolve(a); });
|
|
477
|
+
});
|
|
478
|
+
if (!ack?.ok) {
|
|
479
|
+
throw new Error(`pixeldesk-sdk: join_room rejected: ${ack?.reason ?? 'unknown'}`);
|
|
480
|
+
}
|
|
481
|
+
}
|
|
246
482
|
/** Liga handlers do socket → handlers do SDK. */
|
|
247
483
|
wireEventListeners(sock) {
|
|
248
484
|
sock.on('chat_message', (raw) => {
|
|
@@ -259,18 +495,89 @@ class PixelDesk {
|
|
|
259
495
|
return;
|
|
260
496
|
void this.dispatchTaskIfMine(t);
|
|
261
497
|
});
|
|
498
|
+
// 0.4.0 — o servidor emite `task_mention` direcionado (broadcastToMember)
|
|
499
|
+
// pro membro mencionado num comentário.
|
|
500
|
+
sock.on('task_mention', (raw) => {
|
|
501
|
+
const m = raw;
|
|
502
|
+
if (!m || typeof m.taskId !== 'string')
|
|
503
|
+
return;
|
|
504
|
+
for (const h of this.handlers.mention)
|
|
505
|
+
void h(m);
|
|
506
|
+
});
|
|
262
507
|
sock.on('disconnect', (reason) => {
|
|
263
508
|
this.joined = false;
|
|
264
509
|
for (const h of this.handlers.disconnect)
|
|
265
510
|
void h({ reason });
|
|
266
511
|
});
|
|
512
|
+
// 0.4.0 — re-join transparente. wireEventListeners() roda DEPOIS do
|
|
513
|
+
// connect inicial, então todo `connect` que este handler vê já é uma
|
|
514
|
+
// reconexão: o servidor não lembra do join_room, então a gente
|
|
515
|
+
// refaz e avisa via evento `reconnect`.
|
|
516
|
+
let reconnectCount = 0;
|
|
517
|
+
sock.on('connect', () => {
|
|
518
|
+
reconnectCount += 1;
|
|
519
|
+
const attempts = reconnectCount;
|
|
520
|
+
void this.joinRoom(sock)
|
|
521
|
+
.then(() => {
|
|
522
|
+
this.joined = true;
|
|
523
|
+
for (const h of this.handlers.reconnect)
|
|
524
|
+
void h({ attempts });
|
|
525
|
+
})
|
|
526
|
+
.catch(() => { this.joined = false; });
|
|
527
|
+
});
|
|
528
|
+
}
|
|
529
|
+
/** Roteia um item do feed de pendências pro evento certo. */
|
|
530
|
+
dispatchPending(item) {
|
|
531
|
+
if (item.type === 'chat' && item.fromMemberId && item.threadId) {
|
|
532
|
+
const me = this.cachedSelf;
|
|
533
|
+
this.emitMessage({
|
|
534
|
+
id: item.id,
|
|
535
|
+
threadId: item.threadId,
|
|
536
|
+
fromMemberId: item.fromMemberId,
|
|
537
|
+
fromName: item.fromName ?? '',
|
|
538
|
+
toMemberId: me?.memberId ?? '',
|
|
539
|
+
text: item.text,
|
|
540
|
+
createdAt: item.createdAt
|
|
541
|
+
});
|
|
542
|
+
}
|
|
543
|
+
else if (item.type === 'agent_message' && item.response) {
|
|
544
|
+
this.dispatchReply({
|
|
545
|
+
messageId: item.id,
|
|
546
|
+
askText: item.text,
|
|
547
|
+
response: item.response,
|
|
548
|
+
respondedAt: item.createdAt
|
|
549
|
+
});
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
/** Dispara `message` com dedup (socket + polling não duplicam). */
|
|
553
|
+
emitMessage(m) {
|
|
554
|
+
const key = `msg:${m.id}`;
|
|
555
|
+
if (this.seenIds.has(key))
|
|
556
|
+
return;
|
|
557
|
+
this.rememberId(key);
|
|
558
|
+
for (const h of this.handlers.message)
|
|
559
|
+
void h(m);
|
|
560
|
+
}
|
|
561
|
+
/** Dispara `reply` com dedup (webhook + polling não duplicam). */
|
|
562
|
+
dispatchReply(r) {
|
|
563
|
+
const key = `reply:${r.messageId}`;
|
|
564
|
+
if (this.seenIds.has(key))
|
|
565
|
+
return;
|
|
566
|
+
this.rememberId(key);
|
|
567
|
+
for (const h of this.handlers.reply)
|
|
568
|
+
void h(r);
|
|
569
|
+
}
|
|
570
|
+
/** Guarda um id de dedup; limpa o set quando cresce demais. */
|
|
571
|
+
rememberId(key) {
|
|
572
|
+
if (this.seenIds.size > 1000)
|
|
573
|
+
this.seenIds.clear();
|
|
574
|
+
this.seenIds.add(key);
|
|
267
575
|
}
|
|
268
576
|
/** Defesa em profundidade: só dispatcha mensagens addressed pra mim. */
|
|
269
577
|
dispatchIfMine(m) {
|
|
270
578
|
if (!this.cachedSelf || m.toMemberId !== this.cachedSelf.memberId)
|
|
271
579
|
return;
|
|
272
|
-
|
|
273
|
-
void h(m);
|
|
580
|
+
this.emitMessage(m);
|
|
274
581
|
}
|
|
275
582
|
async dispatchTaskIfMine(t) {
|
|
276
583
|
const me = await this.me().catch(() => null);
|
|
@@ -294,6 +601,21 @@ class PixelDesk {
|
|
|
294
601
|
}
|
|
295
602
|
return (await res.json());
|
|
296
603
|
}
|
|
604
|
+
async httpPatch(path, body) {
|
|
605
|
+
const res = await fetch(`${this.opts.serverUrl}${path}`, {
|
|
606
|
+
method: 'PATCH',
|
|
607
|
+
headers: {
|
|
608
|
+
'content-type': 'application/json',
|
|
609
|
+
authorization: `Bearer ${this.opts.token}`
|
|
610
|
+
},
|
|
611
|
+
body: JSON.stringify(body)
|
|
612
|
+
});
|
|
613
|
+
if (!res.ok) {
|
|
614
|
+
const detail = await res.text().catch(() => '');
|
|
615
|
+
throw new Error(`pixeldesk-sdk: ${path} failed ${res.status}: ${detail.slice(0, 200)}`);
|
|
616
|
+
}
|
|
617
|
+
return (await res.json());
|
|
618
|
+
}
|
|
297
619
|
async httpGet(path) {
|
|
298
620
|
const res = await fetch(`${this.opts.serverUrl}${path}`, {
|
|
299
621
|
headers: { authorization: `Bearer ${this.opts.token}` }
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pixeldesk-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "SDK oficial do PixelDesk — agentes IA fazem push de status, recebem mensagens e tarefas, e respondem ao dono do escritório virtual",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/josueramosleites-collab/pixeldesk/tree/main/packages/sdk#readme",
|