@xfabric/memory 0.1.0 → 0.2.1

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 (69) hide show
  1. package/dist/index.d.ts +10 -3
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +14 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/memory-manager.d.ts +83 -1
  6. package/dist/memory-manager.d.ts.map +1 -1
  7. package/dist/memory-manager.js +491 -8
  8. package/dist/memory-manager.js.map +1 -1
  9. package/dist/plugin/index.d.ts +8 -0
  10. package/dist/plugin/index.d.ts.map +1 -0
  11. package/dist/plugin/index.js +130 -0
  12. package/dist/plugin/index.js.map +1 -0
  13. package/dist/providers/batch-gemini.d.ts +20 -0
  14. package/dist/providers/batch-gemini.d.ts.map +1 -0
  15. package/dist/providers/batch-gemini.js +279 -0
  16. package/dist/providers/batch-gemini.js.map +1 -0
  17. package/dist/providers/batch-openai.d.ts +20 -0
  18. package/dist/providers/batch-openai.d.ts.map +1 -0
  19. package/dist/providers/batch-openai.js +267 -0
  20. package/dist/providers/batch-openai.js.map +1 -0
  21. package/dist/providers/batch-runner.d.ts +62 -0
  22. package/dist/providers/batch-runner.d.ts.map +1 -0
  23. package/dist/providers/batch-runner.js +141 -0
  24. package/dist/providers/batch-runner.js.map +1 -0
  25. package/dist/providers/index.d.ts +3 -0
  26. package/dist/providers/index.d.ts.map +1 -1
  27. package/dist/providers/index.js +4 -0
  28. package/dist/providers/index.js.map +1 -1
  29. package/dist/sync/index.d.ts +1 -0
  30. package/dist/sync/index.d.ts.map +1 -1
  31. package/dist/sync/index.js +1 -0
  32. package/dist/sync/index.js.map +1 -1
  33. package/dist/sync/session-events.d.ts +23 -0
  34. package/dist/sync/session-events.d.ts.map +1 -0
  35. package/dist/sync/session-events.js +35 -0
  36. package/dist/sync/session-events.js.map +1 -0
  37. package/dist/types.d.ts +125 -0
  38. package/dist/types.d.ts.map +1 -1
  39. package/dist/types.js +21 -0
  40. package/dist/types.js.map +1 -1
  41. package/dist/utils/cache-key.d.ts +73 -0
  42. package/dist/utils/cache-key.d.ts.map +1 -0
  43. package/dist/utils/cache-key.js +62 -0
  44. package/dist/utils/cache-key.js.map +1 -0
  45. package/dist/utils/error-detection.d.ts +20 -0
  46. package/dist/utils/error-detection.d.ts.map +1 -0
  47. package/dist/utils/error-detection.js +28 -0
  48. package/dist/utils/error-detection.js.map +1 -0
  49. package/dist/utils/fingerprint.d.ts +9 -0
  50. package/dist/utils/fingerprint.d.ts.map +1 -0
  51. package/dist/utils/fingerprint.js +27 -0
  52. package/dist/utils/fingerprint.js.map +1 -0
  53. package/dist/utils/index.d.ts +6 -0
  54. package/dist/utils/index.d.ts.map +1 -1
  55. package/dist/utils/index.js +7 -0
  56. package/dist/utils/index.js.map +1 -1
  57. package/dist/utils/lazy-manager.d.ts +26 -0
  58. package/dist/utils/lazy-manager.d.ts.map +1 -0
  59. package/dist/utils/lazy-manager.js +50 -0
  60. package/dist/utils/lazy-manager.js.map +1 -0
  61. package/dist/utils/provider-key.d.ts +22 -0
  62. package/dist/utils/provider-key.d.ts.map +1 -0
  63. package/dist/utils/provider-key.js +31 -0
  64. package/dist/utils/provider-key.js.map +1 -0
  65. package/dist/utils/status-format.d.ts +44 -0
  66. package/dist/utils/status-format.d.ts.map +1 -0
  67. package/dist/utils/status-format.js +39 -0
  68. package/dist/utils/status-format.js.map +1 -0
  69. package/package.json +22 -12
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-gemini.js","sourceRoot":"","sources":["../../src/providers/batch-gemini.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAOvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAIxD,SAAS,gBAAgB,CAAC,MAA6B;IACrD,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,gBAAgB,CACvB,MAA6B,EAC7B,MAAyB;IAEzB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YACzD,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;QAC/C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/B,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACzC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC;AAChD,CAAC;AAED,SAAS,wBAAwB,CAAC,QAA8B;IAC9D,IAAI,QAAQ,CAAC,MAAM,IAAI,yBAAyB;QAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpE,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,yBAAyB,EAAE,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,yBAAyB,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,MAA8C;IAI3E,MAAM,QAAQ,GAAG,cAAc,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,IAAI,EAAE;YACJ,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,mBAAmB;SAC9B;KACF,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,KAAK,QAAQ,MAAM,CAAC;IACtC,MAAM,cAAc,GAAG,KAAK,QAAQ,QAAQ,CAAC;IAC7C,MAAM,KAAK,GAAG;QACZ,GAAG,SAAS,wDAAwD,QAAQ,MAAM;QAClF,GAAG,SAAS,yDAAyD,MAAM,CAAC,KAAK,MAAM;QACvF,cAAc;KACf,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACvE,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,+BAA+B,QAAQ,EAAE;KACvD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,MAIhC;IACC,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ;SAC1B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACf,IAAI,CAAC,SAAS,CAAC;QACb,GAAG,EAAE,OAAO,CAAC,SAAS;QACtB,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,QAAQ;SAC5B;KACF,CAAC,CACH;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,WAAW,GAAG,qBAAqB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IACxE,MAAM,aAAa,GAAG,qBAAqB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAEpE,MAAM,SAAS,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,6BAA6B,CAAC;IAC9E,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;QACrC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACnD,cAAc,EAAE,aAAa,CAAC,WAAW;SAC1C;QACD,IAAI,EAAE,aAAa,CAAC,IAAI;KACzB,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,oCAAoC,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,WAAW,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAgD,CAAC;IAC1F,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,SAAS,GAAG;QAChB,KAAK,EAAE;YACL,WAAW,EAAE,qBAAqB,MAAM,CAAC,OAAO,EAAE;YAClD,WAAW,EAAE;gBACX,SAAS,EAAE,MAAM;aAClB;SACF;KACF,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,yBAAyB,CAAC;IACrF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;QAC1C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;KAChC,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAsB,CAAC;IACtD,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,kJAAkJ,CACnJ,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,MAGrC;IACC,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC;QAClD,CAAC,CAAC,MAAM,CAAC,SAAS;QAClB,CAAC,CAAC,WAAW,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;QACjC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KACzD,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAsB,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,MAGrC;IACC,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC;IAC3F,MAAM,WAAW,GAAG,GAAG,OAAO,IAAI,IAAI,WAAW,CAAC;IAClD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KACzD,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC5B,OAAO,IAAI;SACR,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,CAAC,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,MAQjC;IACC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,OAAO,GAAkC,MAAM,CAAC,OAAO,CAAC;IAC5D,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GACV,OAAO;YACP,CAAC,MAAM,sBAAsB,CAAC;gBAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC;QACxC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,YAAY,GAChB,MAAM,CAAC,YAAY,EAAE,IAAI;gBACzB,MAAM,CAAC,YAAY,EAAE,MAAM;gBAC3B,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC;YACzC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,SAAS,gCAAgC,CAAC,CAAC;YACpF,CAAC;YACD,OAAO,EAAE,YAAY,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnE,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,SAAS,UAAU,KAAK,iBAAiB,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,SAAS,oBAAoB,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,CAAC,KAAK,EAAE,CAAC,gBAAgB,MAAM,CAAC,SAAS,IAAI,KAAK,aAAa,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;QAChG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QAC3E,OAAO,GAAG,SAAS,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,MAS/C;IACC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE/C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;QACzD,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC;YACxC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,CAAC,yCAAyC,EAAE;YACxD,SAAS;YACT,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,KAAK,EAAE,UAAU,GAAG,CAAC;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,KAAK,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,IACE,CAAC,MAAM,CAAC,IAAI;YACZ,SAAS,CAAC,KAAK;YACf,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAC7D,CAAC;YACD,MAAM,IAAI,KAAK,CACb,gBAAgB,SAAS,0DAA0D,CACpF,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GACb,SAAS,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;YAC7E,CAAC,CAAC;gBACE,YAAY,EACV,SAAS,CAAC,YAAY,EAAE,IAAI;oBAC5B,SAAS,CAAC,YAAY,EAAE,MAAM;oBAC9B,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa;oBACzC,EAAE;aACL;YACH,CAAC,CAAC,MAAM,kBAAkB,CAAC;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,SAAS;gBACT,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,SAAS;aACnB,CAAC,CAAC;QACT,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,gBAAgB,SAAS,gCAAgC,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC;YAC3C,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,SAAS,CAAC,YAAY;SAC/B,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAErE,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC;YAC/D,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3B,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClD,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3D,SAAS;YACX,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC;YACnF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,mBAAmB,CAAC,CAAC;gBAC5C,SAAS;YACX,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,gBAAgB,SAAS,YAAY,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,gBAAgB,SAAS,YAAY,SAAS,CAAC,IAAI,sBAAsB,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,EAAE,CAAC,wCAAwC,EAAE;QACvD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;QAChC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;IAEH,MAAM,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * OpenAI async batch embedding API implementation
3
+ */
4
+ import type { OpenAiBatchRequest, OpenAiBatchStatus, OpenAiBatchOutputLine, OpenAiEmbeddingClient } from "../types.js";
5
+ export type { OpenAiBatchRequest, OpenAiBatchStatus, OpenAiBatchOutputLine };
6
+ /**
7
+ * Run OpenAI embedding batches with concurrent batch processing
8
+ * Returns a map of custom_id -> embedding vector
9
+ */
10
+ export declare function runOpenAiEmbeddingBatches(params: {
11
+ openAi: OpenAiEmbeddingClient;
12
+ agentId: string;
13
+ requests: OpenAiBatchRequest[];
14
+ wait: boolean;
15
+ pollIntervalMs: number;
16
+ timeoutMs: number;
17
+ concurrency: number;
18
+ debug?: (message: string, data?: Record<string, unknown>) => void;
19
+ }): Promise<Map<string, number[]>>;
20
+ //# sourceMappingURL=batch-openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-openai.d.ts","sourceRoot":"","sources":["../../src/providers/batch-openai.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAOrB,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;AA+M7E;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IACtD,MAAM,EAAE,qBAAqB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACnE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAsGjC"}
@@ -0,0 +1,267 @@
1
+ /**
2
+ * OpenAI async batch embedding API implementation
3
+ */
4
+ import { hashText } from "../utils/hash.js";
5
+ import { retry } from "../utils/retry.js";
6
+ import { runWithConcurrency } from "./batch-runner.js";
7
+ import { OPENAI_BATCH_ENDPOINT, OPENAI_BATCH_COMPLETION_WINDOW, OPENAI_BATCH_MAX_REQUESTS, } from "../types.js";
8
+ function getOpenAiBaseUrl(openAi) {
9
+ return openAi.baseUrl?.replace(/\/$/, "") ?? "";
10
+ }
11
+ function getOpenAiHeaders(openAi, params) {
12
+ const headers = openAi.headers ? { ...openAi.headers } : {};
13
+ if (params.json) {
14
+ if (!headers["Content-Type"] && !headers["content-type"]) {
15
+ headers["Content-Type"] = "application/json";
16
+ }
17
+ }
18
+ else {
19
+ delete headers["Content-Type"];
20
+ delete headers["content-type"];
21
+ }
22
+ return headers;
23
+ }
24
+ function splitOpenAiBatchRequests(requests) {
25
+ if (requests.length <= OPENAI_BATCH_MAX_REQUESTS)
26
+ return [requests];
27
+ const groups = [];
28
+ for (let i = 0; i < requests.length; i += OPENAI_BATCH_MAX_REQUESTS) {
29
+ groups.push(requests.slice(i, i + OPENAI_BATCH_MAX_REQUESTS));
30
+ }
31
+ return groups;
32
+ }
33
+ async function submitOpenAiBatch(params) {
34
+ const baseUrl = getOpenAiBaseUrl(params.openAi);
35
+ const jsonl = params.requests.map((request) => JSON.stringify(request)).join("\n");
36
+ const form = new FormData();
37
+ form.append("purpose", "batch");
38
+ form.append("file", new Blob([jsonl], { type: "application/jsonl" }), `memory-embeddings.${hashText(String(Date.now()))}.jsonl`);
39
+ const fileRes = await fetch(`${baseUrl}/files`, {
40
+ method: "POST",
41
+ headers: getOpenAiHeaders(params.openAi, { json: false }),
42
+ body: form,
43
+ });
44
+ if (!fileRes.ok) {
45
+ const text = await fileRes.text();
46
+ throw new Error(`openai batch file upload failed: ${fileRes.status} ${text}`);
47
+ }
48
+ const filePayload = (await fileRes.json());
49
+ if (!filePayload.id) {
50
+ throw new Error("openai batch file upload failed: missing file id");
51
+ }
52
+ const batchRes = await retry(async () => {
53
+ const res = await fetch(`${baseUrl}/batches`, {
54
+ method: "POST",
55
+ headers: getOpenAiHeaders(params.openAi, { json: true }),
56
+ body: JSON.stringify({
57
+ input_file_id: filePayload.id,
58
+ endpoint: OPENAI_BATCH_ENDPOINT,
59
+ completion_window: OPENAI_BATCH_COMPLETION_WINDOW,
60
+ metadata: {
61
+ source: "vibestudio-memory",
62
+ agent: params.agentId,
63
+ },
64
+ }),
65
+ });
66
+ if (!res.ok) {
67
+ const text = await res.text();
68
+ const err = new Error(`openai batch create failed: ${res.status} ${text}`);
69
+ err.status = res.status;
70
+ throw err;
71
+ }
72
+ return res;
73
+ }, {
74
+ maxAttempts: 3,
75
+ baseDelayMs: 300,
76
+ maxDelayMs: 2000,
77
+ shouldRetry: (err) => {
78
+ const status = err.status;
79
+ return status === 429 || (typeof status === "number" && status >= 500);
80
+ },
81
+ });
82
+ return (await batchRes.json());
83
+ }
84
+ async function fetchOpenAiBatchStatus(params) {
85
+ const baseUrl = getOpenAiBaseUrl(params.openAi);
86
+ const res = await fetch(`${baseUrl}/batches/${params.batchId}`, {
87
+ headers: getOpenAiHeaders(params.openAi, { json: true }),
88
+ });
89
+ if (!res.ok) {
90
+ const text = await res.text();
91
+ throw new Error(`openai batch status failed: ${res.status} ${text}`);
92
+ }
93
+ return (await res.json());
94
+ }
95
+ async function fetchOpenAiFileContent(params) {
96
+ const baseUrl = getOpenAiBaseUrl(params.openAi);
97
+ const res = await fetch(`${baseUrl}/files/${params.fileId}/content`, {
98
+ headers: getOpenAiHeaders(params.openAi, { json: true }),
99
+ });
100
+ if (!res.ok) {
101
+ const text = await res.text();
102
+ throw new Error(`openai batch file content failed: ${res.status} ${text}`);
103
+ }
104
+ return await res.text();
105
+ }
106
+ function parseOpenAiBatchOutput(text) {
107
+ if (!text.trim())
108
+ return [];
109
+ return text
110
+ .split("\n")
111
+ .map((line) => line.trim())
112
+ .filter(Boolean)
113
+ .map((line) => JSON.parse(line));
114
+ }
115
+ async function readOpenAiBatchError(params) {
116
+ try {
117
+ const content = await fetchOpenAiFileContent({
118
+ openAi: params.openAi,
119
+ fileId: params.errorFileId,
120
+ });
121
+ const lines = parseOpenAiBatchOutput(content);
122
+ const first = lines.find((line) => line.error?.message || line.response?.body?.error);
123
+ const message = first?.error?.message ??
124
+ (typeof first?.response?.body?.error?.message === "string"
125
+ ? first?.response?.body?.error?.message
126
+ : undefined);
127
+ return message;
128
+ }
129
+ catch (err) {
130
+ const message = err instanceof Error ? err.message : String(err);
131
+ return message ? `error file unavailable: ${message}` : undefined;
132
+ }
133
+ }
134
+ async function waitForOpenAiBatch(params) {
135
+ const start = Date.now();
136
+ let current = params.initial;
137
+ while (true) {
138
+ const status = current ??
139
+ (await fetchOpenAiBatchStatus({
140
+ openAi: params.openAi,
141
+ batchId: params.batchId,
142
+ }));
143
+ const state = status.status ?? "unknown";
144
+ if (state === "completed") {
145
+ if (!status.output_file_id) {
146
+ throw new Error(`openai batch ${params.batchId} completed without output file`);
147
+ }
148
+ return {
149
+ outputFileId: status.output_file_id,
150
+ errorFileId: status.error_file_id ?? undefined,
151
+ };
152
+ }
153
+ if (["failed", "expired", "cancelled", "canceled"].includes(state)) {
154
+ const detail = status.error_file_id
155
+ ? await readOpenAiBatchError({ openAi: params.openAi, errorFileId: status.error_file_id })
156
+ : undefined;
157
+ const suffix = detail ? `: ${detail}` : "";
158
+ throw new Error(`openai batch ${params.batchId} ${state}${suffix}`);
159
+ }
160
+ if (!params.wait) {
161
+ throw new Error(`openai batch ${params.batchId} still ${state}; wait disabled`);
162
+ }
163
+ if (Date.now() - start > params.timeoutMs) {
164
+ throw new Error(`openai batch ${params.batchId} timed out after ${params.timeoutMs}ms`);
165
+ }
166
+ params.debug?.(`openai batch ${params.batchId} ${state}; waiting ${params.pollIntervalMs}ms`);
167
+ await new Promise((resolve) => setTimeout(resolve, params.pollIntervalMs));
168
+ current = undefined;
169
+ }
170
+ }
171
+ /**
172
+ * Run OpenAI embedding batches with concurrent batch processing
173
+ * Returns a map of custom_id -> embedding vector
174
+ */
175
+ export async function runOpenAiEmbeddingBatches(params) {
176
+ if (params.requests.length === 0)
177
+ return new Map();
178
+ const groups = splitOpenAiBatchRequests(params.requests);
179
+ const byCustomId = new Map();
180
+ const tasks = groups.map((group, groupIndex) => async () => {
181
+ const batchInfo = await submitOpenAiBatch({
182
+ openAi: params.openAi,
183
+ requests: group,
184
+ agentId: params.agentId,
185
+ });
186
+ if (!batchInfo.id) {
187
+ throw new Error("openai batch create failed: missing batch id");
188
+ }
189
+ params.debug?.("memory embeddings: openai batch created", {
190
+ batchId: batchInfo.id,
191
+ status: batchInfo.status,
192
+ group: groupIndex + 1,
193
+ groups: groups.length,
194
+ requests: group.length,
195
+ });
196
+ if (!params.wait && batchInfo.status !== "completed") {
197
+ throw new Error(`openai batch ${batchInfo.id} submitted; enable remote.batch.wait to await completion`);
198
+ }
199
+ const completed = batchInfo.status === "completed"
200
+ ? {
201
+ outputFileId: batchInfo.output_file_id ?? "",
202
+ errorFileId: batchInfo.error_file_id ?? undefined,
203
+ }
204
+ : await waitForOpenAiBatch({
205
+ openAi: params.openAi,
206
+ batchId: batchInfo.id,
207
+ wait: params.wait,
208
+ pollIntervalMs: params.pollIntervalMs,
209
+ timeoutMs: params.timeoutMs,
210
+ debug: params.debug,
211
+ initial: batchInfo,
212
+ });
213
+ if (!completed.outputFileId) {
214
+ throw new Error(`openai batch ${batchInfo.id} completed without output file`);
215
+ }
216
+ const content = await fetchOpenAiFileContent({
217
+ openAi: params.openAi,
218
+ fileId: completed.outputFileId,
219
+ });
220
+ const outputLines = parseOpenAiBatchOutput(content);
221
+ const errors = [];
222
+ const remaining = new Set(group.map((request) => request.custom_id));
223
+ for (const line of outputLines) {
224
+ const customId = line.custom_id;
225
+ if (!customId)
226
+ continue;
227
+ remaining.delete(customId);
228
+ if (line.error?.message) {
229
+ errors.push(`${customId}: ${line.error.message}`);
230
+ continue;
231
+ }
232
+ const response = line.response;
233
+ const statusCode = response?.status_code ?? 0;
234
+ if (statusCode >= 400) {
235
+ const message = response?.body?.error?.message ??
236
+ (typeof response?.body === "string" ? response.body : undefined) ??
237
+ "unknown error";
238
+ errors.push(`${customId}: ${message}`);
239
+ continue;
240
+ }
241
+ const data = response?.body?.data ?? [];
242
+ const embedding = data[0]?.embedding ?? [];
243
+ if (embedding.length === 0) {
244
+ errors.push(`${customId}: empty embedding`);
245
+ continue;
246
+ }
247
+ byCustomId.set(customId, embedding);
248
+ }
249
+ if (errors.length > 0) {
250
+ throw new Error(`openai batch ${batchInfo.id} failed: ${errors.join("; ")}`);
251
+ }
252
+ if (remaining.size > 0) {
253
+ throw new Error(`openai batch ${batchInfo.id} missing ${remaining.size} embedding responses`);
254
+ }
255
+ });
256
+ params.debug?.("memory embeddings: openai batch submit", {
257
+ requests: params.requests.length,
258
+ groups: groups.length,
259
+ wait: params.wait,
260
+ concurrency: params.concurrency,
261
+ pollIntervalMs: params.pollIntervalMs,
262
+ timeoutMs: params.timeoutMs,
263
+ });
264
+ await runWithConcurrency(tasks, params.concurrency);
265
+ return byCustomId;
266
+ }
267
+ //# sourceMappingURL=batch-openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-openai.js","sourceRoot":"","sources":["../../src/providers/batch-openai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Batch execution utilities with concurrency control and failure tracking
3
+ */
4
+ /**
5
+ * Run tasks with controlled concurrency
6
+ * Returns results in order, fails fast on first error
7
+ */
8
+ export declare function runWithConcurrency<T>(tasks: Array<() => Promise<T>>, limit: number): Promise<T[]>;
9
+ /**
10
+ * Tracks batch API failures and handles auto-disable logic
11
+ */
12
+ export declare class BatchFailureTracker {
13
+ private failureCount;
14
+ private lastError?;
15
+ private lastProvider?;
16
+ private lock;
17
+ private _disabled;
18
+ get disabled(): boolean;
19
+ get failures(): number;
20
+ get limit(): number;
21
+ get error(): string | undefined;
22
+ get provider(): string | undefined;
23
+ /**
24
+ * Execute a function while holding the failure lock
25
+ */
26
+ private withLock;
27
+ /**
28
+ * Reset failure count after successful operation
29
+ */
30
+ reset(): Promise<void>;
31
+ /**
32
+ * Record a batch failure and check if batch should be disabled
33
+ */
34
+ recordFailure(params: {
35
+ provider: string;
36
+ message: string;
37
+ attempts?: number;
38
+ forceDisable?: boolean;
39
+ }): Promise<{
40
+ disabled: boolean;
41
+ count: number;
42
+ }>;
43
+ /**
44
+ * Manually disable batch processing
45
+ */
46
+ disable(reason?: string): void;
47
+ /**
48
+ * Re-enable batch processing (e.g., after config change)
49
+ */
50
+ enable(): void;
51
+ /**
52
+ * Get status for reporting
53
+ */
54
+ getStatus(): {
55
+ enabled: boolean;
56
+ failures: number;
57
+ limit: number;
58
+ lastError?: string;
59
+ lastProvider?: string;
60
+ };
61
+ }
62
+ //# sourceMappingURL=batch-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-runner.d.ts","sourceRoot":"","sources":["../../src/providers/batch-runner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,KAAK,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAC9B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,EAAE,CAAC,CAyBd;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,IAAI,CAAoC;IAChD,OAAO,CAAC,SAAS,CAAS;IAE1B,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED;;OAEG;YACW,QAAQ;IActB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAmBjD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAO9B;;OAEG;IACH,MAAM,IAAI,IAAI;IAOd;;OAEG;IACH,SAAS,IAAI;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;CASF"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Batch execution utilities with concurrency control and failure tracking
3
+ */
4
+ import { BATCH_FAILURE_LIMIT } from "../types.js";
5
+ /**
6
+ * Run tasks with controlled concurrency
7
+ * Returns results in order, fails fast on first error
8
+ */
9
+ export async function runWithConcurrency(tasks, limit) {
10
+ if (tasks.length === 0)
11
+ return [];
12
+ const resolvedLimit = Math.max(1, Math.min(limit, tasks.length));
13
+ const results = Array.from({ length: tasks.length });
14
+ let next = 0;
15
+ let firstError = null;
16
+ const workers = Array.from({ length: resolvedLimit }, async () => {
17
+ while (true) {
18
+ if (firstError)
19
+ return;
20
+ const index = next;
21
+ next += 1;
22
+ if (index >= tasks.length)
23
+ return;
24
+ try {
25
+ results[index] = await tasks[index]();
26
+ }
27
+ catch (err) {
28
+ firstError = err;
29
+ return;
30
+ }
31
+ }
32
+ });
33
+ await Promise.allSettled(workers);
34
+ if (firstError)
35
+ throw firstError;
36
+ return results;
37
+ }
38
+ /**
39
+ * Tracks batch API failures and handles auto-disable logic
40
+ */
41
+ export class BatchFailureTracker {
42
+ failureCount = 0;
43
+ lastError;
44
+ lastProvider;
45
+ lock = Promise.resolve();
46
+ _disabled = false;
47
+ get disabled() {
48
+ return this._disabled;
49
+ }
50
+ get failures() {
51
+ return this.failureCount;
52
+ }
53
+ get limit() {
54
+ return BATCH_FAILURE_LIMIT;
55
+ }
56
+ get error() {
57
+ return this.lastError;
58
+ }
59
+ get provider() {
60
+ return this.lastProvider;
61
+ }
62
+ /**
63
+ * Execute a function while holding the failure lock
64
+ */
65
+ async withLock(fn) {
66
+ let release;
67
+ const wait = this.lock;
68
+ this.lock = new Promise((resolve) => {
69
+ release = resolve;
70
+ });
71
+ await wait;
72
+ try {
73
+ return await fn();
74
+ }
75
+ finally {
76
+ release();
77
+ }
78
+ }
79
+ /**
80
+ * Reset failure count after successful operation
81
+ */
82
+ async reset() {
83
+ await this.withLock(async () => {
84
+ this.failureCount = 0;
85
+ this.lastError = undefined;
86
+ this.lastProvider = undefined;
87
+ });
88
+ }
89
+ /**
90
+ * Record a batch failure and check if batch should be disabled
91
+ */
92
+ async recordFailure(params) {
93
+ return await this.withLock(async () => {
94
+ if (this._disabled) {
95
+ return { disabled: true, count: this.failureCount };
96
+ }
97
+ const increment = params.forceDisable
98
+ ? BATCH_FAILURE_LIMIT
99
+ : Math.max(1, params.attempts ?? 1);
100
+ this.failureCount += increment;
101
+ this.lastError = params.message;
102
+ this.lastProvider = params.provider;
103
+ const disabled = params.forceDisable || this.failureCount >= BATCH_FAILURE_LIMIT;
104
+ if (disabled) {
105
+ this._disabled = true;
106
+ }
107
+ return { disabled, count: this.failureCount };
108
+ });
109
+ }
110
+ /**
111
+ * Manually disable batch processing
112
+ */
113
+ disable(reason) {
114
+ this._disabled = true;
115
+ if (reason) {
116
+ this.lastError = reason;
117
+ }
118
+ }
119
+ /**
120
+ * Re-enable batch processing (e.g., after config change)
121
+ */
122
+ enable() {
123
+ this._disabled = false;
124
+ this.failureCount = 0;
125
+ this.lastError = undefined;
126
+ this.lastProvider = undefined;
127
+ }
128
+ /**
129
+ * Get status for reporting
130
+ */
131
+ getStatus() {
132
+ return {
133
+ enabled: !this._disabled,
134
+ failures: this.failureCount,
135
+ limit: BATCH_FAILURE_LIMIT,
136
+ lastError: this.lastError,
137
+ lastProvider: this.lastProvider,
138
+ };
139
+ }
140
+ }
141
+ //# sourceMappingURL=batch-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-runner.js","sourceRoot":"","sources":["../../src/providers/batch-runner.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,9 @@ export type { EmbeddingProvider, EmbeddingProviderResult, ProviderConfig } from
4
4
  export { createOpenAIProvider } from "./openai.js";
