@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
package/.eslintrc.json
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"node": true,
|
|
14
14
|
"jest": true
|
|
15
15
|
},
|
|
16
|
-
"ignorePatterns": ["dist", "node_modules"],
|
|
16
|
+
"ignorePatterns": ["dist", "node_modules", "examples"],
|
|
17
17
|
"rules": {
|
|
18
18
|
"@typescript-eslint/no-explicit-any": "warn",
|
|
19
19
|
"@typescript-eslint/explicit-function-return-type": "off",
|
|
@@ -22,5 +22,14 @@
|
|
|
22
22
|
{ "argsIgnorePattern": "^_" }
|
|
23
23
|
],
|
|
24
24
|
"prettier/prettier": ["error", { "trailingComma": "none" }]
|
|
25
|
-
}
|
|
25
|
+
},
|
|
26
|
+
"overrides": [
|
|
27
|
+
{
|
|
28
|
+
"files": ["**/*.test.ts", "tests/**/*.ts"],
|
|
29
|
+
"rules": {
|
|
30
|
+
"@typescript-eslint/no-explicit-any": "off",
|
|
31
|
+
"@typescript-eslint/no-unused-vars": "off"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
26
35
|
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
name: Bug report
|
|
2
|
+
description: File a bug report for teneo-sdk
|
|
3
|
+
title: "<short description of the bug>"
|
|
4
|
+
labels:
|
|
5
|
+
- "bug"
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Thank you for taking the time to report this issue and help improve teneo-sdk. We'll look into it! 🐛
|
|
11
|
+
|
|
12
|
+
- id: issue-type
|
|
13
|
+
type: dropdown
|
|
14
|
+
attributes:
|
|
15
|
+
label: Issue Type
|
|
16
|
+
description: What type of issue are you reporting?
|
|
17
|
+
options:
|
|
18
|
+
- Agent SDK Issue
|
|
19
|
+
- Network/Protocol Issue
|
|
20
|
+
- NFT Integration Issue
|
|
21
|
+
- Build/Dependency Issue
|
|
22
|
+
- Documentation Issue
|
|
23
|
+
- Other
|
|
24
|
+
validations:
|
|
25
|
+
required: true
|
|
26
|
+
|
|
27
|
+
- id: operating-system
|
|
28
|
+
type: dropdown
|
|
29
|
+
attributes:
|
|
30
|
+
label: Operating System
|
|
31
|
+
description: What operating system are you running?
|
|
32
|
+
options:
|
|
33
|
+
- macOS
|
|
34
|
+
- Windows
|
|
35
|
+
- Linux
|
|
36
|
+
validations:
|
|
37
|
+
required: true
|
|
38
|
+
|
|
39
|
+
- id: description
|
|
40
|
+
type: textarea
|
|
41
|
+
attributes:
|
|
42
|
+
label: Description of the bug
|
|
43
|
+
description: What happened and what did you expect?
|
|
44
|
+
placeholder: Describe what went wrong and what you expected to happen instead.
|
|
45
|
+
validations:
|
|
46
|
+
required: true
|
|
47
|
+
|
|
48
|
+
- id: reproduce
|
|
49
|
+
type: textarea
|
|
50
|
+
attributes:
|
|
51
|
+
label: Steps to Reproduce
|
|
52
|
+
placeholder: |
|
|
53
|
+
1. Initialize agent with configuration...
|
|
54
|
+
2. Call method/function...
|
|
55
|
+
3. See error
|
|
56
|
+
validations:
|
|
57
|
+
required: true
|
|
58
|
+
|
|
59
|
+
- id: screenshots
|
|
60
|
+
type: textarea
|
|
61
|
+
attributes:
|
|
62
|
+
label: Screenshots / Videos
|
|
63
|
+
description: If applicable, add screenshots or videos to help explain your problem
|
|
64
|
+
placeholder: Drag and drop images/videos here or paste URLs
|
|
65
|
+
|
|
66
|
+
- id: sdk-version
|
|
67
|
+
type: input
|
|
68
|
+
attributes:
|
|
69
|
+
label: SDK Version
|
|
70
|
+
description: Which version of teneo-sdk are you using? (Check your package.json or run `npm list teneo-sdk`)
|
|
71
|
+
placeholder: e.g., v0.1.0 or commit hash
|
|
72
|
+
|
|
73
|
+
- id: go-version
|
|
74
|
+
type: input
|
|
75
|
+
attributes:
|
|
76
|
+
label: Go Version
|
|
77
|
+
description: Which version of Go are you using? (Run `go version`)
|
|
78
|
+
placeholder: e.g., go1.21.0
|
|
79
|
+
|
|
80
|
+
- id: additional-context
|
|
81
|
+
type: textarea
|
|
82
|
+
attributes:
|
|
83
|
+
label: Additional Context
|
|
84
|
+
description: Add any other context about the problem here (logs, error messages, etc.)
|
|
85
|
+
placeholder: Paste error messages, logs, or any other relevant information...
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: 💬 Discord
|
|
4
|
+
url: https://discord.com/invite/teneoprotocol
|
|
5
|
+
about: Join our Discord for help and discussions!
|
|
6
|
+
- name: 📚 Documentation
|
|
7
|
+
url: https://teneo-protocol.ai/chat-room
|
|
8
|
+
about: Find setup guides and learn how to use Teneo SDK
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest a new feature or enhancement for teneo-sdk
|
|
4
|
+
title: '[Feature Request] '
|
|
5
|
+
labels: enhancement
|
|
6
|
+
assignees: ''
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
What problem does this solve? (describe the problem you're experiencing)
|
|
10
|
+
*
|
|
11
|
+
|
|
12
|
+
How are you working around this today? (your current solution or workaround)
|
|
13
|
+
*
|
|
14
|
+
|
|
15
|
+
What's your proposed solution? (how should teneo-sdk address this?)
|
|
16
|
+
*
|
|
17
|
+
|
|
18
|
+
Additional context (optional - add screenshots, examples, or other helpful details)
|
|
19
|
+
*
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
Thanks for sharing your idea! We love hearing how we can make teneo-sdk better. ✨
|
|
@@ -12,11 +12,16 @@ on:
|
|
|
12
12
|
|
|
13
13
|
jobs:
|
|
14
14
|
claude-review:
|
|
15
|
+
# Only run in Teneo-Protocol organization
|
|
16
|
+
if: github.repository_owner == 'Teneo-Protocol'
|
|
17
|
+
|
|
15
18
|
# Optional: Filter by PR author
|
|
16
19
|
# if: |
|
|
17
|
-
# github.
|
|
18
|
-
#
|
|
19
|
-
#
|
|
20
|
+
# github.repository_owner == 'Teneo-Protocol' && (
|
|
21
|
+
# github.event.pull_request.user.login == 'external-contributor' ||
|
|
22
|
+
# github.event.pull_request.user.login == 'new-developer' ||
|
|
23
|
+
# github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
|
|
24
|
+
# )
|
|
20
25
|
|
|
21
26
|
runs-on: ubuntu-latest
|
|
22
27
|
permissions:
|
|
@@ -13,10 +13,12 @@ on:
|
|
|
13
13
|
jobs:
|
|
14
14
|
claude:
|
|
15
15
|
if: |
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
github.repository_owner == 'Teneo-Protocol' && (
|
|
17
|
+
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
|
|
18
|
+
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
|
|
19
|
+
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
|
|
20
|
+
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
|
|
21
|
+
)
|
|
20
22
|
runs-on: ubuntu-latest
|
|
21
23
|
permissions:
|
|
22
24
|
contents: read
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
name: Publish Package
|
|
2
2
|
on:
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
push:
|
|
4
|
+
branches: [main]
|
|
5
5
|
|
|
6
6
|
permissions:
|
|
7
7
|
id-token: write # Required for OIDC
|
|
@@ -9,6 +9,7 @@ permissions:
|
|
|
9
9
|
|
|
10
10
|
jobs:
|
|
11
11
|
publish:
|
|
12
|
+
if: github.repository_owner == 'TeneoProtocolAI'
|
|
12
13
|
runs-on: ubuntu-latest
|
|
13
14
|
steps:
|
|
14
15
|
- uses: actions/checkout@v4
|
|
@@ -21,7 +22,10 @@ jobs:
|
|
|
21
22
|
with:
|
|
22
23
|
node-version: '20'
|
|
23
24
|
registry-url: 'https://registry.npmjs.org'
|
|
24
|
-
|
|
25
|
+
|
|
26
|
+
# Ensure npm 11.5.1 or later is installed (required for trusted publishing)
|
|
27
|
+
- name: Update npm
|
|
28
|
+
run: npm install -g npm@latest
|
|
25
29
|
|
|
26
30
|
- name: Install dependencies
|
|
27
31
|
run: pnpm install --frozen-lockfile
|
|
@@ -32,7 +36,6 @@ jobs:
|
|
|
32
36
|
- name: Test
|
|
33
37
|
run: pnpm test
|
|
34
38
|
|
|
39
|
+
# Trusted publishing automatically adds provenance, no flags needed
|
|
35
40
|
- name: Publish to npm
|
|
36
|
-
run: pnpm publish --access public --no-git-checks
|
|
37
|
-
env:
|
|
38
|
-
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
|
|
41
|
+
run: pnpm publish --access public --no-git-checks
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
name: Top Issues by Votes
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: "0 */2 * * *" # Run every 2 hours
|
|
6
|
+
workflow_dispatch: # Allow manual triggering
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
issues: write
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
update-top-issues:
|
|
14
|
+
# Only run if the repository is in the Teneo-Protocol organization
|
|
15
|
+
if: github.repository_owner == 'TeneoProtocolAI'
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
|
|
18
|
+
steps:
|
|
19
|
+
- name: Update top issues list for teneo-agent-sdk
|
|
20
|
+
env:
|
|
21
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
22
|
+
# Set this to the issue number where you want to track top issues
|
|
23
|
+
# Leave empty to skip updating (will only log)
|
|
24
|
+
ISSUE_NUMBER: "1"
|
|
25
|
+
run: |
|
|
26
|
+
#!/bin/bash
|
|
27
|
+
set -e
|
|
28
|
+
|
|
29
|
+
echo "Fetching all open issues for teneo-agent-sdk..."
|
|
30
|
+
|
|
31
|
+
# Extract owner and repo from GitHub context
|
|
32
|
+
REPO_OWNER="${{ github.repository_owner }}"
|
|
33
|
+
REPO_NAME="${{ github.event.repository.name }}"
|
|
34
|
+
|
|
35
|
+
echo "Repository: $REPO_OWNER/$REPO_NAME"
|
|
36
|
+
|
|
37
|
+
# Fetch all open issues with reaction data
|
|
38
|
+
issues=$(gh api graphql -f query='
|
|
39
|
+
query($owner: String!, $repo: String!) {
|
|
40
|
+
repository(owner: $owner, name: $repo) {
|
|
41
|
+
issues(first: 100, states: OPEN, orderBy: {field: CREATED_AT, direction: DESC}) {
|
|
42
|
+
nodes {
|
|
43
|
+
number
|
|
44
|
+
title
|
|
45
|
+
url
|
|
46
|
+
reactions(content: THUMBS_UP) {
|
|
47
|
+
totalCount
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
' -f owner="$REPO_OWNER" -f repo="$REPO_NAME")
|
|
54
|
+
|
|
55
|
+
# Parse and sort issues by thumbs up count
|
|
56
|
+
sorted_issues=$(echo "$issues" | jq -r --arg ISSUE_NUMBER "$ISSUE_NUMBER" '
|
|
57
|
+
.data.repository.issues.nodes
|
|
58
|
+
| map(select(.number != ($ISSUE_NUMBER | tonumber)))
|
|
59
|
+
| sort_by(-.reactions.totalCount)
|
|
60
|
+
| to_entries
|
|
61
|
+
| map("\(.key + 1). [\(.value.title)](\(.value.url)) - \(.value.reactions.totalCount) 👍")
|
|
62
|
+
| join("\n")
|
|
63
|
+
')
|
|
64
|
+
|
|
65
|
+
# Create issue body
|
|
66
|
+
current_time=$(date -u +"%Y-%m-%d %H:%M:%S UTC")
|
|
67
|
+
|
|
68
|
+
{
|
|
69
|
+
echo "# 👍 Top Issues by Community Votes"
|
|
70
|
+
echo ""
|
|
71
|
+
echo "This list shows the most requested features and reported bugs for **teneo-agent-sdk**,"
|
|
72
|
+
echo "automatically updated every 6 hours based on 👍 reactions."
|
|
73
|
+
echo ""
|
|
74
|
+
echo "**Last updated:** $current_time"
|
|
75
|
+
echo ""
|
|
76
|
+
echo "## Top Issues"
|
|
77
|
+
echo ""
|
|
78
|
+
if [ -n "$sorted_issues" ]; then
|
|
79
|
+
echo "$sorted_issues"
|
|
80
|
+
else
|
|
81
|
+
echo "No issues found or all issues have 0 votes."
|
|
82
|
+
fi
|
|
83
|
+
echo ""
|
|
84
|
+
echo "---"
|
|
85
|
+
echo "💡 *Vote on issues by adding a 👍 reaction to help prioritize development*"
|
|
86
|
+
echo ""
|
|
87
|
+
echo "🤖 *Automatically updated by [GitHub Actions](.github/workflows/top-issue.yml)*"
|
|
88
|
+
} > /tmp/issue_body.md
|
|
89
|
+
|
|
90
|
+
# Update the tracking issue if ISSUE_NUMBER is set
|
|
91
|
+
if [ -n "$ISSUE_NUMBER" ]; then
|
|
92
|
+
echo "Updating tracking issue #$ISSUE_NUMBER..."
|
|
93
|
+
gh issue edit "$ISSUE_NUMBER" \
|
|
94
|
+
--repo "$REPO_OWNER/$REPO_NAME" \
|
|
95
|
+
--body-file /tmp/issue_body.md
|
|
96
|
+
echo "✅ Successfully updated top issues list!"
|
|
97
|
+
else
|
|
98
|
+
echo "📋 Top issues list (ISSUE_NUMBER not set, skipping update):"
|
|
99
|
+
cat /tmp/issue_body.md
|
|
100
|
+
echo ""
|
|
101
|
+
echo "💡 To enable automatic tracking, create an issue and set ISSUE_NUMBER in the workflow."
|
|
102
|
+
fi
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the Teneo Protocol SDK will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [2.2.0]
|
|
9
|
+
|
|
10
|
+
### Quote-Approve Payment Flow
|
|
11
|
+
|
|
12
|
+
Payments now use a quote-approve model. Instead of attaching payments blindly, the SDK requests a quote from the server first, then confirms with payment.
|
|
13
|
+
|
|
14
|
+
### ✨ Added
|
|
15
|
+
|
|
16
|
+
- **Quote-Approve Flow**
|
|
17
|
+
- `requestQuote(content, room)` - Request a quote without auto-approval
|
|
18
|
+
- `confirmQuote(taskId, options?)` - Confirm and pay for a quoted task
|
|
19
|
+
- `getPendingQuote(taskId)` - Get a pending quote by task ID
|
|
20
|
+
- New `QuoteResult` type with agent, pricing, and expiration info
|
|
21
|
+
|
|
22
|
+
- **New Message Types**
|
|
23
|
+
- `request_task` - Request a task quote from coordinator
|
|
24
|
+
- `task_quote` - Server response with pricing info
|
|
25
|
+
- `confirm_task` - Confirm and execute with payment
|
|
26
|
+
|
|
27
|
+
- **New Config Options**
|
|
28
|
+
- `autoApproveQuotes` - Auto-confirm quotes (default: `true`)
|
|
29
|
+
- `quoteTimeout` - Timeout for quote responses (default: `30000`ms)
|
|
30
|
+
|
|
31
|
+
- **New Schemas**
|
|
32
|
+
- `PricingInfoSchema` - Agent pricing metadata
|
|
33
|
+
- `RequestTaskMessageSchema`, `TaskQuoteMessageSchema`, `ConfirmTaskMessageSchema`
|
|
34
|
+
|
|
35
|
+
- **Factory Functions & Type Guards**
|
|
36
|
+
- `createRequestTask()`, `createConfirmTask()`
|
|
37
|
+
- `isTaskQuote()` type guard
|
|
38
|
+
|
|
39
|
+
### 🔄 Changed
|
|
40
|
+
|
|
41
|
+
- `sendMessage()` and `sendDirectCommand()` now use quote-approve flow by default
|
|
42
|
+
- Payments are always enabled - removed `paymentsEnabled` config option
|
|
43
|
+
- Payment client is set up automatically when `privateKey` is provided
|
|
44
|
+
- `withPayments()` builder no longer has `enabled` option
|
|
45
|
+
|
|
46
|
+
### 🗑️ Removed
|
|
47
|
+
|
|
48
|
+
- `paymentsEnabled` config option (payments always on)
|
|
49
|
+
- Legacy `validatePrice()` method (price check moved to `confirmQuote`)
|
|
50
|
+
- Legacy `attachPayment()` method (handled in `confirmQuote`)
|
|
51
|
+
- `setAgentRegistry()` method (no longer needed)
|
|
52
|
+
|
|
53
|
+
### 📚 Documentation
|
|
54
|
+
|
|
55
|
+
- Updated Payment Integration section with quote-approve examples
|
|
56
|
+
- Added Manual Quote Flow documentation
|
|
57
|
+
- Updated Environment Variables section
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## [2.1.0] - 2025-12-08
|
|
62
|
+
|
|
63
|
+
### ✨ Added
|
|
64
|
+
|
|
65
|
+
#### Automatic X402 Payment Signing
|
|
66
|
+
|
|
67
|
+
- SDK now auto-signs x402 payment headers when confirming tasks
|
|
68
|
+
- Uses PEAQ chain with USDC stablecoin for micropayments
|
|
69
|
+
- No manual payment encoding needed - just call `confirmTask({ taskId })`
|
|
70
|
+
|
|
71
|
+
### 📦 Dependencies
|
|
72
|
+
|
|
73
|
+
- Added `x402` library for payment signing support
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## [2.0.0] - 2025-11-05
|
|
78
|
+
|
|
79
|
+
### 🎉 Major Release: Multi-Room & Agent Customization
|
|
80
|
+
|
|
81
|
+
Version 2.0 introduces comprehensive room management and per-room agent customization capabilities, enabling developers to create context-specific agent experiences.
|
|
82
|
+
|
|
83
|
+
### ✨ Added
|
|
84
|
+
|
|
85
|
+
#### Phase 1: Room Management System
|
|
86
|
+
|
|
87
|
+
- **Room CRUD Operations**
|
|
88
|
+
- `createRoom(name, description?)` - Create new private rooms with validation
|
|
89
|
+
- `updateRoom(roomId, updates)` - Update room name/description (owner only)
|
|
90
|
+
- `deleteRoom(roomId)` - Delete owned rooms
|
|
91
|
+
|
|
92
|
+
- **Room Query Methods**
|
|
93
|
+
- `getOwnedRooms()` - Get all rooms you created
|
|
94
|
+
- `getSharedRooms()` - Get rooms you were invited to
|
|
95
|
+
- `getAllRooms()` - Get all rooms (owned + shared) convenience method
|
|
96
|
+
- `getRoomById(roomId)` - Get specific room details
|
|
97
|
+
- `getRoomLimit()` - Check your room creation limit
|
|
98
|
+
- `canCreateRoom()` - Check if you can create more rooms
|
|
99
|
+
- `getOwnedRoomCount()` - Count your owned rooms
|
|
100
|
+
|
|
101
|
+
- **Room Management Events**
|
|
102
|
+
- `room:created` - Emitted when room is created
|
|
103
|
+
- `room:updated` - Emitted when room is updated
|
|
104
|
+
- `room:deleted` - Emitted when room is deleted
|
|
105
|
+
- `room:create_error` - Emitted on creation failure
|
|
106
|
+
- `room:update_error` - Emitted on update failure
|
|
107
|
+
- `room:delete_error` - Emitted on deletion failure
|
|
108
|
+
|
|
109
|
+
- **Room Management Manager**
|
|
110
|
+
- New `RoomManagementManager` class for room operations
|
|
111
|
+
- Ownership verification before CRUD operations
|
|
112
|
+
- Cached room state (owned vs shared)
|
|
113
|
+
- Room limit enforcement
|
|
114
|
+
- 6 new message handlers for room operations
|
|
115
|
+
|
|
116
|
+
#### Phase 2: Agent Room Management
|
|
117
|
+
|
|
118
|
+
- **Agent Room Operations**
|
|
119
|
+
- `addAgentToRoom(roomId, agentId)` - Add agent to your room (owner only)
|
|
120
|
+
- `removeAgentFromRoom(roomId, agentId)` - Remove agent from your room
|
|
121
|
+
- `listRoomAgents(roomId, useCache?)` - List agents in room with 5-min cache
|
|
122
|
+
- `listAvailableAgents(roomId, useCache?)` - List agents available to add
|
|
123
|
+
|
|
124
|
+
- **Agent Room Query Methods (Synchronous)**
|
|
125
|
+
- `getRoomAgents(roomId)` - Get cached room agents instantly
|
|
126
|
+
- `getAvailableAgents(roomId)` - Get cached available agents instantly
|
|
127
|
+
- `isAgentInRoom(roomId, agentId)` - Check if agent is in room (cached)
|
|
128
|
+
- `getRoomAgentCount(roomId)` - Get agent count from cache
|
|
129
|
+
|
|
130
|
+
- **Cache Management**
|
|
131
|
+
- `invalidateAgentRoomCache(roomId)` - Manually clear cache for specific room
|
|
132
|
+
- Intelligent 5-minute TTL caching for performance
|
|
133
|
+
- Automatic cache invalidation on agent add/remove
|
|
134
|
+
- Automatic cache invalidation on agent status updates
|
|
135
|
+
|
|
136
|
+
- **Agent Room Events**
|
|
137
|
+
- `agent_room:agent_added` - Emitted when agent added to room
|
|
138
|
+
- `agent_room:agent_removed` - Emitted when agent removed from room
|
|
139
|
+
- `agent_room:agents_listed` - Emitted when room agents listed
|
|
140
|
+
- `agent_room:available_agents_listed` - Emitted when available agents listed
|
|
141
|
+
- `agent_room:status_update` - Real-time agent status updates
|
|
142
|
+
- `agent_room:add_error` - Emitted on agent add failure
|
|
143
|
+
- `agent_room:remove_error` - Emitted on agent remove failure
|
|
144
|
+
- `agent_room:list_error` - Emitted on list failure
|
|
145
|
+
- `agent_room:list_available_error` - Emitted on available list failure
|
|
146
|
+
|
|
147
|
+
- **Agent Room Manager**
|
|
148
|
+
- New `AgentRoomManager` class for agent-room operations
|
|
149
|
+
- Ownership verification before operations
|
|
150
|
+
- Performance-optimized caching with TTL
|
|
151
|
+
- Real-time status update handling
|
|
152
|
+
- 5 new message handlers for agent room operations
|
|
153
|
+
|
|
154
|
+
#### Type System Updates
|
|
155
|
+
|
|
156
|
+
- Updated `RoomInfo` interface with `created_by` field (creator wallet address)
|
|
157
|
+
- Fixed `Capability` schema: `type` → `name`, description now optional
|
|
158
|
+
- Fixed `Command` schema: `command` → `trigger`, added `argument` field, description optional
|
|
159
|
+
- Updated `AuthenticationState` with room categorization:
|
|
160
|
+
- `privateRoomIds` - Array of owned room IDs
|
|
161
|
+
- `sharedRoomIds` - Array of shared room IDs
|
|
162
|
+
- `maxPrivateRooms` - Room creation limit
|
|
163
|
+
- New `AgentRoomInfo` interface for agent-room metadata
|
|
164
|
+
- 26 new message types and schemas for room/agent-room operations
|
|
165
|
+
|
|
166
|
+
### 📊 Testing
|
|
167
|
+
|
|
168
|
+
- Added 102 new unit tests for Phase 1 and Phase 2
|
|
169
|
+
- Total test count: 671 tests passing (100% pass rate)
|
|
170
|
+
- Comprehensive coverage of room management
|
|
171
|
+
- Comprehensive coverage of agent room management
|
|
172
|
+
- All manager and handler tests passing
|
|
173
|
+
|
|
174
|
+
### 🔄 Changed
|
|
175
|
+
|
|
176
|
+
- Message handlers now use `BaseMessageHandler` pattern
|
|
177
|
+
- Enhanced event system with 14 new event types
|
|
178
|
+
- WebSocketClient now manages room and agent-room managers
|
|
179
|
+
|
|
180
|
+
### 🐛 Fixed
|
|
181
|
+
|
|
182
|
+
- Schema field names now match backend source of truth
|
|
183
|
+
- Proper defensive copying for cache immutability
|
|
184
|
+
- Validation for empty room/agent IDs
|
|
185
|
+
- Proper room ownership checks before operations
|
|
186
|
+
- Auth handler now correctly parses `private_rooms` array from cached authentication messages
|
|
187
|
+
- Room management events now properly forward from WebSocket handlers to SDK instance
|
|
188
|
+
- Room persistence: Private rooms now correctly persist after page refresh via proper initialization of RoomManagementManager from auth state
|
|
189
|
+
|
|
190
|
+
### 📚 Documentation
|
|
191
|
+
|
|
192
|
+
- Comprehensive README updates with v2.0 features
|
|
193
|
+
- New "What's New in v2.0" section
|
|
194
|
+
- Complete Room Management API documentation
|
|
195
|
+
- Complete Agent Room Management API documentation
|
|
196
|
+
- Updated event system documentation with all new events
|
|
197
|
+
- Code examples for all new features
|
|
198
|
+
- Updated test count and status
|
|
199
|
+
|
|
200
|
+
### 🔐 Security
|
|
201
|
+
|
|
202
|
+
- Ownership verification for all room CRUD operations
|
|
203
|
+
- Ownership verification for agent-room operations
|
|
204
|
+
- Validation of room and agent IDs before operations
|
|
205
|
+
- Room existence checks before operations
|
|
206
|
+
|
|
207
|
+
### ⚡ Performance
|
|
208
|
+
|
|
209
|
+
- 5-minute cache TTL for agent room queries
|
|
210
|
+
- Automatic cache invalidation on updates
|
|
211
|
+
- Intelligent cache management per room
|
|
212
|
+
- Defensive copying to prevent cache mutation
|
|
213
|
+
- Synchronous query methods for instant cache access
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## [1.0.2] - 2025-10-XX
|
|
218
|
+
|
|
219
|
+
### Fixed
|
|
220
|
+
|
|
221
|
+
- Minor bug fixes and improvements
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## [1.0.0] - 2025-10-XX
|
|
226
|
+
|
|
227
|
+
### Initial Release
|
|
228
|
+
|
|
229
|
+
- WebSocket connection management
|
|
230
|
+
- Ethereum wallet authentication (challenge-response)
|
|
231
|
+
- Agent discovery and listing
|
|
232
|
+
- Message sending to agents
|
|
233
|
+
- Event-driven architecture
|
|
234
|
+
- Room subscription/unsubscription
|
|
235
|
+
- Webhook integration with circuit breaker
|
|
236
|
+
- Retry strategies (exponential, linear, constant)
|
|
237
|
+
- Message deduplication
|
|
238
|
+
- Signature verification
|
|
239
|
+
- Rate limiting
|
|
240
|
+
- Secure private key management (AES-256-GCM encryption)
|
|
241
|
+
- Comprehensive error handling
|
|
242
|
+
- TypeScript support
|
|
243
|
+
- 488 unit tests
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## Migration Guide
|
|
248
|
+
|
|
249
|
+
### Upgrading from v1.x to v2.0
|
|
250
|
+
|
|
251
|
+
Version 2.0 is **backward compatible** with v1.x for basic operations. However, to take advantage of new features:
|
|
252
|
+
|
|
253
|
+
#### 1. Update Package Version
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
pnpm install @teneo-protocol/sdk@2.0.0
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
#### 2. Room Management (New Features)
|
|
260
|
+
|
|
261
|
+
**Before (v1.x):** Single room subscription
|
|
262
|
+
|
|
263
|
+
```typescript
|
|
264
|
+
await sdk.subscribeToRoom("room-id");
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
**After (v2.0):** Create and manage multiple rooms
|
|
268
|
+
|
|
269
|
+
```typescript
|
|
270
|
+
// Create your own rooms
|
|
271
|
+
const room = await sdk.createRoom("My Room", "Description");
|
|
272
|
+
|
|
273
|
+
// Get all your rooms
|
|
274
|
+
const ownedRooms = sdk.getOwnedRooms();
|
|
275
|
+
const sharedRooms = sdk.getSharedRooms();
|
|
276
|
+
|
|
277
|
+
// Update/delete rooms
|
|
278
|
+
await sdk.updateRoom(room.id, { name: "Updated Name" });
|
|
279
|
+
await sdk.deleteRoom(room.id);
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
#### 3. Agent Customization (New Features)
|
|
283
|
+
|
|
284
|
+
**New in v2.0:** Customize which agents are in each room
|
|
285
|
+
|
|
286
|
+
```typescript
|
|
287
|
+
// List available agents for a room
|
|
288
|
+
const available = await sdk.listAvailableAgents(room.id);
|
|
289
|
+
|
|
290
|
+
// Add specific agents
|
|
291
|
+
await sdk.addAgentToRoom(room.id, "agent-id");
|
|
292
|
+
|
|
293
|
+
// List agents in room
|
|
294
|
+
const roomAgents = await sdk.listRoomAgents(room.id);
|
|
295
|
+
|
|
296
|
+
// Remove agents
|
|
297
|
+
await sdk.removeAgentFromRoom(room.id, "agent-id");
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
#### 4. Type Changes
|
|
301
|
+
|
|
302
|
+
If you're using TypeScript and accessing agent data directly:
|
|
303
|
+
|
|
304
|
+
**Capability field name changed:**
|
|
305
|
+
|
|
306
|
+
```typescript
|
|
307
|
+
// Before: agent.capabilities[0].type
|
|
308
|
+
// After: agent.capabilities[0].name
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
**Command field name changed:**
|
|
312
|
+
|
|
313
|
+
```typescript
|
|
314
|
+
// Before: agent.commands[0].command
|
|
315
|
+
// After: agent.commands[0].trigger
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
#### 5. No Breaking Changes
|
|
319
|
+
|
|
320
|
+
All v1.x APIs continue to work:
|
|
321
|
+
|
|
322
|
+
- ✅ `connect()`, `disconnect()`
|
|
323
|
+
- ✅ `sendMessage()`
|
|
324
|
+
- ✅ `subscribeToRoom()`, `unsubscribeFromRoom()`
|
|
325
|
+
- ✅ `getAgents()`, `getAgent()`
|
|
326
|
+
- ✅ All existing events
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## Support
|
|
331
|
+
|
|
332
|
+
- 📖 [Documentation](https://github.com/TeneoProtocolAI/teneo-sdk)
|
|
333
|
+
- 🐛 [Issue Tracker](https://github.com/TeneoProtocolAI/teneo-sdk/issues)
|
|
334
|
+
- 💬 [Discussions](https://github.com/TeneoProtocolAI/teneo-sdk/discussions)
|