@teneo-protocol/sdk 1.0.1 → 2.2.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/.eslintrc.json +11 -2
- package/.github/CODEOWNERS +2 -0
- package/.github/ISSUE_TEMPLATE/01-bug.yml +85 -0
- package/.github/ISSUE_TEMPLATE/config.yml +8 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
- package/.github/workflows/claude-code-review.yml +8 -3
- package/.github/workflows/claude-reviewer.yml +6 -4
- package/.github/workflows/publish-npm.yml +9 -6
- package/.github/workflows/push-to-main.yml +1 -1
- package/.github/workflows/top-issue.yml +102 -0
- package/CHANGELOG.md +334 -0
- package/CONCEPTS.md +747 -0
- package/README.md +577 -54
- package/dist/constants.js +8 -8
- package/dist/constants.js.map +1 -1
- package/dist/core/websocket-client.d.ts +25 -1
- package/dist/core/websocket-client.d.ts.map +1 -1
- package/dist/core/websocket-client.js +74 -15
- package/dist/core/websocket-client.js.map +1 -1
- package/dist/formatters/response-formatter.js +4 -0
- package/dist/formatters/response-formatter.js.map +1 -1
- package/dist/handlers/message-handler-registry.js +2 -1
- package/dist/handlers/message-handler-registry.js.map +1 -1
- package/dist/handlers/message-handlers/agent-details-response-handler.d.ts +1666 -0
- package/dist/handlers/message-handlers/agent-details-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/agent-details-response-handler.js +38 -0
- package/dist/handlers/message-handlers/agent-details-response-handler.js.map +1 -0
- 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 +67 -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-selected-handler.js +2 -5
- package/dist/handlers/message-handlers/agent-selected-handler.js.map +1 -1
- package/dist/handlers/message-handlers/agent-status-update-handler.d.ts +1687 -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 +48 -0
- package/dist/handlers/message-handlers/agent-status-update-handler.js.map +1 -0
- package/dist/handlers/message-handlers/agents-list-handler.js +2 -5
- package/dist/handlers/message-handlers/agents-list-handler.js.map +1 -1
- package/dist/handlers/message-handlers/all-agents-response-handler.d.ts +439 -0
- package/dist/handlers/message-handlers/all-agents-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/all-agents-response-handler.js +36 -0
- package/dist/handlers/message-handlers/all-agents-response-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-error-handler.js +2 -5
- package/dist/handlers/message-handlers/auth-error-handler.js.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 +71 -10
- 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-required-handler.js +2 -5
- package/dist/handlers/message-handlers/auth-required-handler.js.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 +52 -9
- package/dist/handlers/message-handlers/auth-success-handler.js.map +1 -1
- package/dist/handlers/message-handlers/base-handler.d.ts +4 -4
- package/dist/handlers/message-handlers/base-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/base-handler.js +3 -1
- package/dist/handlers/message-handlers/base-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/challenge-handler.js +3 -2
- package/dist/handlers/message-handlers/challenge-handler.js.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/error-message-handler.js +2 -5
- package/dist/handlers/message-handlers/error-message-handler.js.map +1 -1
- package/dist/handlers/message-handlers/index.d.ts +11 -0
- package/dist/handlers/message-handlers/index.d.ts.map +1 -1
- package/dist/handlers/message-handlers/index.js +55 -1
- package/dist/handlers/message-handlers/index.js.map +1 -1
- package/dist/handlers/message-handlers/list-available-agents-handler.d.ts +1660 -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 +35 -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 +1669 -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 +48 -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 +2 -110
- package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/list-rooms-response-handler.js +4 -6
- package/dist/handlers/message-handlers/list-rooms-response-handler.js.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/ping-pong-handler.js +4 -10
- package/dist/handlers/message-handlers/ping-pong-handler.js.map +1 -1
- package/dist/handlers/message-handlers/rate-limit-notification-handler.d.ts +94 -0
- package/dist/handlers/message-handlers/rate-limit-notification-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/rate-limit-notification-handler.js +35 -0
- package/dist/handlers/message-handlers/rate-limit-notification-handler.js.map +1 -0
- 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/regular-message-handler.js +4 -6
- package/dist/handlers/message-handlers/regular-message-handler.js.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 +89 -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/subscribe-response-handler.js +4 -6
- package/dist/handlers/message-handlers/subscribe-response-handler.js.map +1 -1
- package/dist/handlers/message-handlers/task-quote-handler.d.ts +14 -0
- package/dist/handlers/message-handlers/task-quote-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/task-quote-handler.js +29 -0
- package/dist/handlers/message-handlers/task-quote-handler.js.map +1 -0
- package/dist/handlers/message-handlers/task-response-handler.js +2 -5
- package/dist/handlers/message-handlers/task-response-handler.js.map +1 -1
- package/dist/handlers/message-handlers/types.d.ts +21 -7
- 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/handlers/message-handlers/unsubscribe-response-handler.js +4 -6
- package/dist/handlers/message-handlers/unsubscribe-response-handler.js.map +1 -1
- package/dist/handlers/message-handlers/user-authenticated-handler.d.ts +40 -0
- package/dist/handlers/message-handlers/user-authenticated-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/user-authenticated-handler.js +28 -0
- package/dist/handlers/message-handlers/user-authenticated-handler.js.map +1 -0
- package/dist/handlers/message-handlers/user-count-handler.d.ts +49 -0
- package/dist/handlers/message-handlers/user-count-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/user-count-handler.js +31 -0
- package/dist/handlers/message-handlers/user-count-handler.js.map +1 -0
- package/dist/handlers/webhook-handler.d.ts +1 -1
- package/dist/handlers/webhook-handler.d.ts.map +1 -1
- package/dist/handlers/webhook-handler.js +14 -5
- package/dist/handlers/webhook-handler.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -2
- package/dist/index.js.map +1 -1
- package/dist/managers/admin-manager.d.ts +116 -0
- package/dist/managers/admin-manager.d.ts.map +1 -0
- package/dist/managers/admin-manager.js +169 -0
- package/dist/managers/admin-manager.js.map +1 -0
- package/dist/managers/agent-registry.d.ts +52 -1
- package/dist/managers/agent-registry.d.ts.map +1 -1
- package/dist/managers/agent-registry.js +145 -6
- package/dist/managers/agent-registry.js.map +1 -1
- package/dist/managers/agent-room-manager.d.ts +216 -0
- package/dist/managers/agent-room-manager.d.ts.map +1 -0
- package/dist/managers/agent-room-manager.js +555 -0
- package/dist/managers/agent-room-manager.js.map +1 -0
- package/dist/managers/connection-manager.js +2 -0
- package/dist/managers/connection-manager.js.map +1 -1
- package/dist/managers/index.d.ts +4 -1
- package/dist/managers/index.d.ts.map +1 -1
- package/dist/managers/index.js +7 -1
- package/dist/managers/index.js.map +1 -1
- package/dist/managers/message-router.d.ts +56 -5
- package/dist/managers/message-router.d.ts.map +1 -1
- package/dist/managers/message-router.js +155 -8
- package/dist/managers/message-router.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 +442 -0
- package/dist/managers/room-management-manager.js.map +1 -0
- package/dist/managers/room-manager.d.ts +11 -9
- package/dist/managers/room-manager.d.ts.map +1 -1
- package/dist/managers/room-manager.js +14 -10
- package/dist/managers/room-manager.js.map +1 -1
- package/dist/payments/index.d.ts +5 -0
- package/dist/payments/index.d.ts.map +1 -0
- package/dist/payments/index.js +21 -0
- package/dist/payments/index.js.map +1 -0
- package/dist/payments/payment-client.d.ts +74 -0
- package/dist/payments/payment-client.d.ts.map +1 -0
- package/dist/payments/payment-client.js +207 -0
- package/dist/payments/payment-client.js.map +1 -0
- package/dist/teneo-sdk.d.ts +467 -33
- package/dist/teneo-sdk.d.ts.map +1 -1
- package/dist/teneo-sdk.js +735 -26
- package/dist/teneo-sdk.js.map +1 -1
- package/dist/types/categories.d.ts +22 -0
- package/dist/types/categories.d.ts.map +1 -0
- package/dist/types/categories.js +40 -0
- package/dist/types/categories.js.map +1 -0
- package/dist/types/config.d.ts +134 -54
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +70 -9
- package/dist/types/config.js.map +1 -1
- package/dist/types/error-codes.d.ts +10 -0
- package/dist/types/error-codes.d.ts.map +1 -1
- package/dist/types/error-codes.js +12 -0
- package/dist/types/error-codes.js.map +1 -1
- package/dist/types/events.d.ts +176 -68
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/events.js +19 -1
- package/dist/types/events.js.map +1 -1
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +57 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/messages.d.ts +22225 -2592
- package/dist/types/messages.d.ts.map +1 -1
- package/dist/types/messages.js +537 -28
- package/dist/types/messages.js.map +1 -1
- package/dist/utils/bounded-queue.d.ts.map +1 -1
- package/dist/utils/bounded-queue.js +5 -2
- package/dist/utils/bounded-queue.js.map +1 -1
- package/dist/utils/circuit-breaker.js +11 -4
- package/dist/utils/circuit-breaker.js.map +1 -1
- package/dist/utils/deduplication-cache.js +3 -1
- package/dist/utils/deduplication-cache.js.map +1 -1
- package/dist/utils/event-waiter.d.ts +3 -3
- package/dist/utils/event-waiter.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/pricing-resolver.d.ts +26 -0
- package/dist/utils/pricing-resolver.d.ts.map +1 -0
- package/dist/utils/pricing-resolver.js +85 -0
- package/dist/utils/pricing-resolver.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -1
- package/dist/utils/rate-limiter.js +6 -0
- package/dist/utils/rate-limiter.js.map +1 -1
- package/dist/utils/retry-policy.js +1 -0
- package/dist/utils/retry-policy.js.map +1 -1
- package/dist/utils/secure-private-key.js +3 -1
- package/dist/utils/secure-private-key.js.map +1 -1
- package/dist/utils/signature-verifier.d.ts.map +1 -1
- package/dist/utils/signature-verifier.js +3 -1
- package/dist/utils/signature-verifier.js.map +1 -1
- package/examples/.env.example +2 -2
- package/examples/agent-room-management-example.ts +335 -0
- package/examples/basic-usage.ts +3 -4
- package/examples/claude-agent-x-follower/.env.example +3 -3
- package/examples/claude-agent-x-follower/QUICKSTART.md +3 -3
- package/examples/claude-agent-x-follower/README.md +3 -3
- package/examples/claude-agent-x-follower/index.ts +120 -96
- package/examples/n8n-teneo/.env.example +3 -3
- package/examples/n8n-teneo/README.md +2 -2
- package/examples/n8n-teneo/index.ts +54 -44
- package/examples/nestjs-dashboard/.env.example +11 -0
- package/examples/nestjs-dashboard/README.md +297 -0
- package/examples/nestjs-dashboard/nest-cli.json +10 -0
- package/examples/nestjs-dashboard/package.json +44 -0
- package/examples/nestjs-dashboard/pnpm-lock.yaml +3079 -0
- package/examples/nestjs-dashboard/src/app.controller.ts +24 -0
- package/examples/nestjs-dashboard/src/app.module.ts +15 -0
- package/examples/nestjs-dashboard/src/main.ts +32 -0
- package/examples/nestjs-dashboard/src/public/dashboard.html +1144 -0
- package/examples/nestjs-dashboard/src/teneo/agents.controller.ts +54 -0
- package/examples/nestjs-dashboard/src/teneo/events.controller.ts +65 -0
- package/examples/nestjs-dashboard/src/teneo/messages.controller.ts +47 -0
- package/examples/nestjs-dashboard/src/teneo/rooms.controller.ts +258 -0
- package/examples/nestjs-dashboard/src/teneo/teneo.module.ts +13 -0
- package/examples/nestjs-dashboard/src/teneo/teneo.service.ts +484 -0
- package/examples/nestjs-dashboard/tsconfig.json +22 -0
- package/examples/openai-teneo/.env.example +3 -3
- package/examples/openai-teneo/README.md +3 -3
- package/examples/openai-teneo/index.ts +82 -71
- package/examples/production-dashboard/.env.example +3 -3
- package/examples/production-dashboard/README.md +90 -13
- package/examples/production-dashboard/public/dashboard.html +1173 -601
- package/examples/production-dashboard/server.ts +349 -7
- package/examples/room-management-example.ts +282 -0
- package/examples/usage/.env.example +2 -2
- package/examples/usage/01-connect.ts +3 -4
- package/examples/usage/02-list-agents.ts +2 -3
- package/examples/usage/03-pick-agent.ts +2 -3
- package/examples/usage/04-find-by-capability.ts +2 -3
- package/examples/usage/05-webhook-example.ts +2 -3
- package/examples/usage/06-simple-api-server.ts +2 -3
- package/examples/usage/07-event-listener.ts +2 -3
- package/examples/usage/README.md +1 -1
- package/examples/webhook-integration.ts +1 -1
- package/examples/x-influencer-battle-server.ts +2 -2
- package/package.json +12 -1
- package/src/core/websocket-client.test.ts +8 -3
- package/src/core/websocket-client.ts +58 -4
- package/src/formatters/response-formatter.test.ts +2 -0
- package/src/formatters/response-formatter.ts +3 -3
- package/src/handlers/message-handlers/agent-details-response-handler.ts +42 -0
- package/src/handlers/message-handlers/agent-room-operation-response-handler.ts +77 -0
- package/src/handlers/message-handlers/agent-status-update-handler.ts +52 -0
- package/src/handlers/message-handlers/all-agents-response-handler.ts +39 -0
- package/src/handlers/message-handlers/auth-message-handler.ts +78 -5
- package/src/handlers/message-handlers/auth-success-handler.ts +63 -6
- package/src/handlers/message-handlers/base-handler.ts +20 -7
- package/src/handlers/message-handlers/index.ts +53 -0
- package/src/handlers/message-handlers/list-available-agents-handler.ts +41 -0
- package/src/handlers/message-handlers/list-room-agents-handler.ts +58 -0
- package/src/handlers/message-handlers/list-rooms-response-handler.ts +4 -2
- package/src/handlers/message-handlers/rate-limit-notification-handler.ts +45 -0
- package/src/handlers/message-handlers/regular-message-handler.ts +3 -2
- package/src/handlers/message-handlers/room-operation-response-handler.ts +102 -0
- package/src/handlers/message-handlers/subscribe-response-handler.ts +12 -2
- package/src/handlers/message-handlers/task-quote-handler.ts +31 -0
- package/src/handlers/message-handlers/types.ts +41 -7
- package/src/handlers/message-handlers/unsubscribe-response-handler.ts +12 -2
- package/src/handlers/message-handlers/user-authenticated-handler.ts +31 -0
- package/src/handlers/message-handlers/user-count-handler.ts +34 -0
- package/src/handlers/webhook-handler.test.ts +3 -2
- package/src/handlers/webhook-handler.ts +13 -7
- package/src/index.ts +21 -0
- package/src/managers/admin-manager.ts +249 -0
- package/src/managers/agent-registry.test.ts +2 -1
- package/src/managers/agent-registry.ts +170 -2
- package/src/managers/agent-room-manager.ts +665 -0
- package/src/managers/index.ts +15 -1
- package/src/managers/message-router.ts +215 -17
- package/src/managers/room-management-manager.ts +520 -0
- package/src/managers/room-manager.ts +15 -20
- package/src/payments/index.ts +22 -0
- package/src/payments/payment-client.ts +240 -0
- package/src/teneo-sdk.ts +806 -30
- package/src/types/categories.ts +45 -0
- package/src/types/config.ts +80 -7
- package/src/types/error-codes.ts +14 -0
- package/src/types/events.test.ts +1 -0
- package/src/types/events.ts +67 -0
- package/src/types/index.ts +111 -0
- package/src/types/messages.test.ts +2 -1
- package/src/types/messages.ts +677 -42
- package/src/utils/bounded-queue.test.ts +1 -1
- package/src/utils/bounded-queue.ts +2 -1
- package/src/utils/circuit-breaker.test.ts +1 -1
- package/src/utils/deduplication-cache.test.ts +1 -1
- package/src/utils/event-waiter.test.ts +1 -1
- package/src/utils/event-waiter.ts +3 -3
- package/src/utils/index.ts +7 -0
- package/src/utils/logger.ts +8 -8
- package/src/utils/pricing-resolver.ts +128 -0
- package/src/utils/rate-limiter.test.ts +1 -1
- package/src/utils/rate-limiter.ts +1 -0
- package/src/utils/signature-verifier.test.ts +2 -2
- package/src/utils/signature-verifier.ts +3 -2
- package/tests/.env.example +7 -0
- package/tests/direct-agent-test.ts +151 -0
- package/tests/integration/real-server.test.ts +2 -0
- package/tests/integration/room-management.test.ts +516 -0
- package/tests/integration/websocket.test.ts +5 -2
- package/tests/payment-flow-test.ts +147 -0
- package/tests/unit/handlers/agent-room-operation-response-handler.test.ts +382 -0
- package/tests/unit/handlers/agent-status-update-handler.test.ts +403 -0
- package/tests/unit/handlers/auth-success-handler-rooms.test.ts +697 -0
- package/tests/unit/handlers/list-available-agents-handler.test.ts +248 -0
- package/tests/unit/handlers/list-room-agents-handler.test.ts +290 -0
- package/tests/unit/handlers/room-operation-response-handler.test.ts +500 -0
- package/tests/unit/managers/agent-room-manager.test.ts +527 -0
- package/tests/unit/managers/room-management-manager.test.ts +420 -0
- package/tsconfig.json +2 -2
- package/vitest.config.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature-verifier.js","sourceRoot":"","sources":["../../src/utils/signature-verifier.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+BAAgE;AAqChE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"signature-verifier.js","sourceRoot":"","sources":["../../src/utils/signature-verifier.ts"],"names":[],"mappings":"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"}
|
package/examples/.env.example
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Teneo SDK Examples - Environment Configuration
|
|
2
2
|
# Copy this file to .env and fill in your actual values
|
|
3
3
|
|
|
4
|
-
# Required: WebSocket URL for Teneo
|
|
5
|
-
WS_URL=wss://
|
|
4
|
+
# Required: WebSocket URL for Teneo Protocol
|
|
5
|
+
WS_URL=wss://your-teneo-server.com/ws
|
|
6
6
|
|
|
7
7
|
# Required: Your Ethereum private key (keep this secret!)
|
|
8
8
|
PRIVATE_KEY=your-private-key-here
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Room Management Example
|
|
3
|
+
*
|
|
4
|
+
* Demonstrates how to customize which agents are available in each room using Teneo SDK v2.0.
|
|
5
|
+
*
|
|
6
|
+
* This example shows:
|
|
7
|
+
* - Listing available agents for a room
|
|
8
|
+
* - Adding specific agents to your room
|
|
9
|
+
* - Listing agents currently in a room
|
|
10
|
+
* - Removing agents from a room
|
|
11
|
+
* - Using cache for performance
|
|
12
|
+
* - Real-time agent status updates
|
|
13
|
+
*
|
|
14
|
+
* Prerequisites:
|
|
15
|
+
* - Set TENEO_WS_URL environment variable
|
|
16
|
+
* - Set PRIVATE_KEY environment variable (64 hex characters, no 0x prefix)
|
|
17
|
+
* - Have at least one owned room
|
|
18
|
+
*
|
|
19
|
+
* Run:
|
|
20
|
+
* npx ts-node examples/agent-room-management-example.ts
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
import { TeneoSDK } from "../src";
|
|
24
|
+
import * as dotenv from "dotenv";
|
|
25
|
+
|
|
26
|
+
dotenv.config();
|
|
27
|
+
|
|
28
|
+
const wsUrl = process.env.TENEO_WS_URL!;
|
|
29
|
+
const privateKey = process.env.PRIVATE_KEY!;
|
|
30
|
+
|
|
31
|
+
async function main() {
|
|
32
|
+
console.log("🚀 Teneo SDK v2.0 - Agent Room Management Example\n");
|
|
33
|
+
|
|
34
|
+
// Initialize SDK
|
|
35
|
+
const sdk = new TeneoSDK({
|
|
36
|
+
wsUrl,
|
|
37
|
+
privateKey,
|
|
38
|
+
logLevel: "info",
|
|
39
|
+
reconnect: true
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
// Set up event listeners
|
|
43
|
+
setupEventListeners(sdk);
|
|
44
|
+
|
|
45
|
+
try {
|
|
46
|
+
// Connect and authenticate
|
|
47
|
+
console.log("📡 Connecting to Teneo Protocol...");
|
|
48
|
+
await sdk.connect();
|
|
49
|
+
console.log("✅ Connected and authenticated\n");
|
|
50
|
+
|
|
51
|
+
// Wait for initial data to load
|
|
52
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
53
|
+
|
|
54
|
+
// Step 1: Get or create a test room
|
|
55
|
+
console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
56
|
+
console.log("🏠 Setting Up Test Room");
|
|
57
|
+
console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
58
|
+
const testRoom = await getOrCreateTestRoom(sdk);
|
|
59
|
+
|
|
60
|
+
if (!testRoom) {
|
|
61
|
+
console.log("❌ Could not get or create a test room");
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
console.log(`Using room: "${testRoom.name}" (${testRoom.id})\n`);
|
|
66
|
+
|
|
67
|
+
// Step 2: List current agents in the room
|
|
68
|
+
console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
69
|
+
console.log("📋 Current Agents in Room");
|
|
70
|
+
console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
71
|
+
const currentAgents = await sdk.listRoomAgents(testRoom.id, false); // Force fresh data
|
|
72
|
+
displayAgents(currentAgents, "room");
|
|
73
|
+
|
|
74
|
+
// Step 3: List available agents (not yet in room)
|
|
75
|
+
console.log("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
76
|
+
console.log("🆕 Available Agents (Not in Room)");
|
|
77
|
+
console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
78
|
+
const availableAgents = await sdk.listAvailableAgents(testRoom.id, false);
|
|
79
|
+
displayAgents(availableAgents, "available");
|
|
80
|
+
|
|
81
|
+
// Step 4: Add agents to the room
|
|
82
|
+
if (availableAgents.length > 0) {
|
|
83
|
+
console.log("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
84
|
+
console.log("➕ Adding Agents to Room");
|
|
85
|
+
console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
86
|
+
await addAgentsToRoom(sdk, testRoom.id, availableAgents);
|
|
87
|
+
|
|
88
|
+
// Wait for additions to process
|
|
89
|
+
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Step 5: List updated room agents (using cache this time)
|
|
93
|
+
console.log("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
94
|
+
console.log("📋 Updated Room Agents (from cache)");
|
|
95
|
+
console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
96
|
+
const updatedAgents = await sdk.listRoomAgents(testRoom.id, true); // Use cache
|
|
97
|
+
displayAgents(updatedAgents, "room");
|
|
98
|
+
|
|
99
|
+
// Step 6: Demonstrate synchronous query methods
|
|
100
|
+
console.log("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
101
|
+
console.log("⚡ Instant Cache Queries (No Network Call)");
|
|
102
|
+
console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
103
|
+
demonstrateCacheQueries(sdk, testRoom.id, updatedAgents);
|
|
104
|
+
|
|
105
|
+
// Step 7: Remove agents from the room
|
|
106
|
+
if (updatedAgents.length > 0) {
|
|
107
|
+
console.log("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
108
|
+
console.log("➖ Removing Agents from Room");
|
|
109
|
+
console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
110
|
+
await removeAgentsFromRoom(sdk, testRoom.id, updatedAgents);
|
|
111
|
+
|
|
112
|
+
// Wait for removals to process
|
|
113
|
+
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Step 8: Final room status
|
|
117
|
+
console.log("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
118
|
+
console.log("📊 Final Room Status");
|
|
119
|
+
console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
120
|
+
const finalAgents = await sdk.listRoomAgents(testRoom.id, false);
|
|
121
|
+
displayAgents(finalAgents, "room");
|
|
122
|
+
|
|
123
|
+
// Step 9: Demonstrate cache invalidation
|
|
124
|
+
console.log("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
125
|
+
console.log("🔄 Cache Management");
|
|
126
|
+
console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
127
|
+
console.log("Cache is automatically invalidated when:");
|
|
128
|
+
console.log(" ✓ You add an agent to the room");
|
|
129
|
+
console.log(" ✓ You remove an agent from the room");
|
|
130
|
+
console.log(" ✓ An agent's status changes");
|
|
131
|
+
console.log(" ✓ Cache TTL expires (5 minutes)");
|
|
132
|
+
console.log("\nManual cache invalidation:");
|
|
133
|
+
sdk.invalidateAgentRoomCache(testRoom.id);
|
|
134
|
+
console.log(` ✅ Cache cleared for room ${testRoom.id}`);
|
|
135
|
+
|
|
136
|
+
console.log("\n✅ Agent room management example completed!");
|
|
137
|
+
} catch (error: any) {
|
|
138
|
+
console.error("\n❌ Error:", error.message);
|
|
139
|
+
console.error(error.stack);
|
|
140
|
+
} finally {
|
|
141
|
+
// Disconnect
|
|
142
|
+
console.log("\n👋 Disconnecting...");
|
|
143
|
+
sdk.disconnect();
|
|
144
|
+
console.log("✅ Disconnected");
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function setupEventListeners(sdk: TeneoSDK) {
|
|
149
|
+
// Agent added
|
|
150
|
+
sdk.on("agent_room:agent_added", (roomId, agentId) => {
|
|
151
|
+
console.log(` ✅ Agent ${agentId} added to room ${roomId}`);
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
// Agent removed
|
|
155
|
+
sdk.on("agent_room:agent_removed", (roomId, agentId) => {
|
|
156
|
+
console.log(` ✅ Agent ${agentId} removed from room ${roomId}`);
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
// Agents listed
|
|
160
|
+
sdk.on("agent_room:agents_listed", (roomId, agents) => {
|
|
161
|
+
console.log(` 📋 Listed ${agents.length} agents in room ${roomId}`);
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
// Available agents listed
|
|
165
|
+
sdk.on("agent_room:available_agents_listed", (agents) => {
|
|
166
|
+
console.log(` 📋 Listed ${agents.length} available agents`);
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
// Status updates (real-time)
|
|
170
|
+
sdk.on("agent_room:status_update", (data) => {
|
|
171
|
+
console.log(` 🔄 Agent ${data.agentId} status updated in room ${data.roomId}`);
|
|
172
|
+
console.log(` New status: ${data.status}`);
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
// Error events
|
|
176
|
+
sdk.on("agent_room:add_error", (error, roomId) => {
|
|
177
|
+
console.error(` ❌ Failed to add agent to room ${roomId}: ${error.message}`);
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
sdk.on("agent_room:remove_error", (error, roomId) => {
|
|
181
|
+
console.error(` ❌ Failed to remove agent from room ${roomId}: ${error.message}`);
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
sdk.on("agent_room:list_error", (error, roomId) => {
|
|
185
|
+
console.error(` ❌ Failed to list agents in room ${roomId}: ${error.message}`);
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
async function getOrCreateTestRoom(sdk: TeneoSDK) {
|
|
190
|
+
// Try to get an existing owned room
|
|
191
|
+
const ownedRooms = sdk.getOwnedRooms();
|
|
192
|
+
|
|
193
|
+
if (ownedRooms.length > 0) {
|
|
194
|
+
console.log(`Found ${ownedRooms.length} existing owned room(s)`);
|
|
195
|
+
console.log(`Using first room: "${ownedRooms[0].name}"`);
|
|
196
|
+
return ownedRooms[0];
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// Create a new test room
|
|
200
|
+
console.log("No owned rooms found. Creating test room...");
|
|
201
|
+
|
|
202
|
+
if (!sdk.canCreateRoom()) {
|
|
203
|
+
console.log("⚠️ Cannot create room - limit reached");
|
|
204
|
+
console.log(` Current: ${sdk.getOwnedRoomCount()}/${sdk.getRoomLimit()}`);
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
try {
|
|
209
|
+
const room = await sdk.createRoom({
|
|
210
|
+
name: "Agent Test Room",
|
|
211
|
+
description: "Room for testing agent customization (SDK v2.0 example)"
|
|
212
|
+
});
|
|
213
|
+
console.log(`✅ Created test room: ${room.id}`);
|
|
214
|
+
return room;
|
|
215
|
+
} catch (error: any) {
|
|
216
|
+
console.error(`Failed to create test room: ${error.message}`);
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
function displayAgents(agents: any[], type: "room" | "available") {
|
|
222
|
+
if (agents.length === 0) {
|
|
223
|
+
console.log(` (No ${type === "room" ? "agents in room" : "available agents"})`);
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
console.log(`Found ${agents.length} agent(s):\n`);
|
|
228
|
+
|
|
229
|
+
agents.forEach((agent, i) => {
|
|
230
|
+
console.log(`${i + 1}. ${agent.agent_name || "Unnamed Agent"}`);
|
|
231
|
+
console.log(` ID: ${agent.agent_id}`);
|
|
232
|
+
|
|
233
|
+
if (agent.description) {
|
|
234
|
+
console.log(` Description: ${agent.description}`);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
if (agent.status) {
|
|
238
|
+
console.log(` Status: ${agent.status}`);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
if (agent.capabilities && agent.capabilities.length > 0) {
|
|
242
|
+
const capNames = agent.capabilities.map((c: any) => c.name).join(", ");
|
|
243
|
+
console.log(` Capabilities: ${capNames}`);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
if (agent.commands && agent.commands.length > 0) {
|
|
247
|
+
const cmdTriggers = agent.commands.map((c: any) => `/${c.trigger}`).join(", ");
|
|
248
|
+
console.log(` Commands: ${cmdTriggers}`);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
if (agent.image) {
|
|
252
|
+
console.log(` Image: ${agent.image.substring(0, 50)}...`);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
if (agent.added_at) {
|
|
256
|
+
console.log(` Added at: ${agent.added_at}`);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
if (agent.added_by) {
|
|
260
|
+
console.log(` Added by: ${agent.added_by}`);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
console.log();
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
async function addAgentsToRoom(sdk: TeneoSDK, roomId: string, availableAgents: any[]) {
|
|
268
|
+
// Add up to 2 agents from the available list
|
|
269
|
+
const agentsToAdd = availableAgents.slice(0, 2);
|
|
270
|
+
|
|
271
|
+
console.log(`Adding ${agentsToAdd.length} agent(s) to the room...\n`);
|
|
272
|
+
|
|
273
|
+
for (const agent of agentsToAdd) {
|
|
274
|
+
try {
|
|
275
|
+
console.log(`Adding "${agent.agent_name}" (${agent.agent_id})...`);
|
|
276
|
+
await sdk.addAgentToRoom(roomId, agent.agent_id);
|
|
277
|
+
// Wait a bit between additions
|
|
278
|
+
await new Promise((resolve) => setTimeout(resolve, 300));
|
|
279
|
+
} catch (error: any) {
|
|
280
|
+
console.error(`Failed to add agent ${agent.agent_id}: ${error.message}`);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
async function removeAgentsFromRoom(sdk: TeneoSDK, roomId: string, roomAgents: any[]) {
|
|
286
|
+
// Remove up to 2 agents
|
|
287
|
+
const agentsToRemove = roomAgents.slice(0, 2);
|
|
288
|
+
|
|
289
|
+
console.log(`Removing ${agentsToRemove.length} agent(s) from the room...\n`);
|
|
290
|
+
|
|
291
|
+
for (const agent of agentsToRemove) {
|
|
292
|
+
try {
|
|
293
|
+
console.log(`Removing "${agent.agent_name}" (${agent.agent_id})...`);
|
|
294
|
+
await sdk.removeAgentFromRoom(roomId, agent.agent_id);
|
|
295
|
+
// Wait a bit between removals
|
|
296
|
+
await new Promise((resolve) => setTimeout(resolve, 300));
|
|
297
|
+
} catch (error: any) {
|
|
298
|
+
console.error(`Failed to remove agent ${agent.agent_id}: ${error.message}`);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
function demonstrateCacheQueries(sdk: TeneoSDK, roomId: string, agents: any[]) {
|
|
304
|
+
// Get agent count (instant, from cache)
|
|
305
|
+
const count = sdk.getRoomAgentCount(roomId);
|
|
306
|
+
console.log(`Room agent count: ${count}`);
|
|
307
|
+
|
|
308
|
+
// Get cached agents (instant)
|
|
309
|
+
const cachedAgents = sdk.getRoomAgents(roomId);
|
|
310
|
+
if (cachedAgents) {
|
|
311
|
+
const names = cachedAgents.map((a) => a.agent_name || "Unnamed").join(", ");
|
|
312
|
+
console.log(`Cached agents: ${names}`);
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
// Check if specific agent is in room (instant)
|
|
316
|
+
if (agents.length > 0) {
|
|
317
|
+
const firstAgent = agents[0];
|
|
318
|
+
const isInRoom = sdk.isAgentInRoom(roomId, firstAgent.agent_id);
|
|
319
|
+
console.log(
|
|
320
|
+
`Is "${firstAgent.agent_name}" in room? ${isInRoom === true ? "✅ Yes" : isInRoom === false ? "❌ No" : "❓ Unknown (no cache)"}`
|
|
321
|
+
);
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
// Get cached available agents (instant)
|
|
325
|
+
const cachedAvailable = sdk.getAvailableAgents(roomId);
|
|
326
|
+
if (cachedAvailable) {
|
|
327
|
+
console.log(`Cached available agents: ${cachedAvailable.length}`);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
console.log("\n💡 These queries are instant - no network calls!");
|
|
331
|
+
console.log(" Cache is automatically maintained and invalidated as needed.");
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
// Run the example
|
|
335
|
+
main().catch(console.error);
|
package/examples/basic-usage.ts
CHANGED
|
@@ -6,8 +6,7 @@
|
|
|
6
6
|
import { TeneoSDK, SDKConfigBuilder, SecurePrivateKey } from "../src";
|
|
7
7
|
|
|
8
8
|
// Load configuration from environment variables
|
|
9
|
-
const WS_URL =
|
|
10
|
-
process.env.WS_URL;
|
|
9
|
+
const WS_URL = process.env.WS_URL;
|
|
11
10
|
const PRIVATE_KEY = process.env.PRIVATE_KEY || "";
|
|
12
11
|
const WALLET_ADDRESS = process.env.WALLET_ADDRESS;
|
|
13
12
|
const DEFAULT_ROOM = process.env.DEFAULT_ROOM || "general";
|
|
@@ -41,8 +40,8 @@ async function main() {
|
|
|
41
40
|
setupEventListeners(sdk);
|
|
42
41
|
|
|
43
42
|
try {
|
|
44
|
-
// Connect to Teneo
|
|
45
|
-
console.log("\n→ Connecting to Teneo
|
|
43
|
+
// Connect to Teneo Protocol
|
|
44
|
+
console.log("\n→ Connecting to Teneo Protocol...");
|
|
46
45
|
await sdk.connect();
|
|
47
46
|
console.log("✓ SDK is connected and authenticated!");
|
|
48
47
|
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
# Copy this file to .env and fill in your values
|
|
3
3
|
|
|
4
4
|
# ============================================================================
|
|
5
|
-
# REQUIRED: Teneo
|
|
5
|
+
# REQUIRED: Teneo Protocol Connection
|
|
6
6
|
# ============================================================================
|
|
7
7
|
|
|
8
8
|
# WebSocket URL for Teneo AI Network
|
|
9
9
|
# Production: wss://your-production-server.com/ws
|
|
10
|
-
# Development: wss://
|
|
11
|
-
WS_URL=wss://
|
|
10
|
+
# Development: wss://your-teneo-server.com/ws
|
|
11
|
+
WS_URL=wss://your-teneo-server.com/ws
|
|
12
12
|
|
|
13
13
|
# Ethereum Private Key (with 0x prefix)
|
|
14
14
|
# IMPORTANT: Never commit your actual private key to version control!
|
|
@@ -26,8 +26,8 @@ cp examples/claude-agent-x-follower/.env.example examples/claude-agent-x-followe
|
|
|
26
26
|
Edit `.env` with your credentials:
|
|
27
27
|
|
|
28
28
|
```env
|
|
29
|
-
# Required: Teneo
|
|
30
|
-
WS_URL=wss://
|
|
29
|
+
# Required: Teneo Protocol Connection
|
|
30
|
+
WS_URL=wss://your-teneo-server.com/ws
|
|
31
31
|
PRIVATE_KEY=0x1234567890123456789012345678901234567890123456789012345678901234
|
|
32
32
|
WALLET_ADDRESS=0x1234567890123456789012345678901234567890 # Optional - auto-derived
|
|
33
33
|
|
|
@@ -76,7 +76,7 @@ npx tsx examples/claude-agent-x-follower/index.ts "Get timeline for VitalikButer
|
|
|
76
76
|
```
|
|
77
77
|
🤖 Claude Agent + Teneo SDK - X Timeline Follower
|
|
78
78
|
|
|
79
|
-
📡 Connecting to Teneo
|
|
79
|
+
📡 Connecting to Teneo Protocol...
|
|
80
80
|
✅ Connected to Teneo
|
|
81
81
|
|
|
82
82
|
💬 Prompt: "Get timeline for elonmusk and summarize the latest 5 tweets"
|
|
@@ -69,8 +69,8 @@ cp examples/claude-agent-x-follower/.env.example examples/claude-agent-x-followe
|
|
|
69
69
|
### Required Configuration
|
|
70
70
|
|
|
71
71
|
```env
|
|
72
|
-
# Teneo
|
|
73
|
-
WS_URL=wss://
|
|
72
|
+
# Teneo Protocol Connection
|
|
73
|
+
WS_URL=wss://your-teneo-server.com/ws
|
|
74
74
|
PRIVATE_KEY=0x1234567890123456789012345678901234567890123456789012345678901234
|
|
75
75
|
WALLET_ADDRESS=0x1234567890123456789012345678901234567890 # Optional - auto-derived from private key
|
|
76
76
|
|
|
@@ -142,7 +142,7 @@ npx tsx examples/claude-agent-x-follower/index.ts "Get timeline for OpenAI and s
|
|
|
142
142
|
```
|
|
143
143
|
🤖 Claude Agent + Teneo SDK - X Timeline Follower
|
|
144
144
|
|
|
145
|
-
📡 Connecting to Teneo
|
|
145
|
+
📡 Connecting to Teneo Protocol...
|
|
146
146
|
✅ Connected to Teneo
|
|
147
147
|
|
|
148
148
|
💬 Prompt: "Get timeline for elonmusk and summarize the latest 5 tweets"
|