5
5
  export { createGeminiProvider } from "./gemini.js";
6
6
  export { createLocalProvider, isLocalAvailable, resetLocalContext } from "./local.js";
7
+ export { runOpenAiEmbeddingBatches, type OpenAiBatchRequest, type OpenAiBatchStatus, type OpenAiBatchOutputLine, } from "./batch-openai.js";
8
+ export { runGeminiEmbeddingBatches, type GeminiBatchRequest, type GeminiBatchStatus, type GeminiBatchOutputLine, } from "./batch-gemini.js";
9
+ export { runWithConcurrency, BatchFailureTracker } from "./batch-runner.js";
7
10
  /**
8
11
  * Compute a unique provider key for cache isolation
9
12
  * This ensures embeddings cached with different configurations don't mix
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAqB,uBAAuB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK7F,YAAY,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEtF;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,MAAM,CAwBR;AAED,KAAK,cAAc,GAAG;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAoBF;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,iBAAiB,EAAE,qBAAqB,EACxC,MAAM,EAAE,cAAc,EACtB,cAAc,GAAE,cAAmB,GAClC,OAAO,CAAC,uBAAuB,CAAC,CA2BlC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAqB,uBAAuB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK7F,YAAY,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGtF,OAAO,EACL,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE5E;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,MAAM,CAwBR;AAED,KAAK,cAAc,GAAG;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAoBF;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,iBAAiB,EAAE,qBAAqB,EACxC,MAAM,EAAE,cAAc,EACtB,cAAc,GAAE,cAAmB,GAClC,OAAO,CAAC,uBAAuB,CAAC,CA2BlC"}
@@ -5,6 +5,10 @@ import { createLocalProvider, isLocalAvailable } from "./local.js";
5
5
  export { createOpenAIProvider } from "./openai.js";
6
6
  export { createGeminiProvider } from "./gemini.js";
7
7
  export { createLocalProvider, isLocalAvailable, resetLocalContext } from "./local.js";
8
+ // Batch API exports
9
+ export { runOpenAiEmbeddingBatches, } from "./batch-openai.js";
10
+ export { runGeminiEmbeddingBatches, } from "./batch-gemini.js";
11
+ export { runWithConcurrency, BatchFailureTracker } from "./batch-runner.js";
8
12
  /**
9
13
  * Compute a unique provider key for cache isolation
10
14
  * This ensures embeddings cached with different configurations don't mix
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export { FileWatcher, type FileWatcherOptions } from "./watcher.js";
2
2
  export { SessionMonitor, type SessionMonitorOptions } from "./session-monitor.js";
3
3
  export { minimatch } from "./minimatch.js";
4
+ export { onSessionTranscriptUpdate, emitSessionTranscriptUpdate, getSessionListenerCount, type SessionTranscriptUpdate, type SessionTranscriptListener, } from "./session-events.js";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,GAC/B,MAAM,qBAAqB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export { FileWatcher } from "./watcher.js";
2
2
  export { SessionMonitor } from "./session-monitor.js";
3
3
  export { minimatch } from "./minimatch.js";
4
+ export { onSessionTranscriptUpdate, emitSessionTranscriptUpdate, getSessionListenerCount, } from "./session-events.js";
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA2B,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,cAAc,EAA8B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA2B,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,cAAc,EAA8B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,GAGxB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Session transcript event system
3
+ * Push-based notification when session files are updated
4
+ */
5
+ export type SessionTranscriptUpdate = {
6
+ sessionFile: string;
7
+ };
8
+ export type SessionTranscriptListener = (update: SessionTranscriptUpdate) => void;
9
+ /**
10
+ * Subscribe to session transcript updates
11
+ * Returns an unsubscribe function
12
+ */
13
+ export declare function onSessionTranscriptUpdate(listener: SessionTranscriptListener): () => void;
14
+ /**
15
+ * Emit a session transcript update event
16
+ * Call this when a session file is modified (e.g., new message appended)
17
+ */
18
+ export declare function emitSessionTranscriptUpdate(sessionFile: string): void;
19
+ /**
20
+ * Get the current number of listeners (useful for debugging)
21
+ */
22
+ export declare function getSessionListenerCount(): number;
23
+ //# sourceMappingURL=session-events.d.ts.map