@agentforge-io/sdk-server 4.3.0 → 4.5.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.
@@ -227,8 +227,9 @@ export declare class ConnectorsResource {
227
227
  * `listConnected()`, which is the ak_live_ tenant-wide picker). Returns
228
228
  * the SAME rich shape `listForTenant`/`listForUser` produce server-side
229
229
  * (`AppUserConnectorStatus`: name/description/category/iconUrl/configured/
230
- * accountLabel/connectedAt) — NOT the narrow `ConnectorStatus` the
231
- * tenant-picker methods above use.
230
+ * accountLabel/connectedAt), PLUS `browsable` (AGF-074, computed
231
+ * server-side on top of the raw `ConnectorStatus` rows) — NOT the narrow
232
+ * `ConnectorStatus` the tenant-picker methods above use.
232
233
  *
233
234
  * Requires `appSecret` — throws early otherwise, same as
234
235
  * `authorizeForAppUser`.
@@ -259,8 +259,9 @@ class ConnectorsResource {
259
259
  * `listConnected()`, which is the ak_live_ tenant-wide picker). Returns
260
260
  * the SAME rich shape `listForTenant`/`listForUser` produce server-side
261
261
  * (`AppUserConnectorStatus`: name/description/category/iconUrl/configured/
262
- * accountLabel/connectedAt) — NOT the narrow `ConnectorStatus` the
263
- * tenant-picker methods above use.
262
+ * accountLabel/connectedAt), PLUS `browsable` (AGF-074, computed
263
+ * server-side on top of the raw `ConnectorStatus` rows) — NOT the narrow
264
+ * `ConnectorStatus` the tenant-picker methods above use.
264
265
  *
265
266
  * Requires `appSecret` — throws early otherwise, same as
266
267
  * `authorizeForAppUser`.
package/dist/types.d.ts CHANGED
@@ -95,6 +95,17 @@ export interface RegisterToolInput {
95
95
  executionMode?: 'client' | 'remote';
96
96
  /** Requerido cuando `executionMode === 'remote'`. */
97
97
  callbackUrl?: string;
98
+ /** Opcional. Si se provee, el platform usa ESTE valor como secret HMAC
99
+ * en vez de generar uno random — compartido por todas las tools que
100
+ * apunten al mismo `callbackUrl` (ver secretForGroup() en
101
+ * ExternalToolsRepository, agentforge-platform). Útil para derivar un
102
+ * secret determinístico desde una credencial persistente propia (p.ej.
103
+ * un `sk_live_`/app secret que sobrevive redeploys), en vez de depender
104
+ * de un secret generado por el platform que solo se muestra una vez y
105
+ * que se pierde si el cache local del cliente vive en disco efímero.
106
+ * Mínimo 16 caracteres. Omitilo para preservar el comportamiento
107
+ * anterior (secret generado por el platform). */
108
+ plaintextSecret?: string;
98
109
  }
99
110
  export interface RegisterToolsInput {
100
111
  tools: RegisterToolInput[];
@@ -330,6 +341,11 @@ export interface AppUserConnectorStatus {
330
341
  configured: boolean;
331
342
  /** Este externalUserId particular ya completó el OAuth/API-key setup. */
332
343
  connected: boolean;
344
+ /** ¿Tiene selector de recursos real implementado (nivel 2 del picker)?
345
+ * `false` = se puede conectar pero `listResourcesForAppUser()` devuelve
346
+ * `unsupported: true`. Mismo criterio (`SUPPORTED_CONNECTORS`) que
347
+ * `ConnectorStatus.browsable` usa para el picker tenant-wide. */
348
+ browsable: boolean;
333
349
  accountLabel?: string;
334
350
  /** ISO 8601 — `Date` en el server, serializado a string sobre JSON. */
335
351
  connectedAt?: string;
@@ -338,12 +354,24 @@ export interface ConnectorResourceItem {
338
354
  id: string;
339
355
  name: string;
340
356
  description?: string;
357
+ /** Avatar/icon URL for the resource — populated for Slack DMs/people
358
+ * (AGF-074 bug #2: the interlocutor's profile photo, from
359
+ * `users.info`/`users.list`). Channels and other resource kinds leave
360
+ * this `undefined`; render a generic icon (`#` for Slack channels)
361
+ * as a fallback. */
362
+ imageUrl?: string;
341
363
  }
342
364
  export interface ListConnectorResourcesResult {
343
365
  items: ConnectorResourceItem[];
344
366
  /** true cuando el connector está conectado pero `browsable` es false —
345
367
  * no es un error, la UI debe mostrar un estado "sin selector todavía". */
346
368
  unsupported?: true;
369
+ /** AGF-074 bug #3: true cuando el provider devolvió `missing_scope` para
370
+ * un sub-recurso opcional (ej. Slack DMs vía `im`/`mpim`/`users.list`,
371
+ * en un grant OAuth previo a que el connector declarara esos scopes).
372
+ * `items` igual trae lo que SÍ se pudo listar (ej. los canales); la UI
373
+ * debe ofrecer un CTA de reconectar en vez de tratarlo como error. */
374
+ needsReconnectForDms?: true;
347
375
  }
348
376
  export interface CreateClickupTaskInput {
349
377
  /** Id de la lista de ClickUp (`ConnectorResourceItem.id` del picker). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentforge-io/sdk-server",
3
- "version": "4.3.0",
3
+ "version": "4.5.0",
4
4
  "description": "Server-side SDK for backend apps integrating with AgentForge platform. Auth via ChatToken or ak_live_ API key.",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",