@teneo-protocol/sdk 1.0.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish-npm.yml +8 -6
- package/CHANGELOG.md +265 -0
- package/README.md +406 -53
- package/dist/core/websocket-client.d.ts +12 -0
- package/dist/core/websocket-client.d.ts.map +1 -1
- package/dist/core/websocket-client.js +22 -2
- package/dist/core/websocket-client.js.map +1 -1
- package/dist/handlers/message-handlers/agent-room-operation-response-handler.d.ts +76 -0
- package/dist/handlers/message-handlers/agent-room-operation-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/agent-room-operation-response-handler.js +70 -0
- package/dist/handlers/message-handlers/agent-room-operation-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/agent-selected-handler.d.ts +92 -38
- package/dist/handlers/message-handlers/agent-selected-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/agent-status-update-handler.d.ts +904 -0
- package/dist/handlers/message-handlers/agent-status-update-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/agent-status-update-handler.js +51 -0
- package/dist/handlers/message-handlers/agent-status-update-handler.js.map +1 -0
- package/dist/handlers/message-handlers/auth-error-handler.d.ts +45 -31
- package/dist/handlers/message-handlers/auth-error-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/auth-message-handler.d.ts +6 -0
- package/dist/handlers/message-handlers/auth-message-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/auth-message-handler.js +65 -5
- package/dist/handlers/message-handlers/auth-message-handler.js.map +1 -1
- package/dist/handlers/message-handlers/auth-required-handler.d.ts +49 -31
- package/dist/handlers/message-handlers/auth-required-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/auth-success-handler.d.ts +6 -0
- package/dist/handlers/message-handlers/auth-success-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/auth-success-handler.js +46 -4
- package/dist/handlers/message-handlers/auth-success-handler.js.map +1 -1
- package/dist/handlers/message-handlers/challenge-handler.d.ts +45 -31
- package/dist/handlers/message-handlers/challenge-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/error-message-handler.d.ts +49 -31
- package/dist/handlers/message-handlers/error-message-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/index.d.ts +5 -0
- package/dist/handlers/message-handlers/index.d.ts.map +1 -1
- package/dist/handlers/message-handlers/index.js +23 -1
- package/dist/handlers/message-handlers/index.js.map +1 -1
- package/dist/handlers/message-handlers/list-available-agents-handler.d.ts +877 -0
- package/dist/handlers/message-handlers/list-available-agents-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/list-available-agents-handler.js +38 -0
- package/dist/handlers/message-handlers/list-available-agents-handler.js.map +1 -0
- package/dist/handlers/message-handlers/list-room-agents-handler.d.ts +886 -0
- package/dist/handlers/message-handlers/list-room-agents-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/list-room-agents-handler.js +51 -0
- package/dist/handlers/message-handlers/list-room-agents-handler.js.map +1 -0
- package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts +178 -89
- package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/ping-pong-handler.d.ts +62 -58
- package/dist/handlers/message-handlers/ping-pong-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/regular-message-handler.d.ts +31 -29
- package/dist/handlers/message-handlers/regular-message-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/room-operation-response-handler.d.ts +328 -0
- package/dist/handlers/message-handlers/room-operation-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/room-operation-response-handler.js +92 -0
- package/dist/handlers/message-handlers/room-operation-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/subscribe-response-handler.d.ts +53 -31
- package/dist/handlers/message-handlers/subscribe-response-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/types.d.ts +2 -0
- package/dist/handlers/message-handlers/types.d.ts.map +1 -1
- package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts +53 -31
- package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts.map +1 -1
- package/dist/managers/agent-room-manager.d.ts +222 -0
- package/dist/managers/agent-room-manager.d.ts.map +1 -0
- package/dist/managers/agent-room-manager.js +508 -0
- package/dist/managers/agent-room-manager.js.map +1 -0
- package/dist/managers/index.d.ts +2 -0
- package/dist/managers/index.d.ts.map +1 -1
- package/dist/managers/index.js +5 -1
- package/dist/managers/index.js.map +1 -1
- package/dist/managers/room-management-manager.d.ts +213 -0
- package/dist/managers/room-management-manager.d.ts.map +1 -0
- package/dist/managers/room-management-manager.js +440 -0
- package/dist/managers/room-management-manager.js.map +1 -0
- package/dist/managers/room-manager.d.ts +4 -4
- package/dist/managers/room-manager.d.ts.map +1 -1
- package/dist/managers/room-manager.js.map +1 -1
- package/dist/teneo-sdk.d.ts +333 -13
- package/dist/teneo-sdk.d.ts.map +1 -1
- package/dist/teneo-sdk.js +468 -1
- package/dist/teneo-sdk.js.map +1 -1
- package/dist/types/config.d.ts +63 -54
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +8 -4
- package/dist/types/config.js.map +1 -1
- package/dist/types/error-codes.d.ts +2 -0
- package/dist/types/error-codes.d.ts.map +1 -1
- package/dist/types/error-codes.js +3 -0
- package/dist/types/error-codes.js.map +1 -1
- package/dist/types/events.d.ts +132 -68
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/events.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +27 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/messages.d.ts +11396 -2559
- package/dist/types/messages.d.ts.map +1 -1
- package/dist/types/messages.js +294 -27
- package/dist/types/messages.js.map +1 -1
- package/examples/.env.example +1 -1
- package/examples/agent-room-management-example.ts +334 -0
- package/examples/claude-agent-x-follower/.env.example +2 -2
- package/examples/claude-agent-x-follower/QUICKSTART.md +1 -1
- package/examples/claude-agent-x-follower/README.md +1 -1
- package/examples/n8n-teneo/.env.example +2 -2
- package/examples/n8n-teneo/README.md +1 -1
- package/examples/openai-teneo/.env.example +2 -2
- package/examples/openai-teneo/README.md +1 -1
- package/examples/production-dashboard/.env.example +2 -2
- package/examples/production-dashboard/README.md +89 -12
- package/examples/production-dashboard/public/dashboard.html +1173 -601
- package/examples/production-dashboard/server.ts +347 -5
- package/examples/room-management-example.ts +285 -0
- package/examples/usage/.env.example +1 -1
- package/examples/usage/01-connect.ts +1 -1
- package/examples/usage/02-list-agents.ts +1 -1
- package/examples/usage/03-pick-agent.ts +1 -1
- package/examples/usage/04-find-by-capability.ts +1 -1
- package/examples/usage/05-webhook-example.ts +1 -1
- package/examples/usage/06-simple-api-server.ts +1 -1
- package/examples/usage/07-event-listener.ts +1 -1
- package/examples/usage/README.md +1 -1
- package/package.json +9 -1
- package/src/core/websocket-client.ts +26 -2
- package/src/handlers/message-handlers/agent-room-operation-response-handler.ts +83 -0
- package/src/handlers/message-handlers/agent-status-update-handler.ts +58 -0
- package/src/handlers/message-handlers/auth-message-handler.ts +73 -5
- package/src/handlers/message-handlers/auth-success-handler.ts +58 -6
- package/src/handlers/message-handlers/index.ts +19 -0
- package/src/handlers/message-handlers/list-available-agents-handler.ts +41 -0
- package/src/handlers/message-handlers/list-room-agents-handler.ts +61 -0
- package/src/handlers/message-handlers/room-operation-response-handler.ts +105 -0
- package/src/handlers/message-handlers/types.ts +6 -0
- package/src/managers/agent-room-manager.ts +609 -0
- package/src/managers/index.ts +2 -0
- package/src/managers/room-management-manager.ts +523 -0
- package/src/managers/room-manager.ts +4 -5
- package/src/teneo-sdk.ts +505 -4
- package/src/types/config.ts +10 -5
- package/src/types/error-codes.ts +4 -0
- package/src/types/events.ts +24 -0
- package/src/types/index.ts +55 -0
- package/src/types/messages.ts +374 -41
- package/tests/integration/room-management.test.ts +514 -0
- package/tests/integration/websocket.test.ts +1 -1
- package/tests/unit/handlers/agent-room-operation-response-handler.test.ts +394 -0
- package/tests/unit/handlers/agent-status-update-handler.test.ts +407 -0
- package/tests/unit/handlers/auth-success-handler-rooms.test.ts +699 -0
- package/tests/unit/handlers/list-available-agents-handler.test.ts +256 -0
- package/tests/unit/handlers/list-room-agents-handler.test.ts +294 -0
- package/tests/unit/handlers/room-operation-response-handler.test.ts +527 -0
- package/tests/unit/managers/agent-room-manager.test.ts +534 -0
- package/tests/unit/managers/room-management-manager.test.ts +438 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler for room_operation_response messages (v2.0.0)
|
|
3
|
+
* Processes responses from room CRUD operations (create, update, delete)
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { RoomOperationResponse, RoomOperationResponseSchema } from "../../types";
|
|
7
|
+
import { BaseMessageHandler } from "./base-handler";
|
|
8
|
+
import { HandlerContext } from "./types";
|
|
9
|
+
import { SDKError } from "../../types/events";
|
|
10
|
+
import { ErrorCode } from "../../types/error-codes";
|
|
11
|
+
|
|
12
|
+
export class RoomOperationResponseHandler extends BaseMessageHandler<RoomOperationResponse> {
|
|
13
|
+
readonly type = "room_operation_response" as const;
|
|
14
|
+
readonly schema = RoomOperationResponseSchema;
|
|
15
|
+
|
|
16
|
+
protected handleValidated(
|
|
17
|
+
message: RoomOperationResponse,
|
|
18
|
+
context: HandlerContext
|
|
19
|
+
): void {
|
|
20
|
+
const { success, message: errorMessage, room_id, room } = message.data;
|
|
21
|
+
|
|
22
|
+
context.logger.debug("Handling room_operation_response", {
|
|
23
|
+
success,
|
|
24
|
+
roomId: room_id,
|
|
25
|
+
hasRoom: !!room
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
if (!success) {
|
|
29
|
+
// Operation failed - emit error event
|
|
30
|
+
const error = new SDKError(
|
|
31
|
+
errorMessage || "Room operation failed",
|
|
32
|
+
ErrorCode.OPERATION_FAILED
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
// Try to determine operation type from message
|
|
36
|
+
// Note: Server should ideally send operation type in response
|
|
37
|
+
// For now we emit generic errors and specific listeners will catch relevant ones
|
|
38
|
+
this.emit(context, "room:create_error", error);
|
|
39
|
+
this.emit(context, "room:update_error", error, room_id);
|
|
40
|
+
this.emit(context, "room:delete_error", error, room_id);
|
|
41
|
+
|
|
42
|
+
// Send webhook
|
|
43
|
+
this.sendWebhook(context, "room_operation_error", {
|
|
44
|
+
success: false,
|
|
45
|
+
message: errorMessage,
|
|
46
|
+
room_id
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Operation succeeded
|
|
53
|
+
if (room) {
|
|
54
|
+
// Create or Update operation (includes room object)
|
|
55
|
+
context.logger.info("Room operation succeeded", {
|
|
56
|
+
roomId: room.id,
|
|
57
|
+
roomName: room.name
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
// Determine if this was create or update based on whether we have the room cached
|
|
61
|
+
// Note: Ideally server would send operation type in response
|
|
62
|
+
// For now, handlers will emit both and listeners filter by room_id
|
|
63
|
+
|
|
64
|
+
// Update cache via room management manager if available
|
|
65
|
+
const roomManager = (context as any).roomManagementManager;
|
|
66
|
+
if (roomManager && typeof roomManager.upsertRoom === "function") {
|
|
67
|
+
roomManager.upsertRoom(room);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Emit success events
|
|
71
|
+
// The promise handlers in RoomManagementManager will filter by room_id
|
|
72
|
+
this.emit(context, "room:created", room);
|
|
73
|
+
this.emit(context, "room:updated", room);
|
|
74
|
+
|
|
75
|
+
// Send webhook
|
|
76
|
+
this.sendWebhook(context, "room_operation", {
|
|
77
|
+
success: true,
|
|
78
|
+
room,
|
|
79
|
+
message: "Room operation completed successfully"
|
|
80
|
+
});
|
|
81
|
+
} else if (room_id) {
|
|
82
|
+
// Delete operation (only has room_id, no room object)
|
|
83
|
+
context.logger.info("Room deleted", { roomId: room_id });
|
|
84
|
+
|
|
85
|
+
// Remove from cache
|
|
86
|
+
const roomManager = (context as any).roomManagementManager;
|
|
87
|
+
if (roomManager && typeof roomManager.removeRoom === "function") {
|
|
88
|
+
roomManager.removeRoom(room_id);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Emit delete success
|
|
92
|
+
this.emit(context, "room:deleted", room_id);
|
|
93
|
+
|
|
94
|
+
// Send webhook
|
|
95
|
+
this.sendWebhook(context, "room_deleted", {
|
|
96
|
+
success: true,
|
|
97
|
+
room_id,
|
|
98
|
+
message: "Room deleted successfully"
|
|
99
|
+
});
|
|
100
|
+
} else {
|
|
101
|
+
// Unexpected: success but no room or room_id
|
|
102
|
+
context.logger.warn("Room operation succeeded but no room data provided");
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -34,6 +34,12 @@ export interface HandlerContext {
|
|
|
34
34
|
// Room manager for subscription updates (optional)
|
|
35
35
|
roomManager?: any;
|
|
36
36
|
|
|
37
|
+
// Room management manager for CRUD operations (v2.0.0, optional)
|
|
38
|
+
roomManagementManager?: any;
|
|
39
|
+
|
|
40
|
+
// Agent room manager for agent-room operations (v2.0.0, optional)
|
|
41
|
+
agentRoomManager?: any;
|
|
42
|
+
|
|
37
43
|
// Account for signing (optional, for auth handlers)
|
|
38
44
|
account?: PrivateKeyAccount;
|
|
39
45
|
|