agenthooksprotocol 0.0.0-stage → 0.1.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 (151) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +69 -2
  3. package/dist/src/client/auth.d.ts +147 -0
  4. package/dist/src/client/auth.d.ts.map +1 -0
  5. package/dist/src/client/auth.js +629 -0
  6. package/dist/src/client/auth.js.map +1 -0
  7. package/dist/src/client/composition.d.ts +44 -0
  8. package/dist/src/client/composition.d.ts.map +1 -0
  9. package/dist/src/client/composition.js +531 -0
  10. package/dist/src/client/composition.js.map +1 -0
  11. package/dist/src/client/content.d.ts +75 -0
  12. package/dist/src/client/content.d.ts.map +1 -0
  13. package/dist/src/client/content.js +415 -0
  14. package/dist/src/client/content.js.map +1 -0
  15. package/dist/src/client/hooks.d.ts +66 -0
  16. package/dist/src/client/hooks.d.ts.map +1 -0
  17. package/dist/src/client/hooks.js +1084 -0
  18. package/dist/src/client/hooks.js.map +1 -0
  19. package/dist/src/client/index.d.ts +12 -0
  20. package/dist/src/client/index.d.ts.map +1 -0
  21. package/dist/src/client/index.js +10 -0
  22. package/dist/src/client/index.js.map +1 -0
  23. package/dist/src/client/transport.d.ts +12 -0
  24. package/dist/src/client/transport.d.ts.map +1 -0
  25. package/dist/src/client/transport.js +347 -0
  26. package/dist/src/client/transport.js.map +1 -0
  27. package/dist/src/client/types.d.ts +117 -0
  28. package/dist/src/client/types.d.ts.map +1 -0
  29. package/dist/src/client/types.js +10 -0
  30. package/dist/src/client/types.js.map +1 -0
  31. package/dist/src/client/validation.d.ts +3 -0
  32. package/dist/src/client/validation.d.ts.map +1 -0
  33. package/dist/src/client/validation.js +25 -0
  34. package/dist/src/client/validation.js.map +1 -0
  35. package/dist/src/compaction.d.ts +27 -0
  36. package/dist/src/compaction.d.ts.map +1 -0
  37. package/dist/src/compaction.js +155 -0
  38. package/dist/src/compaction.js.map +1 -0
  39. package/dist/src/content-upload.d.ts +59 -0
  40. package/dist/src/content-upload.d.ts.map +1 -0
  41. package/dist/src/content-upload.js +133 -0
  42. package/dist/src/content-upload.js.map +1 -0
  43. package/dist/src/draft/generated.d.ts +3111 -0
  44. package/dist/src/draft/generated.d.ts.map +1 -0
  45. package/dist/src/draft/generated.js +15623 -0
  46. package/dist/src/draft/generated.js.map +1 -0
  47. package/dist/src/draft/index.d.ts +34 -0
  48. package/dist/src/draft/index.d.ts.map +1 -0
  49. package/dist/src/draft/index.js +131 -0
  50. package/dist/src/draft/index.js.map +1 -0
  51. package/dist/src/draft/schemas.d.ts +8920 -0
  52. package/dist/src/draft/schemas.d.ts.map +1 -0
  53. package/dist/src/draft/schemas.js +9257 -0
  54. package/dist/src/draft/schemas.js.map +1 -0
  55. package/dist/src/draft-atomic.d.ts +18 -0
  56. package/dist/src/draft-atomic.d.ts.map +1 -0
  57. package/dist/src/draft-atomic.js +102 -0
  58. package/dist/src/draft-atomic.js.map +1 -0
  59. package/dist/src/draft-runtime.d.ts +89 -0
  60. package/dist/src/draft-runtime.d.ts.map +1 -0
  61. package/dist/src/draft-runtime.js +240 -0
  62. package/dist/src/draft-runtime.js.map +1 -0
  63. package/dist/src/elicitation.d.ts +18 -0
  64. package/dist/src/elicitation.d.ts.map +1 -0
  65. package/dist/src/elicitation.js +191 -0
  66. package/dist/src/elicitation.js.map +1 -0
  67. package/dist/src/errors.d.ts +7 -0
  68. package/dist/src/errors.d.ts.map +1 -0
  69. package/dist/src/errors.js +15 -0
  70. package/dist/src/errors.js.map +1 -0
  71. package/dist/src/framing.d.ts +7 -0
  72. package/dist/src/framing.d.ts.map +1 -0
  73. package/dist/src/framing.js +39 -0
  74. package/dist/src/framing.js.map +1 -0
  75. package/dist/src/generated.d.ts +304 -0
  76. package/dist/src/generated.d.ts.map +1 -0
  77. package/dist/src/generated.js +1885 -0
  78. package/dist/src/generated.js.map +1 -0
  79. package/dist/src/hook-runner.d.ts +11 -0
  80. package/dist/src/hook-runner.d.ts.map +1 -0
  81. package/dist/src/hook-runner.js +223 -0
  82. package/dist/src/hook-runner.js.map +1 -0
  83. package/dist/src/index.d.ts +8 -0
  84. package/dist/src/index.d.ts.map +1 -0
  85. package/dist/src/index.js +8 -0
  86. package/dist/src/index.js.map +1 -0
  87. package/dist/src/observation.d.ts +26 -0
  88. package/dist/src/observation.d.ts.map +1 -0
  89. package/dist/src/observation.js +28 -0
  90. package/dist/src/observation.js.map +1 -0
  91. package/dist/src/server/attachments.d.ts +29 -0
  92. package/dist/src/server/attachments.d.ts.map +1 -0
  93. package/dist/src/server/attachments.js +112 -0
  94. package/dist/src/server/attachments.js.map +1 -0
  95. package/dist/src/server/hooks.d.ts +20 -0
  96. package/dist/src/server/hooks.d.ts.map +1 -0
  97. package/dist/src/server/hooks.js +131 -0
  98. package/dist/src/server/hooks.js.map +1 -0
  99. package/dist/src/server/index.d.ts +9 -0
  100. package/dist/src/server/index.d.ts.map +1 -0
  101. package/dist/src/server/index.js +5 -0
  102. package/dist/src/server/index.js.map +1 -0
  103. package/dist/src/server/stdio.d.ts +15 -0
  104. package/dist/src/server/stdio.d.ts.map +1 -0
  105. package/dist/src/server/stdio.js +69 -0
  106. package/dist/src/server/stdio.js.map +1 -0
  107. package/dist/src/transport.d.ts +7 -0
  108. package/dist/src/transport.d.ts.map +1 -0
  109. package/dist/src/transport.js +195 -0
  110. package/dist/src/transport.js.map +1 -0
  111. package/dist/src/types.d.ts +116 -0
  112. package/dist/src/types.d.ts.map +1 -0
  113. package/dist/src/types.js +14 -0
  114. package/dist/src/types.js.map +1 -0
  115. package/dist/src/validation.d.ts +7 -0
  116. package/dist/src/validation.d.ts.map +1 -0
  117. package/dist/src/validation.js +209 -0
  118. package/dist/src/validation.js.map +1 -0
  119. package/package.json +62 -4
  120. package/src/client/auth.ts +1076 -0
  121. package/src/client/composition.ts +717 -0
  122. package/src/client/content.ts +522 -0
  123. package/src/client/hooks.ts +1477 -0
  124. package/src/client/index.ts +30 -0
  125. package/src/client/transport.ts +408 -0
  126. package/src/client/types.ts +173 -0
  127. package/src/client/validation.ts +24 -0
  128. package/src/compaction.ts +196 -0
  129. package/src/content-upload.ts +206 -0
  130. package/src/draft/README.md +16 -0
  131. package/src/draft/ahp-codegen.lock.json +131 -0
  132. package/src/draft/generated.ts +19449 -0
  133. package/src/draft/index.ts +251 -0
  134. package/src/draft/schemas.ts +9453 -0
  135. package/src/draft-atomic.ts +119 -0
  136. package/src/draft-runtime.ts +363 -0
  137. package/src/elicitation.ts +254 -0
  138. package/src/errors.ts +30 -0
  139. package/src/framing.ts +56 -0
  140. package/src/generated.ts +2408 -0
  141. package/src/hook-runner.ts +310 -0
  142. package/src/index.ts +8 -0
  143. package/src/observation.ts +65 -0
  144. package/src/server/attachments.ts +128 -0
  145. package/src/server/hooks.ts +206 -0
  146. package/src/server/index.ts +23 -0
  147. package/src/server/node-crypto.d.ts +7 -0
  148. package/src/server/stdio.ts +81 -0
  149. package/src/transport.ts +273 -0
  150. package/src/types.ts +124 -0
  151. package/src/validation.ts +372 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition.js","sourceRoot":"","sources":["../../../src/client/composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAY9E,MAAM,MAAM,GAAG,CAAC,CAAU,EAAoB,EAAE,CAC9C,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC3D,6EAA6E;AAC7E,SAAS,UAAU,CAAI,KAAQ;IAC7B,IAAI,KAAK,YAAY,cAAc;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAM,CAAC;IAC5D,IAAI,MAAM,CAAC,KAAK,CAAC;QACf,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CACrD,CAAC;IACT,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,KAAK,CAAC,IAAI,YAAY,cAAc,EAAE,CAAC;QACzC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;QACnC,OAAO,EAAE,GAAI,QAAQ,CAAC,IAAI,CAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IACvE,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CACxD,CAAC;AACJ,CAAC;AACD,MAAM,IAAI,GAAG,+CAA+C,CAAC;AAC7D,IAAI,QAA6B,CAAC;AAClC,SAAS,SAAS;IAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,IAAI,OAAO,CAAC;YACrB,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3C,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/C,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1D,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD,SAAS,KAAK,CAAC,CAAU,EAAE,CAAU;IACnC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC,YAAY,cAAc,IAAI,CAAC,YAAY,cAAc;QAAE,OAAO,KAAK,CAAC;IAC7E,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,OAAO,CACL,MAAM,CAAC,CAAC,CAAC;QACT,MAAM,CAAC,CAAC,CAAC;QACT,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;QAC/C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACtE,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,OAAO,GAA6C;IACxD,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAC3C,yBAAyB,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IACvD,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;IACnC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;IACnC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;IAC7C,sBAAsB,EAAE,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE;IAC/C,sBAAsB,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;IAC/C,wBAAwB,EAAE,EAAE,YAAY,EAAE,CAAC,cAAc,CAAC,EAAE;IAC5D,uBAAuB,EAAE,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE;IACjD,sBAAsB,EAAE,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;IACvD,uBAAuB,EAAE,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;IAC5D,yBAAyB,EAAE,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE;IACjE,yBAAyB,EAAE,EAAE,SAAS,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE;CAClE,CAAC;AAEF;;gFAEgF;AAChF,MAAM,UAAU,eAAe,CAC7B,KAAkB,EAClB,QAAkB,EAClB,QAA2B,EAC3B,YAA0B;IAE1B,OAAO,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AAC1D,CAAC;AAkBD,SAAS,OAAO,CACd,KAAkB,EAClB,QAAkB,EAClB,QAA2B,EAC3B,YAA0B,EAC1B,QAAsB,EACtB,SAAS,GAAG,KAAK,EACjB,aAAmD;IAEnD,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAC5B,GAAG,IAAI,mCAAmC,KAAK,CAAC,IAAI,EAAE,CACvD,CAAC;IACF,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;IAC7C,IAAI,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACxC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IACE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE;YAC1B,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YAE3C,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,IACE,CAAC;YACC,MAAM;YACN,OAAO;YACP,KAAK;YACL,QAAQ;YACR,QAAQ;YACR,SAAS;YACT,MAAM;YACN,QAAQ;SACT,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YAEvB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,sEAAsE;QACtE,uEAAuE;QACvE,0EAA0E;QAC1E,IACE,CAAC,QAAQ;YACT,MAAM,CAAC,IAAI,KAAK,QAAQ;YACxB,KAAK,CAAC,IAAI,KAAK,yBAAyB;YAExC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,IACE,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC;YACpD,KAAK,CAAC,IAAI,KAAK,0BAA0B,EACzC,CAAC;YACD,MAAM,IAAI,GAAI,KAAqB,CAAC,WAAW,CAAC;YAChD,IACE,CAAC,MAAM,CAAC,IAAI,CAAC;gBACb,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;gBAC7C,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;gBAEtC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;YAC1E,MAAM,IAAI,GAAI,KAAqB,CAAC,WAA0B,CAAC;YAC/D,IACE,CAAC,GAAG,CAAC,QAAQ,CACX,GAAG,IAAI,2CAA2C,EAClD,MAAM,CAAC,KAAK,CACb;gBAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACzE,IACE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC;gBACtC,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;gBAEzD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ;gBACvE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YACnC,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,IACE,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,OAAO,CAAC;gBAClD,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;gBACrC,CAAC,MAAM,CAAC,UAAU,CAAC;gBACnB,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI;gBAE9B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,IACE,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,CAAC;gBACpD,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBAErB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC3D,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,IACE,MAAM,CAAC,SAAS,KAAK,UAAU;gBAC/B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,EACtE,CAAC;gBACD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;gBAC/B,IACE,CAAC,CACC,OAAO,IAAI,CAAC,sBAAsB,KAAK,QAAQ;oBAC/C,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAChC;oBACD,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS;wBAClC,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC;oBAEzD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QACD,IACE,MAAM,CAAC,IAAI,KAAK,QAAQ;YACxB,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;gBAC1B,MAAM,CAAC,SAAS,KAAK,QAAQ;gBAC7B,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBAChD,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI;gBAC5C,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAEpE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAS;QACnD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC;QAClD,IAAI,SAAS,GAAG,MAAqB,CAAC;QACtC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAClE,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QACnC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACxE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,GAAI,MAAM,CAAC,KAAqB,EAAE,CAAC;QACpE,CAAC;;YAAM,SAAS,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,WAAW,GACf,KAAK,CAAC,IAAI,KAAK,aAAa;QAC1B,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY;YAC3B,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,iBAAiB,CAAC;IAC1B,IACE,CAAC,SAAS;QACV,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;QACzC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,WAAW,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEpE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAC3E,IAAI,aAAa;YACf,aAAa,GAAG;gBACd,GAAG,aAAa;gBAChB,SAAS,EAAE,IAAI;gBACf,UAAU,EACR,aAAa,CAAC,UAAU,KAAK,OAAO;oBAClC,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,aAAa,CAAC,UAAU;aAC/B,CAAC;IACN,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YAC1B,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC5D,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;IAC5D,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC1D,OAAO;QACL,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,gBAAgB,CAC9B,OAAiB,EACjB,aAAmD;IAEnD,MAAM,MAAM,GACV,aAAa,EAAE,UAAU,KAAK,MAAM;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACzC,MAAM,OAAO,GACX,aAAa,EAAE,IAAI,KAAK,MAAM;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC;IACnE,MAAM,KAAK,GACT,aAAa,EAAE,UAAU,KAAK,KAAK;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IACxC,IAAI,MAAM,IAAI,OAAO;QAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC5E,IAAI,MAAM,IAAI,KAAK;QAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IACzE,wEAAwE;IACxE,2EAA2E;IAC3E,MAAM,SAAS,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAqD;QAC9D,GAAG,eAAe,CAAC,aAAa,CAAC;QACjC,SAAS,EACP,MAAM,IAAI,OAAO;YACf,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,SAAS,EAAE,IAAI,KAAK,QAAQ;gBAC5B,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAC7C,CAAC,CAAC,eAAe,CAAC,aAAa,EAAE,SAAS,IAAI,IAAI,CAAC;QACzD,UAAU,EAAE,MAAM;YAChB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,KAAK;gBACL,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,aAAa,EAAE,UAAU,KAAK,OAAO;oBACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;oBACzC,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,MAAM;QACd,GAAG,CAAC,aAAa,EAAE,IAAI,KAAK,SAAS;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;YACpC,CAAC,CAAC;gBACE,IAAI,EAAE,OAAO;oBACX,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,aAAa,EAAE,IAAI,KAAK,UAAU;wBAChC,OAAO,CAAC,IAAI,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,UAAU,CACvD;wBACH,CAAC,CAAC,UAAU;wBACZ,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,IAAI,MAAM,CAAC;aACtC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,aAAa,EAAE,YAAY,KAAK,SAAS;YAC7C,OAAO,CAAC,IAAI,CACV,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,MAAM;gBACjB,CAAC,CAAC,SAAS,KAAK,UAAU;gBAC1B,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CACpC;YACC,CAAC,CAAC;gBACE,YAAY,EAAE;oBACZ,GAAG,CAAC,aAAa,EAAE,YAAY,IAAI,EAAE,CAAC;oBACtC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,CAAC,CAAC,IAAI,KAAK,MAAM;wBACjB,CAAC,CAAC,SAAS,KAAK,UAAU;wBAC1B,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ;wBAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;wBACjB,CAAC,CAAC,EAAE,CACP;iBACF;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,aAAa,EAAE,UAAU,KAAK,SAAS;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;YACtC,CAAC,CAAC;gBACE,UAAU,EAAE;oBACV,GAAG,CAAC,aAAa,EAAE,UAAU,IAAI,EAAE,CAAC;oBACpC,GAAG,OAAO;yBACP,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;yBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAc,CAAC;iBAC/C;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,OAAO,EAAE,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAkB,EAClB,QAAkB,EAClB,QAA2B,EAC3B,YAA0B,EAC1B,OAA2B;IAE3B,2EAA2E;IAC3E,2EAA2E;IAC3E,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAgB,CAAC;IAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACxC,MAAM,UAAU,GAAG,CAAC,IAAc,EAAW,EAAE;QAC7C,IAAI,KAAK,GAAY,OAAO,CAAC,aAAa,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,KAAc,EAAW,EAAE,CAC/C,MAAM,CAAC,KAAK,CAAC;QACb,KAAK,CAAC,SAAS,KAAK,MAAM;QAC1B,KAAK,CAAC,IAAI,KAAK,SAAS;QACxB,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC;IAC1B,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAa,EAAwB,EAAE;QAC7D,IACE,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,IAAI,CAAC,SAAS,KAAK,kBAAkB;YACrC,CAAC,CAAC,IAAI,CAAC,IAAI,YAAY,cAAc,CAAC;YAEtC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CACrC,IAAI,CAAC,IAAkC,CACxC,CAAC;QACF,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAC/B,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACxD,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,CACZ,OAAgB,EAChB,KAAc,EACd,SAAiB,EACR,EAAE;QACX,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IAC9C,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,CACf,GAAY,EACZ,KAAc,EACd,IAAY,EACC,EAAE;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,EACJ,IAAI,EAAE,KAAK,EACX,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,UAAU,EACrB,GAAG,IAAI,EACR,GAAG,OAAO,CAAC;QACZ,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,cAAc,CAAa;YAC1C,KAAK,CAAC,UAAU;gBACd,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1B,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC;YACH,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,KAAK,CAAC;QACd,CAAC;QACD,OAAO;YACL,GAAG,IAAI;YACP,GAAG,CAAC,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ;gBAChC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YACnD,IAAI,EAAE,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;YAC9D,IAAI,EAAE,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;YAC5D,SAAS,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB;YACxE,SAAS,EAAE,MAAM;YACjB,IAAI,EAAE,KAAK,CAAC,UAAU;YACtB,IAAI;SACL,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,EACvB,OAAgB,EAChB,KAAc,EACd,SAAiB,EACjB,IAAY,EACZ,KAAc,EACd,OAAO,GAAG,IAAI,EACI,EAAE;QACpB,MAAM,GAAG,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACnE,6EAA6E;QAC7E,0EAA0E;QAC1E,IACE,SAAS,KAAK,SAAS;YACvB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACpB,KAAK,CAAC,KAAK,CACT,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,CAAC,CAAC,CAAC;gBACT,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC;gBACtD,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,0BAA0B,EAAE,CAAC,CAAC,CACrD,EACD,CAAC;YACD,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACzD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO;gBACV,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBACzD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,IAAI,GAAG,KAAK,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACtD,CAAC;QACD,0EAA0E;QAC1E,2EAA2E;QAC3E,IACE,OAAO;YACP,MAAM,CAAC,GAAG,CAAC;YACX,GAAG,CAAC,IAAI,YAAY,cAAc;YAClC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAC5D,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CACxC,GAAG,CAAC,IAAkC,CACvC,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CACxC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CACvD,CAAC;YACF,IACE,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;gBACpC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;gBAE5C,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACvC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/B,CAAC,CAAC;IACF,2EAA2E;IAC3E,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,0BAA0B,CAAC;QAClE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB,CAAC,CACpE,CAAC;IACF,IAAI,kBAA2C,CAAC;IAChD,IAAI,iBAA0C,CAAC;IAC/C,IAAI,kBAAkB,EAAE,CAAC;QACvB,IACE,OAAO,CAAC,aAAa;YACrB,CAAC,YAAY,CACX,UAAU,CAAC;gBACT,aAAa;gBACb,KAAK,CAAC,IAAI,KAAK,0BAA0B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;aACjE,CAAC,CACH;YAED,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,MAAM,YAAY,GAChB,KAAK,CAAC,IAAI,KAAK,0BAA0B;YACvC,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;QACjC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,0BAA0B;YACnE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,MAAM,WAAW,GAAI,YAA4B,CAAC,WAAW,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,IACE,KAAK,CAAC,IAAI,KAAK,yBAAyB;YACxC,CAAC,KAAK,CAAC,aAAa,KAAK,YAAY,CAAC,EAAE;gBACtC,KAAK,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM;gBACpC,CAAC,KAAK,CACJ,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACpD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CACnE;gBACD,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM;gBAClC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC;YAEjC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,IACE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;YAC7C,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;YAEtC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,kBAAkB,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACzD,IACE,CAAC,GAAG,CAAC,QAAQ,CACX,GAAG,IAAI,4CAA4C,EACnD,kBAAkB,CACnB;YACD,CAAC,kBAAkB,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI;YAEjD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YAC7C,iBAAiB,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,iBAAiB,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;gBAC1C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,MAAM,cAAc,GAAG,CAAC,MAAe,EAAE,EAAE;QACzC,yBAAyB,CACvB,kBAAkB,EAClB,MAAM,EACN,CAAC,IAAI,EAAE,KAAc,EAAE,EAAE;YACvB,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,KAAgD,CAAC;gBAC9D,yEAAyE;gBACzE,wEAAwE;gBACxE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;oBACvC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC/D,CAAC;iBAAM,IACL,CAAC,GAAG,CAAC,QAAQ,CACX,GAAG,IAAI,2CAA2C,EAClD,KAAK,CACN;gBAED,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC;IACF,IAAI,iBAAiB;QAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACzD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAS;QACvC,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YAC7C,iBAAiB,GAAG;gBAClB,GAAG,iBAAiB;gBACpB,OAAO,EAAE,KAAK,CACZ,iBAAiB,EAAE,OAAO,EAC1B,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,SAAS,CACjB;aACF,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC;QAClD,IAAI,SAAS,GAAG,MAAM,CAAC;QACvB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACnE,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QACnC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/B,IACE,MAAM,CAAC,MAAM,KAAK,SAAS;YAC3B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YACpB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC;gBACpC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EACvC,CAAC;YACD,sEAAsE;YACtE,0EAA0E;YAC1E,MAAM,OAAO,GAAG,KAAK,CACnB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAC9C,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,SAAS,CACF,CAAC;YACjB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;gBAAE,SAAS;YAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,MAAM,CAAC,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBACnC,IACE,MAAM,CAAC,KAAK,CAAC;oBACb,CAAC,KAAK,CAAC,SAAS,KAAK,UAAU,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC;oBAC9D,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,0BAA0B,EAAE,KAAK,CAAC;oBAEtD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC3B,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvC,OAAO,WAAW,CAChB,QAAQ,CAAC,CAAC,CAAC,EACX,KAAK,EACL,SAAS,EACT,MAAM,EACN,KAAK,EACL,CAAC,OAAO,CAAC,aAAa;oBACpB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CACzD,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACrE,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,CAAC,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnE,MAAM,IAAI,GACR,MAAM,CAAC,MAAM,KAAK,QAAQ;gBACxB,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,cAAc;oBAChC,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY;wBAC3B,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,WAAW,CAAC;YACtB,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,OAAO,GACX,CAAC,OAAO,CAAC,aAAa;gBACtB,CAAC,KAAK;oBACJ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;wBACvB,QAAQ,CAAC,MAAM,KAAK,CAAC;wBACrB,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC3B,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC9B,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,WAAW,CAChC,OAAO,EACP,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,SAAS,EAChB,IAAI,EACJ,KAAK,EACL,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,iBAAiB,EAAE,CAAC;QACtB,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,CAAC,WAA0B,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;IACzC,CAAC;IACD,IAAI,kBAAkB,EAAE,CAAC;QACvB,KAAK,MAAM,MAAM,IAAI,OAAO;YAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,OAAO,CACZ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,MAAqB,EACrB,KAAK,EACL,OAAO,CAAC,KAAK,CACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,75 @@
