@teneo-protocol/sdk 2.0.0 → 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.
Files changed (329) hide show
  1. package/.eslintrc.json +11 -2
  2. package/.github/CODEOWNERS +2 -0
  3. package/.github/ISSUE_TEMPLATE/01-bug.yml +85 -0
  4. package/.github/ISSUE_TEMPLATE/config.yml +8 -0
  5. package/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
  6. package/.github/workflows/claude-code-review.yml +8 -3
  7. package/.github/workflows/claude-reviewer.yml +6 -4
  8. package/.github/workflows/publish-npm.yml +1 -0
  9. package/.github/workflows/push-to-main.yml +1 -1
  10. package/.github/workflows/top-issue.yml +102 -0
  11. package/CHANGELOG.md +69 -0
  12. package/CONCEPTS.md +747 -0
  13. package/README.md +178 -8
  14. package/dist/constants.js +8 -8
  15. package/dist/constants.js.map +1 -1
  16. package/dist/core/websocket-client.d.ts +15 -3
  17. package/dist/core/websocket-client.d.ts.map +1 -1
  18. package/dist/core/websocket-client.js +52 -13
  19. package/dist/core/websocket-client.js.map +1 -1
  20. package/dist/formatters/response-formatter.js +4 -0
  21. package/dist/formatters/response-formatter.js.map +1 -1
  22. package/dist/handlers/message-handler-registry.js +2 -1
  23. package/dist/handlers/message-handler-registry.js.map +1 -1
  24. package/dist/handlers/message-handlers/agent-details-response-handler.d.ts +1666 -0
  25. package/dist/handlers/message-handlers/agent-details-response-handler.d.ts.map +1 -0
  26. package/dist/handlers/message-handlers/agent-details-response-handler.js +38 -0
  27. package/dist/handlers/message-handlers/agent-details-response-handler.js.map +1 -0
  28. package/dist/handlers/message-handlers/agent-room-operation-response-handler.d.ts.map +1 -1
  29. package/dist/handlers/message-handlers/agent-room-operation-response-handler.js +2 -5
  30. package/dist/handlers/message-handlers/agent-room-operation-response-handler.js.map +1 -1
  31. package/dist/handlers/message-handlers/agent-selected-handler.js +2 -5
  32. package/dist/handlers/message-handlers/agent-selected-handler.js.map +1 -1
  33. package/dist/handlers/message-handlers/agent-status-update-handler.d.ts +783 -0
  34. package/dist/handlers/message-handlers/agent-status-update-handler.d.ts.map +1 -1
  35. package/dist/handlers/message-handlers/agent-status-update-handler.js +2 -5
  36. package/dist/handlers/message-handlers/agent-status-update-handler.js.map +1 -1
  37. package/dist/handlers/message-handlers/agents-list-handler.js +2 -5
  38. package/dist/handlers/message-handlers/agents-list-handler.js.map +1 -1
  39. package/dist/handlers/message-handlers/all-agents-response-handler.d.ts +439 -0
  40. package/dist/handlers/message-handlers/all-agents-response-handler.d.ts.map +1 -0
  41. package/dist/handlers/message-handlers/all-agents-response-handler.js +36 -0
  42. package/dist/handlers/message-handlers/all-agents-response-handler.js.map +1 -0
  43. package/dist/handlers/message-handlers/auth-error-handler.js +2 -5
  44. package/dist/handlers/message-handlers/auth-error-handler.js.map +1 -1
  45. package/dist/handlers/message-handlers/auth-message-handler.d.ts.map +1 -1
  46. package/dist/handlers/message-handlers/auth-message-handler.js +6 -5
  47. package/dist/handlers/message-handlers/auth-message-handler.js.map +1 -1
  48. package/dist/handlers/message-handlers/auth-required-handler.js +2 -5
  49. package/dist/handlers/message-handlers/auth-required-handler.js.map +1 -1
  50. package/dist/handlers/message-handlers/auth-success-handler.d.ts.map +1 -1
  51. package/dist/handlers/message-handlers/auth-success-handler.js +6 -5
  52. package/dist/handlers/message-handlers/auth-success-handler.js.map +1 -1
  53. package/dist/handlers/message-handlers/base-handler.d.ts +4 -4
  54. package/dist/handlers/message-handlers/base-handler.d.ts.map +1 -1
  55. package/dist/handlers/message-handlers/base-handler.js +3 -1
  56. package/dist/handlers/message-handlers/base-handler.js.map +1 -1
  57. package/dist/handlers/message-handlers/challenge-handler.js +3 -2
  58. package/dist/handlers/message-handlers/challenge-handler.js.map +1 -1
  59. package/dist/handlers/message-handlers/error-message-handler.js +2 -5
  60. package/dist/handlers/message-handlers/error-message-handler.js.map +1 -1
  61. package/dist/handlers/message-handlers/index.d.ts +6 -0
  62. package/dist/handlers/message-handlers/index.d.ts.map +1 -1
  63. package/dist/handlers/message-handlers/index.js +33 -1
  64. package/dist/handlers/message-handlers/index.js.map +1 -1
  65. package/dist/handlers/message-handlers/list-available-agents-handler.d.ts +783 -0
  66. package/dist/handlers/message-handlers/list-available-agents-handler.d.ts.map +1 -1
  67. package/dist/handlers/message-handlers/list-available-agents-handler.js +2 -5
  68. package/dist/handlers/message-handlers/list-available-agents-handler.js.map +1 -1
  69. package/dist/handlers/message-handlers/list-room-agents-handler.d.ts +783 -0
  70. package/dist/handlers/message-handlers/list-room-agents-handler.d.ts.map +1 -1
  71. package/dist/handlers/message-handlers/list-room-agents-handler.js +2 -5
  72. package/dist/handlers/message-handlers/list-room-agents-handler.js.map +1 -1
  73. package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts +2 -199
  74. package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts.map +1 -1
  75. package/dist/handlers/message-handlers/list-rooms-response-handler.js +4 -6
  76. package/dist/handlers/message-handlers/list-rooms-response-handler.js.map +1 -1
  77. package/dist/handlers/message-handlers/ping-pong-handler.js +4 -10
  78. package/dist/handlers/message-handlers/ping-pong-handler.js.map +1 -1
  79. package/dist/handlers/message-handlers/rate-limit-notification-handler.d.ts +94 -0
  80. package/dist/handlers/message-handlers/rate-limit-notification-handler.d.ts.map +1 -0
  81. package/dist/handlers/message-handlers/rate-limit-notification-handler.js +35 -0
  82. package/dist/handlers/message-handlers/rate-limit-notification-handler.js.map +1 -0
  83. package/dist/handlers/message-handlers/regular-message-handler.d.ts.map +1 -1
  84. package/dist/handlers/message-handlers/regular-message-handler.js +4 -6
  85. package/dist/handlers/message-handlers/regular-message-handler.js.map +1 -1
  86. package/dist/handlers/message-handlers/room-operation-response-handler.d.ts.map +1 -1
  87. package/dist/handlers/message-handlers/room-operation-response-handler.js +2 -5
  88. package/dist/handlers/message-handlers/room-operation-response-handler.js.map +1 -1
  89. package/dist/handlers/message-handlers/subscribe-response-handler.d.ts.map +1 -1
  90. package/dist/handlers/message-handlers/subscribe-response-handler.js +4 -6
  91. package/dist/handlers/message-handlers/subscribe-response-handler.js.map +1 -1
  92. package/dist/handlers/message-handlers/task-quote-handler.d.ts +14 -0
  93. package/dist/handlers/message-handlers/task-quote-handler.d.ts.map +1 -0
  94. package/dist/handlers/message-handlers/task-quote-handler.js +29 -0
  95. package/dist/handlers/message-handlers/task-quote-handler.js.map +1 -0
  96. package/dist/handlers/message-handlers/task-response-handler.js +2 -5
  97. package/dist/handlers/message-handlers/task-response-handler.js.map +1 -1
  98. package/dist/handlers/message-handlers/types.d.ts +21 -9
  99. package/dist/handlers/message-handlers/types.d.ts.map +1 -1
  100. package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts.map +1 -1
  101. package/dist/handlers/message-handlers/unsubscribe-response-handler.js +4 -6
  102. package/dist/handlers/message-handlers/unsubscribe-response-handler.js.map +1 -1
  103. package/dist/handlers/message-handlers/user-authenticated-handler.d.ts +40 -0
  104. package/dist/handlers/message-handlers/user-authenticated-handler.d.ts.map +1 -0
  105. package/dist/handlers/message-handlers/user-authenticated-handler.js +28 -0
  106. package/dist/handlers/message-handlers/user-authenticated-handler.js.map +1 -0
  107. package/dist/handlers/message-handlers/user-count-handler.d.ts +49 -0
  108. package/dist/handlers/message-handlers/user-count-handler.d.ts.map +1 -0
  109. package/dist/handlers/message-handlers/user-count-handler.js +31 -0
  110. package/dist/handlers/message-handlers/user-count-handler.js.map +1 -0
  111. package/dist/handlers/webhook-handler.d.ts +1 -1
  112. package/dist/handlers/webhook-handler.d.ts.map +1 -1
  113. package/dist/handlers/webhook-handler.js +14 -5
  114. package/dist/handlers/webhook-handler.js.map +1 -1
  115. package/dist/index.d.ts +6 -1
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +19 -2
  118. package/dist/index.js.map +1 -1
  119. package/dist/managers/admin-manager.d.ts +116 -0
  120. package/dist/managers/admin-manager.d.ts.map +1 -0
  121. package/dist/managers/admin-manager.js +169 -0
  122. package/dist/managers/admin-manager.js.map +1 -0
  123. package/dist/managers/agent-registry.d.ts +52 -1
  124. package/dist/managers/agent-registry.d.ts.map +1 -1
  125. package/dist/managers/agent-registry.js +145 -6
  126. package/dist/managers/agent-registry.js.map +1 -1
  127. package/dist/managers/agent-room-manager.d.ts +1 -7
  128. package/dist/managers/agent-room-manager.d.ts.map +1 -1
  129. package/dist/managers/agent-room-manager.js +83 -36
  130. package/dist/managers/agent-room-manager.js.map +1 -1
  131. package/dist/managers/connection-manager.js +2 -0
  132. package/dist/managers/connection-manager.js.map +1 -1
  133. package/dist/managers/index.d.ts +2 -1
  134. package/dist/managers/index.d.ts.map +1 -1
  135. package/dist/managers/index.js +3 -1
  136. package/dist/managers/index.js.map +1 -1
  137. package/dist/managers/message-router.d.ts +56 -5
  138. package/dist/managers/message-router.d.ts.map +1 -1
  139. package/dist/managers/message-router.js +155 -8
  140. package/dist/managers/message-router.js.map +1 -1
  141. package/dist/managers/room-management-manager.d.ts.map +1 -1
  142. package/dist/managers/room-management-manager.js +9 -7
  143. package/dist/managers/room-management-manager.js.map +1 -1
  144. package/dist/managers/room-manager.d.ts +7 -5
  145. package/dist/managers/room-manager.d.ts.map +1 -1
  146. package/dist/managers/room-manager.js +14 -10
  147. package/dist/managers/room-manager.js.map +1 -1
  148. package/dist/payments/index.d.ts +5 -0
  149. package/dist/payments/index.d.ts.map +1 -0
  150. package/dist/payments/index.js +21 -0
  151. package/dist/payments/index.js.map +1 -0
  152. package/dist/payments/payment-client.d.ts +74 -0
  153. package/dist/payments/payment-client.d.ts.map +1 -0
  154. package/dist/payments/payment-client.js +207 -0
  155. package/dist/payments/payment-client.js.map +1 -0
  156. package/dist/teneo-sdk.d.ts +135 -21
  157. package/dist/teneo-sdk.d.ts.map +1 -1
  158. package/dist/teneo-sdk.js +268 -26
  159. package/dist/teneo-sdk.js.map +1 -1
  160. package/dist/types/categories.d.ts +22 -0
  161. package/dist/types/categories.d.ts.map +1 -0
  162. package/dist/types/categories.js +40 -0
  163. package/dist/types/categories.js.map +1 -0
  164. package/dist/types/config.d.ts +79 -8
  165. package/dist/types/config.d.ts.map +1 -1
  166. package/dist/types/config.js +62 -5
  167. package/dist/types/config.js.map +1 -1
  168. package/dist/types/error-codes.d.ts +8 -0
  169. package/dist/types/error-codes.d.ts.map +1 -1
  170. package/dist/types/error-codes.js +9 -0
  171. package/dist/types/error-codes.js.map +1 -1
  172. package/dist/types/events.d.ts +44 -0
  173. package/dist/types/events.d.ts.map +1 -1
  174. package/dist/types/events.js +19 -1
  175. package/dist/types/events.js.map +1 -1
  176. package/dist/types/index.d.ts +3 -2
  177. package/dist/types/index.d.ts.map +1 -1
  178. package/dist/types/index.js +33 -3
  179. package/dist/types/index.js.map +1 -1
  180. package/dist/types/messages.d.ts +11219 -423
  181. package/dist/types/messages.d.ts.map +1 -1
  182. package/dist/types/messages.js +249 -7
  183. package/dist/types/messages.js.map +1 -1
  184. package/dist/utils/bounded-queue.d.ts.map +1 -1
  185. package/dist/utils/bounded-queue.js +5 -2
  186. package/dist/utils/bounded-queue.js.map +1 -1
  187. package/dist/utils/circuit-breaker.js +11 -4
  188. package/dist/utils/circuit-breaker.js.map +1 -1
  189. package/dist/utils/deduplication-cache.js +3 -1
  190. package/dist/utils/deduplication-cache.js.map +1 -1
  191. package/dist/utils/event-waiter.d.ts +3 -3
  192. package/dist/utils/event-waiter.d.ts.map +1 -1
  193. package/dist/utils/index.d.ts +1 -0
  194. package/dist/utils/index.d.ts.map +1 -1
  195. package/dist/utils/index.js +4 -1
  196. package/dist/utils/index.js.map +1 -1
  197. package/dist/utils/logger.js.map +1 -1
  198. package/dist/utils/pricing-resolver.d.ts +26 -0
  199. package/dist/utils/pricing-resolver.d.ts.map +1 -0
  200. package/dist/utils/pricing-resolver.js +85 -0
  201. package/dist/utils/pricing-resolver.js.map +1 -0
  202. package/dist/utils/rate-limiter.d.ts.map +1 -1
  203. package/dist/utils/rate-limiter.js +6 -0
  204. package/dist/utils/rate-limiter.js.map +1 -1
  205. package/dist/utils/retry-policy.js +1 -0
  206. package/dist/utils/retry-policy.js.map +1 -1
  207. package/dist/utils/secure-private-key.js +3 -1
  208. package/dist/utils/secure-private-key.js.map +1 -1
  209. package/dist/utils/signature-verifier.d.ts.map +1 -1
  210. package/dist/utils/signature-verifier.js +3 -1
  211. package/dist/utils/signature-verifier.js.map +1 -1
  212. package/examples/.env.example +1 -1
  213. package/examples/agent-room-management-example.ts +10 -9
  214. package/examples/basic-usage.ts +3 -4
  215. package/examples/claude-agent-x-follower/.env.example +1 -1
  216. package/examples/claude-agent-x-follower/QUICKSTART.md +2 -2
  217. package/examples/claude-agent-x-follower/README.md +2 -2
  218. package/examples/claude-agent-x-follower/index.ts +120 -96
  219. package/examples/n8n-teneo/.env.example +1 -1
  220. package/examples/n8n-teneo/README.md +1 -1
  221. package/examples/n8n-teneo/index.ts +54 -44
  222. package/examples/nestjs-dashboard/.env.example +11 -0
  223. package/examples/nestjs-dashboard/README.md +297 -0
  224. package/examples/nestjs-dashboard/nest-cli.json +10 -0
  225. package/examples/nestjs-dashboard/package.json +44 -0
  226. package/examples/nestjs-dashboard/pnpm-lock.yaml +3079 -0
  227. package/examples/nestjs-dashboard/src/app.controller.ts +24 -0
  228. package/examples/nestjs-dashboard/src/app.module.ts +15 -0
  229. package/examples/nestjs-dashboard/src/main.ts +32 -0
  230. package/examples/nestjs-dashboard/src/public/dashboard.html +1144 -0
  231. package/examples/nestjs-dashboard/src/teneo/agents.controller.ts +54 -0
  232. package/examples/nestjs-dashboard/src/teneo/events.controller.ts +65 -0
  233. package/examples/nestjs-dashboard/src/teneo/messages.controller.ts +47 -0
  234. package/examples/nestjs-dashboard/src/teneo/rooms.controller.ts +258 -0
  235. package/examples/nestjs-dashboard/src/teneo/teneo.module.ts +13 -0
  236. package/examples/nestjs-dashboard/src/teneo/teneo.service.ts +484 -0
  237. package/examples/nestjs-dashboard/tsconfig.json +22 -0
  238. package/examples/openai-teneo/.env.example +1 -1
  239. package/examples/openai-teneo/README.md +2 -2
  240. package/examples/openai-teneo/index.ts +82 -71
  241. package/examples/production-dashboard/.env.example +1 -1
  242. package/examples/production-dashboard/README.md +1 -1
  243. package/examples/production-dashboard/server.ts +2 -2
  244. package/examples/room-management-example.ts +5 -8
  245. package/examples/usage/.env.example +1 -1
  246. package/examples/usage/01-connect.ts +3 -4
  247. package/examples/usage/02-list-agents.ts +2 -3
  248. package/examples/usage/03-pick-agent.ts +2 -3
  249. package/examples/usage/04-find-by-capability.ts +2 -3
  250. package/examples/usage/05-webhook-example.ts +2 -3
  251. package/examples/usage/06-simple-api-server.ts +2 -3
  252. package/examples/usage/07-event-listener.ts +2 -3
  253. package/examples/webhook-integration.ts +1 -1
  254. package/examples/x-influencer-battle-server.ts +2 -2
  255. package/package.json +4 -1
  256. package/src/core/websocket-client.test.ts +8 -3
  257. package/src/core/websocket-client.ts +36 -6
  258. package/src/formatters/response-formatter.test.ts +2 -0
  259. package/src/formatters/response-formatter.ts +3 -3
  260. package/src/handlers/message-handlers/agent-details-response-handler.ts +42 -0
  261. package/src/handlers/message-handlers/agent-room-operation-response-handler.ts +2 -8
  262. package/src/handlers/message-handlers/agent-status-update-handler.ts +3 -9
  263. package/src/handlers/message-handlers/all-agents-response-handler.ts +39 -0
  264. package/src/handlers/message-handlers/auth-message-handler.ts +5 -0
  265. package/src/handlers/message-handlers/auth-success-handler.ts +6 -1
  266. package/src/handlers/message-handlers/base-handler.ts +20 -7
  267. package/src/handlers/message-handlers/index.ts +34 -0
  268. package/src/handlers/message-handlers/list-room-agents-handler.ts +2 -5
  269. package/src/handlers/message-handlers/list-rooms-response-handler.ts +4 -2
  270. package/src/handlers/message-handlers/rate-limit-notification-handler.ts +45 -0
  271. package/src/handlers/message-handlers/regular-message-handler.ts +3 -2
  272. package/src/handlers/message-handlers/room-operation-response-handler.ts +3 -6
  273. package/src/handlers/message-handlers/subscribe-response-handler.ts +12 -2
  274. package/src/handlers/message-handlers/task-quote-handler.ts +31 -0
  275. package/src/handlers/message-handlers/types.ts +37 -9
  276. package/src/handlers/message-handlers/unsubscribe-response-handler.ts +12 -2
  277. package/src/handlers/message-handlers/user-authenticated-handler.ts +31 -0
  278. package/src/handlers/message-handlers/user-count-handler.ts +34 -0
  279. package/src/handlers/webhook-handler.test.ts +3 -2
  280. package/src/handlers/webhook-handler.ts +13 -7
  281. package/src/index.ts +21 -0
  282. package/src/managers/admin-manager.ts +249 -0
  283. package/src/managers/agent-registry.test.ts +2 -1
  284. package/src/managers/agent-registry.ts +170 -2
  285. package/src/managers/agent-room-manager.ts +98 -42
  286. package/src/managers/index.ts +13 -1
  287. package/src/managers/message-router.ts +215 -17
  288. package/src/managers/room-management-manager.ts +4 -7
  289. package/src/managers/room-manager.ts +11 -15
  290. package/src/payments/index.ts +22 -0
  291. package/src/payments/payment-client.ts +240 -0
  292. package/src/teneo-sdk.ts +302 -27
  293. package/src/types/categories.ts +45 -0
  294. package/src/types/config.ts +70 -2
  295. package/src/types/error-codes.ts +10 -0
  296. package/src/types/events.test.ts +1 -0
  297. package/src/types/events.ts +43 -0
  298. package/src/types/index.ts +56 -0
  299. package/src/types/messages.test.ts +2 -1
  300. package/src/types/messages.ts +307 -5
  301. package/src/utils/bounded-queue.test.ts +1 -1
  302. package/src/utils/bounded-queue.ts +2 -1
  303. package/src/utils/circuit-breaker.test.ts +1 -1
  304. package/src/utils/deduplication-cache.test.ts +1 -1
  305. package/src/utils/event-waiter.test.ts +1 -1
  306. package/src/utils/event-waiter.ts +3 -3
  307. package/src/utils/index.ts +7 -0
  308. package/src/utils/logger.ts +8 -8
  309. package/src/utils/pricing-resolver.ts +128 -0
  310. package/src/utils/rate-limiter.test.ts +1 -1
  311. package/src/utils/rate-limiter.ts +1 -0
  312. package/src/utils/signature-verifier.test.ts +2 -2
  313. package/src/utils/signature-verifier.ts +3 -2
  314. package/tests/.env.example +7 -0
  315. package/tests/direct-agent-test.ts +151 -0
  316. package/tests/integration/real-server.test.ts +2 -0
  317. package/tests/integration/room-management.test.ts +10 -8
  318. package/tests/integration/websocket.test.ts +4 -1
  319. package/tests/payment-flow-test.ts +147 -0
  320. package/tests/unit/handlers/agent-room-operation-response-handler.test.ts +17 -29
  321. package/tests/unit/handlers/agent-status-update-handler.test.ts +2 -6
  322. package/tests/unit/handlers/auth-success-handler-rooms.test.ts +1 -3
  323. package/tests/unit/handlers/list-available-agents-handler.test.ts +4 -12
  324. package/tests/unit/handlers/list-room-agents-handler.test.ts +2 -6
  325. package/tests/unit/handlers/room-operation-response-handler.test.ts +9 -36
  326. package/tests/unit/managers/agent-room-manager.test.ts +9 -16
  327. package/tests/unit/managers/room-management-manager.test.ts +21 -39
  328. package/tsconfig.json +2 -2
  329. 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,2 @@
1
+ # Default code owners
2
+ * @KhalilSelyan @Gradonsky @pyagmyrov
@@ -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.event.pull_request.user.login == 'external-contributor' ||
18
- # github.event.pull_request.user.login == 'new-developer' ||
19
- # github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
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
- (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
17
- (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
18
- (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
19
- (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
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
@@ -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
@@ -5,7 +5,7 @@ on:
5
5
 
6
6
  jobs:
7
7
  mirror-to-test-repo:
8
- if: github.repository == 'Teneo-Protocol/teneo-sdk'
8
+ if: github.repository_owner == 'Teneo-Protocol'
9
9
  runs-on: ubuntu-latest
10
10
  steps:
11
11
  - name: Checkout Source Repo
@@ -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 CHANGED
@@ -5,6 +5,75 @@ All notable changes to the Teneo Protocol SDK will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
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
+
8
77
  ## [2.0.0] - 2025-11-05
9
78
 
10
79
  ### 🎉 Major Release: Multi-Room & Agent Customization