@okrlinkhub/agent-bridge 0.1.0 → 0.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 (35) hide show
  1. package/dist/client/index.d.ts +89 -0
  2. package/dist/client/index.d.ts.map +1 -1
  3. package/dist/client/index.js +279 -4
  4. package/dist/client/index.js.map +1 -1
  5. package/dist/component/_generated/api.d.ts +4 -0
  6. package/dist/component/_generated/api.d.ts.map +1 -1
  7. package/dist/component/_generated/api.js.map +1 -1
  8. package/dist/component/_generated/component.d.ts +103 -0
  9. package/dist/component/_generated/component.d.ts.map +1 -1
  10. package/dist/component/channels.d.ts +83 -0
  11. package/dist/component/channels.d.ts.map +1 -0
  12. package/dist/component/channels.js +288 -0
  13. package/dist/component/channels.js.map +1 -0
  14. package/dist/component/circuitBreaker.d.ts +73 -0
  15. package/dist/component/circuitBreaker.d.ts.map +1 -0
  16. package/dist/component/circuitBreaker.js +216 -0
  17. package/dist/component/circuitBreaker.js.map +1 -0
  18. package/dist/component/gateway.d.ts +19 -3
  19. package/dist/component/gateway.d.ts.map +1 -1
  20. package/dist/component/gateway.js +82 -2
  21. package/dist/component/gateway.js.map +1 -1
  22. package/dist/component/permissions.d.ts +2 -2
  23. package/dist/component/registry.d.ts +3 -3
  24. package/dist/component/schema.d.ts +73 -3
  25. package/dist/component/schema.d.ts.map +1 -1
  26. package/dist/component/schema.js +46 -0
  27. package/dist/component/schema.js.map +1 -1
  28. package/package.json +5 -2
  29. package/src/client/index.ts +411 -4
  30. package/src/component/_generated/api.ts +4 -0
  31. package/src/component/_generated/component.ts +142 -1
  32. package/src/component/channels.ts +374 -0
  33. package/src/component/circuitBreaker.ts +250 -0
  34. package/src/component/gateway.ts +98 -2
  35. package/src/component/schema.ts +49 -0
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/component.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,IAC3E;IACE,QAAQ,EAAE;QACR,aAAa,EAAE,iBAAiB,CAC9B,UAAU,EACV,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,EAC9D,MAAM,EACN,IAAI,CACL,CAAC;QACF,iBAAiB,EAAE,iBAAiB,CAClC,UAAU,EACV,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,EACxC,OAAO,EACP,IAAI,CACL,CAAC;QACF,cAAc,EAAE,iBAAiB,CAC/B,OAAO,EACP,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAA;SAAE,EAC/D,MAAM,EACN,IAAI,CACL,CAAC;QACF,YAAY,EAAE,iBAAiB,CAC7B,OAAO,EACP,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,EACnB,KAAK,CAAC;YACJ,WAAW,EAAE,MAAM,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC;YAClB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAC,EACF,IAAI,CACL,CAAC;QACF,UAAU,EAAE,iBAAiB,CAC3B,UAAU,EACV,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,EAC7D,OAAO,EACP,IAAI,CACL,CAAC;QACF,WAAW,EAAE,iBAAiB,CAC5B,UAAU,EACV,UAAU,EACV;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,WAAW,EAAE,MAAM,CAAC;YACpB,aAAa,EAAE,MAAM,CAAC;YACtB,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,EACD;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE,EACvC,IAAI,CACL,CAAC;QACF,YAAY,EAAE,iBAAiB,CAC7B,OAAO,EACP,UAAU,EACV;YACE,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;YAChB,WAAW,EAAE,MAAM,CAAC;YACpB,aAAa,EAAE,MAAM,CAAC;YACtB,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,EACD,KAAK,CAAC;YACJ,SAAS,EAAE,MAAM,CAAC;YAClB,WAAW,EAAE,MAAM,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE;gBAAE,QAAQ,EAAE,MAAM,CAAC;gBAAC,GAAG,EAAE,MAAM,CAAA;aAAE,CAAC;YAC5C,OAAO,EAAE,MAAM,CAAC;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACtB,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC,EACF,IAAI,CACL,CAAC;KACH,CAAC;IACF,cAAc,EAAE;QACd,iBAAiB,EAAE,iBAAiB,CAClC,UAAU,EACV,UAAU,EACV;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,aAAa,EAAE,MAAM,CAAC;YACtB,MAAM,EAAE;gBAAE,eAAe,EAAE,MAAM,CAAC;gBAAC,WAAW,EAAE,MAAM,CAAA;aAAE,CAAC;SAC1D,EACD;YACE,OAAO,EAAE,OAAO,CAAC;YACjB,YAAY,EAAE,MAAM,CAAC;YACrB,aAAa,EAAE,MAAM,CAAC;YACtB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,EACD,IAAI,CACL,CAAC;QACF,SAAS,EAAE,iBAAiB,CAC1B,OAAO,EACP,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EACpC;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,SAAS,EAAE,OAAO,CAAC;YACnB,YAAY,EAAE,MAAM,CAAC;YACrB,aAAa,EAAE,MAAM,CAAC;YACtB,UAAU,EAAE,MAAM,CAAC;SACpB,GAAG,IAAI,EACR,IAAI,CACL,CAAC;QACF,WAAW,EAAE,iBAAiB,CAC5B,OAAO,EACP,UAAU,EACV,EAAE,EACF,KAAK,CAAC;YACJ,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,SAAS,EAAE,OAAO,CAAC;YACnB,YAAY,EAAE,MAAM,CAAC;YACrB,aAAa,EAAE,MAAM,CAAC;YACtB,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC,EACF,IAAI,CACL,CAAC;QACF,YAAY,EAAE,iBAAiB,CAC7B,UAAU,EACV,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EACpC,OAAO,EACP,IAAI,CACL,CAAC;KACH,CAAC;IACF,OAAO,EAAE;QACP,gBAAgB,EAAE,iBAAiB,CACjC,UAAU,EACV,UAAU,EACV;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,YAAY,EAAE,MAAM,CAAC;YACrB,aAAa,EAAE,MAAM,CAAC;SACvB,EACC;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,UAAU,EAAE,IAAI,CAAC;YACjB,cAAc,EAAE,MAAM,CAAC;YACvB,YAAY,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;SAC/C,GACD;YACE,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,UAAU,EAAE,KAAK,CAAC;YAClB,KAAK,EAAE,MAAM,CAAC;YACd,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;YACtD,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAC3B,UAAU,EAAE,MAAM,CAAC;SACpB,EACH,IAAI,CACL,CAAC;QACF,SAAS,EAAE,iBAAiB,CAC1B,UAAU,EACV,UAAU,EACV;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,cAAc,EAAE,MAAM,CAAC;YACvB,UAAU,EAAE,MAAM,CAAC;SACpB,EACD,IAAI,EACJ,IAAI,CACL,CAAC;QACF,cAAc,EAAE,iBAAiB,CAC/B,OAAO,EACP,UAAU,EACV;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,EACtD,KAAK,CAAC;YACJ,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,cAAc,EAAE,MAAM,CAAC;YACvB,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC,EACF,IAAI,CACL,CAAC;KACH,CAAC;IACF,WAAW,EAAE;QACX,eAAe,EAAE,iBAAiB,CAChC,OAAO,EACP,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,EAC1D;YACE,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;YAC9C,eAAe,CAAC,EAAE;gBAAE,eAAe,EAAE,MAAM,CAAC;gBAAC,WAAW,EAAE,MAAM,CAAA;aAAE,CAAC;SACpE,EACD,IAAI,CACL,CAAC;QACF,gBAAgB,EAAE,iBAAiB,CACjC,UAAU,EACV,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EACpC,MAAM,EACN,IAAI,CACL,CAAC;QACF,oBAAoB,EAAE,iBAAiB,CACrC,OAAO,EACP,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,EAC1D;YACE,SAAS,CAAC,EAAE;gBACV,eAAe,EAAE,MAAM,CAAC;gBACxB,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;gBAC9C,WAAW,EAAE,MAAM,CAAC;aACrB,CAAC;YACF,YAAY,EAAE,MAAM,CAAC;YACrB,OAAO,EAAE,KAAK,CAAC;gBACb,eAAe,EAAE,MAAM,CAAC;gBACxB,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;gBAC9C,WAAW,EAAE,MAAM,CAAC;aACrB,CAAC,CAAC;YACH,WAAW,EAAE,KAAK,CAAC;gBACjB,eAAe,EAAE,MAAM,CAAC;gBACxB,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;gBAC9C,WAAW,EAAE,MAAM,CAAC;aACrB,CAAC,CAAC;SACJ,EACD,IAAI,CACL,CAAC;QACF,eAAe,EAAE,iBAAiB,CAChC,OAAO,EACP,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EACpC,KAAK,CAAC;YACJ,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;YAClB,eAAe,EAAE,MAAM,CAAC;YACxB,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;YAC9C,eAAe,CAAC,EAAE;gBAAE,eAAe,EAAE,MAAM,CAAC;gBAAC,WAAW,EAAE,MAAM,CAAA;aAAE,CAAC;SACpE,CAAC,EACF,IAAI,CACL,CAAC;QACF,gBAAgB,EAAE,iBAAiB,CACjC,UAAU,EACV,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,EAC7D,OAAO,EACP,IAAI,CACL,CAAC;QACF,aAAa,EAAE,iBAAiB,CAC9B,UAAU,EACV,UAAU,EACV;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,eAAe,EAAE,MAAM,CAAC;YACxB,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;YAC9C,eAAe,CAAC,EAAE;gBAAE,eAAe,EAAE,MAAM,CAAC;gBAAC,WAAW,EAAE,MAAM,CAAA;aAAE,CAAC;SACpE,EACD,MAAM,EACN,IAAI,CACL,CAAC;KACH,CAAC;IACF,YAAY,EAAE;QACZ,SAAS,EAAE,iBAAiB,CAC1B,UAAU,EACV,UAAU,EACV;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,kBAAkB,EAAE,KAAK,CAAC;gBACxB,OAAO,EAAE,MAAM,CAAC;gBAChB,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;gBAC9C,eAAe,CAAC,EAAE;oBAAE,eAAe,EAAE,MAAM,CAAC;oBAAC,WAAW,EAAE,MAAM,CAAA;iBAAE,CAAC;aACpE,CAAC,CAAC;SACJ,EACD,IAAI,EACJ,IAAI,CACL,CAAC;QACF,yBAAyB,EAAE,iBAAiB,CAC1C,UAAU,EACV,UAAU,EACV;YACE,SAAS,EAAE,MAAM,CAAC;YAClB,UAAU,EAAE,MAAM,CAAC;YACnB,aAAa,EAAE,MAAM,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,EACD;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EACpC,IAAI,CACL,CAAC;QACF,UAAU,EAAE,iBAAiB,CAC3B,OAAO,EACP,UAAU,EACV;YAAE,UAAU,CAAC,EAAE,OAAO,CAAA;SAAE,EACxB,KAAK,CAAC;YACJ,OAAO,EAAE,MAAM,CAAC;YAChB,UAAU,EAAE,MAAM,CAAC;YACnB,aAAa,EAAE,MAAM,CAAC;YACtB,iBAAiB,EAAE,MAAM,CAAC;YAC1B,QAAQ,EAAE,OAAO,CAAC;YAClB,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC,EACF,IAAI,CACL,CAAC;QACF,cAAc,EAAE,iBAAiB,CAC/B,UAAU,EACV,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,iBAAiB,EAAE,MAAM,CAAA;SAAE,EAC9C;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,aAAa,EAAE,MAAM,CAAC;YACtB,OAAO,EAAE,MAAM,CAAC;SACjB,EACD,IAAI,CACL,CAAC;QACF,oBAAoB,EAAE,iBAAiB,CACrC,UAAU,EACV,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,gBAAgB,EAAE,MAAM,CAAA;SAAE,EAC9D;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAA;SAAE,EAC5C,IAAI,CACL,CAAC;QACF,WAAW,EAAE,iBAAiB,CAC5B,UAAU,EACV,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,EACtC,OAAO,EACP,IAAI,CACL,CAAC;QACF,iBAAiB,EAAE,iBAAiB,CAClC,UAAU,EACV,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EACpC,OAAO,EACP,IAAI,CACL,CAAC;KACH,CAAC;IACF,QAAQ,EAAE;QACR,SAAS,EAAE,iBAAiB,CAC1B,OAAO,EACP,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,EACzC,IAAI,GAAG;YACL,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,cAAc,EAAE,MAAM,CAAC;YACvB,YAAY,EAAE,MAAM,CAAC;YACrB,YAAY,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;SAC/C,EACD,IAAI,CACL,CAAC;QACF,aAAa,EAAE,iBAAiB,CAC9B,OAAO,EACP,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,EACnB,KAAK,CAAC;YACJ,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,EAAE,MAAM,CAAC;YACrB,YAAY,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;YAC9C,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC,EACF,IAAI,CACL,CAAC;QACF,QAAQ,EAAE,iBAAiB,CACzB,UAAU,EACV,UAAU,EACV;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,cAAc,EAAE,MAAM,CAAC;YACvB,YAAY,EAAE,MAAM,CAAC;YACrB,YAAY,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;SAC/C,EACD,MAAM,EACN,IAAI,CACL,CAAC;QACF,UAAU,EAAE,iBAAiB,CAC3B,UAAU,EACV,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,EACzC,OAAO,EACP,IAAI,CACL,CAAC;KACH,CAAC;CACH,CAAC"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Create a channel for an app.
3
+ * Idempotent: if the channel already exists, returns the existing ID.
4
+ */
5
+ export declare const createChannel: import("convex/server").RegisteredMutation<"public", {
6
+ description?: string | undefined;
7
+ appName: string;
8
+ channelName: string;
9
+ }, Promise<import("convex/values").GenericId<"appChannels">>>;
10
+ /**
11
+ * List active channels for an app.
12
+ */
13
+ export declare const listChannels: import("convex/server").RegisteredQuery<"public", {
14
+ appName: string;
15
+ }, Promise<{
16
+ channelName: string;
17
+ description: string | undefined;
18
+ createdAt: number;
19
+ isActive: boolean;
20
+ }[]>>;
21
+ /**
22
+ * Deactivate a channel (soft delete).
23
+ */
24
+ export declare const deactivateChannel: import("convex/server").RegisteredMutation<"public", {
25
+ appName: string;
26
+ channelName: string;
27
+ }, Promise<boolean>>;
28
+ /**
29
+ * Post a message to a channel.
30
+ * Requires a valid instanceToken for authentication.
31
+ */
32
+ export declare const postMessage: import("convex/server").RegisteredMutation<"public", {
33
+ priority?: number | undefined;
34
+ ttlMinutes?: number | undefined;
35
+ appName: string;
36
+ channelName: string;
37
+ instanceToken: string;
38
+ payload: string;
39
+ }, Promise<{
40
+ success: boolean;
41
+ messageId: `${string}-${string}-${string}-${string}-${string}`;
42
+ }>>;
43
+ /**
44
+ * Read messages from a channel with cursor-based pagination.
45
+ * Filters out expired messages. Returns messages in descending order (newest first).
46
+ */
47
+ export declare const readMessages: import("convex/server").RegisteredQuery<"public", {
48
+ after?: number | undefined;
49
+ limit?: number | undefined;
50
+ appName: string;
51
+ channelName: string;
52
+ instanceToken: string;
53
+ }, Promise<{
54
+ messageId: string;
55
+ fromAgentId: string;
56
+ payload: string;
57
+ metadata: {
58
+ priority: number;
59
+ ttl: number;
60
+ };
61
+ sentAt: number;
62
+ expiresAt: number;
63
+ readBy: string[];
64
+ }[]>>;
65
+ /**
66
+ * Mark a message as read by an agent.
67
+ * Adds the agentId to the readBy array if not already present.
68
+ */
69
+ export declare const markAsRead: import("convex/server").RegisteredMutation<"public", {
70
+ appName: string;
71
+ instanceToken: string;
72
+ messageId: string;
73
+ }, Promise<boolean>>;
74
+ /**
75
+ * Get count of unread messages for an agent on a channel.
76
+ * Only counts non-expired messages.
77
+ */
78
+ export declare const getUnreadCount: import("convex/server").RegisteredQuery<"public", {
79
+ appName: string;
80
+ channelName: string;
81
+ instanceToken: string;
82
+ }, Promise<number>>;
83
+ //# sourceMappingURL=channels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/component/channels.ts"],"names":[],"mappings":"AA6DA;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;6DA8BxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;KA6BvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;oBAqB5B,CAAC;AAIH;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;GAwDtB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;KAkEvB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;oBAuCrB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;mBA+BzB,CAAC"}
@@ -0,0 +1,288 @@
1
+ import { v } from "convex/values";
2
+ import { mutation, query } from "./_generated/server.js";
3
+ // --- Token hashing utility (shared with gateway.ts) ---
4
+ async function hashToken(token) {
5
+ const encoder = new TextEncoder();
6
+ const data = encoder.encode(token);
7
+ const hash = await crypto.subtle.digest("SHA-256", data);
8
+ return Array.from(new Uint8Array(hash))
9
+ .map((b) => b.toString(16).padStart(2, "0"))
10
+ .join("");
11
+ }
12
+ // --- Instance verification helper ---
13
+ /**
14
+ * Verify an instance token and return the agent info.
15
+ * Throws if the token is invalid, expired, or doesn't match the expected app.
16
+ */
17
+ async function verifyInstanceToken(ctx, instanceToken, appName) {
18
+ const tokenHash = await hashToken(instanceToken);
19
+ const instance = await ctx.db
20
+ .query("agentAppInstances")
21
+ .withIndex("by_instance_token_hash", (q) => q.eq("instanceTokenHash", tokenHash))
22
+ .unique();
23
+ if (!instance) {
24
+ throw new Error("Invalid instance token");
25
+ }
26
+ if (instance.expiresAt < Date.now()) {
27
+ throw new Error("Instance token has expired");
28
+ }
29
+ if (instance.appName !== appName) {
30
+ throw new Error("Token does not match this app");
31
+ }
32
+ // Verify agent is active
33
+ const agent = await ctx.db
34
+ .query("registeredAgents")
35
+ .withIndex("by_agent_id", (q) => q.eq("agentId", instance.agentId))
36
+ .unique();
37
+ if (!agent || !agent.isActive) {
38
+ throw new Error("Agent has been revoked");
39
+ }
40
+ return { agentId: instance.agentId, appName: instance.appName };
41
+ }
42
+ // --- Channel Management ---
43
+ /**
44
+ * Create a channel for an app.
45
+ * Idempotent: if the channel already exists, returns the existing ID.
46
+ */
47
+ export const createChannel = mutation({
48
+ args: {
49
+ appName: v.string(),
50
+ channelName: v.string(),
51
+ description: v.optional(v.string()),
52
+ },
53
+ returns: v.string(),
54
+ handler: async (ctx, args) => {
55
+ // Check if channel already exists
56
+ const existing = await ctx.db
57
+ .query("appChannels")
58
+ .withIndex("by_appName_and_channelName", (q) => q.eq("appName", args.appName).eq("channelName", args.channelName))
59
+ .unique();
60
+ if (existing) {
61
+ return existing._id;
62
+ }
63
+ const id = await ctx.db.insert("appChannels", {
64
+ appName: args.appName,
65
+ channelName: args.channelName,
66
+ description: args.description,
67
+ createdAt: Date.now(),
68
+ isActive: true,
69
+ });
70
+ return id;
71
+ },
72
+ });
73
+ /**
74
+ * List active channels for an app.
75
+ */
76
+ export const listChannels = query({
77
+ args: {
78
+ appName: v.string(),
79
+ },
80
+ returns: v.array(v.object({
81
+ channelName: v.string(),
82
+ description: v.optional(v.string()),
83
+ createdAt: v.number(),
84
+ isActive: v.boolean(),
85
+ })),
86
+ handler: async (ctx, args) => {
87
+ const channels = await ctx.db
88
+ .query("appChannels")
89
+ .withIndex("by_appName_and_channelName", (q) => q.eq("appName", args.appName))
90
+ .collect();
91
+ return channels
92
+ .filter((c) => c.isActive)
93
+ .map((c) => ({
94
+ channelName: c.channelName,
95
+ description: c.description,
96
+ createdAt: c.createdAt,
97
+ isActive: c.isActive,
98
+ }));
99
+ },
100
+ });
101
+ /**
102
+ * Deactivate a channel (soft delete).
103
+ */
104
+ export const deactivateChannel = mutation({
105
+ args: {
106
+ appName: v.string(),
107
+ channelName: v.string(),
108
+ },
109
+ returns: v.boolean(),
110
+ handler: async (ctx, args) => {
111
+ const channel = await ctx.db
112
+ .query("appChannels")
113
+ .withIndex("by_appName_and_channelName", (q) => q.eq("appName", args.appName).eq("channelName", args.channelName))
114
+ .unique();
115
+ if (!channel) {
116
+ return false;
117
+ }
118
+ await ctx.db.patch(channel._id, { isActive: false });
119
+ return true;
120
+ },
121
+ });
122
+ // --- Message Operations ---
123
+ /**
124
+ * Post a message to a channel.
125
+ * Requires a valid instanceToken for authentication.
126
+ */
127
+ export const postMessage = mutation({
128
+ args: {
129
+ instanceToken: v.string(),
130
+ appName: v.string(),
131
+ channelName: v.string(),
132
+ payload: v.string(),
133
+ priority: v.optional(v.number()),
134
+ ttlMinutes: v.optional(v.number()),
135
+ },
136
+ returns: v.object({
137
+ success: v.boolean(),
138
+ messageId: v.string(),
139
+ }),
140
+ handler: async (ctx, args) => {
141
+ // Verify the agent's identity
142
+ const verified = await verifyInstanceToken(ctx, args.instanceToken, args.appName);
143
+ // Verify channel exists and is active
144
+ const channel = await ctx.db
145
+ .query("appChannels")
146
+ .withIndex("by_appName_and_channelName", (q) => q.eq("appName", args.appName).eq("channelName", args.channelName))
147
+ .unique();
148
+ if (!channel || !channel.isActive) {
149
+ throw new Error(`Channel "${args.channelName}" not found or inactive in app "${args.appName}"`);
150
+ }
151
+ const ttlMs = (args.ttlMinutes ?? 60) * 60 * 1000;
152
+ const messageId = crypto.randomUUID();
153
+ const now = Date.now();
154
+ await ctx.db.insert("channelMessages", {
155
+ appName: args.appName,
156
+ channelName: args.channelName,
157
+ messageId,
158
+ fromAgentId: verified.agentId,
159
+ payload: args.payload,
160
+ metadata: {
161
+ priority: args.priority ?? 5,
162
+ ttl: ttlMs,
163
+ },
164
+ sentAt: now,
165
+ expiresAt: now + ttlMs,
166
+ readBy: [],
167
+ });
168
+ return { success: true, messageId };
169
+ },
170
+ });
171
+ /**
172
+ * Read messages from a channel with cursor-based pagination.
173
+ * Filters out expired messages. Returns messages in descending order (newest first).
174
+ */
175
+ export const readMessages = query({
176
+ args: {
177
+ instanceToken: v.string(),
178
+ appName: v.string(),
179
+ channelName: v.string(),
180
+ limit: v.optional(v.number()),
181
+ after: v.optional(v.number()),
182
+ },
183
+ returns: v.array(v.object({
184
+ messageId: v.string(),
185
+ fromAgentId: v.string(),
186
+ payload: v.string(),
187
+ metadata: v.object({
188
+ priority: v.number(),
189
+ ttl: v.number(),
190
+ }),
191
+ sentAt: v.number(),
192
+ expiresAt: v.number(),
193
+ readBy: v.array(v.string()),
194
+ })),
195
+ handler: async (ctx, args) => {
196
+ // Verify the agent's identity
197
+ await verifyInstanceToken(ctx, args.instanceToken, args.appName);
198
+ const now = Date.now();
199
+ const limit = args.limit ?? 20;
200
+ let messagesQuery;
201
+ if (args.after !== undefined) {
202
+ messagesQuery = ctx.db
203
+ .query("channelMessages")
204
+ .withIndex("by_appName_and_channelName_and_sentAt", (q) => q
205
+ .eq("appName", args.appName)
206
+ .eq("channelName", args.channelName)
207
+ .gt("sentAt", args.after));
208
+ }
209
+ else {
210
+ messagesQuery = ctx.db
211
+ .query("channelMessages")
212
+ .withIndex("by_appName_and_channelName_and_sentAt", (q) => q
213
+ .eq("appName", args.appName)
214
+ .eq("channelName", args.channelName));
215
+ }
216
+ const messages = await messagesQuery.order("desc").take(limit * 2);
217
+ // Filter out expired messages and take the requested limit
218
+ const validMessages = messages
219
+ .filter((m) => m.expiresAt > now)
220
+ .slice(0, limit);
221
+ return validMessages.map((m) => ({
222
+ messageId: m.messageId,
223
+ fromAgentId: m.fromAgentId,
224
+ payload: m.payload,
225
+ metadata: m.metadata,
226
+ sentAt: m.sentAt,
227
+ expiresAt: m.expiresAt,
228
+ readBy: m.readBy,
229
+ }));
230
+ },
231
+ });
232
+ /**
233
+ * Mark a message as read by an agent.
234
+ * Adds the agentId to the readBy array if not already present.
235
+ */
236
+ export const markAsRead = mutation({
237
+ args: {
238
+ instanceToken: v.string(),
239
+ appName: v.string(),
240
+ messageId: v.string(),
241
+ },
242
+ returns: v.boolean(),
243
+ handler: async (ctx, args) => {
244
+ const verified = await verifyInstanceToken(ctx, args.instanceToken, args.appName);
245
+ // Find the message by messageId
246
+ const messages = await ctx.db
247
+ .query("channelMessages")
248
+ .withIndex("by_appName_and_channelName_and_sentAt", (q) => q.eq("appName", args.appName))
249
+ .collect();
250
+ const message = messages.find((m) => m.messageId === args.messageId);
251
+ if (!message) {
252
+ return false;
253
+ }
254
+ if (message.readBy.includes(verified.agentId)) {
255
+ // Already marked as read
256
+ return true;
257
+ }
258
+ await ctx.db.patch(message._id, {
259
+ readBy: [...message.readBy, verified.agentId],
260
+ });
261
+ return true;
262
+ },
263
+ });
264
+ /**
265
+ * Get count of unread messages for an agent on a channel.
266
+ * Only counts non-expired messages.
267
+ */
268
+ export const getUnreadCount = query({
269
+ args: {
270
+ instanceToken: v.string(),
271
+ appName: v.string(),
272
+ channelName: v.string(),
273
+ },
274
+ returns: v.number(),
275
+ handler: async (ctx, args) => {
276
+ const verified = await verifyInstanceToken(ctx, args.instanceToken, args.appName);
277
+ const now = Date.now();
278
+ const messages = await ctx.db
279
+ .query("channelMessages")
280
+ .withIndex("by_appName_and_channelName_and_sentAt", (q) => q
281
+ .eq("appName", args.appName)
282
+ .eq("channelName", args.channelName))
283
+ .collect();
284
+ const unread = messages.filter((m) => m.expiresAt > now && !m.readBy.includes(verified.agentId));
285
+ return unread.length;
286
+ },
287
+ });
288
+ //# sourceMappingURL=channels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channels.js","sourceRoot":"","sources":["../../src/component/channels.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Calculate seconds remaining until the current hour window expires.
3
+ */
4
+ export declare function secondsUntilWindowExpires(): number;
5
+ /**
6
+ * Check the circuit breaker and increment counters if allowed.
7
+ * This is designed to be called from within the gateway's authorizeRequest
8
+ * mutation, but is also exposed for direct use.
9
+ *
10
+ * Looks up or creates the counter for the current hour window, checks
11
+ * if the agent is already blocked, then increments request count and
12
+ * token estimate. If limits are exceeded, blocks the agent for the
13
+ * remainder of the hour window.
14
+ */
15
+ export declare const checkAndIncrement: import("convex/server").RegisteredMutation<"public", {
16
+ appName: string;
17
+ agentId: string;
18
+ estimatedCost: number;
19
+ limits: {
20
+ requestsPerHour: number;
21
+ tokenBudget: number;
22
+ };
23
+ }, Promise<{
24
+ allowed: boolean;
25
+ reason: string;
26
+ currentCount: number;
27
+ currentTokens: number;
28
+ } | {
29
+ allowed: boolean;
30
+ currentCount: number;
31
+ currentTokens: number;
32
+ reason?: undefined;
33
+ }>>;
34
+ /**
35
+ * Get the current circuit breaker status for an agent on an app.
36
+ * Returns the counter for the current hour window.
37
+ */
38
+ export declare const getStatus: import("convex/server").RegisteredQuery<"public", {
39
+ appName: string;
40
+ agentId: string;
41
+ }, Promise<{
42
+ agentId: string;
43
+ appName: string;
44
+ windowHour: string;
45
+ requestCount: number;
46
+ tokenEstimate: number;
47
+ isBlocked: boolean;
48
+ blockedReason: string | undefined;
49
+ blockedAt: number | undefined;
50
+ } | null>>;
51
+ /**
52
+ * Admin function to manually reset a blocked circuit breaker.
53
+ * Creates a fresh counter for the current window with zeroed values.
54
+ */
55
+ export declare const resetCounter: import("convex/server").RegisteredMutation<"public", {
56
+ appName: string;
57
+ agentId: string;
58
+ }, Promise<boolean>>;
59
+ /**
60
+ * List all currently blocked circuit breakers.
61
+ * Useful for admin dashboards.
62
+ */
63
+ export declare const listBlocked: import("convex/server").RegisteredQuery<"public", {}, Promise<{
64
+ agentId: string;
65
+ appName: string;
66
+ windowHour: string;
67
+ requestCount: number;
68
+ tokenEstimate: number;
69
+ isBlocked: boolean;
70
+ blockedReason: string | undefined;
71
+ blockedAt: number | undefined;
72
+ }[]>>;
73
+ //# sourceMappingURL=circuitBreaker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circuitBreaker.d.ts","sourceRoot":"","sources":["../../src/component/circuitBreaker.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAMlD;AAwBD;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;GAyF5B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;UAkCpB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY;;;oBAiCvB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;KAoBtB,CAAC"}