1
+ import { type ContentSelection, type ContentUpload } from "../draft/generated.js";
2
+ /** An owned native content stream, distinct from a receiver content reference.
3
+ * Construction does not read, lock, or upload the stream. Passing this source to
4
+ * an awaited SDK operation transfers cleanup responsibility to that operation;
5
+ * callers must not consume or reuse the underlying stream afterward. Native
6
+ * streams can prefetch independently; use highWaterMark: 0 to disable that.
7
+ */
8
+ export declare class ContentSource {
9
+ #private;
10
+ constructor(stream: ReadableStream<Uint8Array>);
11
+ /** Native stream identity is preserved for snapshot sharing and cleanup. */
12
+ get stream(): ReadableStream<Uint8Array>;
13
+ }
14
+ /** Producer content is metadata with an owned source or raw stream in `body`. */
15
+ export interface StreamContentItem {
16
+ id: string;
17
+ kind: string;
18
+ mediaType: string;
19
+ body: ContentSource | ReadableStream<Uint8Array>;
20
+ category?: string;
21
+ size?: number;
22
+ sha256?: string;
23
+ [key: string]: unknown;
24
+ }
25
+ /** Authenticate this upload independently, including discovery when auth is absent.
26
+ * Implementations must honor init.signal and init.redirect; never reuse event credentials.
27
+ */
28
+ export type ContentUploadRequest = (endpoint: string, init: RequestInit, upload: ContentUpload) => Promise<Response>;
29
+ export interface ContentManagerOptions {
30
+ /** Aggregate retained byte limit, not a truncation threshold. Default: 64 MiB.
31
+ * Snapshots are kept until close. Chunk assembly, hashing, and each concurrent
32
+ * request also use bounded copies. Streams exceeding it fail explicitly.
33
+ */
34
+ maxSnapshotBytes?: number;
35
+ allowLoopback?: boolean;
36
+ }
37
+ /** One manager per producer/session. Selection is NOT authorization: callers must
38
+ * authorize/project opaque native/input/output data before prepare. References
39
+ * are deliberately never cached: each prepare uploads in its receiver's scope.
40
+ */
41
+ export declare class ContentManager {
42
+ private snapshots;
43
+ private readers;
44
+ private seenStreams;
45
+ private lifetime;
46
+ private retainedBytes;
47
+ private closePromise;
48
+ private readonly limit;
49
+ private readonly allowLoopback;
50
+ constructor(options?: ContentManagerOptions);
51
+ /** Take cleanup ownership without selecting or reading any body. Call before
52
+ * routing/projection so unmatched and unauthorized sources are also closed.
53
+ * Close the manager in the operation's finally block, including on failure.
54
+ */
55
+ own(event: unknown): void;
56
+ /** Reads local producer bytes for composition, never remote references.
57
+ * Reuses the same bounded snapshot as prepare; returns an independent copy.
58
+ * Aborting the initial read cancels the stream and leaves that snapshot failed.
59
+ */
60
+ readBody(body: ContentSource | ReadableStream<Uint8Array>, signal?: AbortSignal): Promise<Uint8Array>;
61
+ /** Returns a fresh wire tree; never mutates the producer event or reads an
62
+ * omitted/metadata stream. All selected uploads finish before this resolves.
63
+ */
64
+ prepare(event: any, selection: ContentSelection, upload: ContentUpload | undefined, send: ContentUploadRequest, signal?: AbortSignal): Promise<any>;
65
+ /** Copy an already selected snapshot without reading unselected sources. */
66
+ copySnapshot(body: ReadableStream<Uint8Array>): Promise<Uint8Array | undefined>;
67
+ /** Initiates cancellation and releases snapshots; repeated calls return the
68
+ * same promise. Never waits for producer-controlled cancellation promises.
69
+ */
70
+ close(): Promise<void>;
71
+ private validateUpload;
72
+ private snapshot;
73
+ private readSnapshot;
74
+ }
75
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../src/client/content.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAC;AAE/B;;;;;GAKG;AACH,qBAAa,aAAa;;gBAGZ,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC;IAM9C,4EAA4E;IAC5E,IAAI,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAEvC;CACF;AAOD,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,aAAa,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,aAAa,KAClB,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAID;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAGb;IACJ,OAAO,CAAC,OAAO,CAAsD;IACrE,OAAO,CAAC,WAAW,CAAyC;IAC5D,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;gBAE5B,OAAO,GAAE,qBAA0B;IAO/C;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAiBzB;;;OAGG;IACG,QAAQ,CACZ,IAAI,EAAE,aAAa,GAAG,cAAc,CAAC,UAAU,CAAC,EAChD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IA4BtB;;OAEG;IACG,OAAO,CACX,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,GAAG,CAAC;IA+If,4EAA4E;IACtE,YAAY,CAChB,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAC/B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAWlC;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAetB,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,QAAQ;YAWF,YAAY;CAuD3B"}
@@ -0,0 +1,415 @@
1
+ import { parseContentUploadReceipt, } from "../draft/generated.js";
2
+ /** An owned native content stream, distinct from a receiver content reference.
3
+ * Construction does not read, lock, or upload the stream. Passing this source to
4
+ * an awaited SDK operation transfers cleanup responsibility to that operation;
5
+ * callers must not consume or reuse the underlying stream afterward. Native
6
+ * streams can prefetch independently; use highWaterMark: 0 to disable that.
7
+ */
8
+ export class ContentSource {
9
+ #stream;
10
+ constructor(stream) {
11
+ if (!(stream instanceof ReadableStream))
12
+ throw new Error("Content source requires a native ReadableStream");
13
+ this.#stream = stream;
14
+ }
15
+ /** Native stream identity is preserved for snapshot sharing and cleanup. */
16
+ get stream() {
17
+ return this.#stream;
18
+ }
19
+ }
20
+ function sourceStream(value) {
21
+ if (value instanceof ContentSource)
22
+ return value.stream;
23
+ return value instanceof ReadableStream ? value : undefined;
24
+ }
25
+ /** One manager per producer/session. Selection is NOT authorization: callers must
26
+ * authorize/project opaque native/input/output data before prepare. References
27
+ * are deliberately never cached: each prepare uploads in its receiver's scope.
28
+ */
29
+ export class ContentManager {
30
+ snapshots = new WeakMap();
31
+ readers = new Set();
32
+ seenStreams = new Set();
33
+ lifetime = new AbortController();
34
+ retainedBytes = 0;
35
+ closePromise;
36
+ limit;
37
+ allowLoopback;
38
+ constructor(options = {}) {
39
+ this.limit = options.maxSnapshotBytes ?? 64 * 1024 * 1024;
40
+ if (!Number.isSafeInteger(this.limit) || this.limit < 0)
41
+ throw new Error("Invalid snapshot byte limit");
42
+ this.allowLoopback = options.allowLoopback ?? false;
43
+ }
44
+ /** Take cleanup ownership without selecting or reading any body. Call before
45
+ * routing/projection so unmatched and unauthorized sources are also closed.
46
+ * Close the manager in the operation's finally block, including on failure.
47
+ */
48
+ own(event) {
49
+ this.lifetime.signal.throwIfAborted();
50
+ const visited = new WeakSet();
51
+ const visit = (value) => {
52
+ if (value === null || typeof value !== "object" || visited.has(value))
53
+ return;
54
+ visited.add(value);
55
+ const stream = sourceStream(value);
56
+ if (stream) {
57
+ this.seenStreams.add(stream);
58
+ return;
59
+ }
60
+ for (const child of Object.values(value))
61
+ visit(child);
62
+ };
63
+ visit(event);
64
+ }
65
+ /** Reads local producer bytes for composition, never remote references.
66
+ * Reuses the same bounded snapshot as prepare; returns an independent copy.
67
+ * Aborting the initial read cancels the stream and leaves that snapshot failed.
68
+ */
69
+ async readBody(body, signal) {
70
+ this.lifetime.signal.throwIfAborted();
71
+ this.own(body);
72
+ signal?.throwIfAborted();
73
+ const stream = sourceStream(body);
74
+ if (!stream)
75
+ throw new Error("Content body must be a ContentSource or raw ReadableStream");
76
+ const controller = new AbortController();
77
+ const abort = () => controller.abort(signal?.reason ?? this.lifetime.signal.reason);
78
+ signal?.addEventListener("abort", abort, { once: true });
79
+ this.lifetime.signal.addEventListener("abort", abort, { once: true });
80
+ if (signal?.aborted || this.lifetime.signal.aborted)
81
+ abort();
82
+ try {
83
+ const snapshot = await abortable(this.snapshot(stream, controller.signal), controller.signal);
84
+ controller.signal.throwIfAborted();
85
+ return snapshot.bytes.slice();
86
+ }
87
+ finally {
88
+ signal?.removeEventListener("abort", abort);
89
+ this.lifetime.signal.removeEventListener("abort", abort);
90
+ }
91
+ }
92
+ /** Returns a fresh wire tree; never mutates the producer event or reads an
93
+ * omitted/metadata stream. All selected uploads finish before this resolves.
94
+ */
95
+ async prepare(event, selection, upload, send, signal) {
96
+ this.lifetime.signal.throwIfAborted();
97
+ this.own(event);
98
+ signal?.throwIfAborted();
99
+ const omitted = Symbol("omitted file content");
100
+ const visit = async (value, path = []) => {
101
+ if (event?.type === "file.changed" && isFileReferencePath(path)) {
102
+ // Reuse normalized preparation internally; only the confirmed body is
103
+ // emitted in this bare-reference slot. Private identity never goes out.
104
+ const prepared = await visit({
105
+ id: "local-file-content",
106
+ kind: "file",
107
+ category: "files",
108
+ mediaType: "application/octet-stream",
109
+ body: value,
110
+ }, ["instructions"]);
111
+ return prepared.body ?? omitted;
112
+ }
113
+ if (value === null || typeof value !== "object")
114
+ return value;
115
+ if (Array.isArray(value))
116
+ return Promise.all(value.map((child, index) => visit(child, [...path, index])));
117
+ if (sourceStream(value))
118
+ return value;
119
+ if (isContentPath(path) &&
120
+ typeof value.id === "string" &&
121
+ typeof value.kind === "string" &&
122
+ typeof value.mediaType === "string") {
123
+ const stream = sourceStream(value.body);
124
+ const category = value.kind === "reasoning"
125
+ ? "reasoning"
126
+ : (value.category ?? mediaCategory(value.mediaType));
127
+ const mode = Object.hasOwn(selection, category)
128
+ ? selection[category]
129
+ : selection.default;
130
+ if (mode !== "body" && mode !== "metadata" && mode !== "omit")
131
+ throw new Error("Unsupported content selection");
132
+ const result = {};
133
+ for (const [key, child] of Object.entries(value)) {
134
+ if (key !== "body" && key !== "gap" && key !== "selection")
135
+ result[key] = await visit(child, [...path, key]);
136
+ }
137
+ result.selection = mode;
138
+ if (mode !== "body")
139
+ return result;
140
+ if (value.gap !== undefined && value.body === undefined) {
141
+ result.gap = await visit(value.gap, [...path, "gap"]);
142
+ return result;
143
+ }
144
+ if (!stream)
145
+ throw new Error("Body selection requires a ContentSource or raw ReadableStream, not a receiver reference");
146
+ if (!upload)
147
+ throw new Error("Body selection requires upload configuration");
148
+ this.validateUpload(upload);
149
+ const controller = new AbortController();
150
+ const abort = () => controller.abort(signal?.reason ?? this.lifetime.signal.reason);
151
+ signal?.addEventListener("abort", abort, { once: true });
152
+ this.lifetime.signal.addEventListener("abort", abort, { once: true });
153
+ if (signal?.aborted || this.lifetime.signal.aborted)
154
+ abort();
155
+ const timeout = setTimeout(() => controller.abort(new DOMException("Content upload timed out", "TimeoutError")), upload.timeoutMs);
156
+ try {
157
+ const snapshot = await abortable(this.snapshot(stream, controller.signal), controller.signal);
158
+ if (value.size !== undefined && value.size !== snapshot.size)
159
+ throw new Error("Content size mismatch");
160
+ if (value.sha256 !== undefined && value.sha256 !== snapshot.sha256)
161
+ throw new Error("Content SHA-256 mismatch");
162
+ if (snapshot.size > upload.maxBytes)
163
+ throw new Error("Content exceeds upload maxBytes");
164
+ const response = await abortable(send(upload.endpoint, {
165
+ method: "POST",
166
+ redirect: "error",
167
+ signal: controller.signal,
168
+ headers: {
169
+ "content-type": "application/octet-stream",
170
+ "content-length": String(snapshot.size),
171
+ "ahp-content-sha256": snapshot.sha256,
172
+ },
173
+ // Never expose the reusable private snapshot to an injected callback.
174
+ body: snapshot.bytes.slice(),
175
+ }, upload).then((response) => {
176
+ if (controller.signal.aborted) {
177
+ void response.body?.cancel().catch(() => undefined);
178
+ controller.signal.throwIfAborted();
179
+ }
180
+ return response;
181
+ }), controller.signal);
182
+ const parsed = parseContentUploadReceipt(await readConfirmation(response, controller.signal));
183
+ if (!parsed.ok ||
184
+ parsed.value.size !== snapshot.size ||
185
+ parsed.value.sha256 !== snapshot.sha256) {
186
+ throw new Error("Invalid or mismatched upload reference");
187
+ }
188
+ delete result.size;
189
+ delete result.sha256;
190
+ result.body = { ref: parsed.value.ref };
191
+ return result;
192
+ }
193
+ finally {
194
+ clearTimeout(timeout);
195
+ signal?.removeEventListener("abort", abort);
196
+ this.lifetime.signal.removeEventListener("abort", abort);
197
+ }
198
+ }
199
+ const result = {};
200
+ for (const [key, child] of Object.entries(value)) {
201
+ const prepared = await visit(child, [...path, key]);
202
+ if (prepared !== omitted)
203
+ result[key] = prepared;
204
+ }
205
+ return result;
206
+ };
207
+ return visit(event);
208
+ }
209
+ /** Copy an already selected snapshot without reading unselected sources. */
210
+ async copySnapshot(body) {
211
+ const snapshot = this.snapshots.get(body);
212
+ if (!snapshot)
213
+ return undefined;
214
+ try {
215
+ return (await snapshot).bytes.slice();
216
+ }
217
+ catch {
218
+ // Failed reads have no reusable result payload; delivery reports the error.
219
+ return undefined;
220
+ }
221
+ }
222
+ /** Initiates cancellation and releases snapshots; repeated calls return the
223
+ * same promise. Never waits for producer-controlled cancellation promises.
224
+ */
225
+ close() {
226
+ if (this.closePromise)
227
+ return this.closePromise;
228
+ this.closePromise = Promise.resolve();
229
+ this.lifetime.abort(new Error("Content manager closed"));
230
+ const readers = [...this.readers];
231
+ this.snapshots = new WeakMap();
232
+ const unread = [...this.seenStreams].filter((stream) => !stream.locked);
233
+ this.seenStreams.clear();
234
+ this.readers.clear();
235
+ for (const reader of readers)
236
+ void reader.cancel().catch(() => undefined);
237
+ for (const stream of unread)
238
+ void stream.cancel().catch(() => undefined);
239
+ this.retainedBytes = 0;
240
+ return this.closePromise;
241
+ }
242
+ validateUpload(upload) {
243
+ const url = new URL(upload.endpoint);
244
+ const loopback = ["localhost", "127.0.0.1", "[::1]"].includes(url.hostname);
245
+ if (/[\r\n]/.test(upload.endpoint) ||
246
+ url.username ||
247
+ url.password ||
248
+ url.hash ||
249
+ (url.protocol !== "https:" &&
250
+ !(this.allowLoopback && loopback && url.protocol === "http:")))
251
+ throw new Error("Unsafe upload endpoint");
252
+ if (!Number.isSafeInteger(upload.maxBytes) ||
253
+ upload.maxBytes < 0 ||
254
+ !Number.isSafeInteger(upload.timeoutMs) ||
255
+ upload.timeoutMs < 1)
256
+ throw new Error("Invalid upload budget");
257
+ }
258
+ snapshot(stream, signal) {
259
+ const existing = this.snapshots.get(stream);
260
+ if (existing)
261
+ return existing;
262
+ const pending = this.readSnapshot(stream, signal);
263
+ this.snapshots.set(stream, pending);
264
+ return pending;
265
+ }
266
+ async readSnapshot(stream, signal) {
267
+ signal.throwIfAborted();
268
+ const reader = stream.getReader();
269
+ this.readers.add(reader);
270
+ const chunks = [];
271
+ let size = 0;
272
+ const cancel = () => {
273
+ void reader.cancel(signal.reason).catch(() => undefined);
274
+ };
275
+ signal.addEventListener("abort", cancel, { once: true });
276
+ try {
277
+ for (;;) {
278
+ const next = await abortable(reader.read(), signal);
279
+ signal.throwIfAborted();
280
+ if (next.done)
281
+ break;
282
+ if (!(next.value instanceof Uint8Array))
283
+ throw new Error("Content stream must yield Uint8Array chunks");
284
+ if (this.retainedBytes + next.value.byteLength > this.limit)
285
+ throw new Error("Content snapshot memory limit exceeded");
286
+ if (next.value.byteLength === 0)
287
+ continue;
288
+ chunks.push(next.value.slice());
289
+ size += next.value.byteLength;
290
+ this.retainedBytes += next.value.byteLength;
291
+ }
292
+ const bytes = new Uint8Array(size);
293
+ let offset = 0;
294
+ for (const chunk of chunks) {
295
+ bytes.set(chunk, offset);
296
+ offset += chunk.byteLength;
297
+ }
298
+ chunks.length = 0;
299
+ const digest = new Uint8Array(await crypto.subtle.digest("SHA-256", bytes));
300
+ signal.throwIfAborted();
301
+ return {
302
+ bytes,
303
+ size,
304
+ sha256: Array.from(digest, (byte) => byte.toString(16).padStart(2, "0")).join(""),
305
+ };
306
+ }
307
+ catch (error) {
308
+ if (!this.lifetime.signal.aborted)
309
+ this.retainedBytes -= size;
310
+ void reader.cancel(error).catch(() => undefined);
311
+ throw error;
312
+ }
313
+ finally {
314
+ signal.removeEventListener("abort", cancel);
315
+ this.readers.delete(reader);
316
+ reader.releaseLock();
317
+ }
318
+ }
319
+ }
320
+ function isFileReferencePath(path) {
321
+ return (path.length === 3 &&
322
+ path[0] === "changes" &&
323
+ typeof path[1] === "number" &&
324
+ (path[2] === "before" || path[2] === "after"));
325
+ }
326
+ // Match positions, not descriptor-looking objects in opaque operation data.
327
+ function isContentPath(path) {
328
+ if (path.length === 1)
329
+ return ["instructions", "summary", "partialOutput", "delta"].includes(String(path[0]));
330
+ if (path.length === 2) {
331
+ return ((path[0] === "items" && typeof path[1] === "number") ||
332
+ (path[0] === "elicitation" &&
333
+ ["request", "result"].includes(String(path[1]))));
334
+ }
335
+ if (path.length !== 3)
336
+ return false;
337
+ return ((path[0] === "attention" &&
338
+ ["title", "message"].includes(String(path[1])) &&
339
+ typeof path[2] === "number") ||
340
+ (path[0] === "message" &&
341
+ ["text", "payload"].includes(String(path[1])) &&
342
+ typeof path[2] === "number") ||
343
+ (path[0] === "fileChanges" &&
344
+ typeof path[1] === "number" &&
345
+ ["before", "after"].includes(String(path[2]))));
346
+ // Bare file.changed references are projected separately above.
347
+ }
348
+ async function readConfirmation(response, signal) {
349
+ const reader = response.body?.getReader();
350
+ try {
351
+ signal.throwIfAborted();
352
+ if (response.status !== 201 ||
353
+ response.headers
354
+ .get("content-type")
355
+ ?.split(";")[0]
356
+ ?.trim()
357
+ .toLowerCase() !== "application/json") {
358
+ throw new Error("Upload requires HTTP 201 application/json confirmation");
359
+ }
360
+ if (!reader)
361
+ throw new Error("Missing upload confirmation body");
362
+ const chunks = [];
363
+ let size = 0;
364
+ for (;;) {
365
+ const next = await abortable(reader.read(), signal);
366
+ signal.throwIfAborted();
367
+ if (next.done)
368
+ break;
369
+ size += next.value.byteLength;
370
+ if (size > 1024 * 1024)
371
+ throw new Error("Upload confirmation exceeds 1 MiB limit");
372
+ if (next.value.byteLength !== 0)
373
+ chunks.push(next.value.slice());
374
+ }
375
+ const bytes = new Uint8Array(size);
376
+ let offset = 0;
377
+ for (const chunk of chunks) {
378
+ bytes.set(chunk, offset);
379
+ offset += chunk.byteLength;
380
+ }
381
+ return JSON.parse(new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(bytes));
382
+ }
383
+ finally {
384
+ if (reader) {
385
+ // Cancellation settles outstanding reads without waiting for the source's
386
+ // cancellation promise. Release the lock on every status/parse/abort path.
387
+ void reader.cancel().catch(() => undefined);
388
+ reader.releaseLock();
389
+ }
390
+ }
391
+ }
392
+ function mediaCategory(mediaType) {
393
+ const type = mediaType.toLowerCase().split(";")[0].trim();
394
+ if (type.startsWith("text/") || type === "application/json")
395
+ return "text";
396
+ if (type.startsWith("image/"))
397
+ return "images";
398
+ if (type.startsWith("audio/"))
399
+ return "audio";
400
+ if (type.startsWith("video/"))
401
+ return "video";
402
+ return "files";
403
+ }
404
+ function abortable(pending, signal) {
405
+ return new Promise((resolve, reject) => {
406
+ const abort = () => reject(signal.reason ?? new Error("Content operation aborted"));
407
+ signal.addEventListener("abort", abort, { once: true });
408
+ pending
409
+ .then(resolve, reject)
410
+ .finally(() => signal.removeEventListener("abort", abort));
411
+ if (signal.aborted)
412
+ abort();
413
+ });
414
+ }
415
+ //# sourceMappingURL=content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/client/content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { type BoundaryInput, type EventInput, type BoundaryOptions, type BoundaryResult, type EventType, type HooksOptions } from "./types.js";
2
+ /** Configuration-driven, harness-facing AHP client. No host operation is executed. */
3
+ export declare class Hooks {
4
+ readonly initialized: Promise<void>;
5
+ private readonly lifetime;
6
+ private readonly options;
7
+ private readonly routes;
8
+ private readonly managers;
9
+ private readonly pending;
10
+ private readonly provider;
11
+ private readonly authContexts;
12
+ private manifest;
13
+ private closed?;
14
+ private readonly elicitations;
15
+ private elicitationBytes;
16
+ private readonly activeElicitations;
17
+ constructor(config: unknown, options: HooksOptions);
18
+ private initialize;
19
+ private fetchAuthenticated;
20
+ /** Generic typed boundary dispatch; named methods below cover the complete catalogue. */
21
+ dispatch<K extends EventType>(type: K, input: BoundaryInput<K>, options?: BoundaryOptions): Promise<BoundaryResult<K>>;
22
+ private run;
23
+ private observe;
24
+ private rememberElicitation;
25
+ private elicitationFor;
26
+ /** End an abandoned host elicitation exchange without delivering a result. */
27
+ discardElicitation(requestEventId: string): void;
28
+ private retireSessionElicitations;
29
+ private forgetElicitation;
30
+ /** Cancel pending work and release SDK-owned resources; injected stores remain owned by the host. */
31
+ close(): Promise<void>;
32
+ private boundary;
33
+ toolBefore(input: EventInput<"tool.before">, options?: BoundaryOptions): Promise<BoundaryResult<"tool.before">>;
34
+ toolAfter(input: EventInput<"tool.after">, options?: BoundaryOptions): Promise<BoundaryResult<"tool.after">>;
35
+ sessionStart(input: EventInput<"session.start">, options?: BoundaryOptions): Promise<BoundaryResult<"session.start">>;
36
+ sessionEnd(input: EventInput<"session.end">, options?: BoundaryOptions): Promise<BoundaryResult<"session.end">>;
37
+ configChangeBefore(input: EventInput<"config.change.before">, options?: BoundaryOptions): Promise<BoundaryResult<"config.change.before">>;
38
+ configChangeAfter(input: EventInput<"config.change.after">, options?: BoundaryOptions): Promise<BoundaryResult<"config.change.after">>;
39
+ turnStart(input: EventInput<"turn.start">, options?: BoundaryOptions): Promise<BoundaryResult<"turn.start">>;
40
+ turnFinishBefore(input: EventInput<"turn.finish.before">, options?: BoundaryOptions): Promise<BoundaryResult<"turn.finish.before">>;
41
+ turnEnd(input: EventInput<"turn.end">, options?: BoundaryOptions): Promise<BoundaryResult<"turn.end">>;
42
+ turnProgress(input: EventInput<"turn.progress">, options?: BoundaryOptions): Promise<BoundaryResult<"turn.progress">>;
43
+ modelRequestBefore(input: EventInput<"model.request.before">, options?: BoundaryOptions): Promise<BoundaryResult<"model.request.before">>;
44
+ modelResponseAfter(input: EventInput<"model.response.after">, options?: BoundaryOptions): Promise<BoundaryResult<"model.response.after">>;
45
+ modelError(input: EventInput<"model.error">, options?: BoundaryOptions): Promise<BoundaryResult<"model.error">>;
46
+ modelSwitchBefore(input: EventInput<"model.switch.before">, options?: BoundaryOptions): Promise<BoundaryResult<"model.switch.before">>;
47
+ modelSwitchAfter(input: EventInput<"model.switch.after">, options?: BoundaryOptions): Promise<BoundaryResult<"model.switch.after">>;
48
+ toolPermissionRequest(input: EventInput<"tool.permission.request">, options?: BoundaryOptions): Promise<BoundaryResult<"tool.permission.request">>;
49
+ toolPermissionResolved(input: EventInput<"tool.permission.resolved">, options?: BoundaryOptions): Promise<BoundaryResult<"tool.permission.resolved">>;
50
+ toolProgress(input: EventInput<"tool.progress">, options?: BoundaryOptions): Promise<BoundaryResult<"tool.progress">>;
51
+ toolBatchAfter(input: EventInput<"tool.batch.after">, options?: BoundaryOptions): Promise<BoundaryResult<"tool.batch.after">>;
52
+ contextCompactBefore(input: EventInput<"context.compact.before">, options?: BoundaryOptions): Promise<BoundaryResult<"context.compact.before">>;
53
+ contextCompactAfter(input: EventInput<"context.compact.after">, options?: BoundaryOptions): Promise<BoundaryResult<"context.compact.after">>;
54
+ taskChangeBefore(input: EventInput<"task.change.before">, options?: BoundaryOptions): Promise<BoundaryResult<"task.change.before">>;
55
+ taskChangeAfter(input: EventInput<"task.change.after">, options?: BoundaryOptions): Promise<BoundaryResult<"task.change.after">>;
56
+ userAttention(input: EventInput<"user.attention">, options?: BoundaryOptions): Promise<BoundaryResult<"user.attention">>;
57
+ userElicitationRequest(input: EventInput<"user.elicitation.request">, options?: BoundaryOptions): Promise<BoundaryResult<"user.elicitation.request">>;
58
+ userElicitationResult(input: EventInput<"user.elicitation.result">, options?: BoundaryOptions): Promise<BoundaryResult<"user.elicitation.result">>;
59
+ userMessageInbound(input: EventInput<"user.message.inbound">, options?: BoundaryOptions): Promise<BoundaryResult<"user.message.inbound">>;
60
+ userMessageOutbound(input: EventInput<"user.message.outbound">, options?: BoundaryOptions): Promise<BoundaryResult<"user.message.outbound">>;
61
+ workspaceChangeBefore(input: EventInput<"workspace.change.before">, options?: BoundaryOptions): Promise<BoundaryResult<"workspace.change.before">>;
62
+ workspaceChangeAfter(input: EventInput<"workspace.change.after">, options?: BoundaryOptions): Promise<BoundaryResult<"workspace.change.after">>;
63
+ fileChanged(input: EventInput<"file.changed">, options?: BoundaryOptions): Promise<BoundaryResult<"file.changed">>;
64
+ hookFailure(input: EventInput<"hook.failure">, options?: BoundaryOptions): Promise<BoundaryResult<"hook.failure">>;
65
+ }
66
+ //# sourceMappingURL=hooks.d.ts.map